【目标检测论文阅读笔记】RTMDet: An Empirical Study of Designing Real-Time Object Detectors(2022)

Abstract

        在本文中,我们的目标是设计一种高效的实时物体检测器,它超越了 YOLO 系列,并且可以轻松扩展到许多物体识别任务,例如实例分割和旋转物体检测。为了获得更高效的模型架构,我们探索了一种 在主干和颈部具有兼容能力的架构,该架构 由一个 由大核深度卷积组成的基本构建块 构建。我们在动态标签分配中 计算匹配成本时 进一步 引入软标签 以提高准确性。结合更好的训练技术,由此产生的名为 RTMDet 的目标检测器在 NVIDIA 3090 GPU 上以 300+ FPS 的速度在 COCO 上实现了 52.8% 的 AP,优于当前主流的工业检测器。RTMDet 针对各种应用场景实现了 tiny/small/medium/large/extra-large 模型大小的最佳 参数-精度权衡,并在实时实例分割和旋转目标检测方面获得了最新的性能。我们希望实验结果可以为设计用于许多目标识别任务的多功能实时目标检测器提供新的见解。

代码和模型发布在 https://github.com/open-mmlab/mmdetection/tree/3.x/configs/rtmdet。


1. Introduction

        最佳效率始终是目标检测的首要追求,尤其是对于自动驾驶、机器人和无人机中的真实世界感知。为了实现这一目标,YOLO 系列 [3、21、25、42、63-65、71] 探索了不同的模型架构和训练技术,以不断提高单阶段目标检测器的准确性和效率

        在这份报告中,我们的目标是 突破 YOLO 系列的极限,并贡献一个新的目标检测实时模型系列,名为 RTMDet,它也能够进行以前的工作没有探索过的实例分割和旋转对象检测。吸引人的改进 主要来自 大内核深度卷积的更好表示动态标签分配中软标签的更好优化

        具体来说,我们首先 在模型的主干和颈部的基本构建块中 利用大核深度卷积,这提高了模型捕获全局上下文的能力 [15]。因为 直接在构建块中放置深度卷积 会增加模型深度 从而 减慢推理速度,我们进一步 减少构建块的数量 以 减少模型深度 并通过 增加模型宽度 来补偿模型容量。我们还观察到,将更多参数放在颈部 并使其 容量与骨干兼容 可以实现更好的速度-准确性权衡。模型架构的整体修改允许 RTMDet 的快速推理速度,而无需依赖模型重新参数化 [42、71、84]。

        我们进一步 重新审视训练策略 以提高模型的准确性。除了更好地结合数据增强、优化和训练计划之外,我们凭经验发现,在匹配真值框和模型预测时,可以通过 引入软目标而不是硬标签 进一步改进 现有的 动态标签分配策略 [19, 21] 。这样的设计 提高了代价矩阵 对高质量匹配的辨别力,同时也降低了标签分配的噪声,从而提高了模型精度

        RTMDet 是通用的,只需少量修改即可轻松扩展到实例分割和旋转目标检测。通过简单地添加一个内核和一个掩码特征生成头 [11,69],RTMDet 可以仅使用大约 10% 的附加参数来执行实例分割。对于旋转目标检测,RTMDet 只需要扩展框回归层的维度(从 4 到 5)并切换到旋转框解码器。我们还观察到,对通用目标检测数据集 [48] 的预训练 有利于空中场景中的旋转目标检测 [81]

        我们进行了大量实验来验证 RTMDet 的有效性,并缩放模型大小,为各种应用场景提供微型/小型/中型/大型/超大型模型。如图 1 所示,RTMDet 实现了比以前的方法更好的参数-精度权衡,并获得了优于以前模型的性能 [3、21、25、65]。具体来说,RTMDet-tiny 在 1020 FPS 时仅用 480 万个参数就达到了 41.1% 的 AP。 RTMDet-s 以 819 FPS 的速度产生 44.6% 的 AP,超越了之前最先进的小型模型。当扩展到实例分割和旋转对象检测时,RTMDet 在两个基准测试的实时场景中都获得了最新的性能,COCO val set 上 180 FPS 的掩码 AP 为 44.6%,DOTA v1.0 上的 AP 为 81.33% , 分别。


