Ultralytics YOLO27:
Ultralytics YOLO

Ultralytics YOLO26 为何移除 NMS,以及这如何改变部署方式

了解 Ultralytics YOLO26 如何实现真正的端到端、无 NMS 推理,以及移除后处理为何能简化导出和边缘部署。

ABAbirami Vina7 min read
Ultralytics YOLO26 运行无 NMS 目标检测

1 月 14 日,我们发布了 Ultralytics YOLO26,这是我们最新一代的计算机视觉模型。借助 YOLO26,我们的目标不仅是提升准确率或速度,还要重新思考目标检测模型在真实系统中的构建和部署方式。

随着计算机视觉从研究走向生产,模型越来越需要在 CPU、边缘设备、摄像头、机器人和嵌入式硬件上运行。在这些环境中,可靠性、低延迟和易部署性与性能同样重要。

Ultralytics YOLO26 的设计充分考虑了这一现实,采用精简的端到端架构,去除了推理流水线中的不必要复杂性。YOLO26 最重要的创新之一,就是移除了非极大值抑制,通常称为 NMS。

多年来,NMS 一直是目标检测系统的标准组成部分,用作清理重复检测结果的后处理步骤。虽然它非常有效,但也带来了额外的计算开销和部署挑战,尤其是在边缘硬件上。

借助 YOLO26,我们采取了不同的方法。通过重新思考预测的生成和训练方式,我们实现了真正的端到端、无 NMS 推理。模型可以直接生成最终检测结果,无需依赖外部清理步骤或手工编写的规则。这让 YOLO26 运行更快、更易导出,也能更可靠地部署到各种硬件平台上。

使用 Ultralytics YOLO26 检测图像中的对象

图 1。使用 Ultralytics YOLO26 检测图像中的对象。

本文将深入探讨传统目标检测为何依赖 NMS、NMS 如何成为部署瓶颈,以及 Ultralytics YOLO26 如何消除变通方案的需求。现在开始吧!

传统目标检测会生成重复检测结果#

在深入了解 NMS 是什么,以及我们为何在 Ultralytics YOLO26 中移除它之前,我们先退一步,看看传统目标检测模型是如何生成预测结果的。

传统目标检测模型通常会为同一个对象生成多个相互重叠的边界框。每个边界框都有自己的置信度分数,尽管它们指向图像中的同一个对象。

这主要有几个原因。首先,模型会同时在许多空间位置和不同尺度上进行预测。这有助于模型检测不同大小的对象,但也意味着相邻位置可能会分别识别出同一个对象。

其次,许多目标检测系统采用基于锚框的方法,会在每个位置周围生成大量候选框。虽然这提高了准确找到对象的概率,但也增加了相互重叠的预测数量。

最后,基于网格的检测本身就容易产生冗余。当对象位于多个网格单元的边界附近时,多个单元可能都会为该对象预测一个边界框,从而产生多个相互重叠的检测结果。

因此,模型的原始输出通常会为单个对象包含多个边界框。为了让结果可用,需要过滤这些冗余预测,只保留一个最终检测结果。

了解非极大值抑制#

当目标检测模型为同一个对象生成多个相互重叠的边界框后,需要先清理这些结果才能使用。这就是非极大值抑制发挥作用的地方。

非极大值抑制是一种后处理步骤,在模型完成预测后运行。它的目的是减少重复检测,使每个对象最终只由一个边界框表示。

非极大值抑制概览图

图 2。NMS 概览。图片由作者提供。

该过程会根据置信度分数以及边界框之间的重叠程度进行比较。置信度极低的预测会首先被移除。

然后,剩余边界框会按置信度排序,并选择分数最高的边界框作为最佳检测结果。接着,将这个选中的边界框与其他边界框进行比较。

如果另一个边界框与它重叠过多,该边界框就会被抑制并移除。重叠程度通常使用交并比来衡量,这是一项计算两个边界框共有区域与两者覆盖总区域之比的指标。该过程会不断重复,直到只剩下置信度最高且互不重叠的检测结果。

为什么 NMS 会使部署变得复杂#

虽然非极大值抑制有助于过滤重复检测结果,但当模型从研究环境走向真实部署时,它也会带来更加明显的挑战。

其中最大的问题之一是性能。NMS 会在推理完成后运行,并需要将边界框相互比较,以决定保留哪些边界框。

这一过程计算开销很大,也难以高效并行化。在边缘设备和基于 CPU 的系统上,这些额外工作可能会带来明显延迟,使系统更难满足实时需求。

NMS 还会增加部署复杂性。由于它并不是模型本身的一部分,因此必须作为后处理代码单独实现。

不同运行时和平台处理 NMS 的方式各不相同,这通常意味着需要为每个目标环境维护自定义实现。在一种配置中正常运行的代码,在另一种配置中的行为可能会略有不同,从而使部署更加脆弱,也更难扩展。

硬件优化是另一个挑战。NMS 很难直接映射到专用 AI 加速器上,而这些加速器专门用于高效执行神经网络操作。因此,即使模型在经过优化的硬件上运行速度很快,NMS 仍可能成为限制整体性能的瓶颈。

除此之外,NMS 还依赖手动选择的参数,例如置信度阈值和重叠阈值。这些设置会显著影响结果,而且通常需要针对不同的数据集、应用或硬件进行调优。这会降低生产系统中行为的可预测性,并增加额外的配置负担。

端到端目标检测推理详解#

非极大值抑制的局限性促使我们重新思考目标检测模型在推理时应有的表现。我们没有继续生成大量相互重叠的预测结果,再在之后清理它们,而是提出了一个更根本的问题。

