Ultralytics YOLO27:
返回 Ultralytics 术语表

Non-Maximum Suppression (NMS)

了解非极大值抑制(NMS)如何消除目标检测中的重复边界框。探索 Ultralytics YOLO26 如何提供原生端到端 NMS。

非极大值抑制 (NMS) 是目标检测中使用的一种后处理技术,用于优化模型生成的原始预测结果。当目标检测模型分析图像时,通常会为同一个对象生成多个相互重叠的边界框,每个边界框都对应一个置信度分数。这些冗余预测的出现,是因为模型可能会在略有不同的尺度或位置检测到同一特征。NMS 会过滤这些输出,为每个对象仅保留最准确的边界框并丢弃其他框,从而确保最终输出整洁、精确且没有重复项。

非极大值抑制的工作原理#

NMS 算法处理的是候选边界框及其对应置信度分数的列表。其目标是为一个对象选出最佳边界框,并抑制(移除)与其显著重叠的其他边界框,因为这些边界框很可能是对同一对象的重复检测。该过程通常遵循以下步骤:

  1. 过滤: 消除所有置信度分数低于特定阈值(例如 0.25)的边界框,以便立即移除较弱的预测结果。

  2. 排序: 根据置信度分数,按降序排列剩余边界框。

  3. 选择: 将置信度分数最高的边界框选为有效检测结果。

  4. 比较: 使用交并比 (IoU) 将选中的边界框与所有其他剩余边界框进行比较。交并比是用于衡量两个边界框重叠程度的指标。

  5. 抑制: 如果选中边界框与另一个边界框之间的 IoU 超过预定义阈值(例如 0.45),则将分数较低的边界框视为重复项并移除。

  6. 迭代: 使用尚未被抑制或选中的下一个最高分边界框重复该过程,直到处理完所有边界框。

实际应用#

在精度至关重要且重复检测可能干扰下游系统的场景中,NMS 不可或缺。

  • 自动驾驶: 在自动驾驶汽车系统中,摄像头会检测行人、其他车辆和交通标志。模型可能会为同一个行人预测出三个略有不同的边界框。NMS 可确保车辆的规划系统仅接收到该行人的一个坐标,从而避免由“幽灵”障碍物导致的异常制动或路径规划错误。
  • 零售库存管理: 使用计算机视觉统计货架上的商品时,商品通常摆放得很紧密。如果没有 NMS,同一罐汽水可能会因预测结果重叠而被计数两次,导致库存水平不准确。NMS 会优化这些检测结果,确保库存数量与实际情况相符。

使用 PyTorch 实现 NMS#

尽管许多现代框架会在内部处理 NMS,但了解其实现方式有助于调节参数。以下示例演示了如何使用 PyTorch 库应用 NMS:

import torch
import torchvision.ops as ops

# Example bounding boxes: [x1, y1, x2, y2]
boxes = torch.tensor(
    [
        [100, 100, 200, 200],  # Box A
        [105, 105, 195, 195],  # Box B (High overlap with A)
        [300, 300, 400, 400],  # Box C (Distinct object)
    ],
    dtype=torch.float32,
)

# Confidence scores for each box
scores = torch.tensor([0.9, 0.8, 0.95], dtype=torch.float32)

# Apply NMS with an IoU threshold of 0.5
# Boxes with IoU > 0.5 relative to the highest scoring box are suppressed
keep_indices = ops.nms(boxes, scores, iou_threshold=0.5)

print(f"Indices to keep: {keep_indices.tolist()}")
# Output will likely be [2, 0] corresponding to Box C (0.95) and Box A (0.9),
# while Box B (0.8) is suppressed due to overlap with A.

NMS 与端到端检测的对比#

