目标检测之七:Soft NMS

https://zhuanlan.zhihu.com/p/102817180

7.Soft NMS 软化非极大抑制

目标检测之七:Soft NMS_第1张图片

NMS后处理图示

NMS(Non-Maximum Suppression,非极大抑制)是检测模型的标准后处理操作,用于去除重合度(IoU)较高的预测框,只保留预测分数最高的预测框作为检测输出。Soft NMS由[6]提出。在传统的NMS中,跟最高预测分数预测框重合度超出一定阈值的预测框会被直接舍弃,作者认为这样不利于相邻物体的检测。提出的改进方法是根据IoU将预测框的预测分数进行惩罚,最后再按分数过滤。配合Deformable Convnets(将在之后的文章介绍),Soft NMS在MS COCO上取得了当时最佳的表现。算法改进如下:

目标检测之七:Soft NMS_第2张图片

Soft-NMS算法改进

上图中的即为软化函数,通常取线性或高斯函数,后者效果稍好一些。当然,在享受这一增益的同时,Soft-NMS也引入了一些超参,对不同的数据集需要试探以确定最佳配置。

解析Soft NMS论文的一个小知识点:Improving Object Detection With One Line of Code

可以根据论文Table3中对应AP@(置信度阈值)的  值设置iou_thr(nms的值:

左边一半(红色框)是NMS,右边一半(绿色框)是Soft NMS。在NMS部分,相同  (置信度阈值)条件下(较小的情况下),基本上  值越大,其AP值越小。这主要是因为 值越大,有越多的重复框没有过滤掉。

目标检测之七:Soft NMS_第3张图片

左边一半(红色框)是NMS,右边一半(绿色框)是Soft NMS。

MMDetection中,Soft NMS 软化非极大抑制:(源码解析)

test_cfg = dict(
    rpn=dict(
        nms_across_levels=False,
        nms_pre=1000,
        nms_post=1000,
        max_num=1000,
        nms_thr=0.7,
        min_bbox_size=0),
      rcnn=dict(
        score_thr=0.05, nms=dict(type='nms', iou_thr=0.5), max_per_img=100)   # max_per_img表示最终输出的det bbox数量
    # soft-nms is also supported for rcnn testing
    # e.g., nms=dict(type='soft_nms', iou_thr=0.5, min_score=0.001)            # soft_nms参数

你可能感兴趣的:(目标检测)