NMS:
《NMS:Efficient Non-Maximum Suppression》
非极大值抑制,即保留局部最大值而去除局部非最大值
过程:
假设对于某个类别C,假设当前有N个矩形框,这里假设6个,ABCDEFG
首先对这些矩形框按照概率降序排列,选中概率最大的框
对于剩下的框,依次与概率最大的框求IOU,如果IOU大于某个阈值,则将这些框丢弃(置0),并标记保留最大概率框
完成了一次遍历后,留下了一部分框,再从剩下的框中选择概率最大的框,继续根据IOU进行筛选
重复过程,最终保留下了部分矩形框
代码
import numpy as np
def MNS(dets, thresh):
x1 = dets[:, 0]
y1 = dets[:, 1]
x2 = dets[:, 2]
y2 = dets[:, 3]
scores = dets[:, 4]
areas = (x2 - x1 + 1) * (y2 - y1