2. Related Work

用于目标检测的高效神经架构。

        目标检测旨在识别和定位场景中的对象。对于实时应用,现有工作主要探索 基于锚 [47, 50, 64] 或 无锚 [70, 98] 的单阶段检测器,而不是两阶段检测器 [5,24,59,66]。为了提高模型效率,通过 手工设计 或 神经架构 [10、17、23、74] 探索了 高效的骨干网络 和 模型缩放策略 [3、41、71] 以及 多尺度特征的增强 [7、23、36、46、49、68]。最近的进展 还探索了 模型重新参数化 [14,42,71,84],以提高模型部署后的推理速度。在本文中,我们贡献了一个 在主干和颈部具有兼容容量的整体架构,该架构由一个新的基本构建块构建,该构建块具有大内核深度卷积以实现更高效的目标检测器


用于目标检测的标签分配。

        改进目标检测器的另一个方面是 标签分配 和 训练损失的设计。先锋方法 [5,47,50,66] 使用 IoU 作为匹配标准 来比较 真值框 与标签分配中的模型预测 或 锚点。后来的实践 [37、70、95、98] 进一步探索了 不同的匹配标准例如 目标中心 [70、98]。还探索了 辅助检测头 [62、71] 以 加快和稳定训练。受 端到端目标检测匈牙利分配 [6] 的启发,动态标签分配 [19-21] 被探索以 显著提高收敛速度和模型精度。与这些 使用 与损失完全相同的匹配成本函数 的策略不同,我们建议在计算匹配成本时 使用软标签 来扩大高质量和低质量匹配之间的区别,从而稳定训练并加速收敛


实例分割。

        实例分割 旨在 预测每个感兴趣对象的每像素掩码。先锋方法探索不同的范例来解决这个任务,包括 掩码分类 [60、61]、“自上而下”[8、31] 和 “自下而上” 方法 [1、39、58]。最近尝试使用 [4, 69] 或 不使用边界框 [76, 77, 96] 在一个阶段执行实例分割。这些尝试的一个代表是基于动态内核 [69、77、96],它学习从学习参数 [96] 或密集特征图 [69,77] 生成动态内核,并使用它们与掩码特征图进行卷积。受这些作品的启发,我们通过 核预测和掩码特征头 [69] 扩展 RTMDet 以进行实例分割。


旋转目标检测。

        旋转目标检测旨在进一步预测物体的方向以及它们的位置和类别。基于现有的通用目标检测器(例如,RetinaNet [47] 或 Faster R-CNN [66]),提出了不同的特征提取网络来减轻由目标旋转引起的特征未对齐 [28,29,88]。还探索了各种旋转框的表示(例如,高斯分布 [89,90] 和凸集 [26, 44]),以简化旋转边界框回归任务。与这些方法正交,本文仅对通用目标检测器进行了最小的修改(即 添加角度预测分支 将 GIoU [67] 损失替换为旋转 IoU 损失 [97]),并揭示了高精度通用目标检测器 通过模型架构和在通用检测数据集上学习的知识[48],为高精度旋转物体检测铺平了道路。


3. Methodology

         在这项工作中,我们 构建了一个新的目标检测实时模型系列,名为 RTMDetRTMDet 的宏架构是一个典型的单阶段目标检测器(第 3.1 节)。我们通过在主干和颈部的基本构建块中探索大核卷积来提高模型效率,并相应地平衡模型深度、宽度和分辨率(第 3.2 节)。我们进一步探索动态标签分配策略中的软标签以及数据扩充和优化策略的更好组合以提高模型准确性(第 3.3 节)。 RTMDet 是一种通用的目标识别框架,只需稍作修改即可扩展到实例分割和旋转目标检测任务(第 3.4 节)。


3.1. Macro Architecture

        我们将单阶段目标检测器的宏观架构分解为主干、颈部和头部,如图 2 所示。

