天天看点

非极大值抑制(non-maximum suppression)的理解与实现

非极大抑制(Non-Maximum Suppression)

Non-Maximum Suppression for Object Detection in Python

RCNN 和微软提出的 SPP_net 等著名的目标检测模型,在算法具体的实施过程中,一般都会用到 non-maximum suppress(非最大值抑制,抑制即忽略, 也即忽略那些值(IoU)高于提供的阈值的) 的机制。

引入 non-maximum suppression 的目的在于:根据事先提供的 score 向量,以及 regions(由不同的 bounding boxes,矩形窗口左上和右下点的坐标构成) 的坐标信息,从中筛选出置信度较高的 bounding boxes。

其基本操作流程如下:

首先,计算每一个 bounding box 的面积:

(x1, y1) ⇒ 左上点的坐标,(x2, y2) ⇒ 右下点的坐标;

(x2-x1+1)x(y2-y1+1)

根据 scores 进行排序(一般从小到大),将 score 最大的bounding box置于队列,接下来计算其余 bounding box 与当前 score 最大的 bounding box 的 IoU,抑制(忽略也即去除)IoU大于设定阈值的 bounding box;

重复以上过程,直至候选 bounding boxes 为空;