了解用于物体检测的非最大值抑制 (NMS)。了解它如何完善结果、提高准确性并为YOLO 等人工智能应用提供动力。
非最大值抑制(NMS)是计算机视觉中的一项重要后处理技术,尤其是在物体检测管道中。它的主要功能是清理检测模型的原始输出,因为检测模型通常会为同一物体识别出多个重叠的边界框。通过智能过滤这些冗余边框,NMS 可确保图像或视频帧中的每个不同物体都由一个最佳边框来表示,从而显著提高检测结果的清晰度和准确性。
物体检测模型通常会在物体周围生成许多潜在的包围盒,每个包围盒都有一个相关的置信度分数,表示该包围盒包含物体并属于特定类别的可能性。NMS 的工作原理是根据置信度得分和空间重叠度,系统地减少这些提议。这一过程通常包括按照置信度从高到低的顺序对所有检测到的方框进行排序。置信度分数最高的方框被选为最终检测方框。然后,压制或丢弃与该选定方框严重重叠的所有其他方框(超过预定义的 "交集大于联合"(IoU)阈值)。对剩余的方框重复这一过程,直到所有方框都被选中或抑制。这样可以确保只保留最有把握的非重叠方框,从而提供更纯净的输出,如Learn OpenCV 的 NMS 解释等资源中所述。
在人工智能(AI)和机器学习(ML)领域,NMS 对于实现可靠的物体检测性能至关重要,尤其是在Ultralytics YOLO 等模型中。如果没有 NMS,输出结果就会被单个物体的多个方框所干扰,从而导致在下游任务(如物体跟踪或场景理解)中出现潜在错误。通过消除这些冗余检测(通常称为误报),NMS 大大提高了模型预测的精确度。这种改进对于要求高可靠性的应用来说至关重要。您可以在YOLO 性能指标指南中了解 NMS 如何计算平均精度 (mAP)等指标。
NMS 是许多人工智能实际应用的基础:
NMS 是在模型生成初始检测结果后进行的后处理步骤。它不同于检测机制本身,例如基于锚的检测器或无锚检测器所使用的机制。这些架构定义了如何提出候选盒,而 NMS 则完善了这些提议。有趣的是,最近的进步导致了以无 NMS 检测为目标的模型的出现,例如YOLOv10,它集成了在训练过程中避免冗余预测的机制,可能会减少推理延迟。这与传统方法(如 YOLOv8或 YOLOv5等传统方法形成鲜明对比,在这些方法中,NMS 是推理管道的标准组成部分。您可以在我们的文档中找到YOLO11 与 YOLOv10等模型之间的更多比较。
NMS 与Ultralytics 生态系统无缝集成。Ultralytics YOLO 模型在预测和验证阶段默认应用 NMS,以确保输出干净准确。Ultralytics HUB等工具进一步简化了这一过程,使用户能够训练和部署自动处理 NMS 的模型,即使没有深厚的专业技术知识,也能进行高级对象检测。Ultralytics 实用工具参考资料中提供了基本的实施细节。这种集成可确保用户受益于各种计算机视觉任务开箱即用的优化检测结果。您还可以在Ultralytics 术语表中探索其他人工智能概念。