Gold-YOLO

Gold-YOLO#

标题: Gold-YOLO: Efficient Object Detector via Gather-and-Distribute Mechanism

作者: Chengcheng Wang, Wei He, Ying Nie, Jianyuan Guo, Chuanjian Liu, Kai Han, Yunhe Wang

机构: Huawei Noah’s Ark Lab

摘要: Gold-YOLO是一种新型的目标检测模型,旨在解决现有YOLO系列模型在信息融合方面的不足。通过引入一种先进的Gather-and-Distribute(GD)机制,该模型提升了多尺度特征融合能力,并在延迟和准确性之间实现了理想平衡。此外,论文首次在YOLO系列中实现了MAE风格的预训练,进一步提高了模型的收敛速度和准确性。Gold-YOLO-N在COCO val2017数据集上达到了39.9%的AP,以及在T4 GPU上的1030 FPS,性能超过了类似FPS的先前SOTA模型YOLOv6-3.0-N。

1. 工作内容与动机: 动机:提高目标检测模型的信息融合能力,实现高效率和高精度的平衡。 工作:提出了Gold-YOLO模型,该模型通过GD机制增强了特征融合,并引入了MAE风格的预训练。

2. 解决的问题: Gold-YOLO旨在解决现有YOLO系列模型在特征信息融合和传输过程中存在的信息损失问题。

3. 新问题: 是的,通过GD机制改进特征融合并结合MAE预训练,这是一个新的问题解决方案。

4. 科学假设: 假设通过GD机制可以实现更有效的特征融合,并且MAE风格的预训练可以提升模型性能。

5. 相关研究:

  • 实时目标检测器:YOLO系列模型的发展,如YOLOv1-v8,YOLOX,PPYOLOE等。

  • 基于Transformer的目标检测:如DETR,Deformable DETR,DINO等。

  • 多尺度特征的目标检测:FPN,PANet,BiFPN等。 相关研究员包括YOLO系列的开发者,以及在Transformer和多尺度特征融合方面有贡献的研究者。

6. 解决方案的关键:

  • Gather-and-Distribute(GD)机制:通过卷积和自注意力操作实现全局特征融合。

  • MAE风格的预训练:提高了模型的收敛速度和准确性。

7. 实验设计: 实验在Microsoft COCO数据集上进行,使用COCO AP指标评估模型性能。实验包括不同模型尺寸的Gold-YOLO变体,并与其他YOLO系列模型进行比较。

8. 数据集与代码: 使用的数据集是Microsoft COCO。代码已在GitHub和Gitee上开源。

9. 实验结果: Gold-YOLO在COCO数据集上取得了优异的性能,实验结果支持了提出的科学假设。

10. 论文贡献:

  • 提出了一种新的GD机制,增强了目标检测模型的多尺度特征融合能力。

  • 首次在YOLO系列中引入MAE风格的预训练,提高了模型性能。

  • Gold-YOLO在准确性和效率上都取得了显著提升。

11. 下一步工作:

  • 探索GD机制在其他视觉任务中的应用。

  • 进一步优化模型结构,以适应不同的硬件平台和实际应用需求。

  • 研究如何减少模型的计算复杂度,提高模型的实用性和可部署性。


gold-yolo-fig1

这个图表展示了在Tesla T4 GPU上使用TensorRT 7和TensorRT 8进行测试的多种高效目标检测模型的性能对比。图表中比较了不同模型在COCO数据集上的平均精度(AP)和吞吐量(FPS)。以下是对图表内容的详细分析:

图表内容

(a) TensorRT 7, FP16 Throughput (FPS), BS=32

  • 横轴(X轴):吞吐量(FPS),表示每秒处理的帧数。

  • 纵轴(Y轴):COCO平均精度(AP),表示模型在COCO数据集上的检测精度。

  • 模型:包括YOLOv4、YOLOv4-CSP、YOLOv4x-mish、YOLOv4-P5、YOLOv4-P6、YOLOv4-P7、YOLOv5、YOLOv3等。

