Progressive Hard-case Mining across Pyramid Levels in Object Detection
论文地址:https://arxiv.org/abs/2109.07217
摘要
在物体检测中,多级预测(例如 FPN、YOLO)和重采样技巧(例如焦点损失、ATSS)极大地提高了单级检测器的性能。然而,如何通过逐级优化特征金字塔来提高性能仍然有待探索。我们发现,在训练期间,正样本与负样本的比率在金字塔级别(级别不平衡)之间变化,当前的单级检测器无法解决这一问题。为了调解级别不平衡的影响,我们提出了一个统一的多级优化范式(UMOP),它由两个部分组成:1)独立的分类损失监督每个金字塔级别,并考虑单独的重采样; 2) 渐进式硬案例挖掘损失定义了金字塔级别的所有损失,无需额外的级别设置。使用 UMOP 作为即插即用方案,现代单级检测器可以通过更少的训练迭代和没有额外的计算开销实现 ~ 1.5AP 的改进。我们最好的模型在 COCO test-dev 上实现了 55.1 AP。代码可在 https://github.com/zimoqingfeng/UMOP 获得 .
1、引言
一级目标检测器在实际应用中很受欢迎,因为与多级检测器相比,它们具有更高的效率和更低的计算成本(Zou 等人,2019 年)。最近,一级检测器逐渐赶上多级检测器,受益于模型架构、损失函数、目标分配策略等的改进等深入研究(Liu et al. 2016; Lin et al. 2017 ; Zhang et al. 2021; Rezatofighi et al. 2019; Tian et al. 2019; Zhang et al. 2020) 配备特征金字塔网络 (FPN) (Lin et al. 2017) 和焦点损失 (Lin et al. 2017) ,一级检测器可以为密集候选提供更准确的预测。 FPN 提供了具有不同感受野的密集候选者。它通过解决感受野和目标尺度之间的不匹配问题来提高性能。 Focal loss 根据分配的标签与其自身概率之间的余量对所有潜在提议重新加权。它通过启用在线硬案例挖掘来提高性能。这两种技术已广泛用于领先研究,包括基于锚的检测器和无锚检测器(Lin et al. 2017; Tian et al. 2019; Zhu,He, and Savvides 2019; Zhang et al. 2020; Tan 、Pang 和 Le 2020;Kong 等人 2020)。
尽管他们有各自的贡献,但焦点损失和 FPN 之间的协同作用尚未得到充分探索。 Focal loss是从全局优化的角度设计的,使用两个超参数来控制hard-case挖掘程度来调解类不平衡。 相比之下,FPN 通过捕获具有不同金字塔级别的不同对象尺度(Chen 等人,2021 年;Zhang 等人,2020 年),通过其分而治之的解决方案提高了性能。 然而,如图 2 所示,正样本与负样本的比率可以在金字塔级别之间变化,我们将其称为级别不平衡。 因此,似乎单一的全局焦点损失设置可能会误导单个金字塔级别的优化。
多级检测器可以根据定位质量通过对不同阶段应用不同的重采样机制来缓解不平衡(Cai 和 Vasconcelos 2018)。 这样的框架可以通过改进位置和置信度分数来逐步提高性能(Ren et al. 2015; Cai and Vasconcelos 2018; Pang et al. 2019; Chen et al. 2019)。 此外,多级检测器如 Cascade R-CNN (Cai and Vasconcelos 2018) 和 HTC (Chen et al. 2019) 在考虑匹配质量的情况下受益于不同阶段的重采样机制。 一个自然的问题出现了:我们能否在多级一级检测器上利用这些重采样机制,通过分而治之的优化镜头来避免电平不平衡现象?
在本文中,我们首先进行统计分析以验证正样本与负样本的比率在金字塔级别之间变化,即级别不平衡现象广泛存在。 受多级检测器架构的启发,我们提出了统一多级优化范式(UMOP)来解决级别不平衡并提高整体性能。 如图 1 所示,UMOP 由两个部分组成:1)独立的分类损失,监督每个金字塔级别,并考虑单独的重采样; 2)渐进式硬案例挖掘损失定义了金字塔级别的所有损失,无需额外的级别设置即可解决级别不平衡。 我们在以下部分提供了详细的方法描述、消融研究和比较结果。
我们的主要贡献是:
• 据我们所知,我们是第一个通过实验证明 FPN 的性能在一定程度上受限于水平不平衡问题的人。
• 使用我们提出的调解水平不平衡的方法,现代单级检测器可以通过更少的训练迭代和没有额外的计算开销实现 ~ 1.5AP 的改进。
• 我们最好的模型在 MS COCO test-dev 上实现了 55.1 AP,这是迄今为止单级检测器中的 SOTA。
2、相关工作
**多级检测器中的重采样方法。**源自滑动窗口方法(Dalal 和 Triggs 2005;Felzenszwalb、Girshick 和 McAllester 2010),两级检测器继承了先定位后精炼以获得更好性能的固有范式(Girshick 等人 2014;Girshick 2015 年;Ren 等人,2015 年)。从滑动窗口方法到选择性搜索,再到区域提议网络,很明显,ROI(感兴趣区域)提取方法的发展显着提升了检测器的性能。在我们看来,Region Proposal Network (Ren et al. 2015) 可以看作是一个数据驱动的重采样调度器,根据匹配质量,丢弃大量低质量的负样本来缓解优化过程中的目标不平衡.此外,多级检测器的负责人 (Cai and Vasconcelos 2018; Chen et al. 2019) 可以逐步消除低质量预测,以解决训练和推理过程中的质量不匹配问题。近来,对重采样方法的进一步研究还有很多新的视角。在训练过程中,已经提出了 IoU 平衡采样(Pang 等人,2019 年)根据每个金字塔级别的匹配质量分配样本。从模型设计的角度来看,很多研究(Song, Liu, and Wang 2020; Zhu et al. 2021)试图将识别和定位任务解耦,通过分别从主干中采样解耦的特征来提升性能。深入研究高质量的对象检测,IoU 引导的 NMS 方法可以将定位质量的预测引入 NMS,以便更好地进行后处理校准(Jiang 等人,2018 年)。
**一级检测器中的重采样方法。**对重采样机制的研究使一级检测器完全可以与二级检测器相媲美。受 OHEM 的启发,Focal loss (Lin et al. 2017) 被提出,通过极大地降低简单案例的损失权重并略微降低困难案例的权重,使模型自动更多地关注困难案例,这已被广泛最近使用。由于多级架构提供了更密集的候选者(Liu et al. 2016; Lin et al. 2017; Redmon and Farhadi 2017),重新加权被认为是稳定实现更好性能的关键方法。这种设计还可以对各种目标分配策略保持稳健的贡献,从而导致无锚检测器的爆炸式增长(Zhu、He 和 Savvides 2019;Tian 等人 2019)。此外,在这一突破的影响下,很多研究更加深入地考虑了这种在线难例挖掘的思想。例如,已经提出了基于焦点损失的惩罚减少的逐像素逻辑回归损失来优化 CenterNet 中中心点的预测(Zhou、Wang 和 Krahenbuhl 2019),以及针对目标 IoU 的焦点损失的改进也可以做出稳定的改进(Zhang et al. 2021)。此外,还提出了梯度协调机制(Li、Liu 和 Wang 2019)以确保训练期间的优化鲁棒性。同时,还有很多基于焦点损失的研究,以更好地估计检测器的建议(Li et al. 2020, 2021),也带来了显着的改进。
目标分配中的重采样方法。 从基于anchor-based检测器和anchorfree检测器的统一角度来看,目标分配问题近年来逐渐受到关注(Ke et al. 2020)。 在 ATSS (Zhang et al. 2020) 中,已经证明 RetinaNet 和 FCOS 之间的关键区别在于目标分配策略,这导致训练期间目标分布的差异并导致性能差距。 相应地,在每个金字塔级别上都设计了一种具有动态 IoU 阈值的新型目标分配策略,以获得更好的性能。 此外,AutoAssign (Zhu et al. 2020) 通过完全数据驱动的方法以尽可能少的手工设置来提高性能。 通过将其定义为优化问题,PAA (Kim and Lee 2020) 和 OTA (Ge et al. 2021) 在每次训练迭代期间分别设置特定目标并找到合适的在线策略。
2.1 水平失衡的统计分析
多级架构广泛用于一级检测器,并大大提高了检测性能。 在 SSD 和 YOLO 系列中,多级预测框架通过提供更密集的候选者来提高检测器性能(Liu et al. 2016; Redmon and Farhadi 2017)。 与 SSD 和 YOLO 直接在特征图的每个级别进行预测不同,FPN 为特征组合添加了自上而下的路径和横向连接。 在我们的工作中,我们分析了基于锚的检测器和无锚检测器,以从一般的角度确认水平不平衡问题。
水平不平衡的实验设置。 在不失一般性的情况下,我们基于两个基于锚的检测器和两个无锚检测器进行分析:RetinaNet、ATSS、FCOS 和 VFNet(Lin et al. 2017; Zhang et al. 2020; Tian et al. 2019; Zhang 等人,2021 年)。 我们使用 MS COCO (Lin et al. 2014) 数据集进行所有分析,其中包含用于训练一个 epoch 的 trainval35k 中的 115K 图像。 我们将 FPN 作为 C3 到 C5 从主干的模型颈部,生成名为 P3 到 P7 的五种不同分辨率的特征图(如图 1(b)和(c)所示)。 此外,我们修复了所有其他设置以进行公平比较。
水平不平衡的统计分析。 在我们的分析中,我们仔细观察了目标跨级别分布的影响,同时保持图像分辨率和模型的复杂度固定 。
有很多方法可以分配训练目标。 基于锚点的检测器根据锚点和地面实况之间的匹配质量分配目标,无锚点检测器根据关键点的距离和物体尺度分配目标。 对于没有特定情况的一般分析,在整个训练epoch内对四个不同的检测器进行了统计分析:在每次训练迭代期间,记录了每个金字塔级别的正样本占总样本的比例,并汇总为框 - 图 2 中的绘图。
如图 2 所示,显然每个金字塔层级之间的目标分布是完全不同的。 根据所有四个检测器,P7 中的每个候选者在训练期间匹配正样本的概率更高。 结果清楚地揭示了多电平检测器中的电平不平衡现象,无论在什么情况下。 因此,我们怀疑具有固定超参数设置的焦点损失无法同时对所有金字塔级别进行良好的权衡。
2.2 统一多级优化范式
我们提出了一个 UMOP 来调解 onestage 检测器中的电平不平衡。 所提出的方法由两部分组成:1) 逐级重采样范式 (LRP),它设置了一个独立的分类损失来监督每个金字塔级别,并具有单独的重采样考虑,以及 2) Progressive Focal Loss,它调整了硬案例挖掘 度,基于每个金字塔级别中正样本的预测。
2.2.1 逐级重采样范式
多级检测器通过使用迭代重采样机制进行优化来减轻不平衡现象:在建议重新评分和位置细化之间交替。 这种机制可以排除容易出现的低质量样本,防止质量不匹配问题,对高质量预测进行改进。 我们提出了逐级重采样范式(LRP),这是一种类似的单级检测器范式,用于基于金字塔级别之间的各种硬案例指标进行高质量预测。
LRP 是一种多级优化范式,可解决不同金字塔级别之间的样本不平衡问题。 如图1(c)所示,我们在训练期间独立计算每个金字塔级别的分类损失。 下面的方程。 (1) 是总分类损失,它被定义为所有级别分类损失的平均值。
LOSS c l s = 1 L ∑ l = 1 L Loss l ( P l , Y l ) \operatorname{LOSS}_{c l s}=\frac{1}{L} \sum_{l=1}^{L} \operatorname{Loss}_{l}\left(P_{l}, Y_{l}\right) LOSScls=L1l=1∑LLossl(Pl,Yl)
在等式(1)中,L 是单级检测器中用于预测的金字塔层数,Pl 是仅从第 l 层生成的逐级预测结果,Yl 表示由特定目标分配所分配的标签 战略。 Lossl 表示第 l 层的总损失。 这个水平损失项赋予每个金字塔层灵活性以适应它在优化过程中面临的特定样本不平衡。
2.2.2 渐进式焦点丢失
为了在没有任何不必要设置的情况下进行逐级优化,我们提出了渐进式焦点损失(PFL),以根据每个金字塔级别中正样本的预测自动调整硬案例挖掘的程度。 此外,就收敛情况的度量而言,所提出的损失可以保持硬样本的有效梯度。
对于二元分类,sigmoid 焦点损失为 (2):
F L ( p i , y i ) = { − α ( 1 − p i ) γ log ( p i ) , y i = 1 − ( 1 − α ) p i γ log ( 1 − p i ) , y i = 0 \mathrm{FL}\left(p_{i}, y_{i}\right)=\left\{\begin{array}{cc} -\alpha\left(1-p_{i}\right)^{\gamma} \log \left(p_{i}\right), & y_{i}=1 \\ -(1-\alpha) p_{i}^{\gamma} \log \left(1-p_{i}\right), & y_{i}=0 \end{array}\right. FL(pi,yi)={−α(1−pi)γlog(pi),−(1−α)piγlog(1−pi),yi=1yi=0
在等式(2)中,pi 是模型的最终预测结果。 y i ∈ { 0 , 1 } y_{i}\in \{0,1\} yi∈{0,1} 是为每个金字塔级别的每个网格中的特定预测分配的标签。 在原始的focal loss中,超参数α是一个经过良好调整的常数值,以保持正负样本之间的梯度平衡,而γ是为了缓解易样本和难样本之间的不平衡,通过动态采样的方法 根据模型的预测概率。 通过适当的 α α α 和 γ γ γ,大量易样本和负样本的梯度被显着压缩。 在实践中,较低的 α 总是对应较高的 γ γ γ,以在更容易的负样本被大幅降低权重时调整对正样本的重视(Lin 等人,2017),并保持模型收敛的所有损失之间的平衡 .
从分而治之的角度来看,我们为 α 和 γ 提出了一种新的动态超参数调整策略。 所提出的策略可以根据自己在每个金字塔级别的收敛情况动态调整硬案例挖掘的强度。 对于金字塔层级之间的不平衡多样性,不同层级应用的实际超参数完全不同 。
在训练过程中,训练初期的案例一般较难,而后期则相对容易一些。 对于优化过程中的相应指南,可以根据每个金字塔级别的收敛情况独立地引导具有我们提出的调整策略的超参数。 PFL 可以用下面的公式(3)表示:除了 a a d a_{ad} aad 和 γ a d γ_{ad} γad 的建议调整计划外,所有原始设置都被保留。
PFL ( p i , y i ) = { − α a d ( 1 − p i ) γ a d log ( p i ) , y i = 1 − ( 1 − α a d ) p i γ a d log ( 1 − p i ) , y i = 0 \operatorname{PFL}\left(p_{i}, y_{i}\right)=\left\{\begin{array}{cc} -\alpha_{a d}\left(1-p_{i}\right)^{\gamma_{a d}} \log \left(p_{i}\right), & y_{i}=1 \\ -\left(1-\alpha_{a d}\right) p_{i}^{\gamma_{a d}} \log \left(1-p_{i}\right), & y_{i}=0 \end{array}\right. PFL(pi,yi)={−αad(1−pi)γadlog(pi),−(1−αad)piγadlog(1−pi),yi=1yi=0
作为一种硬案例挖掘设置, γ a d γ_{ad} γad 的设计独立考虑了每个金字塔级别中正样本的预测质量。 同时,受之前的实验分析(Lin et al. 2017)的启发, α a d α_{ad} αad 被设置为及时跟随 $γ_{ad} $调整,可以保持正样本和负样本之间的平衡。 详细的定义可以在等式(4)和等式(5)中显示。
γ a d = − log ( 1 n pos ∑ i = 1 n y i ⋅ p i ) \gamma_{a d}=-\log \left(\frac{1}{n_{\text {pos }}} \sum_{i=1}^{n} \mathrm{y}_{i} \cdot \mathrm{p}_{i}\right) γad=−log(npos 1i=1∑nyi⋅pi)
γ a d γ_{ad} γad 的函数类似于交叉熵(CE)损失,自然反映金字塔级别的收敛情况。 在调整 γ a d γ_{ad} γad的方程(4)中,从逐级优化的角度设计的策略:yi表示特定金字塔级别中一个样本的分配标签,pi定义为相应的概率结果。 因此, y i ⋅ p i y_{i}·p_{i} yi⋅pi表示正样本的概率,负样本定义为0。 n 定义为每个金字塔级别的总样本数,npos 表示每个金字塔级别的总正样本数。 为了保证训练的稳定性,调整后的超参数被限制在一个有效区间 γ a d ∈ [ γ − δ , γ + δ ] \gamma_{a d} \in[\gamma-\delta, \gamma+\delta] γad∈[γ−δ,γ+δ],其中 $δ $也设置为所有实验的常数。
在方程(5)中, α a d α_{ad} αad 的调整计划被设计为跟随 γ a d γ_{ad} γad 的趋势。 具体而言,w是使 γ a d γ_{ad} γad根据负相关计算αad的常数。 此外,作为一种逐级重采样方法,重要的是要注意$ α_{ad}$ 和 γ a d γ_{ad} γad 是即时计算的,并且在训练过程中不会产生任何额外的推导操作。
因此, γ a d γ_{ad} γad 在开始时以较大的值反映整个层次收敛情况,然后随着优化的进行逐渐减小。 如图 3 所示,这样的动态调整时间表可以使模型在开始时强调困难案例,并在困难和容易案例的判别力不够时逐渐增加区分能力 。
UMOP 的整个过程在算法 1 中描述。我们将整个范式作为统一形式引入,以便轻松部署到任何具有多级结构的单级检测器中。
3、实验
3.1 实施细节
基于大规模检测基准 MS COCO(Lin et al. 2014),我们遵循之前工作(Ren et al. 2015; Tian et al. 2019)中的常见做法,将 COCO trainval35k 分割(115K 图像)设置为 训练和最小分割(5K 图像)作为验证。 在消融研究中,已经尽可能详细地列出了许多条件下的评估结果。 为了与现有技术进行公平比较,我们还通过将最终结果上传到评估网络服务器来报告我们在测试开发拆分(20K 图像)上的主要结果。
网络设置。 在训练期间,我们将所有现有设置保留为已发布代码中的默认设置,包括模型架构和相关的模型设计设置。 如果没有另外指定,我们会使用 ImageNet (ILSVC) 预训练权重初始化我们的主干网络。 此外,我们还遵循 RetinaNet 和 ATSS 中与锚点相关的设置(即锚点数量、锚点比例、锚点纵横比等),保持原始目标分布以进行公平比较。 对于消融研究中的单尺度训练,我们将图像的较短边调整为 800,将较长边调整为小于或等于 1333,同时保持纵横比。 对于多尺度训练,我们将较短的一侧随机设置在 640 到 800 之间。
优化。 PFL 设置为独立优化每个金字塔级别。 在 PFL 中,w 被设置为 α ⋅ γ ( 0.5 ) α · γ (0.5) α⋅γ(0.5) 并且 δ 被设置为 0.5 作为我们的主要结果。 此外,保留所有其他原始设置。 如果未指定,则使用随机梯度下降 (SGD) 对相同时期的模型进行训练,初始学习率为 0.01,小批量为 16 张图像。 在前 500 次迭代中采用了线性预热计划,预热比为 0.001。 权重衰减设置为 0.0001,动量设置为 0.9。 对于边界框回归,ATSS采用GIoU Loss,RetinaNet分别采用L1 Loss。
3.2 消融研究
我们对 RetinaNet 和 ATSS 进行评估,以分析对常用检测器的总体改进。 我们还比较了使用或不使用我们的方法的 ATSS 的收敛速度。
不同探测器的一般提升。 我们首先研究我们对不同检测器的总体贡献。 所提出的范例可以作为即插即用组件轻松部署在几乎所有的单级检测器中。 基于不同的主干,对 RetinaNet 和 ATSS 的一般改进见表 1。ATSS 和我们的方法之间的定性比较见图 4。根据可视化结果,我们的方法可以解决广泛的困难情况,包括模糊对象 (如图3香蕉)、高度重叠的物体(如图5飞机、7瓶、8板凳)、小物体(如图1风筝)和纵横比极大的物体(如图2交通灯、 4-冲浪板)。
根据表 1,对于 RetinaNet,原始工作报告 ResNet-50 骨干网的 AP 值为 35.7,ResNet-101 骨干网的 AP 值为 38.9(为更大的骨干网配备多尺度训练)。 仅使用 PFL,AP 值分别增加 1.0 和 0.8。 应用 LRP 后,AP 值进一步增加 0.2 和 0.8。 对于 ATSS,原始工作报告的 ResNet-50、ResNet-101 和 ResNeXt-64x4d-101 的 AP 值分别为 39.3、46.1 和 47.7(为 ResNet-101 和 ResNeXt 配备了多尺度训练和 DCN-v2 -64x4d-101)。 仅使用 PFL,AP 值分别增加 0.8、0.6 和 0.7。 应用 LRP 后,AP 值进一步增加 0.3、0.9 和 0.4。 这些结果清楚地表明,我们的方法可以提高具有不同主干的不同检测器的性能。
收敛速度分析。 在本节中,我们将我们的方法与不同主干(ResNet-101 和 ResNeXt-101)上的原始 ATSS 进行比较。 为了公平比较,我们的工作和基线都配备了相同的多尺度训练策略和可变形卷积层 (DCN-v2)。 基于COCO test-dev,性能对比如表2所示。
带有 ResNet-101 和 ResNeXt-101 的原始 ATSS 在收敛之前需要 24 个 epoch。 配备我们的方法后,性能提高了 1.4 个 AP,训练次数更少。 此外,通过我们的方法,不同对象尺度的 AP50、AP75 和 AP 也得到了改进。
3.3 与最先进技术的比较
我们在 COCO test-dev 上使用 UMOP 评估 ATSS,并与最近最先进的模型进行比较,包括一级检测器和二级检测器。表 3 列出了我们的结果以及近年来一些流行模型的性能。在这里,我们将我们的方法与一些更高级的工作、更密集的计算和最佳超参数设置相结合,以实现更具竞争力的最终结果。
我们在表 3 中的所有结果都采用多尺度训练策略,训练 epoch 设置为 24 以确保收敛。对于使用 Swin Transformer 进行训练,4 个补丁和 7 个窗口作为其内部结构设置保持默认。第 2 列中的“1K”表示主干是从 ImageNet-1K 数据集预训练的,“22K”表示相应的 ImageNet-22K。我们最好的单一模型采用了多尺度测试。在这种策略下,图像会相应地调整大小,最终结果的较短边从 800 到 1200 不等。我们所有的实验都是在 8 个 Tesla-V100-16GB GPU 上训练的,除了 Swin-L-22K 的实验是用 8 个 Tesla-P40-24GB GPU 和 NVIDIA-Apex 工具包训练的(利用自动混合精度来节省 GPU 内存)。与具有长训练时期和大图像分辨率的高性能检测器相比,我们的模型在具有基本实验室设置和最常用图像分辨率的 COCO testdev 上实现了高性能 55.1 AP。
4、结论
我们观察到一级目标检测器中的水平不平衡问题。 为了调解水平不平衡,我们提出了一种新的分类损失,以在训练期间逐步调整硬案例挖掘。 我们提出的方法在平均精度方面对常见的一级检测器进行了稳定的改进,训练迭代次数更少,并且没有额外的计算开销 。
0890872)]
4、结论
我们观察到一级目标检测器中的水平不平衡问题。 为了调解水平不平衡,我们提出了一种新的分类损失,以在训练期间逐步调整硬案例挖掘。 我们提出的方法在平均精度方面对常见的一级检测器进行了稳定的改进,训练迭代次数更少,并且没有额外的计算开销 。