传统上,NMS 一直是位于主神经网络之外的必需“清理”步骤,会增加推理延迟。不过,该领域正逐步转向端到端架构。

  • 标准 NMS: 一种需要手动调节 IoU 阈值的启发式过程。如果阈值过低,彼此接近的有效对象可能会被漏检(召回率低)。如果阈值过高,则会保留重复项(精确率低)。
  • 端到端模型: YOLO26 等新一代模型经过设计,可原生实现端到端处理。它们会在训练期间学习为每个对象准确预测一个边界框,从而有效地将 NMS 过程内置于模型中。这样无需外部后处理,既能提升推理速度,也能简化在 Ultralytics Platform 上的部署流程。

相关概念#

  • Soft-NMS 一种变体方法,不会直接移除重叠的边界框,而是降低其置信度分数。这样一来,存在一定重叠的对象(例如人群中的行人)在衰减后分数仍足够高时,依然可以被检测到。
  • 锚框 许多检测器使用的预定义框形状,用于估计对象大小。NMS 会应用于基于这些锚框优化后的最终预测结果。
  • 交并比 (IoU) NMS 用于确定两个边界框重叠程度的数学公式,也是抑制操作的判定阈值。

Explore solutions

用于航拍影像的计算机视觉

用于航拍影像的计算机视觉

使用 Ultralytics YOLO 将无人机和航拍影像转化为针对农业、水产养殖、环境监测、自然保护及地理空间分析的实时洞察。
了解更多
航空航天中的计算机视觉

航空航天中的计算机视觉

借助 Ultralytics YOLO 模型将视觉 AI 引入空中监测。使用计算机视觉解决方案赋能无人机、航空航天工作流、环境保护与地理空间行业。
了解更多

使用 Ultralytics YOLO 模型保护每个站点。视觉 AI 赋能周界监控、威胁检测、车牌识别和工作场所安全。
了解更多
机器人计算机视觉

机器人计算机视觉

借助 Ultralytics YOLO 模型打造更智能的机器。机器人技术中的视觉 AI 可实现自主导航、感知、目标跟踪和实时控制。
了解更多
物流计算机视觉

物流计算机视觉

使用 Ultralytics YOLO 模型提升物流效率。视觉 AI 可实现包裹检测、分拣、车辆跟踪和仓库安全实时监控。
了解更多
零售计算机视觉

零售计算机视觉

使用 Ultralytics YOLO 模型重新构想零售。视觉 AI 为库存跟踪、货架监控、队列管理和更智能的客户洞察提供支持。
了解更多
医疗领域的计算机视觉

医疗领域的计算机视觉

使用 Ultralytics YOLO 模型构建医疗解决方案。医疗领域的视觉 AI 可实现更快的医学影像处理、更智能的诊断和患者监护。
了解更多
制造业中的计算机视觉

制造业中的计算机视觉

使用 Ultralytics YOLO 模型优化制造业。视觉 AI 可推动质量控制、缺陷检测、PPE 合规和装配线自动化。
了解更多
汽车行业中的计算机视觉

汽车行业中的计算机视觉

使用 Ultralytics YOLO 模型在汽车行业应用计算机视觉。视觉 AI 提升道路安全、驾驶辅助和车辆自动化水平,让道路更加智能。
了解更多
农业中的计算机视觉

农业中的计算机视觉

使用 Ultralytics YOLO 模型将视觉 AI 带入智能农业。为作物监测、牲畜追踪和精准农业提供支持,提升产量与智能化水平。
了解更多
用于航拍影像的计算机视觉

用于航拍影像的计算机视觉

使用 Ultralytics YOLO 将无人机和航拍影像转化为针对农业、水产养殖、环境监测、自然保护及地理空间分析的实时洞察。
了解更多
航空航天中的计算机视觉

航空航天中的计算机视觉

借助 Ultralytics YOLO 模型将视觉 AI 引入空中监测。使用计算机视觉解决方案赋能无人机、航空航天工作流、环境保护与地理空间行业。
了解更多

使用 Ultralytics YOLO 模型保护每个站点。视觉 AI 赋能周界监控、威胁检测、车牌识别和工作场所安全。
了解更多
机器人计算机视觉