(b) TensorRT 8, FP16 Throughput (FPS), BS=32

  • 横轴(X轴):吞吐量(FPS),表示每秒处理的帧数。

  • 纵轴(Y轴):COCO平均精度(AP),表示模型在COCO数据集上的检测精度。

  • 模型:包括YOLOv4、YOLOv4-CSP、YOLOv4x-mish、YOLOv4-P5、YOLOv4-P6、YOLOv4-P7、YOLOv5、YOLOv3等。

性能分析

TensorRT 7 vs TensorRT 8

  • 吞吐量:在TensorRT 8上,所有模型的吞吐量(FPS)普遍高于TensorRT 7,说明TensorRT 8在处理速度上有显著提升。

  • 平均精度(AP):在两种TensorRT版本上,模型的平均精度(AP)基本保持一致,说明TensorRT版本的升级主要提升了处理速度,而对检测精度影响不大。

模型对比

  • YOLOv4-P7:在两种TensorRT版本上,YOLOv4-P7的平均精度(AP)最高,但吞吐量较低,适用于对精度要求高的应用场景。

  • YOLOv4:在两种TensorRT版本上,YOLOv4的平均精度(AP)和吞吐量(FPS)表现均衡,适用于对精度和速度均有要求的应用场景。

  • YOLOv5:在两种TensorRT版本上,YOLOv5的吞吐量(FPS)较高,但平均精度(AP)略低,适用于对速度要求高的应用场景。

  • YOLOv3:在两种TensorRT版本上,YOLOv3的吞吐量(FPS)最高,但平均精度(AP)最低,适用于对速度要求极高但精度要求不高的应用场景。

结论

  • TensorRT 8:显著提升了所有模型的处理速度(FPS),适用于需要高吞吐量的应用场景。

  • 模型选择:根据具体应用场景的需求选择合适的模型:

    • 对精度要求高:选择YOLOv4-P7。

    • 对精度和速度均有要求:选择YOLOv4。

    • 对速度要求高:选择YOLOv5。

    • 对速度要求极高但精度要求不高:选择YOLOv3。

总结 这张图表通过对比不同模型在两种TensorRT版本上的性能,展示了TensorRT 8在处理速度上的显著提升,并提供了不同模型在精度和速度上的权衡,帮助用户根据具体需求选择合适的目标检测模型。


gold-yolo-fig2

这张图展示了Gold-YOLO网络模型的结构。以下是对该模型结构的详细分析:

模型结构分析

Backbone

  • 功能:主干网络(Backbone)负责提取输入图像的基本特征。

  • 输入:原始图像。

  • 输出:多尺度特征图,这些特征图将被传递到后续的网络模块中。

Neck

  • 功能:Neck部分用于进一步处理和融合来自Backbone的特征图,以生成更具判别力的特征。

  • 模块

    • Low-IFM(Low-level Intermediate Feature Map):处理低层特征图。

    • High-IFM(High-level Intermediate Feature Map):处理高层特征图。

    • Low-FAM(Low-level Feature Aggregation Module):聚合低层特征。

    • High-FAM(High-level Feature Aggregation Module):聚合高层特征。

    • Low-GD(Low-level Global Descriptor):生成低层全局描述符。

    • High-GD(High-level Global Descriptor):生成高层全局描述符。

Inject

  • 功能:注入模块(Inject)用于在不同层级的特征图之间进行信息传递和融合。

  • 连接:注入模块将不同层级的特征图(如B2, B3, B4, B5和P3, P4, P5, N3, N4, N5)进行连接和融合,以增强特征表达能力。

Head

  • 功能:Head部分负责最终的目标检测任务,包括边界框回归和类别预测。

  • 输入:来自Neck部分的融合特征图。

  • 输出:检测结果,包括目标的类别和位置。

主要特点

  1. 多尺度特征融合:通过Low-IFM和High-IFM模块处理不同层级的特征图,并通过Low-FAM和High-FAM模块进行特征聚合,增强了多尺度特征的表达能力。

  2. 全局描述符:Low-GD和High-GD模块生成的全局描述符有助于捕捉全局上下文信息,提升检测精度。

  3. 注入模块:Inject模块在不同层级的特征图之间进行信息传递和融合,进一步增强了特征表达能力。

