news 2026/6/15 8:23:03

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/6/12 7:24:00

提示工程架构设计实战:旅游行业智能推荐提示系统架构设计全流程

提示工程架构设计实战:旅游行业智能推荐提示系统架构设计全流程 一、标题选项 《提示工程落地指南:旅游行业智能推荐系统架构设计全流程》《从0到1:旅游行业智能推荐提示系统架构实战解析》《旅游推荐智能化:基于提示工程的系统…

作者头像 李华
网站建设 2026/6/15 12:21:05

Java计算机毕设之基于springboot的养老院管理系统的设计与实现基于SpringBoot的养老中心管理系统设计与实现(完整前后端代码+说明文档+LW,调试定制等)

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

作者头像 李华
网站建设 2026/6/15 12:20:24

网页爬虫与DOM操作:Puppeteer与Cheerio的实战应用

在现代网络应用开发中,网页爬虫和DOM操作是两个常见却又复杂的领域。通过Puppeteer和Cheerio,我们可以有效地抓取并处理网页内容。本文将介绍如何使用这两个工具来移除HTML中不包含文本的元素,并展示一个具体的实例。 背景介绍 Puppeteer是一个Node库,提供了高级API来控制…

作者头像 李华
网站建设 2026/6/10 17:59:35

AI大模型学习路径:产品经理必备技能与资源汇总【AI产品经理如何入门】产品经理转行

文章系统介绍了AI产品经理所需的知识体系,涵盖AI产业结构、产品经理分类、能力模型、三大应用领域(计算机视觉、语音交互、自然语言处理)及机器学习、深度学习等核心技术。同时提供了结构化学习路径和丰富资源,包括思维导图、知识…

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

2026必备!10个AI论文写作软件,助本科生轻松写论文!

2026必备!10个AI论文写作软件,助本科生轻松写论文! AI 工具如何改变论文写作的未来 在当今信息爆炸的时代,学术写作正面临前所未有的挑战。对于本科生而言,撰写一篇高质量的论文不仅需要扎实的专业知识,更需…

作者头像 李华