Sparse R-CNN 论文精读

Sparse R-CNN:End-to-End Object Detection with Learnable Proposals

稀疏R-CNN:可学习提案的端到端目标检测 

文章的创新点:

  1. 首次提出动态实例交互头: 在迭代结构中,结合线性投影、矩阵乘法、归一化和ReLU激活函数对输入的提议框和提议特征进行一系列操作,最终得到叠加的学习特征。
  2. 剔除NMS,选用DETR中的匈牙利匹配优化
  3. Sparse:提议特征默认选用100个,比以往的传统CNN的手工预选框少了几十倍
  4. 主要结合Fast R-CNN、DETR和Deformer DETR构造的框架

目录

一、摘要

二、结论

三、提出 Sparse R-CNN 

四、Sparse R-CNN 模型结构

(1)骨干网络

(2)可学习的建议框

(3)可学习的建议特征

(4)动态实例交互头( Dynamic instance interactive head )

(5)预测损失

五、实验

(1)实验细节

(2)主要结果和模型分析

六、附录


一、摘要

本文提出了一种用于图像目标检测的纯稀疏方法- -稀疏R - CNN。现有的目标检测工作严重依赖于稠密的候选目标,例如在大小为H × W的图像特征图的所有网格上预先定义的问锚框。然而,在我们的方法中,一个固定稀疏的学习对象提议集,总长度为N,提供给对象识别头执行分类和定位。通过将HW k (多达几十万)手工设计的对象候选物件( object candidates )删除为N个(例如100个)可学习的提案,Sparse R - CNN完全避免了与对象候选物件设计和多对一标签分配相关的所有工作。更重要的是,最终的预测结果直接输出,无需进行非极大值抑制后处理。在具有挑战性的COCO数据集上,稀疏R - CNN表现出与公认的检测器基线相当的准确性、运行时间和训练收敛性能,例如,在标准3 ×训练计划中达到45.0 AP,使用ResNet - 50 FPN模型以22 fps的速度运行。我们希望我们的工作能够激发对目标检测器中稠密先验约定的重新思考。

论文链接:https://arxiv.org/abs/2011.12450

源码链接:https://github.com/PeizeSun/SparseR-CNN

二、结论

我们提出了一种用于图像目标检测的纯稀疏方法Sparse R - CNN。提供了一个固定的稀疏学习对象提议集来执行动态头的分类和定位。最终的预测结果直接输出,无需非极大值抑制后处理。Sparse R-CNN展示了其精度、运行时间和训练收敛性能与成熟的检测器相当。我们希望我们的工作能激发重新思考密集之前的公约,并探索下一代的物体检测器。 

三、提出 Sparse R-CNN 

这些成熟的方法在概念上是直观的,并提供强大的性能,以及快速的训练和推理时间。除了他们的巨大成功,重要的是要注意到密集先验检测器有一些限制:

  • 1 )这样的管道通常会产生冗余和近乎重复的结果,从而使非极大值抑制( NMS )后处理成为必要的组件。
  • 2 )训练中的多对一标签分配问题使得网络对启发式分配规则敏感。
  • 3 )锚点框的尺寸、长宽比和数量、参考点密度和提案生成算法对最终性能影响较大。

尽管密集的约定在物体探测器中得到了广泛的认可,一个自然的问题是:

不可能设计一个稀疏的探测器?

最近,DETR提出将对象检测重新建模为一个直接的、稀疏的集合预测问题,其输入仅为100个学习过的对象查询。最终的预测集直接输出,无需任何手工设计的后处理。尽管DETR的框架简单而神奇,但它要求每个对象查询与全局图像上下文交互。这种稠密的特性不仅减缓了它的训练收敛速度,而且还阻碍了它为目标检测建立非常稀疏的管道。

我们认为稀疏性应该体现在两个方面:稀疏box和稀疏特征。稀疏框意味着少量的起始框(例如100 )就足以预测图像中的所有对象。稀疏特征表示每个方框的特征不需要与整个图像上的所有其他特征进行交互。从这个角度来看,DETR不是一个纯粹的稀疏方法,因为每个对象查询都必须与完整图像上的密集特征交互。

