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