了解用于物体检测的非最大值抑制 (NMS)。了解它如何完善结果、提高准确性并为YOLO 等人工智能应用提供动力。
非最大值抑制(NMS)是计算机视觉(CV)中广泛使用的一种重要后处理技术,尤其是在物体检测管道中。它的主要作用是完善检测模型生成的原始输出,因为检测模型通常会为同一对象实例识别出多个重叠的边界框。通过智能过滤这些冗余边框,NMS 可确保图像或视频帧中的每个不同物体都由一个最佳边框来表示。这大大提高了最终检测结果的清晰度和准确性,使其在后续任务中更加有用。
物体检测模型,如各种 Ultralytics YOLO版本,通常会扫描图像,并围绕检测到的物体提出许多潜在的边界框。每个提议的包围盒都有一个置信度分数,表示模型确定该包围盒包含一个物体并属于某个特定类别。NMS 的工作原理是根据置信度得分和空间重叠情况,系统地减少这些提议。
该过程一般遵循以下步骤:
这样可以确保只保留最有把握、不重叠的方框,从而提供更简洁、更可解释的输出结果,正如许多计算机视觉教程中所展示的那样。
在更广泛的人工智能(AI)和机器学习(ML)领域,NMS 是实现可靠物体检测性能的基础。如果没有 NMS,像 YOLO11这样的检测器的输出就会被单个物体的多个方框所干扰。这种冗余会导致下游应用出现错误,例如计数物体(物体计数指南)、物体跟踪或机器人技术中的复杂场景理解。
通过消除这些冗余检测(通常会导致误报),NMS 大大提高了模型预测的精确度。这种改进对于要求高可靠性和准确性的应用来说至关重要。NMS 的影响体现在平均精度 (mAP) 等评估指标中,这些指标通常在应用 NMS 后计算得出,详见YOLO 性能指标指南。
NMS 是实现众多人工智能实际应用的基础技术:
NMS 特别是在物体检测模型生成初始候选边界框集后进行的后处理步骤。它不应与检测架构本身相混淆,例如基于锚点的检测器和无锚点的检测器之间的区别。这些架构定义了如何提出潜在的边界框,而 NMS 则完善了这些提议。
有趣的是,与 NMS 相关的计算成本和潜在瓶颈激发了对无 NMS 物体检测器的研究。YOLOv10等模型在训练过程中整合了各种机制(如一致的双重分配),从本质上避免预测多余的盒子,从而减少推理延迟,实现真正的端到端检测(YOLOv10 无 NMS 方法)。这与传统方法(如 Ultralytics YOLOv8或 YOLOv5等传统方法形成鲜明对比,在这些方法中,NMS 仍是推理管道的标准和重要组成部分。您可以在我们的文档中探索技术比较,如YOLOv10 与YOLOv8。Soft-NMS(关于 Soft-NMS 的论文)等变体提供了另一种方法,即衰减重叠方框的分数,而不是完全消除它们。
NMS 与Ultralytics 生态系统无缝集成。Ultralytics YOLO 模型可在以下过程中自动应用 NMS 预测predict
) 和 验证(val
) 模式,确保用户在默认情况下获得干净准确的检测输出。控制 NMS 行为的参数(如 IoU 门限和置信度门限)通常可根据特定应用需求进行调整。
Ultralytics HUB等平台进一步抽象了这些细节,允许用户训练模型(云训练指南)并部署模型,其中 NMS 作为优化管道的一部分自动处理。这种集成确保了用户无论在MLOps 方面是否具有深厚的专业技术知识,都能受益于各种计算机视觉任务中最先进的物体检测结果。Ultralytics 框架内的具体实施细节可在Ultralytics 实用程序参考资料中查看。如需了解更多定义,请查看Ultralytics 术语表。