结论

  • Gold-YOLO:通过引入多尺度特征融合、全局描述符和注入模块,Gold-YOLO在特征表达和目标检测性能上有显著提升。

  • 应用场景:适用于需要高精度目标检测的应用场景,如自动驾驶、监控等。

总结 Gold-YOLO网络模型通过多尺度特征融合、全局描述符和注入模块的设计,增强了特征表达能力和目标检测性能,适用于对检测精度要求较高的应用场景。


gold-yolo-fig3

这张图展示了传统Neck结构与改进Neck结构的对比,以及AblationCAM可视化结果。以下是对网络结构和输入输出流程的详细分析:

图表内容

(a) 传统Neck结构

  • 结构:传统Neck结构通过多层特征图的融合来增强特征表达能力。

    • Level-1:第一层特征图。

    • Level-2:第二层特征图。

    • Level-3:第三层特征图。

    • Fuse:融合模块,用于将不同层级的特征图进行融合。

  • 流程

    1. 输入:来自Backbone的多层特征图(Level-1, Level-2, Level-3)。

    2. 融合:通过Fuse模块将不同层级的特征图进行融合。

    3. 输出:融合后的特征图,传递给后续的Head部分进行目标检测。

(b) 传统Neck的AblationCAM可视化

  • 功能:AblationCAM用于可视化模型对输入图像的关注区域。

  • 结果:传统Neck结构的可视化结果显示,模型对输入图像的关注区域较为分散,特征表达能力有限。

(c) 改进Neck的AblationCAM可视化

  • 功能:改进Neck结构通过更有效的特征融合和信息传递,增强了模型的特征表达能力。

  • 结果:改进Neck结构的可视化结果显示,模型对输入图像的关注区域更加集中,特征表达能力显著提升。

输入输出流程

传统Neck结构

  1. 输入:来自Backbone的多层特征图(Level-1, Level-2, Level-3)。

  2. 特征融合:通过Fuse模块将不同层级的特征图进行融合。

  3. 输出:融合后的特征图,传递给后续的Head部分进行目标检测。

改进Neck结构

  1. 输入:来自Backbone的多层特征图。

  2. 特征处理:改进Neck结构通过更复杂的特征处理和融合机制,增强特征表达能力。

  3. 输出:处理后的特征图,传递给后续的Head部分进行目标检测。

主要区别

  • 特征融合:传统Neck结构通过简单的Fuse模块进行特征融合,而改进Neck结构可能引入了更复杂的特征处理和融合机制。

  • 特征表达能力:改进Neck结构在特征表达能力上显著提升,使得模型对输入图像的关注区域更加集中,检测性能更好。

结论

  • 传统Neck结构:通过简单的特征融合机制增强特征表达能力,但在复杂场景下可能表现有限。

  • 改进Neck结构:通过更复杂的特征处理和融合机制,显著提升了特征表达能力和检测性能。

总结 这张图通过对比传统Neck结构和改进Neck结构的AblationCAM可视化结果,展示了改进Neck结构在特征表达能力和检测性能上的显著提升。改进Neck结构通过更复杂的特征处理和融合机制,使得模型对输入图像的关注区域更加集中,适用于对检测精度要求较高的应用场景。


gold-yolo-fig4 这张图展示了Gold-YOLO网络中的低级和高级“Gather-and-Distribute”结构。以下是对网络结构和输入输出流程的详细分析:

图表内容

(a) 低级“Gather-and-Distribute”分支

  • 模块

    • Bilinear:双线性插值模块,用于调整特征图的尺寸。

    • Low-FAM(Low-stage Feature Alignment Module):低级特征对齐模块,用于对齐不同层级的特征图。

    • Low-IFM(Low-stage Information Fusion Module):低级信息融合模块,用于融合低级特征图。

    • Low-GD(Low-stage Gather-and-Distribute):低级收集和分发模块,用于收集和分发低级特征信息。

  • 流程

    1. 输入:来自不同层级的特征图(B2, B3, B4, B5)。

    2. Bilinear:通过双线性插值调整特征图的尺寸。

    3. Low-FAM:对齐不同层级的特征图。

    4. Low-IFM:融合低级特征图。

    5. Low-GD:收集和分发低级特征信息。

    6. 输出:融合后的低级特征图,传递给后续模块。

