非极大值抑制(Non-Maximum Suppression,简称NMS)是计算机视觉和目标检测领域常用的技术之一。它的主要目的是从一组重叠的候选框(或者说边界框)中选择出最具代表性的目标框,以减少重复检测和提高检测结果的准确性。
具体来说,NMS 的工作原理如下:
-
输入候选框和它们的置信度分数:通常,在目标检测任务中,算法会生成一组候选框,每个候选框都伴随着一个置信度分数,该分数表示该候选框内是否包含目标的概率。
-
按照置信度分数排序:首先,根据候选框的置信度分数对所有候选框进行降序排序,即将得分最高的候选框排在前面。
-
选择最高得分的候选框:从排序后的候选框列表中选择得分最高的候选框,并将其添加到最终的目标框列表中。这个候选框通常被认为是最具代表性的目标框之一。
-
去除重叠框:接下来,算法会遍历剩余的候选框,并计算它们与已选择的目标框之间的重叠度。如果某个候选框与已选择的目标框的重叠度(通常使用IoU,即交并比,来衡量)超过了一定的阈值(即
nms_conf_thr
),那么该候选框就会被移除,因为它与已选择的目标框重叠较多,可能代表了相同的目标。 -
重复步骤3和步骤4:这个过程会重复进行,直到所有候选框都被处理完毕。最终,剩下的候选框中将仅保留那些与已选择的目标框重叠不明显的框,从而确保最终的目标框是一组互不重叠且具有高置信度分数的框。
总之,NMS 有助于消除重叠的检测结果,保留最具代表性和置信度高的目标框,从而提高目标检测算法的准确性和稳定性。nms_conf_thr
参数用于控制在进行非极大值抑制时所使用的置信度阈值,即重叠框被移除的阈值。
例如设置NMS阈值
nms_conf_thr=0.5,# 非极大值抑制(NMS)的置信度阈值
nms_backdrop_iou_thr=0.3,# NMS背景框的IoU阈值
nms_class_iou_thr=0.7,# NMS类别之间的IoU阈值