提出了Sparse R-CNN,一种用于图像中目标检测的纯稀疏方法。现有的目标检测工作严重依赖于密集的候选目标,例如大小为的图像特征图的所有网格上预定义的个锚框。然而,在我们的方法中,总长度为N的学习目标建议的固定稀疏集合被提供给目标识别头部以执行分类和定位。通过将(高达数十万)手动设计的候选目标消除到N个(例如100个)可学习的建议,Sparse R-CNN完全避免了与候选目标设计和多对一标签分配相关的所有工作。更重要的是,最终预测直接输出,没有非最大抑制后程序。稀疏R-CNN在具有挑战性的COCO数据集上展示了与成熟的检测器基线相当的准确性、运行时间和训练收敛性能,例如,在标准的3倍训练时间表中达到45.0 AP,并使用ResNet-50 FPN模型以22 FPS运行。我们希望我们的工作能够启发我们重新思考物体检测器中密集先验的约定。
目标检测的目的是在图像中对一组目标进行定位并识别它们的类别。稠密先验一直是检测器成功的基石。在经典的计算机视觉中,将分类器应用于密集图像网格的滑动窗口范式是几十年来领先的检测方法。现代主流的单级检测器在密集的特征图网格上预先定义标记,如图1a所示的锚框或参考点,并预测目标边界框的相对比例和偏移量,以及对应的类别。尽管两阶段的流程工作在一组稀疏的提案框上,但它们的提案生成算法仍然建立在密集的候选目标上,如图1b所示。
这些成熟的方法在概念上是直观的,并提供了强大的性能,以及快速的训练和推理时间。除了它们的巨大成功之外,重要的是要注意密集先验检测器受到一些限制:1)这种流程通常产生冗余和接近重复的结果,因此使得非最大抑制(NMS) 后处理成为必要的组成部分。2)训练中的多对一标签分配问题使得网络对启发式分配规则敏感。3)最终性能在很大程度上受尺寸、纵横比和锚框数量、参考点密度和建议生成算法的影响。
尽管密集的约定在物体检测器中被广泛认可,一个自然要问的问题是:有可能设计一个稀疏的检测器吗?最近,DETR提议将目标检测重新表述为直接的稀疏集合预测问题,其输入仅仅是100个学习目标查询。最终的预测集直接输出,无需任何手工设计的后处理。尽管它的框架简单而奇妙,但DETR要求每个目标查询都与全局图像上下文交互。这种密集的特性不仅减缓了训练收敛速度,而且阻碍了它为目标检测建立一个完全稀疏的流程。
在本文中,我们提出了一种纯粹稀疏的方法,Sparse R-CNN,不需要在所有(密集)图像网格上枚举目标位置候选,也不需要目标查询与全局(密集)图像特征交互。如图1c所示,给候选目标一组固定的小的可学习的边界框,用4-d坐标表示。以COCO数据集为例,总共需要100个框和400个参数,而不是区域建议网络(RPN)中数十万个候选项的预测值。这些稀疏候选被用作建议框,通过感兴趣区域池化或感兴趣区域对齐提取感兴趣区域(RoI)的特征。
可学习的建议框是图像中潜在目标位置的统计数据。 然而,4-d坐标仅仅是物体的粗略表示,缺乏许多信息细节,如姿势和形状。 在这里,我们引入另一个关键概念,称为建议特征,这是一个高维(例如256)潜在向量。 与粗糙边界框相比,该方法更易于编码丰富的实例特征。 特别地,建议特征为其专属的目标识别头生成一系列定制参数。 我们称这种操作为动态实例交互头,因为它与最近的动态方案有相似之处。 与[30]中共享的2-fc层相比,我们的头部更灵活,在准确性上保持显著领先。 在我们的实验中,我们证明了以唯一的建议特征而不是固定参数为条件的头部生成实际上是稀疏R-CNN成功的关键。 建议框和建议特征与整个网络的其他参数一起随机初始化和优化。
在我们的稀疏R-CNN中,最显著的性质是它的稀疏-内稀疏-外稀疏范式。 初始输入是一组稀疏的建议框和建议特性,以及一对一的动态实例交互。 管道中既不存在稠密候选,也不存在与全局(稠密)特征交互的情况。 这种纯粹的稀疏性使得Sparse R-CNN成为R-CNN家族中一个全新的成员。
稀疏R-CNN在具有挑战性的COCO数据集上证明了其准确性、运行时间和训练收敛性能与成熟的检测器不相上下,例如,在标准3×训练时间表中达到45.0 AP,并使用ResNet-50 FPN模型以22 fps运行。据我们所知,提出的稀疏表示是第一个证明相当稀疏的设计是合格的工作。我们希望我们的工作能够启发我们重新思考密集先验在目标检测中的必要性,探索下一代目标检测器。
滑动窗口模式在目标检测领域已经流行了很多年。受经典特征提取技术的限制,性能已经稳定了几十年,应用场景有限。深度卷积神经网络(CNNs)的发展培养了实现性能显著提高的一般目标检测。主流方法之一阶段检测检测器,以一阶段的方式直接预测密集覆盖空间位置、比例和宽高比的锚框的类别和位置,如OverFeat、YOLO 、SSD和RetiaNet。最近,提出了无锚算法,通过用参考点替换手工设计的锚框,使该流程变得更加简单。所有上述方法都建立在密集候选的基础上,每个候选都直接进行分类和回归。基于预定义的原则,例如,锚是否与其对应的地面真实值具有较高的过联合(IoU)阈值,或者参考点是否落在目标框之一中,在训练时间将这些候选目标分配给地面真实值目标框。此外,需要NMS后处理来移除推理时间内的冗余预测。
两级检测器是另一种主流管道,多年来一直主导着现代物体检测。 该范式可以看作是稠密检测器的扩展。 它首先从密集的区域候选中获得稀疏的前景提案框集,然后细化每个提案的位置并预测其具体类别。 在R-CNN的选择性搜索和Faster R-CNN的RPN等两阶段方法中,区域提议算法在第一阶段起着重要的作用。 与密集方法类似,它也需要NMS后处理和手工标签分配。 在成千上万的候选检测器中只有少数前景建议,因此这些检测器可以总结为稠密到稀疏的方法。
最近,人们提出了直接输出预测,不需要任何手工组件,取得了很好的性能。 DETR利用一组稀疏的目标查询,与全局(密集)图像特征进行交互,在这个视图中,它可以看作是另一种由密集到稀疏的公式。
稀疏目标检测有潜力消除设计密集候选的努力,但通常已经落后于以上密集检测器的准确性。 G-CNN可以看作是这组算法的先驱。 它首先在图像上建立一个多尺度的规则网格,迭代地更新方框来覆盖和分类目标。 这种手工设计的常规先验显然是次优的,无法达到最佳性能。 相反,我们的稀疏R-CNN应用了可学习的建议,并取得了更好的性能。 同时,引入Deformable-DETR,将每个对象查询限制在参考点周围的一小组关键采样点,而不是特征图中的所有点。 我们希望稀疏方法可以作为坚实的基线,帮助未来的研究在目标检测社区。
稀疏R-CNN框架的关键思想是用一小组建议框(如100个)替换来自区域建议网络(RPN)的数十万个候选人。流程如图3所示。 稀疏R-CNN是一个简单、统一的网络,由一个骨干网、一个动态实例交互头和两个特定任务的预测层组成。 总共有三个输入,一个图像,一组建议框和建议性。 后两个参数是可学习的,可以与网络中的其他参数一起进行优化。 我们将在本节中详细描述每个组件。
采用基于ResNet架构的特征金字塔网络(Feature Pyramid Network, FPN)作为骨干网络,从输入图像生成多尺度特征地图。 在[22]之后,我们构建了到级的金字塔,其中表示金字塔级,的分辨率比输入低。 所有金字塔层都有256个通道。 实际上,Sparse R-CNN有可能从更复杂的设计中受益,从而进一步提高其性能,例如堆叠编码器层和可变形卷积网络,最近的工作Deformable DETR就是在这些基础上构建的。 然而,我们将设置与Faster R-CNN对齐,以显示我们方法的简单性和有效性。
一组固定的小的可学习的提议框(N ×4)被用作区域建议,而不是来自区域建议网络(RPN)的预测。这些建议框由范围从0到1的四维参数表示,表示标准化的中心坐标、高度和宽度。建议框的参数将在训练期间用反向传播算法更新。由于可学习的特性,我们在实验中发现初始化的影响很小,从而使框架更加灵活。
从概念上讲,这些学习的建议框是训练集中潜在目标位置的统计数据,可以看作是图像中最可能包含目标的区域的初始猜测,而不管输入是什么。 然而,RPN的建议与当前图像有很强的相关性,并提供粗略的目标位置。 我们重新思考,第一阶段的定位是奢侈的存在的后期阶段,以细化框的位置。 相反,一个合理的统计数字可能已经是合格的候选人。 在这种观点下,Sparse R-CNN可以被归类为目标检测器范式从完全密集到稠密到稀疏再到完全稀疏的扩展,如图1所示。
虽然四维建议框是描述物体的一种简短而明确的表达方式,但它提供了物体的粗略定位,大量信息细节丢失,如物体的姿势和形状。 在这里我们引入另一个概念称为建议特征(),它是一个高维(例如256)潜在向量,预计编码丰富的实例特征。 建议特性的数量与框的数量相同,接下来我们将讨论如何使用它。
给定N个提议框,Sparse R-CNN首先利用RoIAlign操作提取每个建议框的特征。 然后使用我们的预测头来生成最终的预测。 基于动态算法,我们提出了动态实例交互头。 每个感兴趣区域的特征被输入到其专属的头部进行目标定位和分类,每个头部都以特定的建议特征为条件。
图4展示了动态实例交互。在我们的设计中,建议特征和建议框是一一对应的。对于N个建议框,采用N个建议特征。每个RoI特征将与相应的建议特征交互,以过滤掉无效的框并输出最终的目标特征(C)。为了使得设计更加小型化,我们用ReLU激活函数进行两个连续的1 × 1卷积,实现交互过程。这两个卷积的参数由相应的建议特征生成。
只要支持并行操作,交互头的实现细节并不重要。 最终的回归预测由三层感知计算,分类预测由线性投影层计算。
我们还采用迭代结构[2]和自我注意模块来进一步提高性能。对于迭代结构,新生成的建议框和建议特征将作为迭代过程下一阶段的建议框和建议特征。由于稀疏特性和轻动态头,它只引入了边际计算开销。在动态实例交互之前,将自关注模块应用于目标特征集,以推理目标之间的关系。我们注意到也利用了自我注意模块。然而,除了目标特征之外,它还需要几何属性和复杂的秩特征。我们的模块简单得多,只接受目标特征作为输入。
稀疏R-CNN将集预测损失应用于分类和框坐标的固定大小预测集。 基于集的损失在预测和地面真实目标之间产生最佳的二部匹配。 匹配成本定义如下:
其中为预测分类和地面真值类别标签的Focal Loss, 和分别为归一化中心坐标与预测框和地面真值框的高度和宽度之间的L1 loss和广义IoU loss。 、和是各分量的系数。 训练损失与匹配代价相同,但只在匹配对上进行。 最终的损失是由训练批内的目标数量归一化的所有对的和。
R-CNN族一直被标签分配问题所困扰,因为仍然存在多对一匹配问题。 在这里,我们提供了直接绕过多对一匹配和引入基于集损的一对一匹配的新可能性。 这是对端到端目标检测的一次尝试。
我们的实验是在具有挑战性的MS COCO基准上进行的,使用了目标检测的标准度量。所有车型均在COCOtrain 2017分割(118k图像)上进行了训练,并用val2017 (5k图像)进行了评估。
除非另有说明,否则ResNet-50用作主干网络。优化器是AdamW,权重衰减为0.0001。小批量是16幅图像,所有模型都用8个图形处理器训练。默认训练时间表为36个epoch,初始学习速率设置为,分别在第27和33个epoch时除以10。主干用ImageNet上预先训练的权重初始化,其他新添加的层用Xavier初始化。数据增强包括随机水平缩放输入图像的抖动,使得最短边至少为480,最多为800像素,而最长边最多为1333像素。= 2,= 5,= 2。建议框、建议特征和迭代的默认数量分别为100、100和6。为了稳定训练,梯度在迭代架构的每个阶段都被阻塞在建议框中,除了初始建议框。
在稀疏R-CNN中推理过程相当简单。给定一个输入图像,稀疏表示直接预测100个与其分数相关的边界框。分数表示框包含一个物体的概率。为了评估,我们直接使用这100个框,没有任何后处理。
为了与表1中的不同检测器进行公平比较,我们提供了两个版本的稀疏R-CNN。第一种采用了100个可学习的建议框,没有随机的裁剪数据增加,用于与主流的物体检测器进行比较,例如Faster R-CNN和RetaiNet。第二个利用了300个带有随机作物数据扩充的可学习的建议框,并用于与DETR系列模型进行比较。
如表1所示,稀疏R-CNN在性能上大大优于成熟的主流检测器,如RetinaNet和Faster R-CNN。令人惊讶的是,基于ResNet-50的稀疏RCNN达到了42.8 AP,在精度上已经与ResNet-101上的Faster R-CNN竞争。
我们注意到,DETR和可变形DETR通常采用更强的特征提取方法,如堆叠编码器层和可变形卷积。稀疏R-CNN更强的实现被用来与这些检测器进行更公平的比较。即使使用简单的FPN作为特征提取方法,稀疏表示的神经网络也具有较高的精度。此外,与DETR (26.7的AP对22.5的AP)相比,稀疏无线网络在小目标上获得了更好的检测性能。
稀疏R-CNN的训练收敛速度比DETR快10倍,如图2所示。自提出以来,DETR一直在遭受缓慢的收敛,这激发了可变形DETR的建议。与可变形DETR相比,稀疏R-CNN在准确性(45.0 AP对43.8 AP)和运行时间(22 FPS对19 FPS)方面表现出更好的性能,并且训练时间更短(36个epoch对50个epoch)。
表2比较了稀疏R-CNN和COCO测试开发集中的其他方法。使用ResNeXt-101作为主干,稀疏R-CNN在没有花哨功能的情况下实现了46.9 AP,在有DCN的情况下实现了48.9 AP。随着额外的测试时间的增加,稀疏R-CNN的AP达到51.5接入点,与最先进的方法持平。
在本节中,我们分析了稀疏R-CNN中的每个组件。除非另有说明,所有模型均基于ResNet50-FPN主干网、100个建议、3倍训练步骤。
从更快的R-CNN开始,我们天真地用一组稀疏的可学习的提议框来代替RPN。性能从40.2 AP(表1第3行)下降到18.5 AP(表3)。我们发现,即使堆叠了更完全连接的层,也没有明显的改善。
迭代更新框是一个提高性能的直观想法。然而,我们发现简单的级联架构并不会产生很大的不同,如表4所示。我们分析的原因是,与[2]中主要位于目标周围的细化建议框相比,我们案例中的候选对象要粗糙得多,难以优化。我们观察到,一个建议框的目标目标通常在整个迭代过程中是一致的。因此,前一阶段的目标特征可以被重用,为下一阶段发挥强大的提示作用,例如,目标特征编码了丰富的信息,如目标姿态和位置。为此,我们将前一阶段的目标特征连接到当前阶段。特征重用的这一微小变化,在原有级联架构的基础上,带来了11.7 AP的巨大增益。最后,迭代架构带来了13.7的AP改进,如表3的第二行所示。
动态头以与上面讨论的迭代架构不同的方式使用前一阶段的目标特征。前一阶段的目标特征不是简单的串联,而是先由自注意力模块处理,然后作为建议特征实现当前阶段的实例交互。自注意力模块应用于目标特征集,用于推理目标之间的关系。表5显示了自注意力和动态实例交互的好处。最后,稀疏表示神经网络达到了42.3的准确率。
密集检测器总是很大程度上依赖于候选目标的设计,而稀疏检测器中的候选目标是可学习的,因此避免了所有与设计手工制作的锚相关的工作。然而,人们可能会担心提议框的初始化在稀疏RCNN中起着关键作用。在这里,我们研究了初始化建议框的不同方法的效果:
“Center”是指所有建议框一开始都位于图像的中心,高度和宽度设置为图像大小的0.1。
“Image”是指所有建议框都被初始化为整个图像大小。
“Grid”是指建议框在图像中被初始化为常规网格,这正是GCNN中的初始框。
“Random”表示提案框的中心、高度和宽度是用高斯分布随机初始化的。 从表6中我们可以看出,稀疏表示神经网络的最终性能对建议框的初始化相对稳健。
建议的数量在很大程度上影响了密集和稀疏检测器。原始Faster R-CNN使用300个建议。后来增加到2000并获得更好的性能。我们还在表7中研究了建议数对稀疏R-CNNAP的影响。将建议数量从100增加到500会导致持续的改进,这表明我们的框架很容易在各种情况下使用。然而,500个建议需要更多的训练时间,所以我们选择100个和300个作为主要配置。
迭代结构是一种广泛使用的提高目标检测性能的技术,尤其是对于Sparse RCNN。表8显示了迭代架构中阶段数的影响。没有迭代架构,性能只有21.7 AP。考虑到第一阶段的输入建议是对可能的目标位置的猜测,这个结果并不令人惊讶。增加到2级会带来14.5点的增益,到竞争性的36.2点。逐步增加级数,性能在6级饱和。我们选择6个阶段作为默认配置。
如第3节所述,动态头使用建议特征来过滤RoI特征,并最终输出目标特征。我们发现多头注意力模块[38]为实例交互提供了另一种可能的实现。我们在表9中进行了对比实验,其性能落后于6.6 AP。与线性多头注意力相比,我们的动态头更加灵活,其参数取决于其特定的提议特征,并且更容易引入非线性容量。
在DETR中提出的目标查询与建议功能具有相似的设计。这里我们对DETR提出的目标查询和我们的建议特征进行比较。如[3]中所讨论的,目标查询是学习位置编码,引导解码器与图像特征图和空间位置编码的总和进行交互。仅使用图像要素图将导致显著下降。但是,我们的建议特征可以看作是一个特征过滤器,与位置无关。表10显示了比较结果,如果去掉空间位置编码,DETR下降了7.8个百分点。相反,位置编码在稀疏编码中没有增益。
图5显示了一个融合模型的建议箱。这些框随机分布在图像上,以覆盖整个图像区域。这保证了候选稀疏条件下的召回性能。此外,级联头的每一级逐渐细化框位置并移除重复的框位置。这导致高精度性能。图5还显示,稀疏表示的AP在罕见和人群场景中都表现出稳健的性能。对于罕见情况下的对象,它的重复框会在几个阶段内被移除。人群场景需要花费更多的阶段来细化,但最终每个目标都被精确且唯一地检测到。
我们提出了一种用于图像中目标检测的纯稀疏方法。提供一组固定的学习目标建议稀疏集,以通过动态头来执行分类和定位。最终预测直接输出,没有非最大抑制后程序。稀疏R-CNN证明了其准确性、运行时间和训练收敛性能与稳定的检测器相当。我们希望我们的工作能够启发我们重新思考密集先验的约定,探索下一代目标检测器。