(b) 高级“Gather-and-Distribute”分支

  • 模块

    • Bilinear:双线性插值模块,用于调整特征图的尺寸。

    • High-FAM(High-stage Feature Alignment Module):高级特征对齐模块,用于对齐不同层级的特征图。

    • High-IFM(High-stage Information Fusion Module):高级信息融合模块,用于融合高级特征图。

    • High-GD(High-stage Gather-and-Distribute):高级收集和分发模块,用于收集和分发高级特征信息。

    • Multi-head Attention:多头注意力机制,用于增强特征表达能力。

    • Feed-forward:前馈网络,用于进一步处理特征图。

  • 流程

    1. 输入:来自不同层级的特征图(N3, N4, N5)。

    2. Bilinear:通过双线性插值调整特征图的尺寸。

    3. High-FAM:对齐不同层级的特征图。

    4. High-IFM:融合高级特征图。

    5. Multi-head Attention:通过多头注意力机制增强特征表达能力。

    6. Feed-forward:通过前馈网络进一步处理特征图。

    7. High-GD:收集和分发高级特征信息。

    8. 输出:融合后的高级特征图,传递给后续模块。

输入输出流程

低级“Gather-and-Distribute”分支

  1. 输入:来自不同层级的特征图(B2, B3, B4, B5)。

  2. 特征对齐:通过Bilinear和Low-FAM模块对齐特征图。

  3. 特征融合:通过Low-IFM模块融合特征图。

  4. 特征收集和分发:通过Low-GD模块收集和分发特征信息。

  5. 输出:融合后的低级特征图,传递给后续模块。

高级“Gather-and-Distribute”分支

  1. 输入:来自不同层级的特征图(N3, N4, N5)。

  2. 特征对齐:通过Bilinear和High-FAM模块对齐特征图。

  3. 特征融合:通过High-IFM模块融合特征图。

  4. 特征增强:通过Multi-head Attention和Feed-forward模块增强特征表达能力。

  5. 特征收集和分发:通过High-GD模块收集和分发特征信息。

  6. 输出:融合后的高级特征图,传递给后续模块。

主要特点

  • 多层次特征对齐和融合:通过Low-FAM和High-FAM模块对齐不同层级的特征图,通过Low-IFM和High-IFM模块融合特征图。

  • 多头注意力机制:在高级分支中引入多头注意力机制,增强特征表达能力。

  • 特征收集和分发:通过Low-GD和High-GD模块收集和分发特征信息,确保特征信息的有效传递。

结论

  • 低级分支:主要处理低级特征图,通过特征对齐和融合增强特征表达能力。

  • 高级分支:主要处理高级特征图,通过多头注意力机制和前馈网络进一步增强特征表达能力。

总结 这张图展示了Gold-YOLO网络中的低级和高级“Gather-and-Distribute”结构,通过多层次特征对齐和融合、多头注意力机制和特征收集与分发模块,显著增强了特征表达能力和目标检测性能。低级分支和高级分支分别处理不同层级的特征图,确保特征信息的有效传递和融合。


gold-yolo-fig5

这张图展示了Gold-YOLO网络中的信息注入模块(Information Injection Module)和轻量级相邻层融合模块(Lightweight Adjacent Layer Fusion Module, LAF)。以下是对网络结构和输入输出流程的详细分析:

图表内容

(a) 信息注入模块(Information Injection Module)

  • 模块

    • Inject:注入模块,用于将外部信息注入到特征图中。

    • RepConv-blocks:重复卷积块,用于特征提取和增强。

    • avgpool/bilinear:平均池化或双线性插值,用于调整特征图的尺寸。

    • Sigmoid:Sigmoid激活函数,用于归一化特征图。

    • Conv 1x1:1x1卷积,用于特征压缩和通道数调整。

    • x_local:局部特征图。

    • x_global:全局特征图。

  • 流程

    1. 输入:局部特征图(x_local)和全局特征图(x_global)。

    2. 注入:通过Inject模块将外部信息注入到特征图中。

    3. 特征提取:通过RepConv-blocks进行特征提取和增强。

    4. 特征调整:通过avgpool或bilinear调整特征图的尺寸。

    5. 激活:通过Sigmoid激活函数归一化特征图。

    6. 特征压缩:通过1x1卷积进行特征压缩和通道数调整。

    7. 输出:处理后的特征图,传递给后续模块。

