1. NMS被广泛用到目标检测技术中,正如字面意思,抑制那些分数低的目标,使最终框的位置更准;
2. 假如图片上实际有10张人脸,但目标检测过程中,检测到有30个框的位置,并且模型都认为它们是人脸,造成这种情况的原因通常是因为一部分人脸被重复框了多次,虽然多个框框的是同一张人脸,但这些重复的框的位置是不同(有的框多了,有的框少了,有的框偏了...),那么NMS的目的就是从这些重复的框中选出一个局部最优的框作为局部的最终输出,理想状态下,30个框经过NMS最终只剩下10个作为整体的最终输出(因为存在有些人脸没有检测到的情况,本文只讨论理想状态)。
3. 大致步骤:
!!!首先创建空集合M用于存放多个局部最优框
a. 选出30个框中得分最高的那个框记作A;
b. 遍历剩下的29个框计并算与A的重叠率,重叠率大于阈值时,删除该框(假设第一轮删除了4个框);
c. 这时A已经确定是最终整体输出的一部分了,将A添加到集合M中;
d. 将剩下25个框重复上述a/b/c步骤,直至没有任意两个框的重叠率大于阈值,最后输出M;
以上是个人见解,如有不同看法欢迎讨论!
原文地址:https://www.cnblogs.com/niulang/p/13043702.html