RTMDet

RTMDet#

标题: RTMDet: An Empirical Study of Designing Real-Time Object Detectors

作者: Chengqi Lyu, Wenwei Zhang, Haian Huang, Yue Zhou, Yudong Wang, Yanyi Liu, Shilong Zhang, Kai Chen

摘要: 本文旨在设计一个高效的实时目标检测器,超越YOLO系列,并易于扩展到多种目标识别任务,如实例分割和旋转目标检测。通过探索具有大核深度卷积的基本构建块来构建具有兼容容量的模型架构。此外,通过在动态标签分配中引入软标签来提高准确性。结合更好的训练技术,所提出的RTMDet在NVIDIA 3090 GPU上达到300+ FPS的COCO AP 52.8%,超越了当前主流的工业检测器。

1. 工作内容与动机:

  • 提出了RTMDet,一种新的实时目标检测器,旨在提高目标检测的效率和准确性,并扩展到其他目标识别任务。

  • 动机是为了在实时应用中实现更优的目标检测性能,并提供一个可扩展的框架。

2. 试图解决的问题:

  • 如何设计一个既高效又准确的实时目标检测器,并使其能够扩展到其他目标识别任务。

3. 是否是新问题:

  • 不是新问题,但本文提供了新的解决方案和实证研究。

4. 科学假设:

  • 通过使用大核深度卷积和软标签动态标签分配,可以提高目标检测器的性能。

5. 相关研究:

  • 相关工作包括YOLO系列、PP-YOLOE、YOLOX等。

  • 主要归类为实时目标检测器、实例分割和旋转目标检测。

  • 领域内值得关注的研究员包括YOLO系列的开发者和本文的作者。

6. 解决方案的关键:

  • 使用大核深度卷积来增强模型的全局上下文捕获能力。

  • 通过软标签和动态标签分配来提高匹配成本的区分度。

  • 引入了一种新的训练策略,包括缓存的Mosaic和MixUp数据增强,以及两阶段训练策略。

7. 实验设计:

  • 在COCO数据集上进行目标检测和实例分割的实验。

  • 在DOTA数据集上进行旋转目标检测的实验。

  • 设计了多种模型尺寸(tiny/small/medium/large/extra-large)以适应不同的应用场景。

8. 数据集与代码开源:

  • 使用了COCO和DOTA数据集进行评估。

  • 代码已在GitHub上开源。

9. 实验结果与假设支持:

  • 实验结果表明,RTMDet在目标检测、实例分割和旋转目标检测任务上都取得了优异的性能,支持了提出的科学假设。

10. 论文贡献:

  • 提出了RTMDet,一个高效的实时目标检测器,它在多个基准测试中取得了优异的性能。

  • 展示了RTMDet在不同任务上的可扩展性,并提供了不同尺寸的模型以适应不同的应用场景。

11. 下一步工作:

  • 进一步探索更深层次的网络结构和更有效的训练策略。

  • 在更广泛的数据集和应用场景中验证RTMDet的性能。

  • 研究如何将RTMDet部署到不同的硬件平台上,以实现实时性。

回答问题

  1. 这篇论文做了什么工作,它的动机是什么?

    • 论文提出了RTMDet,一个高效的实时目标检测器,旨在超越YOLO系列,并能够扩展到其他目标识别任务。动机是为了实现更优的检测性能和提供可扩展的框架。

  2. 这篇论文试图解决什么问题?

    • 论文试图解决实时目标检测中的效率和准确性问题,并扩展到实例分割和旋转目标检测任务。

  3. 这是否是一个新的问题?

    • 不是新问题,但提供了新的解决方案。

  4. 这篇文章要验证一个什么科学假设?

    • 验证通过使用大核深度卷积和软标签动态标签分配可以提高目标检测器的性能。

  5. 有哪些相关研究?如何归类?谁是这一课题在领域内值得关注的研究员?

    • 相关研究包括YOLO系列、PP-YOLOE、YOLOX等,归类为实时目标检测器、实例分割和旋转目标检测。领域内值得关注的研究员包括YOLO系列的开发者和本文的作者。

  6. 论文中提到的解决方案之关键是什么?

    • 解决方案的关键是大核深度卷积和软标签动态标签分配。

  7. 论文中的实验是如何设计的?

    • 实验在COCO和DOTA数据集上进行,设计了多种模型尺寸,并在目标检测、实例分割和旋转目标检测任务上进行评估。

  8. 用于定量评估的数据集上什么?代码有没有开源?

    • 使用了COCO和DOTA数据集进行评估,代码已在GitHub上开源。

  9. 论文中的实验及结果有没有很好地支持需要验证的科学假设?

    • 是的,实验结果支持了提出的科学假设,证明了RTMDet在多个任务上的有效性。

  10. 这篇论文到底有什么贡献?

    • 提出了RTMDet,一个高效的实时目标检测器,并在多个任务上取得了优异的性能。

  11. 下一步呢?有什么工作可以继续深入?

    • 下一步可以探索更深层次的网络结构和更有效的训练策略,以及在更广泛的数据集和应用场景中验证RTMDet的性能。还可以研究如何将RTMDet部署到不同的硬件平台上。