(b) 轻量级相邻层融合模块(Lightweight Adjacent Layer Fusion Module, LAF)

  • 模块

    • LAF Low-stage:低级相邻层融合模块。

      • avgpool:平均池化,用于特征图尺寸调整。

      • Conv 1x1:1x1卷积,用于特征压缩和通道数调整。

      • bilinear:双线性插值,用于特征图尺寸调整。

    • LAF High-stage:高级相邻层融合模块。

      • avgpool:平均池化,用于特征图尺寸调整。

      • Conv 1x1:1x1卷积,用于特征压缩和通道数调整。

      • bilinear:双线性插值,用于特征图尺寸调整。

  • 流程

    1. 输入:来自不同层级的特征图(B_{n-1}, B_n, P_{n-1}, P_n)。

    2. 特征调整:通过avgpool和bilinear调整特征图的尺寸。

    3. 特征压缩:通过1x1卷积进行特征压缩和通道数调整。

    4. 输出:融合后的特征图,传递给后续模块。

输入输出流程

信息注入模块

  1. 输入:局部特征图(x_local)和全局特征图(x_global)。

  2. 信息注入:通过Inject模块将外部信息注入到特征图中。

  3. 特征提取和增强:通过RepConv-blocks进行特征提取和增强。

  4. 特征调整:通过avgpool或bilinear调整特征图的尺寸。

  5. 激活和压缩:通过Sigmoid激活函数归一化特征图,并通过1x1卷积进行特征压缩和通道数调整。

  6. 输出:处理后的特征图,传递给后续模块。

轻量级相邻层融合模块

  1. 输入:来自不同层级的特征图(B_{n-1}, B_n, P_{n-1}, P_n)。

  2. 特征调整:通过avgpool和bilinear调整特征图的尺寸。

  3. 特征压缩:通过1x1卷积进行特征压缩和通道数调整。

  4. 输出:融合后的特征图,传递给后续模块。

主要特点

  • 信息注入:通过Inject模块将外部信息注入到特征图中,增强特征表达能力。

  • 特征提取和增强:通过RepConv-blocks进行特征提取和增强。

  • 轻量级融合:通过LAF模块进行低级和高级特征图的轻量级融合,确保特征信息的有效传递和融合。

结论

  • 信息注入模块:通过信息注入、特征提取和增强、特征调整和压缩,增强了特征表达能力。

  • 轻量级相邻层融合模块:通过轻量级的特征调整和压缩,实现了低级和高级特征图的有效融合。

总结 这张图展示了Gold-YOLO网络中的信息注入模块和轻量级相邻层融合模块,通过信息注入、特征提取和增强、特征调整和压缩,显著增强了特征表达能力和目标检测性能。信息注入模块和轻量级相邻层融合模块分别处理不同层级的特征图,确保特征信息的有效传递和融合。


gold-yolo-fig6

这张图展示了不同YOLO版本(YOLOv5, YOLOv6, YOLOv7, YOLOv8)和Gold-YOLO在目标检测任务中的类激活图(Class Activation Map, CAM)可视化结果。以下是对图表的详细分析:

主要特点

  • 类激活图(CAM):CAM可视化结果展示了网络在图像中关注的区域。红色区域表示网络高度关注的区域,蓝色区域表示网络较少关注的区域。

  • 不同网络的比较:通过比较不同YOLO版本和Gold-YOLO的CAM可视化结果,可以观察到各个网络在目标检测任务中的表现差异。

输入输出流程

  1. 输入:原始图像(来自COCO数据集)。

  2. 处理:通过不同版本的YOLO网络(YOLOv5, YOLOv6, YOLOv7, YOLOv8)和Gold-YOLO网络进行处理,生成类激活图(CAM)。

  3. 输出:每个网络的CAM可视化结果,展示网络在图像中关注的区域。

