爱笑的小姐姐 · 2023年09月22日

终于等到华为对YOLO出手,提出Gold-YOLO | 超越YOLOv8/YOLOv6/YOLOv7

image.png

在过去的几年中,YOLO系列模型已经成为实时目标检测领域的领先方法。许多研究通过修改架构、增强数据和设计新的损失将基线提高到了一个更高的水平。然而,作者发现以前的模型仍然存在信息融合问题,尽管Feature Pyramid Network(FPN)和Path Aggregation Network(PANet)已经缓解了这个问题。

因此,本研究提供了一种先进的Gather-and-Distribute(GD)机制,通过卷积和自注意力操作实现,这个新设计的模型被命名为Gold-YOLO,它增强了多尺度特征融合能力,并在所有模型尺度上实现了延迟和准确性的理想平衡。

image.png

此外,作者首次在YOLO系列中实施了MAE风格的预训练,使YOLO系列模型能够从无监督预训练中受益。Gold-YOLO-N在COCO val2017数据集上获得了出色的39.9%的AP,并在T4 GPU上达到了每秒1030帧的速度,超过了之前的SOTA模型YOLOv6-3.0-N,其FPS相似,但性能提高了+2.4%。

PyTorch:https://github.com/huaweinoah/Efficient-Computing/Detection/Gold-YOLO

MindSpore:https://gitee.com/mindspore/models/tree/master/research/cv/Gold_YOLO

1 引言

目标检测是一项基本的视觉任务,旨在识别物体的类别并定位其位置。它可以广泛应用于各种应用领域,如智能安全、自动驾驶、机器人导航和医学诊断。在边缘设备上部署高性能和低延迟的目标检测器越来越受到关注。

在过去的几年里,研究人员对基于CNN的检测网络进行了广泛研究,逐渐将目标检测框架从两阶段(例如Faster RCNN和Mask RCNN)发展为一阶段(例如YOLO),并从基于Anchor的方法(例如YOLOv3和YOLOv4)发展为无Anchor的方法(例如CenterNet、FCOS和YOLOX)。单阶段检测模型,特别是YOLO系列模型,因其简单的结构和速度与准确性之间的平衡而受到了广泛欢迎。最近,基于Transformer的模型,如ViT和Swin Transformer,在各种视觉任务领域表现出显著优势,从 High-Level 别目标检测到像图像恢复这样的 Low-Level 别任务都有所涉及。

在目标检测领域,研究人员通过使用具有Transformer的编码器-解码器结构构建了一系列类似DETR的目标检测模型,例如DETR和DINO。这些模型可以捕捉物体之间的长距离依赖关系,使基于Transformer的检测器能够在性能上达到与大多数经典检测器相媲美或更优越的水平。尽管基于Transformer的检测器表现出显著的性能,但与CNN模型的速度相比仍然不足。基于CNN的小规模目标检测模型仍然主导着速度和准确性之间的权衡,例如YOLOX和YOLOv6-v8。

作者专注于实时目标检测模型,特别是用于移动部署的YOLO系列。主流的实时目标检测器由3个部分组成:Backbone网络、中间层和Head。Backbone架构已经得到了广泛的研究,而Head架构通常很直接,由几个卷积或全连接层组成。YOLO系列中的中间层通常使用特征金字塔网络(FPN)及其变种来融合多级特征。这些中间层模块基本上遵循图3所示的架构。

然而,当前的信息融合方法存在一个显著的缺陷:当需要在不同层之间集成信息时(例如,Level-1和Level-3被融合),传统的FPN-like结构无法在不损失信息的情况下传递信息,这阻碍了YOLO在信息融合方面的进一步提升。

image.png

在全局信息融合的概念基础上,TopFormer在语义分割任务中取得了显著的成果。在本文中,作者在TopFormer理论的基础上,提出了一种新颖的“聚集和分发”机制(GD),通过全局融合多级特征并将全局信息注入更 High-Level 别,从而实现了在不显著增加延迟的情况下显著增强中间层的信息融合能力,提高了模型在不同物体尺寸上的性能。

