当前位置: 首页 > news >正文

YOLO26改进 - 特征融合 | 融合Hyper-YOLO混合聚合网络MANet(Mixed Aggregation Network)通过多路径设计实现高效特征学习与模型适应性提升

前言

本文介绍了新型目标检测方法 Hyper - YOLO 及其在 YOLO26中的结合。传统 YOLO 模型颈部设计有局限,为此提出超图计算驱动的语义收集与扩散框架(HGCSCS),将视觉特征图转化到语义空间并构建高阶信息传播机制。Hyper - YOLO 在主干网络引入混合聚合网络(MANet),结合多种卷积模块增强特征提取能力;在颈部网络设计基于超图的跨层级与跨位置表示网络(HyperC2Net)支持高阶交互。

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

专栏链接: YOLO26改进专栏

文章目录

  • 前言
  • 介绍
    • 摘要
  • 文章链接
  • 基本原理
  • 核心代码
  • YOLO26引入代码
  • tasks注册
    • 步骤1:
    • 步骤2
    • 配置yolo26-MANet.yaml
  • 实验
    • 脚本
    • 结果

介绍

摘要

Hyper-YOLO作为目标检测领域的革新性方法,巧妙引入超图计算理念,成功突破了传统YOLO模型在捕捉视觉特征复杂关联方面的桎梏。尽管经典YOLO架构在目标检测领域取得了卓越成就,但其颈部(neck)设计在跨层级特征整合与高阶特征关系挖掘方面仍存在明显瓶颈。针对这一核心痛点,我们精心构建了超图计算驱动的语义收集与扩散框架(HGCSCS),该框架创新性地将视觉特征图映射至语义空间,并通过精密的超图结构构建高阶信息流动通路,从而使模型能够同时获取深层语义与结构信息,实现了对传统特征学习范式的超越。

Hyper-YOLO的卓越性能源于两大核心创新:一方面,在主干网络中融入混合聚合网络(MANet),极大增强了模型的特征提取能力;另一方面,在颈部网络中巧妙设计了基于超图的跨层级与跨位置表示网络(HyperC2Net)。特别值得一提的是,HyperC2Net横跨五种尺度,彻底摆脱了传统网格结构的束缚,支持层级间与位置间的复杂高阶交互,为特征融合提供了前所未有的灵活性与表达能力。

这些精心设计的组件协同运作,使Hyper-YOLO在各种规模配置下均展现出超越现有技术的卓越性能。在COCO数据集的严格评测中,Hyper-YOLO-N较先进的YOLOv8-N和YOLOv9-T分别实现了惊人的12% APval9% APval性能提升,彰显了其作为当前先进架构的非凡实力。

完整源代码已在GitHub开放共享,以促进学术交流与技术创新。

文章链接

论文地址:论文地址

代码地址:代码地址

基本原理

Mixed Aggregation Network(MANet)是Hyper-YOLO模型中的一个关键组件,旨在增强特征提取能力。其技术原理主要体现在以下几个方面:

  1. 多种卷积模块的结合:MANet结合了三种典型的卷积变体:
    • 1 × 1旁路卷积:用于通道级特征的重新校准,能够有效调整特征图的通道数,从而增强特征的表达能力。
    • 深度可分离卷积(DSConv):这种卷积方式通过将标准卷积分解为深度卷积和逐点卷积,能够在保持计算效率的同时,提升空间特征的处理能力。
    • C2f模块:用于增强特征层次的整合,能够更好地捕捉不同层次之间的特征关系。
  2. 信息流的丰富性:通过将这三种卷积模块结合,MANet能够在训练过程中产生更丰富的梯度流。这种多样化的信息流有助于在每个关键阶段(共五个阶段)中加深语义特征的表达。
  3. 特征融合与压缩:MANet在处理完不同类型的特征后,通过连接操作(concatenation)将这些特征融合,并使用1 × 1卷积进行压缩,最终生成输出特征。这种融合方式确保了不同特征之间的信息能够有效整合,从而提升模型的整体性能。
  4. 增强的特征提取能力:通过上述机制,MANet显著提高了基础网络的特征提取能力,使得Hyper-YOLO在处理各种规模的物体时表现出色。

核心代码

