本文参考自: 原文地址
非极大值抑制(NMS),其思想为:
对于重叠的候选框,若大于规定阈值(某一提前设定的置信度),则删除;低于阈值则保留。
对于无重叠的候选框,都保留。
IOU定义:两个边界框的交集部分除以它们的并集。
注:置信度定义(YOLO):置信度分数反应的是一个边界框是否包含对象并且预测对象的精确度
非极大值抑制的流程:
1.根据置信度的分进行排序
2.选择置信度最高的边界框添加到最终的输出列表中,并将其从边界框列表中删除
3.计算所有边界框的面积
4.计算置信度最高的边界框与其他便捷而框的IOU
5.删除大于阈值的边界框
6.重复上述过程,直到边界框列表为空
import cv2
import numpy as np
def nms(bounding_boxes,confidence_score,threshold):
#如果没有边界框,将返回空列表
if len(bounding_boxes)==0:
return [],[]
#边界框
boxes=np.array(bounding_boxes)
#边界框的坐标
start_x=boxes[:,0]
start_y=boxes[:,1]
end_x=boxes[:,2]
end_y=bo