探索用于物体检测的非最大值抑制 (NMS)。了解它如何完善结果、提高准确性并为 YOLO 等人工智能应用提供动力。
非最大值抑制(NMS)是计算机视觉中的一种基本后处理算法,尤其是在物体检测任务中。其主要目的是通过过滤多余和重叠的边界框来清理检测模型的输出,确保每个物体只被识别一次。当一个物体检测模型(如Ultralytics YOLO)进行预测时,往往会在同一物体周围生成多个候选框,每个候选框的置信度都不同。NMS 会智能地为每个物体选择一个最佳边界框,并抑制或消除所有其他被认为非最佳的重叠框。
NMS 算法的运行方式是迭代预测的边界框,并根据两个关键指标做出决策:置信度分数和交集大于联合(IoU)阈值。整个过程可概括为以下几个步骤:
IoU 阈值是一个关键的、由用户定义的超参数。低 IoU 阈值会导致较少的检测,因为它会抑制哪怕只有很小重叠的方框,而高阈值则可能允许对同一物体进行多次检测。微调该阈值通常是优化模型在特定数据集上的性能的一部分。
在许多依赖于精确物体检测的真实世界人工智能应用中,NMS 是一个至关重要的组件。
NMS 特别是在物体检测模型生成初始候选边界框集后进行的后处理步骤。它不应与检测架构本身相混淆,例如基于锚点的检测器和无锚点的检测器之间的区别。这些架构定义了如何提出潜在的边界框,而 NMS 则对这些提议进行完善。
有趣的是,与 NMS 相关的计算成本和潜在瓶颈激发了对无 NMS 物体检测器的研究。YOLOv10等模型在训练过程中整合了各种机制,从本质上避免预测多余的方块,旨在减少推理延迟,实现真正的端到端检测。这与Ultralytics YOLOv8或YOLOv5 等传统方法形成了鲜明对比,在这些方法中,NMS 仍然是推理管道的标准和重要组成部分。您可以在我们的文档中探索技术比较,例如YOLOv10 与 YOLOv8 的比较。像Soft-NMS这样的变体提供了另一种方法,即衰减重叠方框的分数,而不是完全消除它们。
NMS 与 Ultralytics 生态系统无缝集成。Ultralytics YOLO 模型可在以下过程中自动应用 NMS 预测predict
) 和 验证(val
) 模式,确保用户在默认情况下获得干净准确的检测输出。控制 NMS 行为的参数(如 IoU 门限和置信度门限)通常可根据特定应用需求进行调整。
Ultralytics HUB等平台进一步抽象了这些细节,允许用户训练模型并部署它们,其中 NMS 作为优化管道的一部分自动处理。这种集成确保了用户无论在MLOps 方面是否具有深厚的专业技术知识,都能在各种计算机视觉任务中受益于最先进的物体检测结果。Ultralytics 框架内的具体实施细节可在Ultralytics 实用程序参考资料中查看。如需了解更多定义,请查看Ultralytics 术语表。