具体而言,GD机制包括两个分支:一个浅层“聚集和分发”分支和一个深层“聚集和分发”分支,它们通过基于卷积的块和基于注意力的块提取和融合特征信息。

为了进一步促进信息流动,作者引入了一个轻量级的相邻层融合模块,它在局部尺度上结合了相邻级别的特征。作者的Gold-YOLO架构超越了现有的YOLO系列,有效展示了作者提出的方法的有效性。

为了提高模型的准确性,作者还引入了一种预训练方法,其中作者使用MAE方法在ImageNet 1K上对Backbone进行预训练,这显著提高了模型的收敛速度和准确性。例如,作者的Gold-YOLO-S在进行预训练后实现了46.4%的AP,超过了之前的SOTA YOLOv6-3.0-S,后者的AP为45.0%,速度相似。

2 方法

2.1 初步

image.png

如图3所示,YOLO系列的中间层结构采用了传统的FPN结构,其中包含多个分支用于多尺度特征融合。然而,它只充分融合来自相邻级别的特征,对于其他层次的信息只能间接地进行“递归”获取。在图3中,显示了传统FPN的信息融合结构:已存在的Level-1、2和3从上到下排列。FPN用于不同级别之间的融合。当Level-1需要从其他两个级别获取信息时,存在两种不同的情况:

  1. 如果Level-1希望利用Level-2的信息,它可以直接访问并融合这些信息。
  2. 如果Level-1希望使用Level-3的信息,则Level-1应该递归调用相邻层的信息融合模块。具体而言,必须首先融合Level-2和Level-3的信息,然后Level-1才能通过组合Level-2的信息间接获取Level-3的信息。

这种传输模式可能会导致在传统FPN结构的传输过程中丢失大量信息。层之间的信息交互只能交换中间层选择的信息,未选择的信息在传输过程中被丢弃。这导致了在某个Level的信息只能充分辅助相邻层,削弱了对其他全局层提供的帮助。因此,信息融合的整体有效性可能会受到限制。

为了避免在传统FPN结构的传输过程中丢失信息,作者放弃了原始的递归方法,构建了一种新颖的“聚集和分发”机制(GD)。通过使用一个统一的模块来收集和融合所有Level的信息,然后将其分发到不同的Level,作者不仅避免了传统FPN结构固有的信息丢失,而且增强了中间层的部分信息融合能力,而不会显著增加延迟。

因此,作者的方法允许更有效地利用Backbone提取的特征,并可以轻松集成到任何现有的Backbone-中间层-Head结构中。

在作者的实现中,收集和分发的过程对应于3个模块:特征对齐模块(FAM),信息融合模块(IFM)和信息注入模块(Inject)。

  • 收集过程包括两个步骤。首先,FAM收集并对齐来自不同Level的特征。然后,IFM融合对齐后的特征以生成全局信息。
  • 在从收集过程中获得融合的全局信息后,注入模块使用简单的注意力操作将这些信息分布到每个Level,并注入它,从而增强分支的检测能力。

为了增强模型对不同尺寸物体的检测能力,作者开发了两个分支:低阶收集和分发分支(Low-GD)和高阶收集和分发分支(High-GD)。这些分支分别提取和融合大尺寸和小尺寸特征图。

image.png

2.2 低阶收集和分发分支

在这个分支中,从Backbone网络获取的输出B2、B3、B4、B5特征被选择用于融合,以获取保留小目标信息的高分辨率特征。结构如图4(a)所示。

image.png

低阶特征对齐模块

在低阶特征对齐模块(Low-FAM)中,作者使用平均池化(AvgPool)操作来下采样输入特征并实现统一大小。通过将特征大小调整为该组最小特征大小(),作者获得Falign。Low-FAM技术确保了信息的高效聚合,同时通过Transformer模块进行后续处理,最小化了计算复杂性。

