Soft-NMS – Improving Object Detection With One Line of Code

参考  Soft-NMS – Improving Object Detection With One Line of Code - 云+社区 - 腾讯云

摘要

非最大抑制是目标检测流程的重要组成部分。首先,它根据所有检测框的得分对它们进行排序。选择得分最大的检测框M,抑制与M有显著重叠(使用预定义阈值)的所有其他检测框。这个过程递归地应用于其余的框。按照算法的设计,如果一个目标重叠在预定义的阈值,就丢弃它。为此,我们提出Soft-NMS,衰变的算法检测的所有其他目标作为一个连续函数的重叠与。因此,没有目标在这一过程中消除。Soft-NMS获得一致的改善coco-stylemAP指标,在标准数据集PASCAL VOC 2007 (RFCN 和Faster-RCNN上为) MS-COCO (R-FCN上1.3% 和Faster-RCNN上为 .1%) 没有过改变任何额外的hyper-parameters。NMS算法使用Deformable R-FCN,Sost-NMS在单一模型下将目标检测的最新水平从39.8%提高到40.9%。此外,Soft-NMS和传统的NMS计算复杂度很接近,因此能够有效实现。由于Soft-NMS不需要任何额外的训练,而且易于实现,因此可以轻松地集成到任何目标检流程中。

1、简介

目标检测是计算机视觉中的一个基本问题,算法为指定的目标类别生成边界框,并为它们分配分类分数。它在自动驾驶、视频/图像索引、监控等方面有许多实际应用。因此,为目标检测流程提出的任何新组件都不应该创建计算瓶颈,否则在实际实现中很容易被“忽视”。此外,如果引入了一个复杂的模块,需要对模型进行再训练,导致性能略有提高,也会被忽略。然而,如果一个简单的模块可以在不需要对现有模型进行任何重新训练的情况下提高性能,那么它将被广泛采用。为此,我们提出了一种Soft-NMS算法,作为当前目标检测流程中传统NMS算法的替代。

传统的目标检测流程采用基于多尺度滑动窗口的方法,根据每个窗口计算的特征为每个类分配前景/背景分数。然而,相邻的窗口通常具有相关的分数(这增加了假正性),因此使用非最大抑制作为后处理步骤来获得最终检测。随着深度学习的出现,滑动窗口方法被卷积神经网络生成的类别无关区域建议所取代。在目前最先进的检测器中,这些建议输入到分类子网络中来为他们分配特定的分数。另一个并行的回归网路对这些区域的位置进行精炼。在目前最先进的检测器中,这些这种细化过程改进了目标的定位,但也会导致杂散检测,因为多个建议常常会回归到相同的兴趣区域(RoI)。因此,即使在最先进的探测器中,非最大抑制也用于获得最终的检测集,因为它大大减少了误报的数量。

Non-maximum抑制始于一列得分为的检测框。选择最大分数为的框,将这个框从中删除并附加到最后的检测结果上,同时在中删除和的重叠大于阈值的框。最终剩下的框继续进行这个操作。NMS一个主要的问题是将邻近的框设置成0。因此,如果一个框确实在重叠的阈值中,它将会被忽略,导致平均精度降低。然而,如果我们降低检测分数,作为与的重叠函数。它依然是一个排列的列表,尽管置信度更低。图1给出了一个例子。

                        

根据这个直观的理解,我们提出了对传统的贪婪NMS算法进行一行的改变,在其中我们降低检测分数作为重叠的增加函数,来代替NMS中分数设置为0。直观上,如果一个边界框与的重叠度非常高,那么就应该给它一个非常低的分数,如果重叠度非常低,则可以保持原来的检测分数。这种Soft-NMS算法如图2所示。在PASCAL VOC和MS-COCO等标准数据集上,Soft-NMS可以显著提高状态目标检测器在多个重叠阈值下的平均测量精度。由于Soft-NMS不需要任何额外的训练,而且易于实现,因此可以很容易地集成到目标检测流程中。

2、相关工作

