非极大值抑制(Non-maximum suppression,NMS)的意思就是抑制不是极大值的元素。非极大值抑制可以用在很多的方面, 今天讨论一下它在目标框(Bounding Box)上的应用。
我们在做目标识别的时候,有两个主要要实现的目标。一是目标的识别,即识别物体是什么, 是猫或者是狗之类的物体。二是识别目标的位置,我们需要将识别到的物体用框框起来。非极大值抑制可以应用在目标的边框选取上。
滑窗法作为最经典的物体检测方法, 它的原理是创建一个滑窗,在待检测的图片上进行平移检测,通过训练的分类器进行判别评分。但是待检测物体的大小,长宽比例都是不确定的。这样一来,一个区域附近就会出现多个边框,但是我们对于一个物体只需要一个框就足够了,对于这种情况来说, 我们可以使用非极大值抑制这种方法来解决这个问题。
举个例子,如上图(网上图片)所示,我们通过某种物体检测方法得到了脸部的边框,红色的边框都判别为脸部(判别分数达到标准),我们最终的结果只需要一个边框。
我们的做法如下:
1)找出判别得分最高的边框M
2)计算其他边框(都是脸部目标的识别边框)与M的IOU,IOU就是重叠面积。设定阈值,将IOU重叠面积过大(达到阈值)的边框删除,IOU过小则代表着该边框不是该部分的。
3)返回第一步,找出其他位置的边框。
这样一来,我们就会找到唯一的边框。 对于3)你可能会有一些疑问,我都找到唯一的边框M,为什么还要继续寻找。这个是因为, 一张图片中的目标物体不只有一个,可能有多个。3)就是为了寻找这些目标物体的边框。