目标对齐大小的选择基于两种相互冲突的考虑:

  1. 为了保留更多的 Low-Level 信息,更大的特征尺寸更可取;
  2. 随着特征尺寸的增加,后续块的计算延迟也会增加。为了控制中间层的延迟,有必要保持较小的特征尺寸。

因此,作者选择了作为特征对齐的目标尺寸,以在速度和准确性之间取得平衡。

低阶信息融合模块

image.png

信息注入模块

为了更有效地将全局信息注入到不同级别,作者受到分割经验的启发,并采用注意力操作来融合信息,如图5所示。

image.png

3.3 高阶收集和分发分支

High-GD融合了由Low-GD生成的特征{P3, P4, P5},如图4(b)所示。

高阶特征对齐模块

高阶特征对齐模块(High-FAM)包括avgpool,用于将输入特征的维度降低到统一的大小。

image.png

高阶信息融合模块

image.png

等式8中的Transformer融合模块包括多个堆叠的Transformer块,Transformer块的数量用L表示。每个Transformer块包括多头注意力块、前馈网络(FFN)和残差连接。

为了配置多头注意力块,作者采用与LeViT相同的设置,将Key K和Query Q的Head维度分配给D(例如,16)通道,而V = 2D(例如,32)通道。

为了加速推理,作者将速度不友好的操作符“层规范化”替换为每个卷积的批处理规范化,并将所有GELU激活替换为ReLU。这样可以最小化Transformer模块对模型速度的影响。

为了建立作者的前馈网络,作者构建FFN块的方法。为了增强Transformer块的局部连接,作者在两个1x1卷积层之间引入了一个深度卷积层。作者还将FFN的扩展因子设置为2,以在速度和计算成本之间取得平衡。

信息注入模块

image.png

2.4 增强的跨层信息流

作者仅使用全局信息融合结构已经实现了比现有方法更好的性能。为了进一步提高性能,作者受到了YOLOv6中PAFPN模块的启发,引入了一个Inject-LAF模块。该模块是注入模块的增强版本,并包括一个轻量级相邻层融合(LAF)模块,该模块添加到注入模块的输入位置。

为了在速度和精度之间取得平衡,作者设计了两个LAF模型:LAF Low-Level 模型和LAF High-Level 模型,分别用于 Low-Level 注入(合并相邻两层的特征)和 High-Level 注入(合并相邻一层的特征)。它们的结构如图5 (b)所示。

image.png

为了确保来自不同Level的特征图与目标大小对齐,作者的实现中的两个LAF模型仅使用3个运算符:双线性插值以上采样太小的特征,平均池化以下采样太大的特征,以及1x1卷积以调整与目标通道不同的特征。

作者的模型中将LAF模块与信息注入模块相结合,有效地在精度和速度之间取得了平衡。通过使用简化的操作,作者能够增加不同Level之间的信息流路径数量,从而提高性能,而不会显著增加延迟。

2.5 Mask图像建模预训练

最近的方法,如BEiT、MAE和SimMIM,已经证明了Mask图像建模(MIM)在视觉任务中的有效性。然而,这些方法并不是专门为卷积网络(convnets)设计的。SparK和ConvNeXt-V2是在探索Mask图像建模对卷积网络(convnets)潜力的先驱。

在这项研究中,作者采用了MIM预训练,遵循SparK的方法,成功地解决了将MAE式预训练成功扩展到卷积网络(convnets)的两个关键障碍。这些挑战包括卷积操作无法处理不规则和随机Mask的输入图像,以及BERT预训练的单一尺度性质与卷积网络的分层结构之间的不一致性。

为了解决第一个问题,未遮挡的像素被视为3D点云的稀疏体素,并使用稀疏卷积进行编码。对于后一个问题,开发了一个分层解码器,用于从多尺度编码特征重建图像。该框架采用UNet风格的架构来解码多尺度的稀疏特征图,其中所有空间位置都填充有嵌入的Mask。作者对多个Gold-YOLO模型的主干进行ImageNet 1K的预训练,结果显示出显著的改进。