图1 不同目标检测管道的比较

  • ( a )在稠密检测器中,H*W*k个候选对象枚举在所有图像网格上,例如,Retina Net。
  • ( b )在从密集到稀疏的检测器中,它们从密集的H*W*k对象候选中选择一小部分N个候选,然后通过池化操作提取相应区域内的图像特征,例如,更快速的 R - CNN。
  • ( c )我们提出的 SparseR - CNN,直接提供了一组小的 个学习对象建议。这里

 在本文中,我们提出了Sparse R-CNN,一种纯粹的稀疏方法,没有对象位置候选枚举在所有(稠密)图像网格上,也没有对象查询与全局(稠密)图像特征交互。如图1( c )所示,对象候选者被赋予一个固定的小的可学习的边界框集合,由4-D坐标表示。例如COCO数据集,总共需要100个box和400个参数,而不是区域提案网络( RPN )中数十万候选人的预测参数。这些稀疏候选者被用作提案框,通过RoIPool或RoIAlign提取感兴趣区域( Region of Interest,RoI )的特征。

可学习的建议框是图像中潜在对象位置的统计信息。然而,4-D坐标仅仅是物体的一个粗略表示,缺乏大量的信息细节,如姿态和形状。这里我们介绍另一个关键的概念,称为提案特征,这是一个高维的(例如, 256维)潜在向量。与粗糙bbox相比,它有望编码丰富的实例特征。特别地,提议特征为其专属的目标识别头生成一系列定制的参数。我们称这种操作为动态实例交互头,因为它与最近的动态方案《Dynamic filter networks》《Conditional convolutions for instance segmentation》有相似之处。与《Faster R-CNN》中的共享 2 - FC Layers 相比,我们的头部更加灵活,并且在精度上具有明显的领先优势。我们在实验中表明,根据独特的建议特征而不是固定参数来制定头部,实际上是SparseR - CNN成功的关键。提案框和提案特征在整个网络中随机初始化并与其他参数一起优化。

在我们的Sparse R-CNN中,最显著的特性是它在整个时间内的 sparse-in sparse-out 范式。初始输入是一组稀疏的建议框和建议特征,以及一对一的动态实例交互。管道中既不存在稠密候选对象,也不存在与全局(稠密)特征的交互。这种纯稀疏性使得Sparse R - CNN成为R - CNN家族中一个全新的成员。

Sparse R - CNN在具有挑战性的COCO数据集上展示了与成熟的检测器相当的精度、运行时间和训练收敛性能,例如在标准的3 ×训练计划中达到45.0 AP,使用ResNet - 50 FPN模型以22 fps的速度运行。据我们所知,提出的Sparse R - CNN是第一个证明相当稀疏的设计是合格的工作。我们希望我们的工作能激发重新思考密集先验在物体检测中的必要性,并探索下一代物体检测器。

四、Sparse R-CNN 模型结构

Sparse R - CNN框架的核心思想是用一组小的提案框(例如, 100)来代替区域提案网络( RPN )中成千上万的候选人。管路如图3所示。

图3 稀疏R - CNN管道概述。输入包括一个图像、一组可学习的建议框和建议特性。主干提取特征图,每个提案框( Proposal Boxes )和提案特征( Proposal Features )被送入其专用动态头以生成对象特征,最后输出分类和定位。

稀疏R - CNN是一个简单、统一的网络:由一个骨干网络、一个动态实例交互头和两个任务特定的预测层组成。

稀疏R - CNN一共有3个输入:一个图像、一组可学习的提案框和提案特征。后两者可以与网络中的其他参数一起优化。

(1)骨干网络

采用基于ResNet架构的特征金字塔网络( Feature Pyramid Network,FPN )作为主干网络,从输入图像中生成多尺度特征图。在文献《Feature pyramidnetworks for object detection》的基础上,我们通过 P_{5} 构造了水平为 P_{2} 的金字塔,其中 l 表示金字塔的水平,P_{l} 的分辨率比输入低 2^{l}所有金字塔层级都有C = 256个通道。实际上,Sparse R - CNN有潜力从更复杂的设计中获益,以进一步提高其性能,例如堆叠编码器层和可变形卷积网络,最近的工作Deformable - DETR就是在此基础上构建的。然而,我们将设置与Faster R- CNN对齐,以显示我们方法的简单性和有效性。

