深圳Yolo 视觉
深圳
立即加入
词汇表

非最大抑制NMS

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

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

非极大值抑制的工作原理

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

  1. 过滤:消除所有置信度分数低于特定阈值(例如0.25)的边界框,以立即移除弱预测。
  2. 排序:根据置信度分数将剩余的边界框按降序排列。
  3. 选择:选择置信度得分最高的边界框作为有效检测结果。
  4. 比较: 使用 交并比 (IoU) 将此选定框与所有其他剩余框进行比较,IoU 是一种衡量两个框之间重叠程度的指标。
  5. 抑制:如果所选边界框与另一个边界框之间的IoU超过预设阈值(例如0.45),则得分较低的边界框被视为重复项并被移除。
  6. 迭代:对下一个尚未被抑制或选中的得分最高的框重复此过程,直到所有框都处理完毕。

实际应用

NMS 在精度至关重要且重复的 detect 会混淆下游系统的场景中至关重要。

  • 自动驾驶:在自动驾驶汽车系统中,摄像头 detect 行人、其他车辆和交通标志。一个模型可能会为一个行人预测出三个略有不同的边界框。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 与端到端 detect

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

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

相关概念

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

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

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