步骤
- 置信度排序:首先根据预测框的置信度(即预测框包含目标物体的概率)对所有预测框进行降序排序。
- 选择最佳预测框:选择置信度最高的预测框作为参考框。
- 计算IoU:计算其他所有预测框与参考框的交并比(Intersection over Union, IoU)。
- 抑制:删除IoU高于某个阈值的所有预测框,因为这些框与参考框重叠太多,可能是重复预测。
- 迭代:从剩余的预测框中选择置信度最高的作为新的参考框,重复步骤3和4,直到所有预测框都被处理。
代码实现
导入必要的库
import numpy as np
定义计算IoU的函数
def iou(boxA, boxB):
# 计算两个边界框的交集坐标
xA = max(boxA[0], boxB[0])
yA = max(boxA[1], boxB[1])
xB = min(boxA[2], boxB[2]