机器人计算机视觉

借助 Ultralytics YOLO 模型打造更智能的机器。机器人技术中的视觉 AI 可实现自主导航、感知、目标跟踪和实时控制。
了解更多
物流计算机视觉

物流计算机视觉

使用 Ultralytics YOLO 模型提升物流效率。视觉 AI 可实现包裹检测、分拣、车辆跟踪和仓库安全实时监控。
了解更多
零售计算机视觉

零售计算机视觉

使用 Ultralytics YOLO 模型重新构想零售。视觉 AI 为库存跟踪、货架监控、队列管理和更智能的客户洞察提供支持。
了解更多
医疗领域的计算机视觉

医疗领域的计算机视觉

使用 Ultralytics YOLO 模型构建医疗解决方案。医疗领域的视觉 AI 可实现更快的医学影像处理、更智能的诊断和患者监护。
了解更多
制造业中的计算机视觉

制造业中的计算机视觉

使用 Ultralytics YOLO 模型优化制造业。视觉 AI 可推动质量控制、缺陷检测、PPE 合规和装配线自动化。
了解更多
汽车行业中的计算机视觉

汽车行业中的计算机视觉

使用 Ultralytics YOLO 模型在汽车行业应用计算机视觉。视觉 AI 提升道路安全、驾驶辅助和车辆自动化水平,让道路更加智能。
了解更多
农业中的计算机视觉

农业中的计算机视觉

使用 Ultralytics YOLO 模型将视觉 AI 带入智能农业。为作物监测、牲畜追踪和精准农业提供支持,提升产量与智能化水平。
了解更多
用于航拍影像的计算机视觉

用于航拍影像的计算机视觉

使用 Ultralytics YOLO 将无人机和航拍影像转化为针对农业、水产养殖、环境监测、自然保护及地理空间分析的实时洞察。
了解更多
航空航天中的计算机视觉

航空航天中的计算机视觉

借助 Ultralytics YOLO 模型将视觉 AI 引入空中监测。使用计算机视觉解决方案赋能无人机、航空航天工作流、环境保护与地理空间行业。
了解更多

使用 Ultralytics YOLO 模型保护每个站点。视觉 AI 赋能周界监控、威胁检测、车牌识别和工作场所安全。
了解更多
机器人计算机视觉

机器人计算机视觉

借助 Ultralytics YOLO 模型打造更智能的机器。机器人技术中的视觉 AI 可实现自主导航、感知、目标跟踪和实时控制。
了解更多
物流计算机视觉

物流计算机视觉

使用 Ultralytics YOLO 模型提升物流效率。视觉 AI 可实现包裹检测、分拣、车辆跟踪和仓库安全实时监控。
了解更多
零售计算机视觉

零售计算机视觉

使用 Ultralytics YOLO 模型重新构想零售。视觉 AI 为库存跟踪、货架监控、队列管理和更智能的客户洞察提供支持。
了解更多
医疗领域的计算机视觉

医疗领域的计算机视觉

使用 Ultralytics YOLO 模型构建医疗解决方案。医疗领域的视觉 AI 可实现更快的医学影像处理、更智能的诊断和患者监护。
了解更多
制造业中的计算机视觉

制造业中的计算机视觉

使用 Ultralytics YOLO 模型优化制造业。视觉 AI 可推动质量控制、缺陷检测、PPE 合规和装配线自动化。
了解更多
汽车行业中的计算机视觉

汽车行业中的计算机视觉

使用 Ultralytics YOLO 模型在汽车行业应用计算机视觉。视觉 AI 提升道路安全、驾驶辅助和车辆自动化水平,让道路更加智能。
了解更多
农业中的计算机视觉

农业中的计算机视觉

使用 Ultralytics YOLO 模型将视觉 AI 带入智能农业。为作物监测、牲畜追踪和精准农业提供支持,提升产量与智能化水平。
了解更多

让我们共同构建 AI 的未来!

开启你的机器学习未来之旅