非极大值抑制(Non-Maximum Suppression,NMS),顾名思义就是抑制不是极大值的元素,可以理解为局部最大搜索。也可以理解为只取置信度最高的一个识别结果。
举例:

如图所示,现在识别出了3个人脸,但该三个人脸其实都为同一个目标,只是位置不同,置信度也不一样。
这时候,我们想要是置信度最高的“0.97”的检测结果,以及位置信息。
那么,我们就可以采用NMS的方式,来得到我们想要的最后的结果。
原理:
对于Bounding Box的列表B及其对应的置信度S,采用下面的计算方式.选择具有最大score的检测框M,将其从B集合中移除并加入到最终的检测结果D中.通常将B中剩余检测框中与M的IoU大于阈值Nt的框从B中移除.重复这个过程,直到B为空.
流程:
如上图所示,首先得到所有的Bounding Box和对应置信度的集合,如下:
A:0.78
B:0.97
C:0.65
从上面的列表中挑选一个置信度最高的为最终的结果
也就是B
注意:
多目标检测时,需要对每个类目进行不同IOU的进行不同的计算
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:目标检测 非极大值抑制(Non-Maximum Suppression,NMS) - Python技术站