探索用于物体检测的非最大值抑制NMS)。了解它如何完善结果、提高准确性并为YOLO 等人工智能应用提供动力。
非最大值抑制NMS)是计算机视觉中使用的一种重要的后处理技术。 后处理技术,用于完善 物体检测算法的结果。当模型分析图像时 模型分析图像时,经常会为一个物体预测多个重叠的 边框,而每个边框都有不同的概率。 概率不同。NMS 会过滤这些多余的预测,以确保每个独特的物体都能被准确识别一次。 一次,只保留最准确的边界框,而舍弃其余的。这一过程对于在实际应用中实现高精度 在实际应用中实现高精度,防止系统 防止系统检测到同一目标的 "幽灵 "重复。
NMS 算法就像一个过滤器,可以清理深度学习模型的原始输出。 深度学习模型的原始输出。它在很大程度上依赖于两个关键 指标:置信度得分,表示模型对某一方框包含物体的确定程度 模型对某个方框包含某个对象的确定程度,以及 交集大于联合(IoU),它 的空间重叠度。
NMS 的标准贪婪算法一般遵循以下步骤 这些步骤:
软NMS 等高级变体会降低重叠方框的检测分数,而不是完全消除它们。 在拥挤的场景中,物体会自然地相互遮挡。 自然相互遮挡的场景中大有裨益。
在依赖人工智能解释的系统中,NMS 无处不在NMS 人工智能来解释 视觉数据的系统中无处不在。在对安全至关重要的高精度环境中,它的作用尤为关键。
在 Ultralytics YOLO11框架中,NMS 直接集成到预测管道中。用户可以轻松调整NMS 参数,如IoU 临界值,以便在去除重复对象和分离IoU 较近的对象之间取得平衡。 用户可以轻松调整 NMS 参数,如 IoU 临界值,以便在去除重复对象和分离间距较近的对象之间取得平衡。
以下代码片段演示了如何使用
ultralytics 包装
from ultralytics import YOLO
# Load a pre-trained YOLO11 model
model = YOLO("yolo11n.pt")
# Run inference on an image
# 'iou=0.5' sets the NMS threshold; boxes with >50% overlap are suppressed
# 'conf=0.25' filters out boxes with low confidence before NMS runs
results = model.predict("https://ultralytics.com/images/bus.jpg", iou=0.5, conf=0.25)
# Display the number of detected objects after NMS
print(f"Objects detected: {len(results[0].boxes)}")
必须将NMS 与检测管道中的其他术语区分开来。
对于希望高效部署这些模型的开发人员来说,了解NMS 对实时推理的影响至关重要。 实时推理的影响至关重要。像 TensorRT等工具通常包含优化的NMS 插件,以加速模型部署过程中的这一 步骤。

