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

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

1月14日,我们推出了Ultralytics YOLO26,这是我们最新一代的计算机视觉模型。通过YOLO26,我们的目标不仅是提高准确性或速度,更是重新思考如何在实际系统中构建和部署目标检测模型。
随着 计算机视觉 从研究走向生产,模型越来越被期望在 CPU、边缘设备、相机、机器人和嵌入式硬件上运行。在这些环境中,可靠性、低延迟和易于部署与性能同等重要。
YOLO26 在设计时考虑到了这一现实,采用精简的端到端架构,消除了推理流程中不必要的复杂性。YOLO26 最重要的创新之一是移除了 非极大值抑制,通常称为 NMS。
多年来,NMS 一直是目标 detect 系统的一个标准组成部分,用作后处理步骤以清除重复的 detect。尽管有效,但它也带来了额外的计算和部署挑战,尤其是在边缘硬件上。
借助 YOLO26,我们采取了不同的方法。通过重新思考预测的生成和训练方式,我们实现了真正的端到端、无 NMS 推理。模型直接生成最终的 detect 结果,无需依赖外部清理步骤或手工规则。这 使得 YOLO26 更快,更易于导出,并且在各种硬件平台上部署更可靠。

在本文中,我们将深入探讨为什么传统目标 detect 依赖 NMS,它如何成为部署瓶颈,以及 YOLO26 如何消除对变通方案的需求。让我们开始吧!
在我们深入了解 NMS 是什么以及为什么我们在 YOLO26 中将其移除之前,让我们退一步,看看传统目标 detect 模型是如何生成预测的。
传统目标 detect 模型通常会为同一目标生成多个重叠的边界框。尽管它们都指向图像中的同一目标,但每个框都带有自己的置信度分数。
这种情况发生有几个原因。首先,模型同时在多个空间位置和不同尺度上进行预测。这有助于模型 detect 不同大小的目标,但这也意味着附近的位置都可以独立识别同一目标。
其次,许多目标 detect 系统使用基于锚点的方法,在每个位置周围生成大量候选框。尽管这提高了准确找到目标的可能性,但也增加了重叠预测的数量。
最后,基于网格的 detect 本身自然会导致冗余。当一个目标位于多个网格单元的边界附近时,多个单元格可能会预测该目标的边界框,从而导致多个重叠的 detect 结果。
因此,模型的原始输出通常包含单个目标的多个边界框。为了使结果可用,需要过滤这些冗余预测,以便只保留一个最终的 detect 结果。
一旦目标 detect 模型为同一目标生成多个重叠的边界框,这些结果在使用前需要进行清理。这就是应用非极大值抑制的地方。
非极大值抑制是一个后处理步骤,在模型完成预测后运行。它的目的是减少重复的 detect 结果,以便每个目标都由一个最终的边界框表示。

该过程通过比较边界框的置信度分数和重叠程度来工作。置信度非常低的预测首先被移除。
剩余的边界框随后按置信度排序,得分最高的框被选为最佳 detect 结果。该选定的框与其他框进行比较。
如果另一个框与它重叠过多,则该框被抑制并移除。重叠通常使用 交并比 (Intersection over Union) 来衡量,这是一个计算两个框共享区域与两者覆盖的总区域之间比率的指标。这个过程重复进行,直到只剩下最自信、不重叠的 detect 结果。
尽管非极大值抑制有助于过滤重复的 detect 结果,但它也带来了挑战,一旦模型从研究阶段进入实际部署,这些挑战就会变得更加明显。
最大的问题之一是性能。NMS 在推理之后运行,需要相互比较边界框以决定保留哪些。
这个过程计算成本高昂,难以有效并行化。在边缘设备和基于 CPU 的系统中,这项额外工作会增加明显的延迟,使得满足实时性要求变得更加困难。
NMS 也增加了部署的复杂性。因为它不是模型本身的一部分,所以必须作为后处理代码单独实现。
不同的运行时和平台以不同方式处理 NMS,这通常意味着需要为每个目标环境维护自定义实现。在一个设置中有效的方法在另一个设置中可能会略有不同,使得部署更加脆弱且难以扩展。
硬件优化是另一个挑战。NMS 无法很好地映射到专门的 AI 加速器,这些加速器旨在高效运行神经网络操作。因此,即使模型在优化硬件上运行迅速,NMS 仍可能成为限制整体性能的瓶颈。
除了这些因素之外,NMS 依赖于手动选择的参数,例如置信度阈值和重叠阈值。这些设置会显著影响结果,并且通常需要针对不同的数据集、应用或硬件进行调整。这使得生产系统中的行为难以预测,并增加了额外的配置开销。
非极大值抑制的局限性促使我们重新思考 目标检测 模型在推理时应如何表现。我们没有生成大量重叠的预测并随后进行清理,而是提出了一个更根本的问题。
如果模型能够直接生成最终检测结果呢?这个问题是端到端目标检测推理的核心。在端到端系统中,模型被训练来处理从开始到结束的整个检测过程,不依赖外部清理步骤。
模型不再生成大量候选框并在推理后进行过滤,而是学习自主生成一小组置信度高且不重叠的预测。重复检测在网络内部解决,而不是通过后处理移除。
较新的模型架构表明这种方法既可行又实用。通过正确的训练策略,模型可以学习将每个对象与单个预测关联起来,而不是许多相互竞争的预测,从而从源头上减少冗余。