3、实验

3.1、SOTA对比

image.png

作者的重点主要是在部署后评估作者的模型的速度性能。具体来说,作者测量吞吐量(批大小为1或32的每秒帧数)和GPU延迟,而不是FLOPs或参数数量。为了将作者的Gold-YOLO与YOLO系列中的其他最先进的检测器进行比较,例如YOLOv5、YOLOX、PPYOLOE、YOLOv7、YOLOv8和YOLOv6-3.0,作者在相同的Tesla T4 GPU上使用TensorRT对所有官方模型进行了FP16精度的速度性能测试。

Gold-YOLO-N取得了显著的进步,与YOLOv8-N、YOLOv6-3.0-N和YOLOv7-Tiny(输入尺寸=416)相比,分别提高了2.6%/2.4%/6.6%,同时在吞吐量和延迟方面提供了可比较或更高的性能。与YOLOX-S和PPYOLOE-S相比,Gold-YOLO-S在批大小为32时以50/27 FPS的更快速度取得了5.9%/3.1%的AP显著提高。

Gold-YOLO-M在保持可比速度的情况下,比YOLOv6-3.0-M、YOLOX-M和PPYOLOE-M分别提高了1.1%、4.2%和2.1%的AP。

此外,与YOLOv5-M和YOLOv8-M相比,它分别提高了5.7%和0.9%的AP,同时实现了更高的速度。Gold-YOLO-M在与YOLOv7的比较中取得了显著的进步,批大小为32时的提高了98FPS,同时保持了相同的AP。Gold-YOLO-L也在与YOLOv8-L和YOLOv6-3.0-L的比较中取得了更高的准确性,分别具有0.4%和0.5%的显著准确性优势,同时在批大小为32时保持了类似的FPS。

3.2、消融实验

1、GD结构的消融研究

为了验证作者对FPN的分析的有效性,评估所提出的gather-and-distribute机制的功效,作者独立地检查了GD中的每个模块,重点关注了T4 GPU上的AP、参数数量和延迟。Low-GD主要针对小和中目标,而High-GD主要检测大型目标,LAF模块加强了这两个分支。实验结果如表2所示。

image.png

2、LAF的消融研究

在这项消融研究中,作者进行了实验,比较了LAF框架内不同模块设计的影响,并评估了不同模型尺寸对准确性的影响。作者的研究结果为支持现有LAF结构确实是最佳的主张提供了证据。模型1和模型2之间的区别在于LAF是否使用add或concat,模型3在模型2的基础上增加了模型尺寸。模型4基于模型3,但舍弃了LAF。实验结果如表3所示。

image.png

3、对其他模型和任务的消融研究

GD机制是一个通用的概念,可以应用于YOLO之外的其他模型。作者已将GD机制扩展到其他模型,并取得了显著的改进。在实例分割任务中,作者替换了Mask R-CNN中的不同neck,并在COCO实例数据集上进行了训练/测试。结果如表4所示。

image.png

在语义分割任务中,作者替换了PointRend中的不同neck,并在Cityscapes数据集上进行了训练/测试。结果如表5所示。

image.png

在目标检测任务中,作者替换了高效集的不同颈部,并对COCO数据集进行训练/测试。结果如表6所示。

image.png

4、参考

[1]. Gold-YOLO: Efficient Object Detector via Gather-and-Distribute Mechanism.

作者:AI视界引擎
文章来源:AI视界引擎

推荐阅读

更多嵌入式AI干货请关注嵌入式AI专栏。欢迎添加极术小姐姐微信(id:aijishu20)加入技术交流群,请备注研究方向。
推荐阅读
关注数
18838
内容数
1371
嵌入式端AI,包括AI算法在推理框架Tengine,MNN,NCNN,PaddlePaddle及相关芯片上的实现。欢迎加入微信交流群,微信号:aijishu20(备注:嵌入式)
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息