news 2026/4/16 12:55:27

YOLO26改进 - SPPF模块 | AIFI基于注意力的尺度内特征交互:替代SPPF构建高效混合编码器,提升模型综合效能

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
YOLO26改进 - SPPF模块 | AIFI基于注意力的尺度内特征交互:替代SPPF构建高效混合编码器,提升模型综合效能

前言

本文介绍了实时检测Transformer(RT-DETR)及其核心AIFI模块在YOLO26中的结合应用。RT-DETR旨在解决YOLO速度和准确性受NMS负面影响、DETRs计算成本高的问题,通过设计高效混合编码器和解码器层数调整来提升性能。AIFI作为Transformer编码器层,通过构建2D正弦 - 余弦位置嵌入处理多尺度特征。我们将AIFI集成进YOLO26,实验表明,改进后的模型在COCO数据集上的速度和准确性超越了先进的YOLO模型,展现出良好的性能表现。

文章目录: YOLO26改进大全:卷积层、轻量化、注意力机制、损失函数、Backbone、SPPF、Neck、检测头全方位优化汇总

专栏链接: YOLO26改进专栏

文章目录

  • 前言
  • 介绍
    • 摘要
  • 文章链接
  • 基本原理
  • 核心代码
  • YOLO26已经集成AIFI
  • 实验
    • 脚本
    • 结果

介绍

摘要

YOLO系列因其在速度和准确性之间的合理权衡,成为了实时目标检测中最受欢迎的框架。然而,我们观察到YOLO的速度和准确性受NMS(非极大值抑制)的负面影响。最近,基于Transformer的端到端检测器(DETRs)提供了一种消除NMS的替代方案,但其高计算成本限制了其实用性,并阻碍了其完全利用排除NMS的优势。在本文中,我们提出了实时检测Transformer(RT-DETR),据我们所知,这是第一个解决上述困境的实时端到端目标检测器。我们借鉴先进的DETR,分两步构建RT-DETR:首先,我们专注于在提高速度的同时保持准确性,然后在保持速度的同时提高准确性。具体而言,我们设计了一种高效的混合编码器,通过解耦内尺度交互和跨尺度融合来快速处理多尺度特征,从而提高速度。然后,我们提出了不确定性最小化查询选择,以向解码器提供高质量的初始查询,从而提高准确性。此外,RT-DETR通过调整解码器层数支持灵活的速度调节,以适应各种场景,而无需重新训练。我们的RT-DETR-R50/R101在COCO数据集上分别达到了53.1%和54.3%的AP,并在T4 GPU上达到了108 FPS和74 FPS,超越了之前先进的YOLOs在速度和准确性上的表现。此外,RT-DETR-R50在准确性上比DINO-R50高2.2% AP,且FPS高约21倍。经过Objects365的预训练后,RT-DETR-R50/R101分别达到了55.3%和56.2%的AP。项目页面:https://zhao-yian.github.io/RTDETR。

文章链接

论文地址:论文地址

代码地址:代码地址

基本原理

核心代码

classAIFI(TransformerEncoderLayer):"""Defines the AIFI transformer layer."""def__init__(self,c1,cm=2048,num_heads=8,dropout=0,act=nn.GELU(),normalize_before=False):"""Initialize the AIFI instance with specified parameters."""super().__init__(c1,cm,num_heads,dropout,act,normalize_before)defforward(self,x):"""Forward pass for the AIFI transformer layer."""c,h,w=x.shape[1:]pos_embed=self.build_2d_sincos_position_embedding(w,h,c)# Flatten [B, C, H, W] to [B, HxW, C]x=super().forward(x.flatten(2).permute(0,2,1),pos=pos_embed.to(device=x.device,dtype=x.dtype))returnx.permute(0,2,1).view([-1,c,h,w]).contiguous()@staticmethoddefbuild_2d_sincos_position_embedding(w,h,embed_dim=256,temperature=10000.0):"""Builds 2D sine-cosine position embedding."""grid_w=torch.arange(int(w),dtype=torch.float32)grid_h=torch.arange(int(h),dtype=torch.float32)grid_w,grid_h=torch.meshgrid(grid_w,grid_h,indexing="ij")assertembed_dim%4==0,"Embed dimension must be divisible by 4 for 2D sin-cos position embedding"pos_dim=embed_dim//4omega=torch.arange(pos_dim,dtype=torch.float32)/pos_dim omega=1.0/(temperature**omega)out_w=grid_w.flatten()[...,None]@ omega[None]out_h=grid_h.flatten()[...,None]@ omega[None]returntorch.cat([torch.sin(out_w),torch.cos(out_w),torch.sin(out_h),torch.cos(out_h)],1)[None]

YOLO26已经集成AIFI

请注意AIFI以及被官方集成到了 YOLO26中,具体路径是:ultralytics/ultralytics/nn/modules/transformer.py

直接配置yaml进行训练即可:

ultralytics/cfg/models/26/yolo26-AIFI.yaml