rtmdet-fig1

这张图展示了RTMDet与其他先进的实时目标检测器和实例分割方法在参数量(Params)和准确率(AP)方面的比较。图表分为两部分:(a) 比较RTMDet与其他实时目标检测器,(b) 比较RTMDet-Ins与其他一阶段实例分割方法。以下是对图表的详细分析:

主要观察 (a) RTMDet与其他实时目标检测器的比较

  • RTMDet(红色):在所有参数量范围内,RTMDet的平均精度(AP)均高于其他方法,表现最佳。

  • YOLOv5(蓝色):在参数量较低时(<50M),表现较好,但随着参数量增加,AP增长趋于平缓。

  • YOLOv6(绿色):在参数量较低时(<50M),表现较好,但在高参数量时(>50M),AP增长不明显。

  • YOLOv7(黄色):在参数量较低时(<50M),表现较差,但在高参数量时(>50M),AP增长较快。

  • YOLOX(灰色):在所有参数量范围内,表现均不如RTMDet。

(b) RTMDet-Ins与其他一阶段实例分割方法的比较

  • RTMDet-Ins(红色):在所有参数量范围内,RTMDet-Ins的平均精度(AP)均高于其他方法,表现最佳。

  • YOLOv5-seg(蓝色):在参数量较低时(<50M),表现较好,但随着参数量增加,AP增长趋于平缓。

  • SparseInst(绿色):在参数量较低时(<50M),表现较好,但在高参数量时(>50M),AP增长不明显。

  • SOLOv2(黄色):在参数量较低时(<50M),表现较差,但在高参数量时(>50M),AP增长较快。

结论

  • RTMDet和RTMDet-Ins:在所有参数量范围内,RTMDet和RTMDet-Ins的平均精度(AP)均高于其他方法,表现最佳。

  • YOLO系列:YOLOv5、YOLOv6、YOLOv7和YOLOX在不同参数量范围内表现各异,但总体上不如RTMDet。

  • 实例分割方法:YOLOv5-seg、SparseInst和SOLOv2在不同参数量范围内表现各异,但总体上不如RTMDet-Ins。

总结

这张图展示了RTMDet和RTMDet-Ins在参数量和平均精度(AP)方面的优越性。无论是在实时目标检测还是实例分割任务中,RTMDet和RTMDet-Ins均表现出色,优于其他先进的方法。RTMDet和RTMDet-Ins在所有参数量范围内均能保持较高的平均精度,显示了其在高效性和准确性方面的优势。


rtmdet-fig2

这张图展示了一个目标检测和实例分割模型的宏观架构,包括主干网络(Backbone)、特征金字塔网络(PAFPN)和检测头(Heads)。以下是对图表的详细分析:

  1. Backbone(主干网络)

  • 输入(Input):输入图像。

  • C3、C4、C5:从主干网络中提取的多层特征图。

  • CSP-blocks:使用CSP-blocks(Cross Stage Partial Network)构建主干网络,采用大核深度卷积层。

  1. PAFPN(特征金字塔网络)

  • 特征融合

    • Resize:调整特征图的尺寸。

    • Concat:特征图的拼接操作。

    • PAFPN:特征金字塔网络,融合来自不同层的特征图(C3、C4、C5)。

  • 功能:将从主干网络提取的多层特征图进行融合,生成更具代表性的特征图。

  1. Heads(检测头)

  • 分类(cls):用于分类任务的检测头。

  • 回归(reg):用于边界框回归任务的检测头,支持水平和旋转的边界框检测。

  • 实例分割(instance segmentation)

    • kernels:动态卷积核,用于实例分割任务。

    • mask feats:掩码特征,用于实例分割任务。

  • 功能:检测头用于预测分类和回归结果,以及生成实例分割所需的动态卷积核和掩码特征。