YOLO 系列的最新进展 [3, 21] 通常采用 CSPDarkNet [3] 作为主干架构,这 包含四个阶段每个阶段都堆叠有几个基本构建块(图 3.a)。颈部从骨干中提取多尺度特征金字塔,并使用与骨干相同的基本构建块,通过自下而上和自上而下的特征传播 [46、49] 来增强金字塔特征图。最后,检测头根据每个尺度的特征图预测对象边界框及其类别。这种架构通常适用于一般对象和旋转对象,并且可以扩展为内核和掩码特征生成头 [69] 的实例分割。

         为了充分挖掘宏架构的潜力,我们 首先研究更强大的基本构建块。然后我们调查架构中的计算瓶颈,并平衡主干和颈部的深度、宽度和分辨率。


3.2.模型架构

基本构建块 Basic building block。

        主干中的大有效感受野有利于密集预测任务,如目标检测和分割,因为它有助于更​​全面地捕获和建模图像上下文 [56]。然而,之前的尝试(例如,膨胀卷积 [92] 和 非局部块 [75])在计算上是昂贵的,限制了它们在实时目标检测中的实际应用。最近的研究 [15, 52] 重新审视了 large-kernel convolutions 大核卷积 的使用,表明 可以通过 深度卷积 [35] 以合理的计算成本 扩大感受野。受这些发现的启发,我们在 CSPDarkNet [3] 的基本构建块中 引入了 5×5 深度卷积,以增加有效感受野(图 3.b)。这种方法允许更全面的上下文建模并显著提高准确性

        值得注意的是,最近的一些实时目标检测器 [42、71、84] 在基本构建块中 探索了重新参数化的 3×3 卷积 [14](图 3.c 和 d)。虽然 重新参数化的 3×3 卷积 被认为是提高推理准确性的免费午餐,但它也带来了副作用,例如训练速度变慢和训练内存增加。它还增加了模型量化到较低位后的误差差距,需要通过重新参数化优化器 [13] 和 量化感知训练 [42] 进行补偿。与重新参数化的 3×3 卷积相比,大核深度卷积 是基本构建块的 更简单、更有效的选择,因为它们需要更少的训练成本,并且在模型量化后导致更少的误差间隙


模型宽度和深度的平衡。

        由于在大核深度卷积之后增加了逐点卷积(图 3.b),基本块中的层数也增加了。这阻碍了每一层的并行计算,从而降低了推理速度。为了解决这个问题,我们减少了每个主干阶段的块数并适度扩大块的宽度以增加并行化并保持模型容量,最终在不牺牲准确性的情况下提高推理速度


backbone 和 neck的平衡

        多尺度特征金字塔对于目标检测是必不可少的,可以检测各种尺度的物体。为了增强多尺度特征,以前的方法 要么使用 具有更多参数的更大主干,要么使用 更重的颈部 [36,68],在特征金字塔之间 进行 更多的连接和融合。然而,这些尝试也增加了计算和内存占用。因此,我们采用另一种策略,通过 增加基本块在颈部的扩展率,使它们具有相似的容量将更多的参数和计算从骨干网放到颈部,从而 获得更好的计算精度权衡


共享检测头。

        实时目标检测器通常 针对不同的特征尺度使用单独的检测头 [3、21、25、50、65] 来增强模型容量以获得更高的性能,而不是跨多个尺度共享一个检测头 [47、70]。我们在本文中比较了不同的设计选择,并选择 跨尺度共享头部参数,但合并不同的批归一化 (BN) 层 以减少头部的参数量同时保持准确性BN 也比 Group Normalization [79] 等其他规范化层更有效,因为在推理中它直接使用训练中计算的统计数据。 


3.3. 训练策略

标签分配和损失。

        为了训练单阶段目标检测器,每个尺度的密集预测将通过不同的标签分配策略 [19、47、70] 与真值框匹配。最近的进展通常采用 动态标签分配策略 [6, 20, 21],该策略 使用与训练损失一致的成本函数 cost functions 作为匹配标准。然而,我们发现他们的成本计算有一些局限性。因此,我们 提出了一种基于 SimOTA [21] 的 动态软标签分配策略,其成本函数表示为,

其中 Ccls、Ccenter、Creg 分别对应分类成本、区域先验成本、回归成本,λ1=1、λ2=3、λ3=1默认为这三种代价的权重。三种成本的计算如下所述。

        以前的方法通常 使用 二进制标签 来计算分类成本 Ccls,这允许具有高分类分数但不正确的边界框的预测实现低分类成本,反之亦然。为了解决这个问题,我们在 Ccls 中引入软标签作为