近50年来,NMS一直是计算机视觉中许多检测算法的重要组成部分。它首先应用于边缘检测技术。后来, 已经应用于多个任务比如,特征点检测、人脸检测和目标检测。在边缘检测中,NMS通过边缘细化来去除伪响应。在特征点检测器中,NMS是一种有效的局部阈值化方法,可以获得唯一的特征点检测。在人脸检测中,利用重叠准则将边界盒划分为互不相交的子集,从而实现了人脸识别。最终检测获得的平均坐标检测盒的。对人脸检测,Dalal和Triggs证明了一个贪婪的NMS算法,一个边界框的最大检测分数选择及其邻近的框抑制重叠使用一个预定义的阈值提高了性能的方法用于人脸检测。从那时起,贪婪最大抑制开始于一个带有得分的检测框列表。

令人惊讶的是,检测流程的这一组成部分十多年来一直没有受到影响。当使用平均精度(AP)作为评价指标时,Greedy NMS仍然获得了最好的性能,因此被应用在最先进的检测器中。一些基于学习的方法被提出作为贪婪流程的替代方法,这些方法在目标类检测方面获得了良好的性能。例如,[26]首先计算每一对检测框之间的重叠。然后执行亲和传播聚类,为每个聚类选择代表最终检测框的示例。在[21]中提出了该算法的一个多类版本。然而,对象类检测是另一个问题,所有类的目标实例在每张图像上同时计算,因此,我们需要为所有类选择一个阈值,并生成一组固定的框。由于不同的阈值可能适用于不同的应用程序,在一般的目标检测中,平均精度是使用一个特定类中所有对象实例的排名列表来计算的。因此,贪心流程在一般目标检测指标上表现良好。

3、背景

在本节中,我们将简要描述用于最先进的目标检测器的目标检测流程。在推理过程中,目标检测网络使用深度卷积神经网络(CNN)对图像进行一系列卷积操作。该网络在L层上分为两个分支,一个分支生成区域建议,另一个分支通过将建议网络生成的ROI内的卷积特征集在一起进行分类和回归。该建议网络为卷积特征图中每个像素处的多尺度、高宽比锚盒生成分类分数和回归偏移量。然后,NMS对这些锚盒进行排序,并选择顶部K(≈6000)个锚,将边界盒的回归偏移量添加到其中,以获得每个锚的图像级坐标。将贪心非最大抑制应用于top K锚,最终生成区域建议。

分类网络为建议网络生成的每个建议生成分类和回归得分。由于网络中没有强制它为一个目标生成唯一RoI的约束,所以多个建议可能对应于同一个目标。因此,除了第一个正确的边界框外,同一目标上的所有其他框都将生成假正性。为了缓解这一问题,对每个类的检测盒分别执行非最大抑制,并设置重叠阈值。由于检测的数量通常很小,并且可以通过修剪低于非常小的阈值的检测来进一步减少,因此在这个阶段应用非最大抑制在计算上并不昂贵。提出了一种在目标检测管道中实现非最大抑制的方法。目标检测流程概述如图3所示。

                                       

4、Soft-NMS

目前的检测评价标准强调精确定位,测量多个重叠阈值(0.5 ~ 0.95)下检测框的平均精度。因此,在评价真正性时,当重叠准则为0.7时,采用阈值为0.3的NMS会导致平均精度下降(我们从这里开始将检测评价阈值称为)。这是因为,可能有一个检测框非常接近一个目标(重叠在0.7内),但分数略低于M (M没有覆盖目标),因此被低压制。这种情况下的可能性将增加的重叠增加阈值标准。因此,抑制所有邻近的低Nt检测盒将增加失误率。

此外,当较低时,使用像0.7这样的高会增加误报,从而降低多个阈值的平均精度。在这种情况下,假负性的增加将远远高于真正性的增加,因为目标的数量通常比检测器生成的ROI的数量小得多。因此,使用高NMS阈值也不是最优的。