如果模型可以直接生成最终检测结果呢?这个问题正是端到端目标检测推理的核心。在端到端系统中,模型经过训练后能够从头到尾处理完整的检测流程,而不依赖外部清理步骤。

模型不再生成大量候选框并在推理后进行过滤,而是学会自行生成少量高置信度且互不重叠的预测结果。重复检测会在网络内部得到解决,而不是通过后处理移除。

较新的模型架构表明,这种方法既可行又实用。采用合适的训练策略后,模型可以学会将每个对象与单个预测结果关联,而不是生成多个相互竞争的预测,从源头上减少冗余。

使用 Ultralytics YOLO26 检测图像中的对象

图 3。使用 Ultralytics YOLO26 检测对象的示例。

要实现这一点,训练方式也必须改变。模型不再让多个预测结果争夺同一个对象,而是学会做出一个明确的判断,从而生成更少且置信度更高的检测结果。

最终结果是更简单的推理流水线。由于重复结果已经在内部得到解决,推理时无需再使用非极大值抑制。模型输出本身就是最终的检测结果集合。

这种端到端设计也让部署更加简单。无需后处理步骤或特定于平台的 NMS 实现,导出的模型完全自包含,并且能在不同推理框架和硬件目标上保持一致的行为。

正如我们的首席合作工程师 Francesco Mattioli 所解释的:“真正的端到端学习意味着模型应处理从像素到预测的全部过程,而不依赖会破坏可微性并使部署复杂化的手工后处理步骤。”

Ultralytics YOLO26 如何移除 NMS#

Ultralytics YOLO26 通过改变检测结果的学习和生成方式来移除非极大值抑制,而不是依赖后处理来清理检测结果。YOLO26 不再让多个预测结果争夺同一个对象,而是经过训练,学会在对象与输出之间建立清晰的一对一关系。

基于可学习查询的检测在其中发挥了部分作用,它帮助模型专注于为每个对象生成一个置信度高的预测,而不是生成多个相互重叠的候选结果。每个对象都与一个预测结果关联,从而自然减少重复检测。

训练期间采用一致的匹配策略进一步强化了这种行为,促使模型为每个对象做出一个高置信度的判断,而不是生成相互重叠的预测结果。最终,模型生成的预测更少,但每个预测都代表一个最终检测结果。

为什么移除 DFL 让无 NMS 检测成为可能#

Ultralytics YOLO26 实现无 NMS 推理的另一项重要创新,是移除了分布焦点损失(DFL)。在早期 YOLO 模型中,DFL 用于通过预测可能的边界框位置分布,而不是单个值,来提升边界框回归效果。

虽然这种方法提高了定位准确率,但也增加了检测流水线的复杂性。当系统转向真正的端到端推理时,这种复杂性就成了限制因素。

DFL 引入了额外计算和固定的回归范围,使模型更难学习清晰的一对一对象分配,并增加了对非极大值抑制等后处理步骤的依赖。在 Ultralytics YOLO26 中,我们移除了 DFL,并重新设计了更简单、更直接的边界框回归方式。

模型不再依赖基于分布的输出,而是学会以支持更少、更高置信度检测结果的方式预测准确的边界框坐标。这一改变有助于从源头减少重叠预测,并使边界框回归与 Ultralytics YOLO26 的端到端、无 NMS 设计保持一致。

Ultralytics YOLO26 无需 NMS,易于部署#

无 NMS 设计让 Ultralytics YOLO26 成为真正的端到端模型。这对模型导出有着重要影响。

导出是指将训练好的模型转换为能够在训练环境之外运行的格式,例如 ONNX、TensorRT、CoreML 或 OpenVINO。在传统流水线中,这一过程经常会出现问题,因为非极大值抑制并不是模型本身的一部分。

通过移除 NMS,Ultralytics YOLO26 完全避免了这一问题。导出的模型已经包含生成最终检测结果所需的一切。

这使导出的模型完全自包含,也更容易在不同推理框架和硬件目标之间移植。无论部署在服务器、仅使用 CPU 的系统、嵌入式设备还是边缘加速器上,同一个模型都能保持一致的行为。部署变得更加直接,因为你导出的内容就是实际运行的内容。

这种简洁性对边缘应用尤其重要。例如,YOLO26 可以轻松部署到无人机等设备上,用于作物监测、田间巡检和植物健康分析等场景。在这些场景中,有限的计算和电力预算使复杂的后处理流水线难以实用。由于模型可以直接输出最终检测结果,因此无需额外处理步骤,也能在轻量级硬件上可靠运行。

部署在无人机等边缘设备上的 Ultralytics YOLO26

图 4。Ultralytics YOLO26 易于部署到无人机等边缘设备上。

简而言之,无 NMS 推理消除了模型导出和部署中的阻碍,让视觉系统更加简洁、可靠。NMS 曾是一种变通方案。Ultralytics YOLO26 已经不再需要变通方案。

要点总结#

Ultralytics YOLO26 通过解决重复检测这一根本问题来移除非极大值抑制,而不是事后清理这些结果。其端到端设计让模型可以直接生成最终检测结果,使模型导出和部署在不同硬件上更加简单、一致。NMS 曾是早期系统中一种实用的变通方案,但 YOLO26 已不再需要它。

加入我们的社区,并查看我们的 GitHub 仓库,进一步了解 AI。探索我们的农业 AI零售业计算机视觉解决方案页面。了解我们的许可选项,立即开始使用视觉 AI!

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 的未来!

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