该修改受到 GFL [45] 的启发,它使用预测和真值框之间的 IoU 作为软标签 Ysoft 来训练分类分支。 分配中的 软分类cost 不仅 对 具有不同回归质量的匹配cost  进行了重新加权,而且避免了由二元标签引起的嘈杂和不稳定的匹配

        当使用广义 IoU [67] 作为回归成本时,最佳匹配和最差匹配之间的最大差异小于 1。这使得难以区分高质量匹配和低质量匹配。为了使不同 GT -预测对 的匹配质量更具判别力,我们使用 IoU 的对数作为回归成本,而不是损失函数中使用的 GIoU,这会 放大具有较低 IoU 值的匹配的成本回归成本 Creg 的计算公式

        对于区域成本 Ccenter,我们 使用 软中心区域成本 而不是固定中心先验 [20, 21, 95] 来 稳定动态成本的匹配,如下所示,

其中 α 和 β 是软中心区域的超参数。我们默认设置 α = 10,β = 3。


Cached Mosaic and MixUp。

         MixUp [94] 和 CutMix [93] 等 跨样本增强 在最近的目标检测器中被广泛采用 [3、21、25、42、71]。这些增强功能很强大,但 会带来 两个副作用。首先,在每次迭代中,他们需要加载多张图像来生成训练样本,这会引入更多的数据加载成本并减慢训练速度。其次,生成的训练样本“有噪声”,可能不属于数据集的真实分布,影响模型学习[21]。 

        我们通过 缓存机制 改进了 MixUp 和 Mosaic减少了对数据加载的需求。通过 利用缓存,可以 将训练流水线中 混合图像的时间成本 显著降低到处理单个图像的水平缓存操作由 缓存长度和 弹出方法 控制大的缓存长度 和 随机出栈方式 可以看作是 等价于原来的 非缓存MixUp 和Mosaic操作。同时,较小的缓存长度 和 先进先出 (FIFO) 弹出方法 可以看作类似于重复增强 [2],允许 在相同或连续的批次中 混合具有不同数据增强操作的相同图像。


两阶段训练。

        为了 通过强的数据增强 来减少“嘈杂”样本的副作用,YOLOX [21] 探索了一种两阶段训练策略,其中 第一阶段使用强数据增强,包括 Mosaic、MixUp 和随机旋转和剪切,第二阶段阶段使用弱数据增强,例如 随机调整大小和翻转。由于初始训练阶段的强增强 包括 随机旋转 和 shearing 剪切,导致输入和转换后的框注释之间未对齐,YOLOX 添加 L1 损失以在第二阶段微调回归分支。为了解耦 数据增强 和 损失函数 的使用,我们排除了这些数据增强,并在 280 个 epoch 的第一个训练阶段 将每个训练样本中的混合图像数量 增加到 8,以补偿数据增强的强度。在过去的 20 个时期,我们切换到 大规模抖动 (LSJ) [22],允许在与真实数据分布更紧密对齐的域中对模型进行微调。为了进一步稳定训练,我们 采用 AdamW [55] 作为优化器,它很少用于卷积目标检测器,但它是 vision transformers [16] 的默认设置


3.4.扩展到其他任务

实例分割。

        我们通过简单的修改启用 RTMDet 进行实例分割,表示为 RTMDet-Ins。如图 4 所示,在 RTMDet 的基础上,增加了一个额外的分支,由 核预测头和掩码特征头组成,类似于 CondInst [69]。掩码特征头包含 4 个卷积层,从多级特征中提取具有 8 个通道的掩码特征。核预测头为每个实例预测一个169维的向量,分解为三个动态卷积核,通过 与 掩码特征 和 坐标特征 的交互 生成实例分割掩码。为了进一步 利用掩码注释中固有的先验信息,我们在计算动态标签分配中的软区域先验时使用掩码的质心而不是框中心。我们使用 dice loss [57] 作为遵循典型约定的实例掩码的监督。