为了实现这一点,训练也必须随之改变。模型不再让许多预测争夺同一个对象,而是学习做出一个明确的决策,生成更少但更自信的检测结果。
最终结果是更简单的推理管道。由于重复项已在内部解决,推理时无需进行非极大值抑制。模型输出即为最终的检测结果集。
这种端到端设计也使得部署更加容易。没有后处理步骤或平台特定的 NMS 实现,导出的模型是完全自包含的,并在不同的推理框架和硬件目标上表现一致。
正如我们的首席合作工程师 Francesco Mattioli 解释道:“真正的端到端学习意味着模型应该处理从像素到预测的一切,而无需手动设计的后处理步骤,这些步骤会破坏可微分性并使部署复杂化。”
YOLO26 通过改变检测结果的学习和生成方式来移除非极大值抑制,而不是依赖后处理来清理它们。YOLO26 不再允许许多预测争夺同一个对象,而是被训练来学习对象和输出之间清晰的一一对应关系。
这部分得益于可学习的基于查询的检测,它有助于模型专注于为每个对象生成一个单一、置信度高的预测,而不是许多重叠的候选。每个对象都与一个预测相关联,自然地减少了重复检测。
这种行为通过训练期间一致的匹配策略得到强化,鼓励模型为每个对象做出一个置信度高的决策,而不是生成重叠的预测。最终,模型生成的预测数量更少,但每个预测都代表一个最终检测结果。
YOLO26 中实现无 NMS 推理的另一个重要创新是移除了分布焦点损失(Distribution Focal Loss),简称 DFL。在早期的 YOLO 模型中,DFL 被用于改进边界框回归,通过预测可能的框位置分布而不是单个值。
虽然这种方法提高了定位精度,但也增加了检测管道的复杂性。这种复杂性在迈向真正的端到端推理时成为一个限制。
DFL 引入了额外的计算和固定的回归范围,这使得模型难以学习清晰的一一对应对象分配,并增加了对非极大值抑制等后处理步骤的依赖。在 YOLO26 中,我们移除了 DFL,并重新设计了边界框回归,使其更简单、更直接。
模型不再依赖基于分布的输出,而是学习以支持更少、更自信检测的方式预测准确的框坐标。这一改变有助于从源头上减少重叠预测,并使边界框回归与 YOLO26 的端到端、无 NMS 设计保持一致。
无需NMS的设计使YOLO26成为一个真正的端到端模型。这对于模型导出具有重要影响。
模型导出是指将训练好的模型转换为可在训练环境外部运行的格式,例如ONNX、TensorRT、CoreML或OpenVINO。在传统流程中,由于非极大值抑制(Non-Maximum Suppression)并非模型本身的一部分,此过程常常中断。
通过移除NMS,YOLO26完全避免了这个问题。导出的模型已包含生成最终检测结果所需的一切。
这使得导出的模型完全自包含,并在推理框架和硬件目标之间更具可移植性。无论部署在服务器、仅CPU系统、嵌入式设备还是边缘加速器上,模型行为都保持一致。部署变得更加直接,因为所导出的即是所运行的。
这种简洁性对于边缘应用尤为重要。例如,YOLO26可以轻松部署到无人机等设备上,用于作物监测、田间检查和植物健康分析等用例,在这些场景中,有限的计算和功耗预算使得复杂的后处理流程变得不切实际。由于模型直接输出最终检测结果,它可以在轻量级硬件上可靠运行,无需额外的处理步骤。

简而言之,无需NMS的推理消除了导出和部署的障碍,并实现了更简洁、更可靠的视觉系统。NMS曾是一种权宜之计,而YOLO26不再需要权宜之计。
YOLO26通过解决重复检测的根本问题,而非事后清理,从而移除了非极大值抑制。其端到端设计使模型能够直接生成最终检测结果,从而使导出和部署在不同硬件上更简单、更一致。NMS曾是早期系统的一种有效权宜之计,但YOLO26不再需要它。
加入我们的社区并查看我们的GitHub仓库,了解更多关于AI的信息。浏览我们在农业AI和零售计算机视觉方面的解决方案页面。了解我们的许可选项,立即开始使用视觉AI!
开启您的机器学习未来之旅