(2)可学习的建议框

使用一组固定的小规模可学习的提议框( N × 4 )作为区域提议,而不是来自区域提议网络( RPN )的预测。这些建议框由从0到1的4-D参数表示,表示标准化的中心坐标、高度和宽度。在训练过程中,建议框的参数将通过反向传播算法进行更新。得益于可学习的特性,我们在实验中发现初始化的影响极小,从而使得框架更加灵活。

从概念上讲,这些学习到的建议框是对训练集中潜在对象位置的统计,可以看作是对图像中最可能包含对象的区域的初始猜测,而不管输入是什么。然而,来自RPN的建议与当前图像强相关,并提供粗略的目标位置。我们重新思考,第一阶段的定位是奢侈的,在后期阶段的存在,以细化box的位置。相反,一个合理的统计量已经可以成为合格的候选数据。从这个角度来看,Sparse R - CNN可以归类为对象检测器范式从 thoroughly dense 到 dense-to-sparse 再到 thoroughly sparse 的扩展,如图1 所示。

(3)可学习的建议特征

虽然4 - D建议框是描述物体的一个简短而明确的表达式,但是它提供了物体的粗定位,丢失了很多信息细节,例如物体的姿态和形状。这里我们引入另一个概念,称为提案特征( N × d ),它是一个高维的(例如, 256维)潜在向量,预计将编码丰富的实例特征。提案功能的数量与方框相同,接下来我们将讨论如何使用它。

(4)动态实例交互头( Dynamic instance interactive head )

给定N个候选框,Sparse R - CNN首先利用RoI Align操作为每个框提取特征。然后将每个box特征使用我们的预测头生成最终的预测。受动态算法《Dynamic filter networks》《Conditional convolutions for instance segmentation》的启发,我们提出了动态实例交互头。每个RoI特征被输入到自己的独占头中进行目标定位和分类,其中每个头以特定的提议特征为条件。

图4 动态实例交互的伪代码

  • 第 k 个建议特征为对应的第 k 个 RoI 生成动态参数。
  • bmm:批量矩阵乘法。
  • linear:线性投影。 

图4 展示了动态实例交互。在我们的设计中,proposal feature and proposal box是一一对应的。对于 N 个提议框,使用 N 个提议特征。每个 RoI 特征将与对应的建议特征进行交互,过滤掉无效的 bins,输出最终的目标特征( C )。对于轻量级设计,我们使用ReLU激活函数执行两个连续的1 × 1卷积来实现交互过程。这两个卷积的参数由相应的提议特征生成。

只要支持并行操作以提高效率,交互头的实现细节并不重要。最终的回归预测由一个 3 层的感知机计算,而分类预测则由一个线性投影层计算。

我们还采用了迭代结构和自注意力模块来进一步提高性能。

  1. 对于迭代结构,新生成的目标框和目标特征将作为迭代过程中下一阶段的建议框和建议特征。得益于稀疏性和轻动态头,它只引入了一个边际计算开销。
  2. 在动态实例交互之前,将自注意力模块应用于对象特征,以推理对象之间的关系。我们注意到《Relation networks for object detection》也利用了自注意力模块。然而,除了对象特征,它还要求几何属性和复杂的秩特征。我们的模块更加简单,只将对象特征作为输入。

(5)预测损失

Sparse R-CNN在固定大小的分类和框坐标预测集合上应用集合预测损失。基于集合的损失在预测和真值对象之间产生一个最优的二分匹配。匹配成本定义如下:

其中,为预测分类和真实类别标签的焦点损失,分别为预测框和真实框的归一化中心坐标与高度和宽度之间的 L1 损失和 GIoU 损失。为各分量的系数。训练损失与匹配代价相似,只是只在最佳匹配对上进行。最终的损失是由训练批次内的对象数量归一化的所有对的总和。

多对一匹配以来,R - CNN家族一直被标签分配问题所困扰。这里我们提供了新的可能性,直接通过多对一匹配和引入基于集合损失的一对一匹配。这是探索端到端对象检测的一种尝试。 

