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

YOLOv13:最新的YOLO目标检测算法

[2506.17733] YOLOv13: Real-Time Object Detection with Hypergraph-Enhanced Adaptive Visual Perception

Github: https://github.com/iMoonLab/yolov13

YOLOv13:利用超图增强型自适应视觉感知进行实时物体检测

主要的创新点提出了HyperACE机制、FullPAD范式、轻量化模块设计

📌文章针对目前存在的问题:  

  • 包括YOLOv11及早期的基于卷积架构的版本和基于区域自注意力机制的YOLOv12在局部信息聚合和两两相关的建模方面存储局限,缺乏捕获全局多对多高阶相关性的能力,这限制了复杂场景下的检测性能。个人理解是想让它和Transformer、Mamba一样,都能具备良好的全局建模能力。
  • 在卷积网络里面建模能力主要受限于kernel大小,出现了深度可分离卷积、膨胀卷积和蛇形卷积等,也受限于网络深度。

  • 目前有一些研究证明了超图(Hypergraph)来建模视觉任务的多像素高阶相关性的必要性和有效性。但是这些方法简单地使用手动设置的阈值参数值来确定像素是否基于像素特征距离相关,即特征距离低于特定阈值的像素被认为是相关的。这种手动建模范式使得处理复杂场景变得困难,并导致额外的冗余建模,导致检测精度和鲁棒性有限。

🏆方法:  

💰YOLOv13整体架构

YOLOv13 仍沿用 YOLO 系列经典的 Backbone → Neck → Head 架构,引入了HyperACE和FullPAD模块分别增强特征和网络的全局建模能力,使整个网络具备了更强的特征表达和信息流动能力。

Backbone使用了普通卷积、A2C2f、DSConv和DS-C3k2(轻量级的深度可分离卷积模块)提取了多尺度特征图B1、B2、B3、B4和B5。

HyperACE增强这三个尺度的特征,将B3和B5的大小调整为与B4相同的空间大小,并通过1×1的卷积层进行聚合,得到融合特征。这个融合特征会被切割为三个部分,分别用于全局高阶相关建模、局部低阶相关建模和Shortcut 连接,前两个都是并行进行的。最后,将这三个分支的输出沿着通道维度进行连接,并通过1×1卷积层进行融合,得到HyperACE的最终输出。

FullPAD利用三个独立的Tunnels将增强后的特征分发到网络各层,贯通整个流程,形成细粒度的信息交互。最后,将颈部的输出特征映射转发到检测头中,实现多尺度目标检测。

🏓HyperACE 

Hypergraph-Based Adaptive Correlation Enhancement(HperACE)包含两个核心组件,即基于C3AH模块的全局高阶感知分支和基于DS-C3k块的局部低阶感知分支。C3AH模块通过自适应超图计算对高阶视觉关联进行线性复杂度建模,保留了CSP bottleneck分支分裂机制,同时集成了自适应超图计算模块,实现了跨空间位置的全局高阶语义聚合。解决了之前的模型只能建模局部两元关系的问题,这是本文的核心创新之一。

为了有效地对视觉特征中的高阶相关性进行建模,实现关联引导下的特征聚合和增强,提出了一种新的自适应超图计算范式(C3AH),能够自适应学习每个超边缘的每个顶点的参与度。C3AH里面包括Adaptive Hyperedge Generation和Hypergraph Convolution。

Adaptive Hyperedge Generation阶段侧重于对输入视觉特征的相关性进行动态建模以生成超边,并估计每个顶点对每个超边的参与程度。X=\left \{ x_{i}\in \mathbb{R}^C | i = 1,..., N \right \}表示顶点的特征,C是特征通道的数量。Adaptive Hyperedge Generation会首先使用全局平均池化和最大池化分别生成上下文向量,将这些向量连接起来,得到全局顶点上下文的矩阵。从顶点上下文中生成全局偏置\Delta P,将这些偏置与一个可学习的全局Proto.即P_{0}相加,得到M个动态超边原型P=P_{0} + \Delta P。这些原型代表了场景中潜在的视觉相关性。为了计算每个顶点的参与度,利用另一个投影层从顶点特征x_{i}生成顶点查询向量z_{i},即:z_{i} = W_{pre}x_{i}\in \mathbb{R}^CW_{pre}是权重矩阵。