观察与分析

  • YOLOv5-N:在大多数图像中,YOLOv5-N能够较好地关注到目标区域,但在某些复杂场景中可能存在误检或漏检。

  • YOLOv6-N:YOLOv6-N在目标区域的关注度较高,但在某些图像中可能存在较多的背景干扰。

  • YOLOv7-T:YOLOv7-T在目标区域的关注度较为集中,但在某些图像中可能存在较大的误差。

  • YOLOv8-N:YOLOv8-N在目标区域的关注度较高,且在复杂场景中的表现较为稳定。

  • Gold-YOLO-N:Gold-YOLO-N在所有图像中均表现出较高的目标区域关注度,且在复杂场景中的表现优于其他YOLO版本。

结论

  • Gold-YOLO-N:在所有测试图像中,Gold-YOLO-N的CAM可视化结果显示其在目标检测任务中具有更高的准确性和鲁棒性。它能够更好地关注到目标区域,并在复杂场景中表现出色。

  • 其他YOLO版本:虽然各个YOLO版本在目标检测任务中均表现出一定的能力,但在某些复杂场景中可能存在误检或漏检的情况。

总结 这张图通过类激活图(CAM)可视化结果展示了不同YOLO版本和Gold-YOLO在目标检测任务中的表现。Gold-YOLO-N在所有测试图像中均表现出较高的目标区域关注度和鲁棒性,优于其他YOLO版本。通过这种可视化方法,可以直观地观察到各个网络在图像中关注的区域,从而评估其在目标检测任务中的表现。


gold-yolo-fig7

这张图展示了不同YOLO版本(YOLOv5, YOLOv6, YOLOv7, YOLOv8)和Gold-YOLO在目标检测任务中的类激活图(Class Activation Map, CAM)可视化结果。以下是对图表的详细分析:

图表内容

主要特点

  • 类激活图(CAM):CAM可视化结果展示了网络在图像中关注的区域。红色区域表示网络高度关注的区域,蓝色区域表示网络较少关注的区域。

  • 不同网络的比较:通过比较不同YOLO版本和Gold-YOLO的CAM可视化结果,可以观察到各个网络在目标检测任务中的表现差异。

输入输出流程

  1. 输入:原始图像(来自COCO数据集)。

  2. 处理:通过不同版本的YOLO网络(YOLOv5, YOLOv6, YOLOv7, YOLOv8)和Gold-YOLO网络进行处理,生成类激活图(CAM)。

  3. 输出:每个网络的CAM可视化结果,展示网络在图像中关注的区域。

观察与分析

  • YOLOv5-N:在大多数图像中,YOLOv5-N能够较好地关注到目标区域,但在某些复杂场景中可能存在误检或漏检。

  • YOLOv6-N:YOLOv6-N在目标区域的关注度较高,但在某些图像中可能存在较多的背景干扰。

  • YOLOv7-T:YOLOv7-T在目标区域的关注度较为集中,但在某些图像中可能存在较大的误差。

  • YOLOv8-N:YOLOv8-N在目标区域的关注度较高,且在复杂场景中的表现较为稳定。

  • Gold-YOLO-N:Gold-YOLO-N在所有图像中均表现出较高的目标区域关注度,且在复杂场景中的表现优于其他YOLO版本。

结论

  • Gold-YOLO-N:在所有测试图像中,Gold-YOLO-N的CAM可视化结果显示其在目标检测任务中具有更高的准确性和鲁棒性。它能够更好地关注到目标区域,并在复杂场景中表现出色。

  • 其他YOLO版本:虽然各个YOLO版本在目标检测任务中均表现出一定的能力,但在某些复杂场景中可能存在误检或漏检的情况。

总结 这张图通过类激活图(CAM)可视化结果展示了不同YOLO版本和Gold-YOLO在目标检测任务中的表现。Gold-YOLO-N在所有测试图像中均表现出较高的目标区域关注度和鲁棒性,优于其他YOLO版本。通过这种可视化方法,可以直观地观察到各个网络在图像中关注的区域,从而评估其在目标检测任务中的表现。