旋转目标检测。

        由于旋转目标检测与一般(水平)物体检测之间的内在相似性只需 3 个步骤即可将 RTMDet 适配到旋转物体检测器,记为 RTMDet-R:(1)在回归处添加一个 1×1 卷积层分支预测旋转角度; (2) 修改边界框编码器 以支持旋转框; (3) 用 Rotated IoU loss 代替 GIoU loss。 RTMDet 高度优化的模型架构 保证了 RTMDet-R 在旋转目标检测任务上的高性能。此外,由于 RTMDet-R 共享 RTMDet 的大部分参数,因此在通用检测数据集(例如 COCO 数据集)上预训练的 RTMDet 模型权重可以作为旋转目标检测的良好初始化


4. Experiments

4.1. Implementation Details

目标检测和实例分割。

        我们在 COCO 数据集 [48] 上进行实验,该数据集分别包含 train2017 集中的约 118K 图像和 val2017 集中的 5K 图像,分别用于训练和验证。对于消融研究,我们在 train2017 集上训练了 300 个时期的模型,并在 val2017 集上对其进行了验证。超参数在表 1 中。我们所有的目标检测和实例分割模型都在 8 个 NVIDIA A100 GPU 上训练。我们分别通过 bbox AP 和掩码 AP [48] 评估模型在目标检测和实例分割方面的性能。

        在目标检测测试过程中,在非极大值抑制(NMS)之前,过滤边界框的得分阈值设置为0.001,并保留前300个框进行验证。此设置与之前的研究 [25,42,71] 一致,以进行公平比较。然而,为了加速消融研究期间的度量计算,我们将分数阈值设置为 0.05,将保留结果的数量设置为 100,这可能会使准确度降低约 0.3% AP。


旋转目标检测。

        我们在 DOTA 数据集 [81] 上进行实验,该数据集包含 2.8K 航拍图像和从具有多种分辨率的不同传感器获得的 188K 个实例。超参数在表 1 中。对于单尺度训练和测试,我们将原始图像裁剪为 1024×1024 块,重叠 256 像素。对于多尺度训练和测试,原始图像以 0.5、1.0 和 1.5 的比例调整大小,然后裁剪为 1024×1024 块,重叠 500 像素。大多数旋转物体检测器都由 1 个 NVIDIA V100 GPU 训练,但大型模型使用 2 个 NVIDIA V100 GPU。对于评估指标,我们采用与 PASCAL VOC2007 [18] 中相同的 mAP 计算,但使用旋转 IoU 来计算匹配对象


基准设置。

        所有模型的延迟 latency 均在带有 TensorRT 8.4.3 和 cuDNN 8.2.0 的 NVIDIA 3090 GPU 上以 半精度浮点格式 (FP16) 进行测试。推理批量大小为 1。


4.2.基准测试结果

目标检测。

        我们将 RTMDet 与之前的实时目标检测器进行比较,包括 YOLOv5 [25]、YOLOX [21]、YOLOv6 [42]、YOLOv7 [71] 和 PPYOLOE [84]。为了公平比较,所有模型都在 300 个 epoch 上训练,没有蒸馏或修剪,并且非最大抑制 (NMS) 的时间不包括在延迟计算中

        如表 2 和 图 1 (a) 所示,RTMDet 比以前的方法实现了更好的参数-精度权衡。 RTMDet-tiny 仅用 480 万个参数就达到了 41.1% 的 AP,比其他类似大小的模型高出 5% 以上的 AP。 RTMDet-s 精度更高,参数和计算成本只有 YOLOv6s 的一半。 RTMDet-m 和 RTMDet-l 在同类模型中也取得了优异的成绩,分别有 44.6% 和 49.4% 的 AP。 RTMDet-x 以 300+FPS 的速度产生 52.8% 的 AP,优于当前的主流检测器。值得注意的是,[25] 和 [71] 在数据增强后 都使用掩码注释 来细化边界框,从而获得大约 0.3% 的 AP 增益。我们在不依赖框注释之外的其他信息的情况下取得了优异的结果