主要观察

  1. 主干网络(Backbone)

    • 使用CSP-blocks构建,能够提取多层次的特征图(C3、C4、C5),这些特征图包含了不同尺度的信息。

  2. 特征金字塔网络(PAFPN)

    • 通过调整尺寸(Resize)和拼接(Concat)操作,将来自不同层的特征图进行融合,生成更具代表性的特征图。

    • PAFPN的设计使得模型能够更好地捕捉多尺度信息,提高检测和分割的精度。

  3. 检测头(Heads)

    • 分类头(cls)和回归头(reg)共享卷积权重,并使用分离的批归一化(BN)层,分别用于分类和边界框回归任务。

    • 实例分割头(instance segmentation)通过生成动态卷积核(kernels)和掩码特征(mask feats),实现实例分割任务。

结论

  • 多层特征提取:主干网络通过CSP-blocks提取多层次的特征图,能够捕捉不同尺度的信息。

  • 特征融合:PAFPN通过调整尺寸和拼接操作,将多层特征图进行融合,生成更具代表性的特征图,提高了模型的检测和分割能力。

  • 多任务处理:检测头设计用于同时处理分类、边界框回归和实例分割任务,具有较高的灵活性和扩展性。

总结

这张图展示了一个目标检测和实例分割模型的宏观架构,包括主干网络(Backbone)、特征金字塔网络(PAFPN)和检测头(Heads)。主干网络通过CSP-blocks提取多层次的特征图,PAFPN通过调整尺寸和拼接操作将多层特征图进行融合,检测头用于同时处理分类、边界框回归和实例分割任务。通过这种设计,模型能够更好地捕捉多尺度信息,提高检测和分割的精度,具有较高的灵活性和扩展性。


rtmdet-fig3

这张图展示了四种不同的基本构建模块,分别用于不同的神经网络架构。以下是对图表中每个模块的详细分析:

图表内容

(a) The basic bottleneck block of DarkNet

  • 结构

    • 1x1卷积(Conv) + 批归一化(BN) + SiLU激活函数

    • 3x3卷积(Conv) + 批归一化(BN) + SiLU激活函数

  • 特点

    • 经典的DarkNet瓶颈块,使用1x1卷积进行通道压缩,3x3卷积进行特征提取。

(b) The proposed bottleneck block with a large-kernel depth-wise convolution layer

  • 结构

    • 5x5深度卷积(Depthwise Conv) + 1x1逐点卷积(Pointwise Conv) + 批归一化(BN) + SiLU激活函数

  • 特点

    • 提出的瓶颈块,使用大核深度卷积进行特征提取,1x1逐点卷积进行通道融合。

(c) Bottleneck block of PPYOLO-E that uses re-parameterized convolution

  • 结构

    • 3x3卷积(Conv) + 批归一化(BN) + SiLU激活函数

    • 重新参数化卷积(RepConv):包括3x3卷积和1x1卷积

  • 特点

    • PPYOLO-E的瓶颈块,使用重新参数化卷积(RepConv)来提高模型的表达能力和计算效率。

(d) The basic unit of YOLOv6

  • 结构

    • 3x3卷积(Conv) + 批归一化(BN) + SiLU激活函数

    • 1x1卷积(Conv) + 批归一化(BN) + SiLU激活函数

    • 恒等映射(Identity) + 3x3卷积(Conv) + 批归一化(BN) + SiLU激活函数

    • 重复N次

  • 特点

    • YOLOv6的基本单元,包含多个卷积层和恒等映射,通过重复N次来增加模型的深度和复杂度。

主要观察

  1. DarkNet瓶颈块(a)

    • 使用1x1卷积进行通道压缩,3x3卷积进行特征提取。

    • 经典的设计,广泛应用于YOLO系列模型中。

  2. 大核深度卷积瓶颈块(b)

    • 使用5x5深度卷积进行特征提取,1x1逐点卷积进行通道融合。

    • 大核深度卷积能够捕捉更大范围的特征,提高模型的感受野。

  3. PPYOLO-E瓶颈块(c)

    • 使用重新参数化卷积(RepConv)来提高模型的表达能力和计算效率。

    • 重新参数化卷积能够在训练和推理阶段使用不同的参数,提高模型的灵活性。

  4. YOLOv6基本单元(d)

    • 包含多个卷积层和恒等映射,通过重复N次来增加模型的深度和复杂度。

    • 这种设计能够提高模型的表达能力,同时保持计算效率。

