1. NMS

  • 非极大值抑制(Non-Maximum suppression,NMS)是目标检测算法中一个必要的后处理过程,目的是消除同一个物体上的冗余预测框。
  • NMS算法的主要思想是:先对网络预测出的所有边界框按照分数由高到低排序,然后选取分数最高的预测框作为target,分别计算target与其余剩下的预测框的重叠程度(用IoU来衡量),若重叠程度大于某一预先设定的阈值,则认为该预测框与target是同时负责预测同一个物体的,所以将该边界框删除,否则予以保留。接着在未被删除的预测框中选择分数最高的预测框作为新target,重复以上过程,直至判断出所有的框是否应该删除。
  • 这种原始的NMS算法被称为greedy NMS,其被广泛应用于目标检测算法中。但该算法也有缺点,不少论文针对greedy NMS所存在的缺点进行了改进。

2. Soft-NMS

  • Soft-NMS是ICCV2017年的一篇论文。Soft-NMS认为将重叠程度大于一定阈值的预测框直接删除的做法是不妥的,尤其是密集场景的目标检测。密集场景中的两个ground-truth是非常接近的,负责预测这两个ground-truth的那些预测框通常具有比较高的IOU,如果直接将IOU大于阈值的预测框删除,会降低召回率。虽然可以通过调高IOU阈值来提高召回率,但与此同时,却增加了false positive。
  • 为解决这个问题,Soft-NMS设计了一个重新打分机制,为其他预测框进行重新打分,重叠程度越大的预测框,所降低的分数就越多。

    其中,re-sorcing function有线性和高斯两种形式:

    实际上,原始NMS也可以看成是re-sorcing过程,其re-sorcing function为:

注意:

  • 线性Soft-NMS和NMS一样,需要设置IoU阈值dssd目标检测 目标检测nms_召回率;高斯Soft-NMS不需要设置IoU阈值dssd目标检测 目标检测nms_召回率,但也存在超参数dssd目标检测 目标检测nms_召回率_03
  • 与NMS相比,Soft-NMS(包括线性或高斯)还多了一个抑制阈值,用于删除re-score后分数太低的预测框。在每轮迭代时,先选择分数最高的预测框作为dssd目标检测 目标检测nms_召回率_04,并对dssd目标检测 目标检测nms_召回率_05中的每一个检测框dssd目标检测 目标检测nms_目标检测_06进行re-score,得到新的score,当该框的新score低于某设定阈值时,则立即将该框删除。
  • 与NMS相比,Soft-NMS对超参数的敏感性更低一些。

3. Adaptive NMS

  • Adaptive NMS是CVPR2019的一篇论文。Adaptive NMS也注意到了IoU阈值对目标检测算法的AP和AR的影响是很大的:低IoU阈值,会使得一些true positive被移除掉,造成漏检,召回率会降低(如蓝色虚线框);高IoU阈值,会产生较多的false positive,造成误检,精确度也会降低(如红色实线框)。同时,如何降低算法对IoU阈值的敏感程度,成为这篇论文的研究重点。
  • 论文指出,算法对IoU阈值的敏感程度主要取决于检测场景的密集程度:密集程度越高,则IoU阈值较高时,检测性能更好;密集程度越低,则IoU阈值较低时,检测性能更好。基于此,Adaptive NMS给每个目标附上一个关于目标所处场景密集程度的输出,并将该输出作为IoU阈值,实现自适应。
  • dssd目标检测 目标检测nms_目标检测_07是网络输出的某个边界框所处环境的密集程度, dssd目标检测 目标检测nms_目标检测_07越大,表示所处环境越密集。记NMS阈值为dssd目标检测 目标检测nms_目标检测_09,则
  • 实际上Adaptive NMS还是要先设置一个阈值dssd目标检测 目标检测nms_召回率,再由密集程度估计网络所估计的密集程度dssd目标检测 目标检测nms_目标检测_07dssd目标检测 目标检测nms_召回率进行调整,得到最终的NMS阈值dssd目标检测 目标检测nms_目标检测_09dssd目标检测 目标检测nms_目标检测_07减轻了算法对I阈值dssd目标检测 目标检测nms_召回率的敏感程度。
  • 密集程度估计网络中,边界框dssd目标检测 目标检测nms_目标检测_06所对应的训练标签dssd目标检测 目标检测nms_dssd目标检测_17dssd目标检测 目标检测nms_目标检测_06与所有共同负责预测同一个GT框的其它边界框dssd目标检测 目标检测nms_召回率_19的最大IoU确定,即

4. IOU-Net

  • IOU-Net是ECCV2018的一篇论文。其出发点是:目标检测网络一般只输出物体的分类置信度和回归所得的边界框,后续的NMS仅基于分类置信度的高低进行冗余边界框的消除是不妥的,因为对于同一个ground-truth,所预测出的边界框会出现一种情况:分类置信度低的预测框可能与ground-truth有较高的IoU,而分类置信度高的预测框与ground-truth的IOU却比较低。这样如果仅基于分类置信度的高低进行冗余边界框的消除,就会保留分类置信度较高而IOU较低的预测框,使得定位准确度较差。
  • 为解决此问题,IOU-Net提出学习边界框的定位精度,并将该定位精度与分类置信度结合后,作为NMS排序所需的分数。