文章引入多头机制来增加特征多样性,具体做法是将z_{i}沿着特征维度划分为h个子空间\left \{ \hat{z} _{i}^{T}\in \mathbb{R}^{d_{h}}\right \}_{\tau =1}^{h},其中d_{h}=C/h。同样将每个超边原型划分为h个子空间\left \{ \hat{p} _{m}^{T}\in \mathbb{R}^{d_{h}}\right \}_{\tau =1}^{h},这样就可以在所有的子空间中计算第i个顶点查询向量与第m个原型的相似度:s_{i,m}^{\tau }=\frac{\left \langle \hat{z}_{i}^{\tau}, \hat{p}_{i}^{\tau}\right \rangle}{\sqrt{d_{h}}}。那么总体相似度就可以定义为所有子空间相似度的平均值。

生成自适应超边后,进行Hypergraph Convolution,实现特征聚合和增强。具体来说,在超图卷积中,每个超边缘首先收集所有顶点的特征,并应用线性投影形成超边缘特征。然后,将超边缘特征传播回顶点以更新其表示。

使用轻量化模块DS-C3k提取精细的局部模式,比如纹理、边缘等。与高阶全局信息形成互补,这就是低阶局部增强分支所做的事情。

Shortcut是直通分支,保留了原始输入特征。

N表示的是顶点的数量,M表示的是超边的数量,\mathcal{V}是顶点集合,\mathcal{A}是自适应超边集合。

⛳FullPAD

为了充分利用从HperACE获得的相关特征增强特性,YOLOv13 进一步设计了 (Full-Pipeline Aggregation-and-Distribution Paradigm)FullPAD范式,将增强后的特征流向网络的各个关键节点。具体而言就是FullPAD 从主干中收集多尺度特征图并将它们转发到 HyperACE,然后通过不同的 FullPAD tunnels将增强的特征重新分配到整个管道中的不同位置。

这样就会使得特征在整个网络(Backbone、Neck、Head)中“流动起来”,提高了梯度传播效率和特征协同能力,提升小目标检测、遮挡目标识别等复杂场景下的表现。

🔌DS系列轻量化模块

YOLOv13使用大核深度可分离卷积(depthwise-separable convolution, DSConv)作为基本单元来设计了一系列轻量级特征提取块。在不影响模型性能的情况下显著减少了参数数量和计算复杂度。从下图中能直观看到DSConv使用的是标准深度可分离卷积层,减少参数量和计算量。在DS-Bottleneck中如果输入和输出的通道数相同,则会增加一个剩余的跳过连接,以保留低频信息。

DS-C3k块继承自标准的YOLOv5提出的CSP-C3结构。具体来说,首先将输入特征转发到1 × 1卷积层以减少特征通道,然后由 n 个级联 DS-Bottleneck 块处理。同时,对输入特征应用横向1 × 1卷积分支。最后,沿着通道维度连接两个分支的特征,并利用1 × 1卷积层来恢复特征通道。该设计保留了CSP结构的跨通道分支,同时集成了深度可分离的轻量级bottlenecks。

DS-C3k2块来源于YOLOv11的C3k2结构。具体来说,首先应用 1 × 1 卷积层来统一通道。然后,特征分为两部分,一部分输入多个 DS-C3k 模块,另一部分通过快捷连接。最后,输出与 1×1 卷积层连接和融合。

🧪实验 

 📊Dataset