结论

  • 多样化的设计:不同的基本构建模块在设计上各有特色,适用于不同的神经网络架构。

  • 特征提取和通道融合:所有模块都包含卷积层和激活函数,用于特征提取和通道融合。

  • 重新参数化卷积:PPYOLO-E的瓶颈块使用重新参数化卷积,提高了模型的表达能力和计算效率。

  • 深度和复杂度:YOLOv6的基本单元通过重复N次来增加模型的深度和复杂度,提高了模型的表达能力。

总结

这张图展示了四种不同的基本构建模块,分别用于DarkNet、提出的大核深度卷积瓶颈块、PPYOLO-E和YOLOv6。每种模块在设计上各有特色,适用于不同的神经网络架构。通过对这些模块的分析,可以看出它们在特征提取、通道融合、重新参数化卷积和模型深度复杂度方面的不同设计和应用。


rtmdet-fig4

这张图展示了RTMDet-Ins模型中的实例分割分支。该分支包括两个主要部分:kernel head(核头)和mask feature head(掩码特征头)。以下是对图表中结构以及输入输出的详细分析:

图表内容

  1. Kernel Head(核头)

  • 结构

    • 核头预测每个实例的169维向量。

    • 该向量被分成三部分(长度分别为88、72和9),用于形成三个动态卷积层的卷积核。

  • 输入

    • 多层特征图(multi-level features)从主干网络的颈部提取。

  • 输出

    • 169维向量,用于生成动态卷积层的卷积核。

  1. Mask Feature Head(掩码特征头)

  • 结构

    • 掩码特征头包含4个卷积层,预测8通道的掩码特征。

    • 掩码特征与两个相对坐标特征(relative coordinate features)拼接,用于生成实例掩码。

  • 输入

    • 多层特征图(multi-level features)从主干网络的颈部提取。

  • 输出

    • 掩码特征(mask features),用于生成实例掩码。

  1. Dynamic Convolution(动态卷积)

  • 结构

    • 使用核头生成的卷积核和掩码特征头生成的掩码特征进行动态卷积操作。

  • 输入

    • 核头生成的卷积核。

    • 掩码特征头生成的掩码特征。

  • 输出

    • 实例掩码。

主要观察

  1. 核头(Kernel Head)

    • 核头预测每个实例的169维向量,并将其分成三部分,用于形成三个动态卷积层的卷积核。

    • 这种设计使得模型能够根据每个实例的特征生成特定的卷积核,提高了实例分割的精度。

  2. 掩码特征头(Mask Feature Head)

    • 掩码特征头包含4个卷积层,预测8通道的掩码特征。

    • 掩码特征与相对坐标特征拼接,用于生成实例掩码。

    • 这种设计使得模型能够更好地捕捉实例的空间信息,提高了实例分割的效果。

  3. 动态卷积(Dynamic Convolution)

    • 使用核头生成的卷积核和掩码特征头生成的掩码特征进行动态卷积操作。

    • 动态卷积能够根据每个实例的特征生成特定的卷积核,提高了模型的灵活性和表达能力。

结论

  • 多层特征提取:核头和掩码特征头都从主干网络的颈部提取多层特征图,能够捕捉不同尺度的信息。

  • 动态卷积:核头生成的卷积核和掩码特征头生成的掩码特征通过动态卷积操作生成实例掩码,提高了模型的灵活性和表达能力。

  • 实例分割:通过核头和掩码特征头的协同工作,模型能够生成高精度的实例掩码,实现实例分割任务。

总结

这张图展示了RTMDet-Ins模型中的实例分割分支,包括核头(kernel head)和掩码特征头(mask feature head)。核头预测每个实例的169维向量,并将其分成三部分,用于形成三个动态卷积层的卷积核。掩码特征头包含4个卷积层,预测8通道的掩码特征,并与相对坐标特征拼接,用于生成实例掩码。通过核头和掩码特征头的协同工作,模型能够生成高精度的实例掩码,实现实例分割任务。