论文笔记《Soft-NMS – Improving Object Detection With One Line of Code》

Abstract

Non-maximum suppression(NMS)是目标检测流程中重要的组成部分。首先根据得分对bbox排序,然后选择得分最高的bbox M, 将与M有较大重叠的bbox抑制掉。以前的方法中,如果一个bbox重叠率大于设定的阈值则称为漏检。所以,提出 Soft-NMS, 一个衰减得分与重叠率成函数关系。该方法在coco-style mAP评价尺度上都有提升。计算复杂度,参数都没有特别增加,很容易集成到任何目标检测框架中。

1. Introduction

目标检测在各个领域都有重要作用,其各个模块都需要谨慎设计,不能称为计算瓶颈。任何需要大量计算、重新训练的模块,如果只能带来一点提升都会被忽略。但是如果一个简单不需要重新训练的模块也能带来性能提升,那么就会被广泛采纳。本文,提出一个S-NMS,作为传统NMS的替代。

一般一个检测框旁边会议多个得分同样很高的检测框(增加虚警率),所以需要采用NMS进行抑制。近年来RPN等方法所产生的ROI已经大大减少,但是仍然需要NMS来减少虚警率。

首先NMS的输入是 $B$ 和 $S$, 选择得分高的 $M$, 抑制掉大部分BBox得到 $D$。这个过程不断迭代剩下的 $B$。这个过程中,将 $M$ 周围的 BBox 的得分设为0,导致漏检了部分目标,如图1所示。

因此,我们在传统的贪心NMS算法中提出一行改动,使得得分的下降随着重叠率的升高的增加,而不是直接为0。

NMS作为检测算法的一个部分已经有50年的历史。第一次是用于边缘检测中,之后逐渐用于特征点检测,人脸检测,目标检测。

  • 边缘检测中,NMS用于细化边缘(edge thinning)移除虚警
  • 特征点检测中,NMS通过局部阈值得到唯一的特征点
  • 人脸检测中,通过重叠率来分割BBox为不连续的子集
  • 人体检测中,Dala等人证明使用贪心NMS,可以实现性能提升

从此之后贪心NMS称为目标检测中默认的算法。近几十年,贪心NMS仍然取得最好的性能。也有一些基于学习的方法被提出。例如:

  • 先进行两两重叠率计算,然后使用相似传播聚类(affinity propagation clustering)选择最后的检测结果[^26]
  • 另一个多类别版本也提出了[^21], 但是多类别检测是一个不同的问题,我们需要选择一个阈值可用于多类的目标
  • 由于不同的目标可能适合不同的NMS阈值,因此采用mAP作为评价

在显著目标检测中,有人提出了推荐子集优化算法[^30]. 其基于MAP,联合优化检测窗口的位置和数量。
在行人检测中,一个二元约束的二元优化方案(a quadratic unconstrained binary optimization, QUBO)[^27],使用检测得分作为一元潜在因子,重叠率作为成对因子用于优化后的检测BBox子集。
另外一些基于学习的框架中,决策处理时结合个体预测得分用于优化选择最后的结果[^15]。
据我们所知,对于一般目标检测,贪心NMS仍然是PASCAL VOC MS-COCO等数据集的baseline方法。

3. Background

这里描述R-CNN系列方法的流程,proposal分支,classifcation分支。proposal提出K个anchor box,然后按得分排序,进行NMS。
分类网络不对ROI做限制,导致可能对一个物体有多个检测框,因此需要用NMS对每个类别筛选BBox。然后在这个基础上在去除一些得分特别低的检测结果。目标检测流程如图3所示。

4. Soft-NMS

  • 当NMS阈值取得低时,例如0.3,那么会导致高IOU评估时的平均精度降低,例如IOU=0.7当NMS阈值取得低时,例如0.3,那么会导致高IOU评估时的平均精度降低,例如IOU=0.7
  • 因为一个高得分的box会抑制周围的目标因为一个高得分的box会抑制周围的目标
  • 当NMS阈值取的高时 $N _ t$ 取 0.7 会增加虚警
  • 并且虚警增加的数量远多于目标(因为ROI数量远多于目标数量),因此使用高NMS也不是一个好选择

NMS算法可以写成如下形式,即一个re-scoring函数

我们的想法是降低高重叠率的box的得分,而不是一起抑制,因此NMS应该考虑以下因素:

  • 抑制一个box周围似然概率更低的box
  • 低NMS是次优的,会造成漏检率增加
  • 高NMS会导致平均精度下降

重新设计函数Soft-NMS
Linear-S-NMS

Gaussian-S-NMS

Soft-NMS 一次的计算复杂度是 $O(N)$, N是检测框的数量。对于所有检测框,那计算复杂度是 $O(N^2)$, 这个与贪心NMS一样。由于目前的NMS是在得分阈值之后进行,因此不是对所有检测框进行,因此计算复杂度不是高。