五、实验

(1)实验细节

数据集。我们的实验是在具有挑战性的MS COCO基准测试[ 30 ]上进行的,使用了目标检测的标准度量。所有模型都在COCO train2017 split上进行训练(简化118k图像),并用val2017 ( 5k图像)进行评估。

训练细节。除非另有规定,否则使用ResNet - 50作为骨干网络。优化器是AdamsW,重量衰减0.0001。小批量为16幅图像,所有模型均使用8个GPU进行训练。默认训练计划为36个epoch,初始学习率设置为2.5 × 10^-5,分别在第27和33个epoch除以10。主干使用ImageNet上的预训练权重初始化,其他新添加的层使用Xavier初始化。数据增强包括调整输入图像大小的随机水平、尺度抖动,使得最短的一面是至少480和最多800像素,最长的一面是最多1333像素。损失比例,λcls = 2,λL1 = 5,λgiou = 2。建议框、建议特征和迭代的默认数量分别为100、100和6。为了稳定训练,梯度在迭代架构的每个阶段都被阻挡在提案框中,除了初始提案框。

推断细节。稀疏R - CNN的推理过程非常简单。给定一个输入图像,Sparse R - CNN直接预测100个与它们的得分相关的边界框。分数表示包含对象的box的概率。为了评估,我们直接使用这100个box,不做任何后处理。

(2)主要结果和模型分析

表1 在COCO 2017 val上与不同对象检测器的比较。顶部部分显示了来自Detectron2或原始论文《DETR》《Deformable detr》的结果。这里的' * '表示模型具有300个可学习的建议框和随机crop训练增强,类似于Deformable DETR。在NVIDIA Tesla V100 GPU上评估运行时间。 

补充:Detectron2是Facebook研发的深度学习框架,类似于mmdetection,包含大量的深度学习优化算法、模型结构接口和训练好的模型预训练权重。

表3 对稀疏R-CNN中每个组件的消融研究。从Faster R - CNN开始,我们逐步在Sparse R - CNN中添加可学习的建议框、迭代架构和动态头。所有模型都用集合预测损失进行训练。 

表4 迭代架构中特征复用( feature reuse )的效果。原始的级联实现没有太大区别。将上一阶段的对象特征连接到当前阶段的对象特征会带来巨大的改进。 

表5 动态头中的实例交互效应。在没有实例交互的情况下,动态头退化为自注意力。这种增益来自于自注意和实例交互( self-attention and instance-interaction )。 

表6 建议框初始化的影响。检测性能对建议框的初始化比较稳健。

 

表7 提案数量的影响。提案数量的增加会带来持续的改进,而更多的提案需要更多的训练时间。 

表8 阶段数的影响。逐渐增加阶段数,在6个阶段性能达到饱和。

 

表9 动态头vs多头注意力。作为对象识别头,动态头优于多头注意力。

 

表10 提案特征vs对象查询。对象查询学习的是位置编码,而提议特征与位置无关。

图5 迭代架构中每个阶段的预测框的可视化,包括已学习的建议框。学习过的提案框除在后面的阶段中显示外,都是用白色绘制的。图中显示了分类得分大于0.3的预测框。来自同一提案的方框以相同的颜色绘制。学习到的建议框随机分布在图像上,并共同覆盖整个图像。迭代头逐渐细化box位置并去除重复的box。 

六、附录

表11 不同检测器在CrowdHuman数据集上的性能。所有模型都在train split( 15k图像) 上进行训练,并在val split( 4k图像 )上进行评估。 

表12 在稀疏R - CNN上有监督和自监督预训练权重的比较。所有模型均使用ResNet - 50作为主干。

 

表13 稀疏R - CNN中CNN和Transformer分别充当网络主干的比较。 

>>> 更多论文精读,点击大纲链接计算机视觉论文精读大纲_Flying Bulldog的博客-CSDN博客icon-default.png?t=M666https://blog.csdn.net/qq_54185421/article/details/125571690

猜你喜欢

转载自blog.csdn.net/qq_54185421/article/details/126324631