NMS算法常常在图像目标检测的各种算法中使用。原始图像中,单个检测目标往往被识别出多个位置、大小都不相同的目标检测框,这些检测框可以是类似于这样的名字,bbox(bounding box), region proposal, anchors等等。可以在诸如faster rcnn或YOLO算法中看到。
举例来讲,原始图中包含两个检测物体,每个检测物体会存在许多检测框。因为是同一个物体,因此这些框的IOU值都很高(相比较不同物体的检测框来说)。针对同一个检测目标,有必要只留下置信度(score)最高的那个检测框作为该物体的检测框,其它的都应该过滤掉。
该算法具体的步骤如下:
1、假定有6个带置信率的region proposals,并预设一个IOU的阈值如0.7。
2、按置信率大小对6个框排序: 0.95, 0.9, 0.9, 0.8, 0.7, 0.7。
3、设定置信率为0.95的region proposals为一个物体框;
4、在剩下5个region proposals中,去掉与0.95物体框IOU大于0.7的。
5、重复2~4的步骤,直到没有region proposals为止。
6、每次获取到的最大置信率的region proposals就是我们筛选出来的目标。
这个操作的直观结果,就是图片上每个待检查物体,仅仅保留一个置信率最大region proposals。
凡是与这个置信率最大的框相交面积大于某个阈值的其它框,统统去掉。
因此,调