实例分割。

        为了评估我们的标签分配策略和损失的优越性,我们首先将 RTMDet-Ins 与使用标准 ResNet50-FPN [46] 主干 和 经典的多尺度 3x 计划 [9、80] 的传统方法进行比较。我们采用辅助的语义分割头来加快收敛速度​​,并与 CondInst [69] 进行公平比较。 RTMDet 优于 CondInst 1.5% mask AP(表 3 中的第一行)。但是,在使用大量数据增强从头开始训练 RTMDet 时,我们不使用语义分割分支,因为辅助分支带来很小的改进。

        最后,我们使用与 RTMDet 相同的数据增强和优化超参数在 COCO 数据集上训练 RTMDet-Ins tiny/s/m/l/x 300 个时期。 RTMDet-Ins-x 实现了 44.6% mask AP,比之前的最佳实践 YOLOv5-seg-x [25] 高出 3.2% AP,并且仍然实时运行(表 3 中的第二行)。


旋转目标检测。

        我们将 RTMDet-R 与 DOTA v1.0 数据集上的先前技术水平进行了比较,如表 4 所示。通过单尺度训练和测试,RTMDet-R-m 和 RTMDet-R-l 分别实现了 78.24% 和 78.85% mAP,这优于几乎所有以前的方法。通过多尺度训练和测试,RTMDet-R-m 和 RTMDet-R-l 进一步分别达到了 80.26% 和 80.54% mAP。此外,RTMDet-R-l(COCO 预训练)在 DOTA-v1.0 数据集上创造了新记录(81.33% mAP)。 RTMDet-R 在模型大小的所有范围内也始终优于 PPYOLOE-R,有更简单的修改。请注意,RTMDet-R 在架构中避免了特殊运算符以实现高精度,这使得它可以轻松部署在各种硬件上。我们还在附录中将 RTMDet-R 与 HRSC2016 [53] 和 DOTA-v1.5 数据集上的其他方法进行了比较,RTMDet-R 也取得了优越的性能。


4.3.模型架构的消融研究

大内核很重要。

        我们首先比较了 CSPDarkNet [3] 基本构建块中不同 卷积核大小的有效性,内核大小从 3×3 到 7×7 不等。 3×3 卷积和 5×5 内核大小深度卷积的组合实现了最佳的速度-精度权衡(表 5a)。


多个特征尺度的平衡。

        使用深度卷积也会增加深度 并降低推理速度。因此,我们减少了第二和第三阶段的块数。如表 5b 所示,将块数从 9 减少到 6 会导致延迟减少 20%,但准确度会降低 0.5% AP 。为了补偿这种精度损失,我们 在每个阶段的末尾 加入了通道注意力 (CA),以实现更好的速度-精度权衡。具体来说,与第二阶段和第三阶段使用 9 个块的检测器相比,准确度降低了 0.1% AP,但延迟提高了 7%。总的来说,我们的修改成功地减少了检测器的延迟,而没有牺牲太多的准确性


backbone 和 neck 的平衡。

        遵循[3, 25, 42, 84] ,我们使用相同的基本块作为构建颈部的主干。我们凭经验研究将更多计算放在脖子上是否更经济。如表 5c 所示,使颈部具有与主干相似的容量,而不是增加主干的复杂性,可以 在小型和大型实时检测器中 以相似的精度 实现更快的速度


检测头。

        在表 5d 中,我们比较了针对多尺度特征的检测头的不同共享策略。结果表明,由于不同特征尺度之间的统计差异,将批量归一化 (BN) 合并到共享权重的检测头中会导致性能下降针对不同的特征尺度使用不同的检测头可以解决这个问题,但 会显著增加参数数量对不同的特征尺度使用相同的权重但不同的 BN 统计量会产生最佳的参数-精度权衡


 4.4.训练策略的消融研究。

标签分配

        然后,我们验证了所提出的动态软标签分配策略 中每个组件的有效性。按照之前的约定,我们使用 SimOTA [21] 作为我们的基线,并使用与训练损失相同的 Focal-Loss [47] 和 GIoU [67] 作为成本矩阵。如表 6a 所示,我们的基线版本可以在 ResNet50 上实现 39.9% 的 AP。在分类成本中引入 IoU 作为软标签可将准确度提高 0.4% AP,达到 40.3% AP。用 软中心先验 替换固定的 3×3 中心先验进一步将准确度提高到 40.8% AP。通过将GIoU成本替换为对数IoU成本,模型获得了41.3%的AP。

        所提出的标签分配策略在具有相同损失的相同模型架构上超过其他高性能策略 0.5% AP(表 6b)。当使用更长的训练计划和更强的数据增强进行训练时,建议的动态软标签分配连同损失在 RTMDet-s 上超过 SimOTA 1.3% AP(表 6c)。