使用了MS COCO数据集,所有方法都在Train2017子集上进行训练,并在Val2017子集上进行测试。为了评估跨域泛化能力,所有方法都使用在 MS COCO 数据集上训练的模型直接在 Pascal VOC 2007 测试集上进行评估。

🎨训练设定

600个epochs,batch size是256,初始学习率是0.01,优化器采用的是SGD,线性衰减是adopted,一个线性的warm-up应用在前三个epochs中。input的图像大小会resize成640×640。数据增强采用的是和YOLO系列一样的技术,分别使用4个和8个RTX 4090 gpu来训练YOLOv13-N和YOLOv13-S,使用4个和8个A800 gpu来训练YOLOv13-L和YOLOv13-X。

📡定量和定性结果

YOLOv13模型和最新的YOLO11和YOLOv12模型在相同的gpu上进行训练,而现有的方法使用其官方代码和训练参数进行训练。

为了验证YOLOv13的泛化能力,在 MS COCO 数据集上训练了YOLOv13 模型和以前的 YOLO 模型,并在 Pascal VOC 2007 数据集上测试所有方法。定量结果如下所示。

 🎑消融实验

论文在消融实验中评估了所提出的YOLOv13-Small模型在FullPAD将特征分布到不同位置时的性能。具体来说,当FullPAD不分发任何特性时,相当于删除了HyperACE。

 在HyperACE模块中自适应超图构建生成的代表性超边的可视化,可以观察HyperACE的聚焦点。

为了验证超边数M对模型性能的影响,论文设置了不同数量的超边,并测试了YOLOv13-S模型的性能。更少的超边导致更少的模型参数和更少的计算工作量,但也会导致性能下降。这是由于场景的相关建模不足。文章将N、S、L和X模型的超边数量分别设置为4、8、8和12,以平衡性能和计算复杂性。

 验证DS系列模块在计算复杂度和参数量的优势。

剩下的就是epochs数和YOLOv13在不同的显卡上的推理速度。

比较好奇的是,在实验这一块,为什么没有对比一下D-FINE呢?

http://www.xdnf.cn/news/14843.html

相关文章:

  • AlpineLinux安装部署MongoDB
  • Flutter 布局之 IntrinsicHeight 组件
  • 浪潮和曙光服务器的ipmi配置教程
  • jenkins集成sonarqube(使用token进行远程调用)
  • 【硬核数学 · LLM篇】3.1 Transformer之心:自注意力机制的线性代数解构《从零构建机器学习、深度学习到LLM的数学认知》
  • Springboot + vue + uni-app小程序web端全套家具商场
  • Junit_注解_枚举
  • 网络安全2023—新安全新发展
  • Java 案例 6 - 数组篇(基础)
  • 【知识图谱构建系列7】:结果评价(1)
  • DBeaver 设置阿里云中央仓库地址的操作步骤
  • 基于hive的电商用户行为数据分析
  • Webpack原理剖析与实现
  • 【嵌入式ARM汇编基础】-ELF文件格式内部结构详解(三)
  • 《AI for Science:深度学习如何重构基础科学的发现范式?》
  • 用户行为序列建模(篇十)-【加州大学圣地亚哥分校】SASRec
  • mybatis-plus从入门到入土(一):快速开始
  • 【学习】《算法图解》第八章学习笔记:平衡树
  • Linux下基于C++11的socket网络编程(基础)个人总结版
  • 智能新纪元:大语言模型如何重塑电商“人货场”经典范式
  • 电子计数跳绳原型
  • X-Search:Spring AI实现的AI智能搜索
  • JS中判断数据类型的方法
  • 左神算法之矩阵旋转90度
  • linux运维学习第10周
  • 设计模式:观察者模式 (Observer) 案例详解
  • 消息队列:Redis Stream到RabbitMQ的转换
  • MongoDB06 - MongoDB 地理空间
  • PyQt5—QPushButton 功能 API 学习笔记
  • Zynq7020 Linux更新启动分区文件导致文件大小为0的处理方式