标题:End-to-End Object Detection with Fully Convolutional Network
会议:CVPR2021
论文地址:https://ieeexplore.ieee.org/document/9578562/
官方代码:https://github.com/Megvii-BaseDetection/DeFCN
作者单位:旷视科技、西安交通大学
基于全卷积网络的主流目标检测器取得了令人印象深刻的性能。然而,它们中的大多数仍然需要手工设计的非极大值抑制(NMS)后处理,这妨碍了完全的端到端训练。在本文中,我们给出了丢弃NMS的分析,结果表明适当的标签分配起着至关重要的作用。为此,针对全卷积检测器,我们引入一种预测感知的一对一(Prediction-aware OneTo-One,POTO)标签分配进行分类,使能够端到端的检测,获得了与NMS相当的性能。此外,还提出了一个简单的3D最大滤波(3D Max Filtering,3DMF)来利用多尺度特征,提高卷积在局部区域的可识别力。通过这些技术,我们的端到端框架在COCO和CrowdHuman数据集上取得了与许多使用NMS的SOTA检测器有竞争力的性能。
目标检测是计算机视觉中的一个基本问题,它为每幅图像预测一组包括预定义类别标签的边界框。主流的检测器大多采用anchor-based标签分配和非极大值抑制(NMS)等手工设计。最近,许多方法被提出,通过使用距离感知(distance-aware)和基于分布(distribution-based)的标签分配来剔除预定义的锚框集合。虽然它们取得了非凡的进步和优越的性能,但仍然存在弃置NMS后处理的挑战,这阻碍了完全的端到端训练。为了解决这个问题,Learnable NMS、Soft NMS等NMS变体和CenterNet被提出以改进去重,但它们仍然没有提供有效的端到端训练策略。另一方面,许多基于循环神经网络的方法被引入,通过使用自回归解码器来预测每个实例的边界框。这些方法为边界框的预测提供了自然序列建模(naturally sequential modeling)。但是它们只在一些小数据集上进行评估,没有现代检测器,并且这种迭代的方式使得推理过程效率低下。
最近,DETR引入基于二分图匹配的训练策略和使用并行解码器的transformers来实现端到端的检测。它在许多SOTA检测器相比取得了有竞争力的性能。然而,DETR目前需要很长的训练时间来收敛,并且在小目标上的性能相对较低。为此,本文探究了一个新的视角:全卷积网络能否实现有竞争力的端到端目标检测?
在本文中,我们尝试从标签分配和网络结构两个维度来回答这个问题。如图1所示,大多数全卷积检测器采用一对多(one-to-many)的标签分配规则,即为一个真值实例分配多个预测作为前景样本。这个规则提供了足够多的前景样本以获得强大和鲁棒的特征表示。然而,海量的前景样本会导致单个实例的重复预测框,阻碍端到端的检测。为了证明这一点,我们首先对不同的现有手工设计的标签分配进行实验比较。我们发现一对一(one-to-one)的标签分配在消除用于去重的后处理中起到了至关重要的作用。然而,手工设计的一对一分配仍然存在弊端。由于实例的预定义区域可能不是训练的最佳选择,固定的分配会导致歧义问题,降低特征的可识别力。为了解决这个问题,我们提出了一种预测感知的一对一(POTO)标签分配方法,同时根据分类和回归的质量来动态分配前景样本。
此外,对于基于FPN的现代检测器,大量的实验表明重复的边界框主要来自于相邻尺度间置信度最高的预测的附近区域。因此,我们设计了一个3D最大滤波 (3DMF),可以作为一个可微模块嵌入到FPN头部。该模块通过在相邻尺度间使用一个简单的3D最大滤波操作来提高卷积在局部区域的可识别力。此外,为了给特征表示学习提供足够的监督,我们修改一对多分配当辅助损失。
利用所提出的技术,我们的端到端检测框架与许多SOTA检测器相比取得了有竞争力的性能。在COCO数据集上,我们基于FCOS框架和ResNeXt-101主干的端到端检测器惊人地胜过使用了NMS的基线1.1% mAP。此外,我们的端到端检测器对于拥挤检测更加鲁棒和灵活。为了证明在拥挤场景中的优越性,我们在CrowdHuman数据集上构建了更多的实验。在ResNet-50主干下,我们的端到端检测器比使用了NMS的FCOS基线取得了3.0% AP50_{50}50和6.0% mMR的绝对增益。
由于卷积网络的成功,目标检测在过去的十年中取得了巨大的进步。现代的单阶段或两阶段检测器严重依赖于锚或基于锚的建议。在这些检测器中,锚框由预定义的滑动窗口构成,被分配为具有边界框偏移量的前景或背景样本。由于这些手工设计和数据无关的锚框,anchor-based检测器的训练目标通常是次优的,并且需要仔细调整超参数。最近,FCOS和CornerNet通过引入anchor-free框架,为全卷积检测器提供了不同的视角。然而,这些框架仍然需要一个手工设计的去重后处理步骤,即非极大值抑制(NMS)。由于NMS是一种启发式方法,对所有实例都采用恒定的阈值,因此需要仔细调优,且可能不鲁棒,尤其是在拥挤场景中。相比之下,本文在anchor-free框架的基础上提出了一种预测感知的一对一分配规则进行分类,以弃置不可训练的NMS。
为了实现端到端的检测,以前的文献探索了许多方法。具体地,在早期研究中,许多基于循环神经网络的检测框架试图直接产生一组边界框。尽管它们原则上允许了端到端的学习,但它们只在一些小数据集上表现出有效性,并且没有与现代的基线进行比较。另一方面,Learnable NMS提出使用一个非常深且复杂的网络来学习去重,取得了与NMS相当的性能。但它是由分离的组件构建的,没有给出实现端到端训练的有效解决方案。最近,relation network和DETR将注意力机制应用于目标检测,对不同预测之间的成对关系进行建模。通过使用一对一的分配规则和直接的集合损失,它们不需要任何额外的后处理步骤。然而,在执行海量预测时,这些方法需要高昂的成本,使得它们不适用于稠密预测框架。由于缺乏图像先验和多尺度融合机制,DETR的训练时间比主流检测器长得多,在小目标上的性能也较低。与上述方法不同,我们的方法是第一个基于全卷积网络能够端到端的目标检测。
为了揭示标签分配对端到端目标检测的影响,我们在COCO数据集上构建了几个传统标签分配的消融研究。如表1所示,所有实验均基于FCOS框架,去掉其中心性分支来实现头对头的(head-to-head)比较。结果证明了一对多分配在特征表示上的优越性和一对一分配在弃置NMS上的潜力。
由于NMS后处理在稠密预测框架中被广泛采用,一对多的标签分配成为分配训练目标的常规方式。充足的前景样本导致了强大且鲁棒的特征表示。然而,当弃置NMS时,由于一对多标签分配冗余的前景样本,重复的假阳性(false-positive)预测可能导致性能的急剧下降,例如在FCOS基线上28.4% mAP绝对下降。此外,表1中报告的mAR表示前100分数预测的召回率。在没有NMS的情况下,一对多的分配规则会导致大量分数高的重复预测,从而降低召回率。因此,仅依靠一对多的分配方式,检测器很难实现具有竞争力的端到端检测。
MultiBox和YOLO证明了将一对一的标签分配应用于稠密预测框架的潜力。在本文中,我们评估了两种一对一的标签分配规则,以揭示与弃置NMS的联系。这些规则按照两个广泛使用的一对多的标签分配来修改:Anchor规则和Center规则。具体来说,Anchor规则基于RetinaNet,每个真值实例只分配给交并比(IoU)最大的锚。Center规则基于FCOS,每个真值实例只分配给预定义的特征层中最靠近该实例中心的像素。
如表1所示,与一对多的标签分配相比,一对一的标签分配使得没有NMS的全卷积检测器可以极大地缩小有NMS和无NMS的差距,获得尚可的性能。例如,基于Center规则的检测器与FCOS基线相比获得了21.5% mAP绝对增益。此外,由于它避免了NMS在复杂场景下的错误抑制,因此进一步提升了召回率。尽管如此,这里仍然存在两个尚未解决的问题。首先,当应用一对一的标签分配时,有NMS和无NMS的检测器之间的性能差距仍然不可忽略。其次,由于对每个实例的监督更少,一对一的标签分配的性能仍然劣于FCOS基线。
在本文中,为了实现具有竞争力的端到端目标检测,我们提出了一种混合标签分配和一个新的3D最大滤波(3DMF)。混合标签分配由提出的预测感知一对一(POTO)标签分配和改进的一对多标签分配(辅助损失)组成。利用这些技术,我们的端到端框架可以弃置NMS后处理,并保持强大的特征表示。
手工设计的一对一标签分配遵循着固定的规则。然而,对于复杂场景中的各种实例,该规则可能是次优的,例如不同圆心目标的Center规则。因此,如果分配过程强行将次优的预测分配为唯一的前景样本,网络收敛的难度可能会大大增加,导致更多的假阳性预测。为此,我们通过根据预测质量来动态分配样本,提出了一种新的预测感知一对一(POTO)标签分配规则。
令Ψ\PsiΨ表示所有预测的索引集合。GGG和NNN分别对应真值实例的数目和预测的数目,在稠密预测检测器中通常G≪NG\ll NG≪N。π^∈ΠGN\hat{\pi}\in\Pi_G^Nπ^∈ΠGN表示NNN个预测的GGG-排列。我们的POTO旨在生成一个预测的合适排列π^\hat{\pi}π^的作为前景样本。训练损失表示为公式1,由前景损失Lfg\mathcal{L}_{fg}Lfg和背景损失Lbg\mathcal{L}_{bg}Lbg组成。
L=∑iGLfg(p^π^(i),b^π^(i)∣ci,bi)+∑j∈Ψ∖R(π^)Lbg(p^j)(1)\mathcal{L}=\sum_i^G\mathcal{L}_{fg}(\hat{p}_{\hat{\pi}(i)},\hat{b}_{\hat{\pi}(i)}|c_i,b_i)+\sum_{j\in\Psi\setminus\mathcal{R}(\hat{\pi})}\mathcal{L}_{bg}(\hat{p}_j)\tag{1} L=i∑GLfg(p^π^(i),b^π^(i)∣ci,bi)+j∈Ψ∖R(π^)∑Lbg(p^j)(1)其中,R(π^)\mathcal{R}(\hat{\pi})R(π^)表示分配的前景样本对应的索引集合。对于第iii个真值,cic_ici和bib_ibi分别是其类别标签和边界框坐标。而对于第π^(i)\hat{\pi}(i)π^(i)个预测,p^π^(i)\hat{p}_{\hat{\pi}(i)}p^π^(i)和b^π^(i)\hat{b}_{\hat{\pi}(i)}b^π^(i)对应其预测的分类分数和预测的框坐标。
为了实现有竞争力的端到端检测,我们需要找到一个合适的标签分配π^\hat{\pi}π^。如公式2所示,先前的工作通过使用前景损失作为匹配损失,将其视为二分图匹配问题,可以通过匈牙利算法快速地求解。
π^=argminπ∈ΠGN∑iGLfg(p^π^(i),b^π^(i)∣ci,bi)(2)\hat{\pi}=\underset{\pi\in\Pi_G^N}{\mathrm{arg~min}}\sum_i^G\mathcal{L}_{fg}(\hat{p}_{\hat{\pi}(i)},\hat{b}_{\hat{\pi}(i)}|c_i,b_i)\tag{2} π^=π∈ΠGNarg mini∑GLfg(p^π^(i),b^π^(i)∣ci,bi)(2)然而,前景损失通常需要额外的权重来缓解优化问题,例如不平衡的训练样本和多个任务的联合训练。如表1所示,这一性质使得该训练损失不是匹配损失的最佳选择。因此,如公式3和公式4所示,我们提出了一个更加干净有效的方式(POTO)来寻找更好的分配。
π^=argmaxπ∈ΠGN∑iGQi,π(i)(3)\hat{\pi}=\underset{\pi\in\Pi_G^N}{\mathrm{arg~max}}\sum_i^GQ_{i,\pi(i)}\tag{3} π^=π∈ΠGNarg maxi∑GQi,π(i)(3)其中:
Qi,π(i)=I[π(i)∈Ωi]⏟spatialprior⋅(p^π(i)(ci))1−α⏟classification⋅(IoU(bi,b^π(i)))α⏟regression(4)Q_{i,\pi(i)}=\underbrace{\mathbb{I}[\pi(i)\in\Omega_i]}_{\mathrm{spatial~prior}}\cdot\underbrace{(\hat{p}_{\pi(i)}(c_i))^{1-\alpha}}_{\mathrm{classification}}\cdot\underbrace{(\mathrm{IoU}(b_i,\hat{b}_{\pi(i)}))^\alpha}_{\mathrm{regression}}\tag{4} Qi,π(i)=spatial priorI[π(i)∈Ωi]⋅classification(p^π(i)(ci))1−α⋅regression(IoU(bi,b^π(i)))α(4)这里,Qi,π(i)∈[0,1]Q_{i,\pi(i)}\in[0,1]Qi,π(i)∈[0,1]表示提出的第iii个真值与第π(i)\pi(i)π(i)个预测的匹配质量。它同时考虑了空间先验、分类置信度和回归质量。Ωi\Omega_iΩi表示第iii个真值的候选预测集合,即空间先验。空间先验被广泛应用于训练阶段。例如,FCOS采用了中心采样策略,仅将真值实例中心部分的预测作为前景样本。我们也将其应用在POTO中来取得更高的性能,但它并不需要弃置NMS (更多细节参考4.2.2节)。为了实现平衡,我们利用公式4中的分类分数p^π(i)(ci)\hat{p}_{\pi(i)}(c_i)p^π(i)(ci)和回归质量IoU(bi,b^π(i))\mathrm{IoU}(b_i,\hat{b}_{\pi(i)})IoU(bi,b^π(i))的加权几何平均数来定义质量。超参数α∈[0,1]\alpha\in[0,1]α∈[0,1]调整分类和回归之间的比例,默认采用α=0.8\alpha=0.8α=0.8。如表1所示,POTO不仅缩小了与NMS的差距,而且提高了性能。
除了标签分配,我们尝试设计一个有效的结构来实现更具竞争力的端到端检测。为此,我们首先展示重复预测的分布情况。如表2所示,对于一个现代的基于FPN的检测器,当将NMS分别应用于每个尺度时,性能有明显的下降。此外,我们发现重复预测主要来自于置信度最高的预测附近的空间区域。因此,我们提出了一个名为3D最大滤波(3DMF)的新模块来抑制重复预测。
卷积是具有平移等变性(translational equivariance)的线性操作,对不同位置的相似模式产生相似的输出。然而,这种性质对去重有很大的阻碍,因为对于稠密预测检测器来说,同一实例的不同预测通常具有相似的特征。最大滤波是一种基于秩的非线性滤波,可以用来弥补卷积在局部区域的可识别力。此外,在基于关键点的检测器,如CenterNet和CornerNet中,也使用了最大滤波作为一种新的后处理步骤来代替非极大值抑制。它展示出了执行去重的一些潜力,但是不可训练的方式阻碍了有效性和端到端训练。同时,最大滤波只考虑了单尺度特征,这对于广泛使用的基于FPN的检测器来说是不合适的。
因此,我们将最大滤波扩展到多尺度版本,称为3D最大滤波,它对FPN的每个尺度进行特征变换。在特征图的每个通道分别采用3D最大滤波。
x~s={x~s,k:=Bilinearxs(xk)∣∀k∈[s−τ2,s+τ2]}(5)\tilde{x}^s=\left\{\tilde{x}^{s,k}:=\underset{x^s}{\mathrm{Bilinear}}(x^k)|\forall k\in\left[s-\frac{\tau}{2},s+\frac{\tau}{2}\right]\right\}\tag{5} x~s={x~s,k:=xsBilinear(xk)∣∀k∈[s−2τ,s+2τ]}(5)具体来说,如公式5所示,给定FPN尺度sss中的一个输入特征xsx^sxs,我们首先采用双线性运算将来自τ\tauτ个相邻尺度的特征插值到与输入特征xsx^sxs相同的尺寸。
yis=maxk∈[s−τ2,s+τ2]maxj∈Niϕ×ϕx~js,k(6)y^s_i=\underset{k\in\left[s-\frac{\tau}{2},s+\frac{\tau}{2}\right]}{\mathrm{max}}\underset{j\in\mathcal{N}_i^{\phi×\phi}}{\mathrm{max}}\tilde{x}_j^{s,k}\tag{6} yis=k∈[s−2τ,s+2τ]maxj∈Niϕ×ϕmaxx~js,k(6)然后,如公式6所示,对于尺度sss中的空间位置iii,在τ\tauτ个尺度ϕ×ϕ\phi×\phiϕ×ϕ空间距离的预定义3D相邻tube中获得最大值yisy^s_iyis。该操作可以通过高效的3D最大池化运算来轻松实现。
此外,为了将3D最大滤波嵌入到现有框架中实现端到端的训练,我们提出了一个新的模块,如图3所示。该模块利用最大滤波选择局部区域内激活值最高的预测,可以增强与其它预测的区分度。由于这个性质,如图2所示,我们采用3DMF来细化粗糙稠密预测并抑制重复预测。此外,所有的模块都是由简单的可微运算构建的,只有很小的计算开销。
此外,在使用NMS时,如表1所示,POTO和3DMF的性能仍然不如FCOS基线。这种现象可能归因于一对一的标签分配提供较少的监督,使得网络难以学习到强大鲁棒的特征表示。这会进一步减小分类的可识别力,从而导致性能下降。为此,受之前许多工作的启发,我们引入了基于一对多标签分配的辅助损失来提供足够的监督,如图2所示。
与ATSS类似,我们的辅助损失使用改进的一对多标签分配,采用了focal loss。具体来说,一对多的标签分配首先在每个FPN阶段根据公式4中提出的匹配质量将前9的预测作为候选。然后将匹配质量超过统计阈值的候选分配为前景样本。统计阈值由所有候选匹配质量的均值和标准差之和计算得到。
介绍了一些实现细节。
加入各个模块后显著地抑制了重复预测,具体的实验结论可以参照原文。
空间先验以及合适的超参数α\alphaα的重要性,具体的实验结论可以参照原文。
公式4质量函数中,乘法融合比加法融合效果更好,具体的实验结论可以参照原文。
3DMF、辅助损失以及端到端的有效性,具体的实验结论可以参照原文。
不同空间范围ϕ\phiϕ和尺度范围τ\tauτ设置的影响,重复预测主要来自于相邻尺度的局部区域,具体的实验结论可以参照原文。
性能随训练时间的对比,具体的实验结论可以参照原文。
使用更大的主干依然鲁棒和有效,具体的实验结论可以参照原文。
在CrowdHuman数据集上的性能对比,具体的实验结论可以参照原文。
本文提出了预测感知的一对一标签分配和3D最大滤波来弥补全卷积网络和端到端目标检测之间的差距。通过辅助损失,我们的端到端框架在COCO和CrowdHuman数据集上取得了优于许多使用了NMS的SOTA检测器的性能。我们的方法在复杂和拥挤的场景中也表现出了巨大的潜力,这可能有利于许多其它的实例级任务。
下一篇:debian-ntp服务器配置