classMANet(nn.Module):def__init__(self,c1,c2,n=1,shortcut=False,p=1,kernel_size=3,g=1,e=0.5):super().__init__()self.c=int(c2*e)self.cv_first=Conv(c1,2*self.c,1,1)self.cv_final=Conv((4+n)*self.c,c2,1)self.m=nn.ModuleList(Bottleneck(self.c,self.c,shortcut,g,k=((3,3),(3,3)),e=1.0)for_inrange(n))self.cv_block_1=Conv(2*self.c,self.c,1,1)dim_hid=int(p*2*self.c)self.cv_block_2=nn.Sequential(Conv(2*self.c,dim_hid,1,1),GroupConv(dim_hid,dim_hid,kernel_size,1),Conv(dim_hid,self.c,1,1))defforward(self,x):y=self.cv_first(x)y0=self.cv_block_1(y)y1=self.cv_block_2(y)y2,y3=y.chunk(2,1)y=list((y0,y1,y2,y3))y.extend(m(y[-1])forminself.m)returnself.cv_final(torch.cat(y,1))

YOLO26引入代码

在根目录下的ultralytics/nn/目录,新建一个featureFusion目录,然后新建一个以MANet为文件名的py文件, 把代码拷贝进去。

importtorchimporttorch.nnasnnimportmathdefautopad(k,p=None,d=1):# kernel, padding, dilation"""Pad to 'same' shape outputs."""ifd>1:k=d*(k-1)+1ifisinstance(k,int)else[d*(x-1)+1forxink]# actual kernel-sizeifpisNone:p=k//2ifisinstance(k,int)else[x//2forxink]# auto-padreturnpclassConv(nn.Module):"""Standard convolution with args(ch_in, ch_out, kernel, stride, padding, groups, dilation, activation)."""default_act=nn.SiLU()# default activationdef__init__(self,c1,c2,k=1,s=1,p=None,g=1,d=1,act=True):"""Initialize Conv layer with given arguments including activation."""super().__init__()self.conv=nn.Conv2d(c1,c2,k,s,autopad(k,p,d),groups=g,dilation=d,bias=False)self.bn=nn.BatchNorm2d(c2)self.act=self.default_actifactisTrueelseactifisinstance(act,nn.Module)elsenn.Identity()defforward(self,x):"""Apply convolution, batch normalization and activation to input tensor."""returnself.act(self.bn(self.conv(x)))defforward_fuse(self,x):"""Perform transposed convolution of 2D data."""returnself.act(self.conv(x))classBottleneck(nn.Module):"""Standard bottleneck."""def__init__(self,c1,c2,shortcut=True,g=1,k=(3,3),e=0.5):"""Initializes a standard bottleneck module with optional shortcut connection and configurable parameters."""super().__init__()c_=int(c2*e)# hidden channelsself.cv1=Conv(c1,c_,k[0],1)self.cv2=Conv(c_,c2,k[1],1,g=g)self.add=shortcutandc1==c2defforward(self,x):"""Applies the YOLO FPN to input data."""returnx+self.cv2(self.cv1(x))ifself.addelseself.cv2(self.cv1(x))classDWConv(Conv):"""Depth-wise convolution."""def__init__(self,c1,c2,k=1,s=1,d=1,act=True):# ch_in, ch_out, kernel, stride, dilation, activation"""Initialize Depth-wise convolution with given parameters."""super().__init__(c1,c2,k,s,g=math.gcd(c1,c2),d=d,act=act)classMANet(nn.Module):def__init__(self,c1,c2,n=1,shortcut=False,p=1,kernel_size=3,g=1,e=0.5):super().__init__()self.c=int(c2*e)self.cv_first=Conv(c1,2*self.c,1,1)self.cv_final=Conv((4+n)*self.c,c2,1)self.m=nn.ModuleList(Bottleneck(self.c,self.c,shortcut,g,k=((3,3),(3,3)),e=1.0)for_inrange(n))self.cv_block_1=Conv(2*self.c,self.c,1,1)dim_hid=int(p*2*self.c)self.cv_block_2=nn.Sequential(Conv(2*self.c,dim_hid,1,1),DWConv(dim_hid,dim_hid,kernel_size,1),Conv(dim_hid,self.c,1,1))defforward(self,x):y=self.cv_first(x)y0=self.cv_block_1(y)y1=self.cv_block_2(y)y2,y3=y.chunk(2,1)y=list((y0,y1,y2,y3))y.extend(m(y[-1])forminself.m)returnself.cv_final(torch.cat(y,1))

tasks注册

ultralytics/nn/tasks.py中进行如下操作:

步骤1:

fromultralytics.nn.featureFusion.MANetimportMANet

步骤2

修改def parse_model(d, ch, verbose=True):

MANet

配置yolo26-MANet.yaml

ultralytics/cfg/models/11/YOLO26-MANet.yaml

# Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license# Ultralytics YOLO26 object detection model with P3/8 - P5/32 outputs# Model docs: https://docs.ultralytics.com/models/yolo26# Task docs: https://docs.ultralytics.com/tasks/detect# Parametersnc:80# number of classesend2end:True# whether to use end-to-end modereg_max:1# DFL binsscales:# 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: 260 layers, 2,572,280 parameters, 2,572,280 gradients, 6.1 GFLOPss:[0.50,0.50,1024]# summary: 260 layers, 10,009,784 parameters, 10,009,784 gradients, 22.8 GFLOPsm:[0.50,1.00,512]# summary: 280 layers, 21,896,248 parameters, 21,896,248 gradients, 75.4 GFLOPsl:[1.00,1.00,512]# summary: 392 layers, 26,299,704 parameters, 26,299,704 gradients, 93.8 GFLOPsx:[1.00,1.50,512]# summary: 392 layers, 58,993,368 parameters, 58,993,368 gradients, 209.5 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,SPPF,[1024,5,3,True]]# 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,True]]# 13-[-1,1,nn.Upsample,[None,2,"nearest"]]-[[-1,4],1,Concat,[1]]# cat backbone P3-[-1,2,MANet,[256,False,2,3]]# 16 (P3/8-small)-[-1,1,Conv,[256,3,2]]-[[-1,13],1,Concat,[1]]# cat head P4-[-1,2,MANet,[512,False,2,3]]# 19 (P4/16-medium)-[-1,1,Conv,[512,3,2]]-[[-1,10],1,Concat,[1]]# cat head P5-[-1,2,MANet,[1024,False,2,3]]# 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-MANet.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-MANet',)

结果

http://www.jsqmd.com/news/299250/

相关文章:

  • 汉字阅读开挂了?汉英阅读速度实测对比,效率差出40%+!
  • 缓存三剑客困难
  • 2026年 印刷厂家推荐排行榜:化妆瓶、亚克力、咖啡杯、金属、PC满板、电子产品、汽车零件、遥控面板、医疗器材、罐体印刷,专业定制与高精度工艺之选
  • AI工程师必看!X-Distill技术详解:让机器人仅需10条数据就能学会复杂操作,建议收藏学习!
  • AI驱动的动态调度:从理论到实践,程序员必备的智能制造核心技能(建议收藏)
  • NeurIPS 2025多模态表征学习新突破:4篇论文详解
  • 亲测BSHM人像抠图镜像,效果惊艳真实体验分享
  • 大模型部署难题破解:并行计算架构详解与实战
  • 程序员学习大模型必看:腾讯云智商业产品面试经验,AI商业化思维与未来趋势深度解析(建议收藏)
  • LangChain、LangFlow、LangGraph:大模型应用开发框架全解析
  • 大模型微调学习路线:从0到1掌握AI落地核心技能,附四阶段详细规划
  • 2026年 环境老化试验箱厂家推荐排行榜,氙灯/紫外线/湿度/复合循环/盐水喷雾/臭氧/热老化试验箱专业品牌深度解析
  • 救命神器8个AI论文写作软件,自考学生搞定毕业论文不求人!
  • 2026年冷藏车箱厂家推荐排行榜:4米2/3米2/6米8/7米7/9米6冷链运输车箱,精选耐用保温与合规高效品牌
  • 2026年印刷设备厂家实力推荐榜:单色移印机/全自动平面丝印机/多色移印机/曲面丝印机/标准烫金机/化妆品瓶子印刷机,精选高效智能印刷解决方案
  • web3生态分层
  • 基于springboot+vue的农产品销售管理系统(源码+论文+部署+安装)
  • 2026年不锈钢工程厂家实力推荐榜:别墅、会所、酒店、商业空间等高端定制,匠心工艺与创新设计深度解析
  • Opencode CLI 配置 MiniMax M2 (Nvidia API) 指南
  • 2026 年 1 月割草船厂家推荐排行榜:无人/自动/遥控割草船,水域/河道/鱼塘/水下割草船,水草打捞/收割/清理船,高效清淤与生态维护利器精选
  • 实用指南:16000+字!Java集合笔记
  • 告别繁琐命令行:自研多线程 SSH 极速文件传输助手(附 GitHub 源码)
  • Educational Codeforces Round 79 部分题解
  • 钱包
  • 数组(二)
  • 数组(三)
  • Day52 >> 101、孤岛的总面积 + 102、沉默孤岛 + 103、水流问题 + 104、建造最大岛屿
  • 2026 年 1 月珠海烟酒礼品回收厂家推荐榜单:茅台/洋酒/冬虫夏草/燕窝鱼胶等名品高价回收,专业可靠、快捷变现之选
  • MinIO替代方案安全性对比:RustFS如何为数据筑牢防护墙?
  • HCIP笔记6--OSPF域外路由、特殊区域(stub、totally stub) - 指南