# Ultralytics YOLO 🚀, AGPL-3.0 license# YOLO26 object detection model with P3-P5 outputs. For Usage examples see https://docs.ultralytics.com/tasks/detect# Parametersnc:80# number of classesscales:# model compound scaling constants, i.e. 'model=YOLO26n.yaml' will call YOLO26.yaml with scale 'n'# [depth, width, max_channels]n:[0.50,0.25,1024]# summary: 319 layers, 2624080 parameters, 2624064 gradients, 6.6 GFLOPss:[0.50,0.50,1024]# summary: 319 layers, 9458752 parameters, 9458736 gradients, 21.7 GFLOPsm:[0.50,1.00,512]# summary: 409 layers, 20114688 parameters, 20114672 gradients, 68.5 GFLOPsl:[1.00,1.00,512]# summary: 631 layers, 25372160 parameters, 25372144 gradients, 87.6 GFLOPsx:[1.00,1.50,512]# summary: 631 layers, 56966176 parameters, 56966160 gradients, 196.0 GFLOPs# YOLO26n backbonebackbone:# [from, repeats, module, args]-[-1,1,Conv,[64,3,2]]# 0-P1/2-[-1,1,Conv,[128,3,2]]# 1-P2/4-[-1,2,C3k2,[256,False,0.25]]-[-1,1,Conv,[256,3,2]]# 3-P3/8-[-1,2,C3k2,[512,False,0.25]]-[-1,1,Conv,[512,3,2]]# 5-P4/16-[-1,2,C3k2,[512,True]]-[-1,1,Conv,[1024,3,2]]# 7-P5/32-[-1,2,C3k2,[1024,True]]-[-1,1,AIFI,[1024,8]]# 9-[-1,2,C2PSA,[1024]]# 10# YOLO26n headhead:-[-1,1,nn.Upsample,[None,2,"nearest"]]-[[-1,6],1,Concat,[1]]# cat backbone P4-[-1,2,C3k2,[512,False]]# 13-[-1,1,nn.Upsample,[None,2,"nearest"]]-[[-1,4],1,Concat,[1]]# cat backbone P3-[-1,2,C3k2,[256,False]]# 16 (P3/8-small)-[-1,1,Conv,[256,3,2]]-[[-1,13],1,Concat,[1]]# cat head P4-[-1,2,C3k2,[512,False]]# 19 (P4/16-medium)-[-1,1,Conv,[512,3,2]]-[[-1,10],1,Concat,[1]]# cat head P5-[-1,2,C3k2,[1024,True]]# 22 (P5/32-large)-[[16,19,22],1,Detect,[nc]]# Detect(P3, P4, P5)

实验

脚本

importwarnings warnings.filterwarnings('ignore')fromultralyticsimportYOLOif__name__=='__main__':# 修改为自己的配置文件地址model=YOLO('./ultralytics/cfg/models/26/yolo26-AIFI.yaml')# 修改为自己的数据集地址model.train(data='./ultralytics/cfg/datasets/coco8.yaml',cache=False,imgsz=640,epochs=10,single_cls=False,# 是否是单类别检测batch=8,close_mosaic=10,workers=0,optimizer='MuSGD',# optimizer='SGD',amp=False,project='runs/train',name='yolo26-AIFI',)

结果

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/15 5:15:03

Java毕设选题推荐:基于springboot的幼儿园管理系统基于springboot的实验幼儿园信息管理系统【附源码、mysql、文档、调试+代码讲解+全bao等】

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

作者头像 李华
网站建设 2026/4/11 11:17:21

微信小程序的—宠物售卖商店看病预约业务系统

目录 微信小程序宠物售卖商店看病预约业务系统摘要系统概述核心功能技术实现商业价值创新点 项目技术支持可定制开发之功能亮点源码获取详细视频演示 :文章底部获取博主联系方式!同行可合作 微信小程序宠物售卖商店看病预约业务系统摘要 系统概述 该系…

作者头像 李华
网站建设 2026/4/13 15:56:27

多模态大模型核心原理与实战:从Stable Diffusion到Sora全面解析

多模态大模型通过Embedding、信息融合与任务学习处理多源数据。Stable Diffusion利用CLIP和UNet实现文本到图像生成,Sora扩展到视频领域,加入时空切块和一致性模块保证连贯性。大模型赋能推荐系统实现个性化内容生成,如GeneRec和PMG。工程实践…

作者头像 李华
网站建设 2026/4/16 12:08:28

如何在Discord机器人中实现银行系统

在创建一个Discord机器人时,实现一个银行系统可能是非常有趣的功能,特别是对于喜欢角色扮演游戏的用户,比如Dungeons and Dragons玩家。今天我们将探讨如何在Discord中实现一个简单的银行系统,包括增加金额和查看余额的功能。 初步设想 首先,我们需要一个地方来存储每个…

作者头像 李华
网站建设 2026/4/15 16:22:29

HBase监控与调优:关键指标与工具推荐

HBase监控与调优:关键指标与工具推荐 关键词:HBase监控、性能调优、关键指标、监控工具、JVM调优、RegionServer、分布式系统 摘要:本文深入解析HBase监控与调优的核心技术体系,系统阐述服务器级、HBase服务级、JVM级、Region与Store级关键指标的原理与阈值判断,提供硬件配…

作者头像 李华
网站建设 2026/4/16 12:05:38

校平机背后的力学奥秘:为什么反复弯曲能让金属变平整?

金属板材变形如同揉皱的纸张,而校平机的智慧在于"以曲制曲"——通过精密的弯曲来消除弯曲。残余应力:变形的罪魁祸首金属板材在轧制、切割或冲压后,内部会残留不均匀的内应力。想象一块被拉着两端的橡皮筋:如果一侧拉得…

作者头像 李华