为了克服这些困难,我们将更详细地讨论NMS算法。NMS算法中的修剪步骤可以写成一个重评分函数,

                                           \large s_i =\left\{\begin{matrix} s_i, iou (M,b_i)<N_t& \\ 0, iou (M,b_i)\geq N_t & \end{matrix}\right.

因此,NMS在决定应该保留或删除的邻域时设置了一个硬阈值。如果包含一个没有被覆盖的目标,它将不会导致在较低的检测阈值处出现遗漏。然而,如果没有覆盖任何其他目标(而覆盖了一个目标),即使在它的分数下降到高于真检测值之后,它仍然会生成一个假阳性。因此,NMS应考虑以下条件,

  • 降低相邻检测的分值,使其增加假正性率的可能性更小,同时在检测等级列表中高于明显的假正性率。
  • 去除低NMS阈值的邻域检测将是次优的,当评估在高重叠阈值下执行时,将增加失误率。
  • 当使用高NMS阈值时,在重叠阈值范围内测量的平均精度会下降。

Soft-NMS的资源函数:

衰减与重叠的其他检测框的分数,似乎是改善NMS的一种很有前途的方法。同样明显的是,与重叠程度较高的检测盒的分数应该衰减得更多,因为它们更有可能是假阳性。因此,我们建议使用以下规则更新修剪步骤,

                                        \large s_i =\left\{\begin{matrix} s_i,\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ iou (M,b_i)<N_t& \\ s_i(1-iou(M,b_i)), iou (M,b_i)\geq N_t & \end{matrix}\right.                          

上述函数会使阈值以上的检测分数衰减为与重叠的线性函数,因此远离的检测盒不会受到影响,距离很近的检测盒会受到更大的惩罚。

但是,它在重叠方面不是连续的,并且当达到的NMS阈值时,会使用一个突然的惩罚。如果惩罚函数是连续的,那将是理想的,否则它将导致对检测序列的突然变化。连续罚函数在无重叠时无罚,在高重叠时罚很高。此外,当重叠较低时,它应该逐渐增加惩罚,因为不应该影响与它重叠很低的箱子的分数。但是,当box 与M的重叠接近1时,应该受到显著的惩罚。考虑到这一点,我们建议用高斯惩罚函数更新剪枝步骤如下:

                                          \large s_i=s_i e^{-\frac{iou(M.b_i)^2}{\sigma }},\forall b_i \not\in D

此更新规则应用于每次迭代,并更新所有剩余检测框的分数。

Soft-NMS算法形式化描述如图2所示,其中为基于重叠的权重函数。Soft-NMS中每一步的计算复杂度为,其中N为检测框数。这这是因为所有与M重叠的检测框的得分都会更新。因此,对于N个检测盒,Soft-NMS的计算复杂度为,与传统的贪婪相同。由于NMS并不是应用于所有的检测框(在每次迭代中删除具有最小阈值的框),因此此步骤在计算上并不昂贵,因此不会影响当前检测器的运行时间。

意,Sost-NNMS也是一种贪婪算法,并没有找到全局最优的重新打分检测框。检测框的重评分采用贪婪的方式进行,对局部得分高的检测不进行抑制。然而,Soft-NMS是一种广义的非最大抑制,传统的NMS是一种特殊的情况,具有不连续的二元加权函数。除了这两个函数外,还可以利用考虑重叠和检测分数的Soft-NMS来探索参数更多的函数。例如,可以使用像Gompertz函数这样的广义逻辑函数实例,但是这样的函数会增加超参数的数量。

                                   

5、数据集和评估

我们在PASCAL VOC和MS-COCO两个数据集上进行了实验。Pascal数据集有20个目标类别,而MS-COCO数据集有80个目标类别。我们选择VOC 2007测试分区来衡量性能。对于MS-COCO数据集,对5000张公开可用的微型图像集进行敏感性分析。

我们还展示了测试开发分区上的结果,以评估我们的方法,我们实验了三种最先进的检测器,即Fast R-CNN, R-FCN和Deformable-RFCN。对于PASCAL数据集,我们选择了由作者提供的公开可用的预训练模型。Fast R-CNN检测器用VOC 2007训练集进行训练,R-FCN检测器用VOC 2007和2012训练集进行训练。对于MS-COCO,我们还使用Fast R-CNN的公共可用模型。然而,由于R-FCN还没有公开可用的基于MS-COCO的训练模型,所以我们从ResNet-101 CNN架构开始,用Caffe训练我们自己的模型。简单的修改,如5个尺度的RPN锚,最小图像大小为800,16个图像每小批和256 ROIs每图像使用。并行对8个GPU进行训练。注意,我们的实现比R-FCN中报告的在没有使用多尺度培训或测试的情况下提高了1.9%的准确性。因此,这是一个强大的baselineR-FCN对MS-COCO。这两个检测器都使用0.3作为默认的NMS阈值。在灵敏度分析部分,我们也改变了这个参数,并显示结果。我们还训练了具有相同设置的Deformable R-FCN。在阈值为10e-4时,使用4个CPU线程,80个类每幅图像占用0.01秒。每次迭代后,低于阈值的检测将被丢弃。这减少了计算时间。在10e-2时,单个内核的运行时间为0.005秒。我们将MS-COCO上每幅图像的最大检测量设置为400,评估服务器选择每类前100名的检测量来生成度量(我们确认coco评估服务器直到2017年6月才选择每幅图像前100名的得分检测量)。将最大检测值设置为100可以将coco样式的AP降低0.1。

6、实验

在本节中,我们展示了比较结果,并进行敏感性分析,以显示Soft-NMS比传统NMS的鲁棒性。我们还进行了特定的实验,以了解为什么软-NMS比传统的NMS表现得更好,以及在哪里表现得更好。

6.1、结果

在表1中,我们将R-FCN和Fast R-CNN与传统的MS-COCO上的非最大抑制和Soft-NMS进行了比较。当使用线性加权函数和σ0.5高斯权重函数时,我们设置0.3。很明显,Soft-NMS(使用高斯和线性加权函数)在所有情况下都提高了性能,特别是当AP在多个重叠阈值下计算并取平均值时。例如,对于R-FCN和Fast R-CNN,我们分别获得1.3%和1.1%的改进,这对于MS-COCO数据集来说是非常重要的。注意,我们仅通过修改NMS算法就获得了这种改进,因此它可以很容易地应用于多个检测器,并且只需进行最小的修改。我们在PASCAL VOC 2007测试集上进行了相同的实验,如表1所示。我们还报告了多个重叠阈值(如MS-COCO)的平均精度。即使在PASCAL VOC 2007上,对于Fast R-CNN和R-FCN,Soft-NMS都有1.7%的改善。对于不基于建议的SSD、YOLOv2等检测器,利用线性函数,Sost-NMS仅得到0.5%的改进。这是因为基于建议检测器具有更高的查全率,因此Soft-NMS在较高的下具有更大的提高查全率的潜力。

从这里开始,在所有的实验中,当我们提到Soft-NMS时,它使用高斯加权函数。在图6中,我们还展示了MS-COCO的每个类的改进。有趣的是注意到,Soft-NMS当应用于R-FCN时,对检测动物的性能提升比较明显,比如斑马、长颈鹿、羊、大象、马,AP有3 - 6%的提升,对烤面包机,体育球,吹风机了这样的目标提升效果比较明显,但是这些东西很少和动物出现在一幅图中。

                               

6.2、敏感性分析

Soft-NMS具有参数\large \sigma,传统NMS具有重叠阈值参数Nt。我们改变这些参数,并且用MS-COCO的minival集来衡量每个检测器的平均精度。注意,AP在0.3到0.6之间是稳定的,并且在这两个检测器的范围之外显著下降。对于传统的NMS,AP在这个范围内的变化约为0.25%。在0.1 ~ 0.7范围内,Soft-NMS的性能优于NMS。它的性能稳定在0.4到0.7之间,即使在我们在coco-minival集上选择的最佳NMS阈值上,每个检测器的性能也可以提高约1%。在所有的实验中,我们将\large \sigma设置为0.5,尽管一个值为0.6的\large \sigma似乎在COCO minival集上的性能更好。这是因为我们以后进行了敏感性分析实验和0.1%的差异不显著。

6.3、Soft-NMS是否效果更好

定位性能:当Soft-NMS在性能上获得显著提高时,单凭平均精度我们并不能清楚地解释。因此,我们提出了在不同重叠阈值下测量NMS和Soft-NMS的平均精度。我们还改变了NMS和软-NMS超参数,以了解这两种算法的特点。由表3可知,随着NMS阈值的增大,平均精度降低。虽然对于较大的O_t,与较低的N_t相比,较高的N_t获得稍好的性能,但是当使用较低的N_t时,AP不会显著下降。另一方面,使用高N_t导致AP在较低O_t时显著下降,因此当AP在多个阈值上取平均值时,我们观察到性能下降。因此,对于传统的NMS来说,使用较高的Nt获得更好的性能并不能推广到较低的O_t值。 

然而,当我们不同σ值的Soft-NMS,我们观察不同的特点。表3显示,即使我们在较高的O_t中获得更好的性能,在较低的O_t中性能也不会下降。此外,我们还观察到,与传统的NMS相比,无论在较高的O_t中所选择的N_t值如何,软NMS的性能都有显著的提高(∼2%)。同样,最好的任何hyper-parameter的AP(N_t\sigma)选定Soft-NMS总是更好的。这个对比很明显,通过对所有参数进行设置,Soft-NMS最好的参数σ执行比传统NMS Nt中选择硬阈值后效果更好。此外,我们观察到,不管选择的N_t值在更高的O_t时的值如何,Soft-NMS的性能显著优于传统NMS(~ 2%)。此外,对于一个选定的O_t,任何超参数(N_t\sigma)的最佳AP对于Soft-NMS总是更好。这个比较很清楚地表明,在所有参数设置中,Soft-NMS的最佳\sigma参数比传统NMS中选择的硬阈值N_t性能更好。此外,当对所有阈值的性能进行平均时,由于Soft-NMS中的一个参数设置在多个O_t值下都可以很好地工作,因此总体性能增益将被放大。正如所料,低的\sigma值较低不能表现更好和更高的\sigma值在较高的不能表现得更好。与NMS不同,更大的Nt导致很少改善AP,更高的\sigma值导致AP在更高的不显著的改善。因此,较大的\sigma可以提高检测器的性能,以获得更好的定位效果,而NMS的情况并非如此,因为较大的N_t改善甚微。

精度和召回率:最后,我们还想知道在什么情况下,Soft-NMS在不同O_t下的性能优于NMS。请注意,我们对检测分数进行重新评分,并将它们分配给较低的分数,因此我们不期望在较低的召回率下提高精确度。然而,随着O_t和查全率的增加,Soft_NMS在精度上获得了显著的提高。这是因为,传统的NMS给所有与重叠大于N_t的框赋零分。因此,会遗漏许多框,因此在较高的查全率时,精度不会增加。Soft-NMS对相邻的框进行重新评分,而不是完全抑制它们,从而在较高的召回值下提高了精确度。此外,即使在较高的O_t值下召回值较低,Soft-NMS也能获得显著的改进,因为在这种设置下,近误检更有可能发生。

6.4、定性结果

我们在图7中展示了一些定性结果,使用COCO-validation set的图像检测阈值为0.45。我们使用R-FCN检测器来生成检测。有趣的是,当不好的检测(假阳性)与好的检测(真阳性)有很小的重叠时,以及当它们与好的检测有较低的重叠时,Soft-NMS会有所帮助。例如,在street image (No.8)中,一个跨越多个人的大的宽边界框被抑制了,因为它与多个检测框的重叠很小,并且重叠值比它高。因此,它的分数被多次降低,因此被抑制。我们在图9中观察到类似的行为。在沙滩图(1)中,靠近女士手提包的较大的边界框的得分被抑制在0.45以下。我们还看到厨房图像(4号)中碗附近的假正性被抑制。在其他情况下,如斑马、马和长颈鹿图像(图2、5、7和13),检测盒被NMS抑制,而Soft-NMS为相邻的框赋值稍低,因此我们能够检测到0.45阈值以上的真正性。

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Wanderer001

ROIAlign原理

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值