需要指出,S-NMS也是贪心算法,但是S-NMS是一个更一般的版本,传统的NMS是其特殊情况。除了这两个函数外,其实还可以考虑有更多参数的函数,例如将重叠率,检测得分都考虑进去。例如,一般的逻辑函数Gompertz函数,但是会引入更多超参。

5. 数据集和评估

实验在PASCAL VOC 和 MS-COCO上进行。评估的方法有三个:

  • Faster R-CNN[^24]
  • R-FCN[^16]
  • Deformable-RFCN

采用的评估模型:

  • 在PASCAL上使用的model选择已经训练好的,公开的,由作者提供的模型
  • 在COCO上R-FCN没有训练好的,因此我们在Caffe上自己训练一个,从ResNet-101开始,并做了一些改动,5 scale anchor,800 pixel,16 img/minibatch,256 ROI/img,结果比原作者的提升1.9%
  • 同样 Deformable-R-FCN 也使用相同的设定训练。

传统NMS效率

  • 上述NMS均使用0.3
  • 一张图最多400个检测结果,每个类别最多100个,将每张图最多检测结果降为100,则AP减少0.1
  • 阈值0.0001,4 CPU threads,0.01 s/img,80 classes
  • 阈值0.01, 1 CPU core, 0.005 s/img

6. 实验

我们展现了S-NMS的鲁棒性,并且进行特定实验理解为何S-NMS会比粗汉同NMS好

6.1 结果

表1展示了NMS和S-NMS的有效性,我们设定线性NMS为 $N _ t = 0.3$,高斯NMS $\sigma _ t = 0.5$。S-NMS都在改进。我们比较了S-NMS在MS-COCO每个类别上的改进,我们发现对于动物(马,长颈鹿,羊,大象等)提升有3-6%,但是对一些物体(烤面包机,球等等)提升较少,因为前者更容易出现交叠的情况。

6.2 敏感度分析

图4分析了当$N _ t$ 和 $ \sigma _ t$ 变化时对AP[0.5:0.95]。我们发现0.3到0.6之间AP相对稳定。在后面的实验,未特别说明$\sigma$取0.5。

6.3 什么时候S-NMS work better

定位性能 如表3所示,我们发现两个超参基本都是跟评价指标变化,但是当$N _ t$增加时,AP会降低,但是其取低值时,AP下降没那么多,因此低$N _ t$具有更好的泛化性。但是,高斯S-NMS的参数增高时可以得到更好的性能。并且相比比线性S-NMS更好,提升也更大。

精度与召回率 图5显示了在不同$O _ t$ 下的召回率与精度的关系。我们发现当要求定位精度很高时,S-NMS也有很好的改进,因为传统的NMS是直接将得分置为0,而S-NMS是衰减得分,变相保留了一些BBox。

6.4 量化结果

图7显示了一些检测结果,当IoU阈值为0.45时。

  • No.8 中有一个横跨多个人人群的BBox,它与多个BBox有交集,但是NMS不足以抑制,但是S-NMS可以对其得分进行多次衰减。
  • No.9 中也有相似的现象。
  • No.1 中在女士手包周围的BBox被抑制了。
  • No.4 中在晚旁边的虚警被抑制
  • NO.2,5,6,13 中的动物有些被NMS抑制掉了,但是S-NMS只是稍微降低了得分,但是仍然保留了下来

1509521123325

Reference

[^15]: D. Lee, G. Cha, M.-H. Yang, and S. Oh. Individualness and determinantal point processes for pedestrian detection. In European Conference on Computer Vision, pages 330–346. Springer, 2016.
[^16]: Y. Li, K. He, J. Sun, et al. R-fcn: Object detection via region- based fully convolutional networks. In Advances in Neural Information Processing Systems, pages 379–387, 2016.
[^21]: D. Mrowca, M. Rohrbach, J. Hoffman, R. Hu, K. Saenko, and T. Darrell. Spatial semantic regularisation for large scale object detection. In Proceedings of the IEEE international conference on computer vision, pages 2003–2011, 2015.
[^24]: S. Ren, K. He, R. Girshick, and J. Sun. Faster r-cnn: Towards real-time object detection with region proposal networks. In Advances in neural information processing systems, pages 91–99, 2015.
[^26]: R. Rothe, M. Guillaumin, and L. Van Gool. Non-maximum suppression for object detection by passing messages be- tween windows. In Asian Conference on Computer Vision, pages 290–306. Springer, 2014.
[^27]: S. Rujikietgumjorn and R. T. Collins. Optimized pedestrian detection for multiple and occluded people. In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, pages 3690–3697, 2013.
[^30]: J. Zhang, S. Sclaroff, Z. Lin, X. Shen, B. Price, and R. Mech. Unconstrained salient object detection via proposal sub- set optimization. In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, pages 5733– 5742, 2016.