华为诺亚方舟实验室提出Gold-YOLO,聚集-分发机制打造新SOTA,已在昇思社区开源

本文介绍了一种新的目标检测模型Gold-YOLO,它通过信息聚集-分发机制解决传统YOLO的跨层信息损失问题。在COCO数据集上,Gold-YOLO超越了YOLO系列,展示了在精度和速度方面的SOTA性能。实验涉及不同任务和模型的适应性验证。
摘要由CSDN通过智能技术生成

YOLO系列模型面世至今已有8年,由于其优异的性能,已成为目标检测领域的标杆。在系列模型经过十多个不同版本的改进发展逐渐稳定完善的今天,研究人员更多关注于单个计算模块内结构的精细调整,或是Head部分和训练方法上的改进。但这并不意味着现有模式已是最优解。

当前YOLO系列模型通常采用类FPN方法进行信息融合,而这一结构在融合跨层信息时存在信息损失的问题。针对这一问题,华为诺亚方舟实验室(下文以我们替代)提出了全新的信息聚集-分发(Gather-and-Distribute Mechanism)GD机制,通过在全局视野上对不同层级的特征进行统一的聚集融合并分发注入到不同层级中,构建更加充分高效的信息交互融合机制,并基于GD机制构建了Gold-YOLO。在COCO数据集中,我们的Gold-YOLO超越了现有的YOLO系列,实现了精度-速度曲线上的SOTA。

image.png

精度和速度曲线(TensorRT7)

image.png

精度和速度曲线(TensorRT8)

论文见:

https://arxiv.org/abs/2309.11331MindSpore代码:https://gitee.com/mindspore/models/tree/master/research/cv/Gold_YOLO

传统YOLO的问题

在检测模型中,通常先经过Backbone提取得到一系列不同层级的特征,FPN利用了Backbone的这一特点,构建了相应的融合结构:不同层级的特征包含着不同大小物体的位置信息,虽然这些特征包含的信息不同,但这些特征在相互融合后能够互相弥补彼此缺失的信息,增强每一层级信息的丰富程度,提升网络性能。

原始的FPN结构由于其层层递进的信息融合模式,使得相邻层的信息能够充分融合,但也导致了跨层信息融合存在问题:当跨层的信息进行交互融合时,由于没有直连的交互通路,只能依靠中间层充当“中介”进行融合,导致了一定的信息损失。之前的许多工作中都关注到了这一问题,而解决方案通常是通过添加shortcut增加更多的路径,以增强信息流动。

然而传统的FPN结构即便改进后,由于网络中路径过多,且交互方式不直接,基于FPN思想的信息融合结构仍然存在跨层信息交互困难和信息损失的问题。

Gold-YOLO:全新的信息融合交互机制

image.png

Gold-YOLO架构

因此我们提出了一种全新的信息交互融合机制:信息聚集-分发机制(Gather-and-Distribute Mechanism)。该机制通过在全局上融合不同层次的特征得到全局信息,并将全局信息注入到不同层级的特征中,实现了高效的信息交互和融合。在不显著增加延迟的情况下GD机制显著增强了Neck部分的信息融合能力,提高了模型对不同大小物体的检测能力。

GD机制通过三个模块实现:信息对齐模块(FAM)、信息融合模块(IFM)和信息注入模块(Inject)。

  • 信息对齐模块负责收集并对齐不同层级不同大小的特征

  • 信息融合模块通过使用卷积或Transformer算子对对齐后的特征进行融合,得到全局信息

  • 信息注入模块将全局信息注入到不同层级中

在Gold-YOLO中,针对模型需要检测不同大小的物体的需要,并权衡精度和速度,我们构建了两个GD分支对信息进行融合:低层级信息聚集-分发分支(Low-GD)和高层级信息聚集-分发分支(High-GD),分别基于卷积和Transformer提取和融合特征信息。

此外,为了促进局部信息的流动,我们借鉴现有工作,构建了一个轻量级的邻接层融合模块,该模块在局部尺度上结合了邻近层的特征,进一步提升了模型性能。我们还引入并验证了预训练方法对YOLO模型的有效性,通过在ImageNet 1K上使用MAE方法对主干进行预训练,显著提高了模型的收敛速度和精度。

实验结果

我们在COCO数据集上测试了模型的精度,并使用Tesla T4+TensorRT 7测试了模型的速度,结果显示我们的Gold-YOLO在精度-速度曲线上取得了当前的SOTA结果。

image.png

同时我们针对Gold-YOLO中不同分支和结构对模型精度和速度的影响,进行了相应的消融实验。

image.png

为了验证GD机制在不同模型和任务中的鲁棒性,我们还进行了以下实验。

  • 实例分割任务

将Mask R-CNN中的Neck部分替换为GD,并在COCO instance数据集上进行训练和测试。

image.png

  • 语义分割任务

将PointRend中的Neck部分替换为GD,并在Cityscapes数据集上进行训练和测试。

image.png

不同的目标检测模型

将EfficientDet中的Neck部分替换为GD,并在COCO数据集上进行训练和测试。

image.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值