数据增强。

        然后,我们在不同的训练阶段研究不同的数据增强组合。第一和第二训练阶段分别需要 280 和 20 个 epoch。当这两个阶段的数据增强相同时,本质上形成了一个阶段的训练。效仿 YOLOX,微小和小型模型的 Mosaic 的随机调整大小范围是 (0.5, 2.0),而 (0.1, 2.0) 用于较大的模型。如表 7a 所示,在所有阶段使用 大规模抖动 (LSJ) [22] 比使用 MixUp 和 Mosaic 好 0.4% AP。在缓存样本足够多的情况下缓存的Mosaic和MixUp的效果 和原来的是一致的。尽管如此,缓存机制仍将 Mosaic 和 MixUp 的速度分别提高了约 3.6 倍和约 1.5 倍(表 7b)。

        在第二阶段使用 LSJ 代替 Mosaic 和 MixUp 分别为 RTMDets 和 RTMDet-l 带来 2% 的 AP 和 1.5% 的改进。这表明 Mosaic 和 MixUp 是比 LSJ 更强的增强,但也会在训练中引入更多噪声,应该在第二阶段抛出。我们还观察到,如果缓存大小减少到大约 10 张图像 并应用先进先出 (FIFO) 弹出方法,则可以在同一批次中混合具有不同数据增强操作的相同图像,这可能具有与重复增强 [2] 相似的效果,并且可以略微改进微型和小型模型(大约 0.5% AP)。        

        与 YOLOX 相比,我们在第一个训练阶段避免了随机旋转和剪切,因为它们会导致框注释和输入之间的错位。相反,我们将每个训练样本中的混合图像数量从 5 个增加到 8 个,以保持第一阶段数据增强的强度。总体而言,本文探索的数据增强的新组合在不同模型尺寸下始终优于 YOLOX,图7c 。


优化策略。

        我们最终对优化策略进行了实验。表 8 中的结果表明,SGD 导致不稳定的收敛过程,以及训练中很强的数据增强。因此,我们 选择了具有 0.05 权重衰减和余弦退火 LR 的 AdamW 作为我们的基线。为了避免 因余弦退火 快速降低学习率 而在早期或中期训练过程中过度拟合,我们采用平余弦方法在前半段训练阶段使用固定学习率,然后使用余弦退火在下半场。此修改将性能提高了 0.3% AP。此外,按照以前的做法 [33] 抑制归一化层和偏差 的权重衰减带来 0.9% 的 AP 改进。最后,通过 RSB [78] 训练策略应用预训练的 ImageNet 主干可使 AP 进一步增加 0.3%。上述技巧协同产生 1.5% AP 的显著改进。


4.5.逐步结果

        如表 9 所示,我们对 YOLOX-s 进行了连续修改。通过修改优化策略,模型精度提高了0.4%。具有类似主干和颈部容量的新架构,由具有大核深度卷积的新基本构建块构建,以小的延迟成本将模型精度提高了 1.2% AP。使用具有共享权重的检测头可显著减少参数数量,而不会影响准确性。随后对标签分配策略和训练损失的改进将性能提高了 1.1% AP。数据增强和主干预训练的新组合分别导致 1.3% AP 和 0.3% AP 改进。这些修改的协同作用导致 RTMDet-s 的性能比基线高 4.3% AP。 


5. 结论

        在本文中,我们凭经验全面研究了实时目标检测器中的每个关键组件,包括 模型架构、标签分配、数据增强和优化。我们进一步探索了 用于实时实例分割和旋转目标检测的高精度实时目标检测器的最小适应性。该研究的发现导致了一个新的目标检测实时模型系列,名为 RTMDet,及其针对不同目标识别任务的衍生模型。 RTMDet 在工业级应用程序中展示了准确性和速度之间的卓越权衡,针对不同的目标识别任务使用不同的模型大小。我们希望 RTMDet 的实验结果能够为未来实时的研究和产业发展铺平道路。

猜你喜欢

转载自blog.csdn.net/YoooooL_/article/details/129580232