遇见 YOLO26: 下一代视觉 AI。
Ultralytics
返回 Ultralytics 词汇表

Non-Maximum Suppression (NMS)

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

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

Link to this section非极大值抑制的工作原理#

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

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

  2. 排序: 根据置信度得分对剩余的框进行降序排列。

  3. 选择: 选择置信度得分最高的框作为有效检测结果。

  4. 比较: 使用交并比 (IoU) 将此选定框与所有其他剩余的框进行比较,这是一种衡量两个框之间重叠程度的指标。

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

  6. 迭代: 对尚未被抑制或选择的下一个得分最高的框重复此过程,直到所有框都处理完毕。

Link to this section实际应用#

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

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

Link to this section使用 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.

Link to this sectionNMS 与端到端检测#

传统上,NMS 一直是主神经网络之外的一个强制性“清理”步骤,会增加推理延迟。然而,该领域正朝着端到端架构发展。

  • 标准 NMS: 一种启发式过程,需要手动调整 IoU 阈值。如果阈值太低,彼此靠近的有效对象可能会被漏掉(召回率低)。如果阈值太高,则会残留重复项(精度低)。
  • 端到端模型:YOLO26 这样的下一代模型被设计为原生端到端。它们在训练过程中学习为每个对象准确预测一个框,从而有效地将 NMS 过程内部化。这消除了外部后处理的需求,从而在 Ultralytics Platform 上实现更快的推理速度和更简单的部署流程。

Link to this section相关概念#

  • Soft-NMS 一种变体,其中重叠的框不会被严格移除,而是降低其置信度得分。这使得在衰减后得分仍然足够高的重叠对象(如人群中的人)仍能被检测到。
  • 锚框 许多检测器用于估计对象大小的预定义框形状。NMS 应用于从这些锚框优化而来的最终预测结果。
  • 交并比 (IoU) NMS 用于确定两个框重叠程度的数学公式,作为抑制的决策阈值。

Explore solutions

Real-time AI that works with your team

机器人技术中的 AI

使用 Ultralytics YOLO 模型为智能机器赋能。机器人技术中的视觉 AI 可推动自主导航、感知、物体跟踪和实时控制。
了解更多
Real-time AI that works with your team

物流中的 AI

使用 Ultralytics YOLO 模型简化物流。视觉 AI 可实现包裹检查、分拣、车辆跟踪和实时仓库安全监控。
了解更多
Real-time AI that works with your team

零售业 AI

使用 Ultralytics YOLO 模型重塑零售业。视觉 AI 推动库存跟踪、货架监控、队列管理和更智能的客户洞察。
了解更多
Real-time AI that works with your team

医疗保健中的 AI

利用 Ultralytics YOLO 模型构建医疗保健解决方案。医疗保健中的视觉 AI 可助力更快速的医学影像分析、更智能的诊断和患者监测。
了解更多
Real-time AI that works with your team

制造业中的 AI

使用 Ultralytics YOLO 模型优化制造业。视觉 AI 推动质量控制、缺陷检测、PPE 合规性和装配线自动化。
了解更多
Real-time AI that works with your operation

汽车中的 AI

将计算机视觉应用于汽车行业,并配合 Ultralytics YOLO 模型。汽车视觉 AI 可提升道路安全、辅助驾驶和车辆自动化,打造更智能的道路。
了解更多
Real-time AI tailored to your operation

农业中的 AI

借助 Ultralytics YOLO 模型,将视觉 AI 引入智慧农业。赋能作物监测、牲畜追踪和精准农业,实现更高、更智能的产量。
了解更多
Real-time AI that works with your team

机器人技术中的 AI

使用 Ultralytics YOLO 模型为智能机器赋能。机器人技术中的视觉 AI 可推动自主导航、感知、物体跟踪和实时控制。
了解更多
Real-time AI that works with your team

物流中的 AI

使用 Ultralytics YOLO 模型简化物流。视觉 AI 可实现包裹检查、分拣、车辆跟踪和实时仓库安全监控。
了解更多
Real-time AI that works with your team

零售业 AI

使用 Ultralytics YOLO 模型重塑零售业。视觉 AI 推动库存跟踪、货架监控、队列管理和更智能的客户洞察。
了解更多
Real-time AI that works with your team

医疗保健中的 AI

利用 Ultralytics YOLO 模型构建医疗保健解决方案。医疗保健中的视觉 AI 可助力更快速的医学影像分析、更智能的诊断和患者监测。
了解更多
Real-time AI that works with your team

制造业中的 AI

使用 Ultralytics YOLO 模型优化制造业。视觉 AI 推动质量控制、缺陷检测、PPE 合规性和装配线自动化。
了解更多
Real-time AI that works with your operation

汽车中的 AI

将计算机视觉应用于汽车行业,并配合 Ultralytics YOLO 模型。汽车视觉 AI 可提升道路安全、辅助驾驶和车辆自动化,打造更智能的道路。
了解更多
Real-time AI tailored to your operation

农业中的 AI

借助 Ultralytics YOLO 模型,将视觉 AI 引入智慧农业。赋能作物监测、牲畜追踪和精准农业,实现更高、更智能的产量。
了解更多
Real-time AI that works with your team

机器人技术中的 AI

使用 Ultralytics YOLO 模型为智能机器赋能。机器人技术中的视觉 AI 可推动自主导航、感知、物体跟踪和实时控制。
了解更多
Real-time AI that works with your team

物流中的 AI

使用 Ultralytics YOLO 模型简化物流。视觉 AI 可实现包裹检查、分拣、车辆跟踪和实时仓库安全监控。
了解更多
Real-time AI that works with your team

零售业 AI

使用 Ultralytics YOLO 模型重塑零售业。视觉 AI 推动库存跟踪、货架监控、队列管理和更智能的客户洞察。
了解更多
Real-time AI that works with your team

医疗保健中的 AI

利用 Ultralytics YOLO 模型构建医疗保健解决方案。医疗保健中的视觉 AI 可助力更快速的医学影像分析、更智能的诊断和患者监测。
了解更多
Real-time AI that works with your team

制造业中的 AI

使用 Ultralytics YOLO 模型优化制造业。视觉 AI 推动质量控制、缺陷检测、PPE 合规性和装配线自动化。
了解更多
Real-time AI that works with your operation

汽车中的 AI

将计算机视觉应用于汽车行业,并配合 Ultralytics YOLO 模型。汽车视觉 AI 可提升道路安全、辅助驾驶和车辆自动化,打造更智能的道路。
了解更多
Real-time AI tailored to your operation

农业中的 AI

借助 Ultralytics YOLO 模型,将视觉 AI 引入智慧农业。赋能作物监测、牲畜追踪和精准农业,实现更高、更智能的产量。
了解更多

让我们一起构建 AI 的未来!

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