使用 ONNX 集成导出 Ultralytics YOLO 模型
了解如何通过 ONNX 集成导出 Ultralytics YOLO 模型(如 Ultralytics YOLO11),以便在各种硬件上实现跨平台部署。

当 AI 解决方案 最初受到关注时,大多数模型都是部署在受控环境下的强大服务器上。然而,随着技术的发展,部署场景已远超数据中心。
如今,AI 模型运行在各种设备上,从云服务器和桌面设备到智能手机和边缘设备。这种转变支持了更快的处理速度、离线功能以及在数据源附近运行的更智能的系统。
其中一个尤其明显的领域是 计算机视觉——这是 AI 的一个分支,旨在让机器解读视觉数据。它正被用于驱动面部识别、自动驾驶和实时视频分析等应用。随着这些用例的增长,对能够跨多种硬件和平台顺畅运行的模型需求也在不断增加。
但在各种部署目标上部署计算机视觉模型并不总是简单的。不同设备在硬件、操作系统和支持的框架方面存在差异,因此灵活性和兼容性至关重要。
这就是为什么能够将 Ultralytics YOLO11 等计算机视觉模型导出为不同格式至关重要。例如,Ultralytics 支持的 ONNX (Open Neural Network Exchange) 集成为架起训练与部署之间的桥梁提供了一种实用方法。ONNX 是一种开放格式,使模型具备框架无关性,并能在各平台间轻松部署。

图 1。ONNX 帮助你轻松将在一个框架中训练的模型移植到另一个框架中运行。
在本文中,我们将深入了解 Ultralytics 支持的 ONNX 集成,并探讨如何导出你的 YOLO11 模型以实现灵活的跨平台部署。
Link to this section什么是 ONNX 和 ONNX Runtime?#
Open Neural Network Exchange 是一个定义机器学习模型标准格式的开源项目。它最初由微软和 Facebook 开发,允许开发者在一个框架(如 PyTorch)中训练模型,并在另一个框架(如 TensorFlow)中运行。这使得 AI 开发更加灵活、协作且易于访问,尤其是在计算机视觉等领域。
ONNX 提供了一套通用的算子和统一的文件格式,使模型在不同工具、框架、运行时和编译器之间迁移变得更容易。通常,在一个框架中训练的模型很难与另一个框架兼容——但通过 ONNX,你可以一次性导出模型并将其部署到几乎任何地方:CPU (Central Processing Units)、GPU (Graphics Processing Units)、移动设备或边缘硬件上。
此外,ONNX Runtime 是一个专门为运行 ONNX 格式模型而开发的高性能推理引擎。它旨在使 ONNX 模型在各种平台(包括服务器、移动设备和边缘硬件)上运行得更快、更高效。ONNX Runtime 与 PyTorch、TensorFlow、TensorFlow Lite 和 scikit-learn 等主流框架兼容,可以轻松集成到不同的工作流程中,并在需要的地方部署模型。

图 2。 ONNX 和 ONNX Runtime 实现了灵活的跨平台模型部署。
Link to this sectionONNX 的核心特性#
在我们讨论如何 导出 YOLO11 到 ONNX 格式之前,先来看看 ONNX 模型格式的一些核心特性。
无论你是在不同工具之间切换、部署到不同设备,还是升级系统,ONNX 都能帮助一切保持顺畅运行。以下是 ONNX 模型格式的独特之处:
-
一种标准格式:ONNX 使用通用的方式来描述模型构建,例如层和操作(可以将其视为积木)。当模型转换为 ONNX 时,它遵循此标准,以便任何支持 ONNX 的系统都能理解并运行它。
-
向后兼容性:即使 ONNX 不断改进,它也能确保旧模型在较新版本中依然有效。这意味着你无需在 ONNX 更新时重新训练或重新构建模型。
-
基于图的模型设计:ONNX 模型被构建为计算图,其中每个节点代表一个操作(如一层或数学函数),边表示数据流。这种基于图的设计方便了与使用类似计算图结构的不同系统的集成。
-
开发者友好的工具:它配备了一系列工具,帮助你转换、验证和优化模型。这些工具简化了在不同框架之间移动模型的过程,并能加快部署速度——特别是对于计算机视觉应用。
Link to this sectionONNX 集成概览#
以 ONNX 格式导出 Ultralytics YOLO 模型(如 Ultralytics YOLO11)非常简单,只需几个步骤即可完成。
首先,使用包管理器(如 'pip')安装 Ultralytics Python 包。你可以在命令提示符或终端中运行命令 “pip install ultralytics” 来开始。
有了 Ultralytics 包,你可以轻松进行各种计算机视觉任务的模型训练、测试、微调、导出和部署,从而使整个过程更快、更高效。如果在安装过程中遇到任何困难,可以参考 常见问题指南 获取解决方案和建议。
安装好 Ultralytics 包后,你可以使用下面的代码加载并将 YOLO11 模型导出为 ONNX 格式。此示例加载了一个预训练的 YOLO11 模型 (yolo11n.pt) 并将其导出为 ONNX 文件 (yolo11n.onnx),使其能够跨不同平台和设备进行部署。
将模型转换为 ONNX 格式后,你可以将其部署到各种平台上。
下面的示例展示了如何加载导出的 YOLO11 模型 (yolo11n.onnx) 并使用它运行推理。推理简单来说就是使用训练好的模型对新数据进行预测。在这种情况下,我们将使用一张公交车的图片链接来测试该模型。
当你运行此代码时,生成的输出图像将保存到 runs/detect/predict 文件夹中。

图 3. 使用导出的 YOLO11 模型在图像上运行推理。
Link to this section你应该在什么时候选择 ONNX 集成?#
Ultralytics Python 包支持 导出模型 到多种格式,包括 TorchScript、CoreML、TensorRT 和 ONNX。那么,为什么要选择 ONNX?
ONNX 的突出之处在于它是一种框架无关的格式。虽然许多其他导出格式与特定工具或环境绑定,但 ONNX 使用标准化的格式和一组共享的操作符。这使其具备了高度的可移植性和硬件友好性,非常适合跨平台部署——无论你是在处理云服务器、移动应用程序还是边缘设备。
以下是 ONNX 集成可能成为你 YOLO11 项目理想选择的一些原因:
-
便携式部署:一旦导出为 ONNX,你的 YOLO11 模型就可以在各种平台上部署,无需修改代码或重新训练。
-
行业级支持:ONNX 得到了主流 AI 公司和框架的支持,使其成为一种可靠、广受认可的格式。它确保了长期的兼容性,就像 PDF 在不同设备上运行一样。
-
面向未来的开发:使用 ONNX 有助于保护你的模型投资。随着工具的演进,即使在新的或不同的环境中,ONNX 也能让你的模型保持相关性和可用性。
-
无供应商锁定:某些工具会将你锁定在只能使用它们的系统上,这可能会限制模型的功能。ONNX 通过让你选择最适合自己需求的平台来避免这种情况,而无需被困在单一的设置中。
Link to this sectionYOLO11 和 ONNX 模型格式的应用#
接下来,让我们探索一些在 ONNX 集成帮助下可以部署 YOLO11 的实际应用场景。
Link to this section使用 YOLO11 跟踪仓库库存#
在繁忙的仓库中,很难时刻关注每一个产品和包裹。计算机视觉系统可以帮助工人在货架上找到产品,并获得诸如产品数量、类型等见解。此类系统可以帮助企业自动管理其庞大的库存,并为仓库工人节省大量时间。
具体来说,在 智能仓库 中,导出到 ONNX 的 YOLO11 模型可用于通过摄像头和边缘设备实时识别和清点物品。导出的模型可以帮助扫描货架或托盘以检测库存水平、缺失物品或空位。由于导出为 ONNX 使模型轻量化且高效,它可以直接在小型边缘设备(如智能摄像头)上运行,无需昂贵的服务器或持续的云连接。

图 4。 使用 YOLO11 检测和清点包裹的示例。
Link to this section使用 YOLO11 的医院废物管理#
世界各地的医院每天都会产生大量废物,从使用过的手套和注射器到手术过程中使用的设备(如一次性或受污染的手术工具,如剪刀和手术刀)。事实上,研究表明医院每年产生约 500 万吨废物,即每天每张床位产生 29 磅 废物。
妥善分类这些废物对于卫生、安全和遵守法规至关重要。通过使用以 ONNX 格式导出的 YOLO11 模型,医院可以实现 废弃物处理的自动化和实时监控。
例如,放置在手术室或走廊等区域垃圾箱附近的摄像头可以监控被丢弃的物品。一个经过训练可识别不同类型医疗废物的定制 YOLO11 模型可以分析视频内容并识别正在丢弃的内容。如果物品放错了垃圾桶(例如将用过的注射器放入普通垃圾中),系统可以设置为立即通过灯光或声音提醒员工,从而有助于防止污染并确保合规。

图 5. 使用 YOLO11 检测医疗器械。
Link to this sectionYOLO11 支持的农作物监测#
了解农作物的最佳收获时间对农产品的质量和农场的整体生产力都有重大影响。传统上,农民依赖经验和人工检查,但随着近来的技术进步,这种情况正在改变。
现在,有了像 YOLO11 这样以 ONNX 格式导出的计算机视觉创新技术,农民可以将自动化和精确性引入田间。通过使用无人机或安装在拖拉机或立柱上的摄像头,农民可以拍摄作物(如番茄、苹果或小麦)的图像。然后,YOLO11 可以用于检测关键指标,如颜色、大小和 作物分布。根据这些信息,农民可以确定作物是已达到收获期、仍在成熟,还是已经过了最佳时期。

图 6。YOLO11 可用于在空中无人机拍摄的视频中检测作物。
Link to this section需要考虑的 ONNX 限制#
虽然 ONNX 提供了许多优势,如便携性、跨平台兼容性和框架互操作性,但也有一些限制需要牢记:
-
模型大小:与原始格式相比,将模型转换为 ONNX 格式有时会导致文件体积增大。诸如 量化和剪枝 等技术可以通过减小模型大小而不显著影响性能来缓解此问题。
-
运行时兼容性:尽管 ONNX Runtime 是为跨平台兼容性而设计的,但性能和支持情况可能会因不同硬件和操作系统而异。
-
调试挑战:调试 ONNX 模型可能比在 PyTorch 或 TensorFlow 等原生框架中更复杂。错误消息可能描述性较弱,使定位问题变得更困难。不过,像 Netron 这样的模型可视化工具和 ONNX Runtime 的日志记录功能可以协助进行故障排除。
Link to this section关键要点#
将 Ultralytics YOLO11 导出为 ONNX,可以轻松地将训练好的计算机视觉模型部署到几乎任何地方——无论是笔记本电脑、移动设备,还是紧凑型智能摄像头。有了 ONNX 集成,你不会被绑定在单一的框架或平台上,从而能够灵活地在最适合你应用的环境中运行模型。
这使得从训练到实际部署的过渡更加快速和高效。无论是在仓库中跟踪库存,还是确保医疗废物被正确处理,这种设置都有助于系统更顺畅地运行,减少错误并节省宝贵时间。
想了解更多关于计算机视觉和 AI 的知识吗?探索我们的 GitHub 仓库,与 我们的社区 建立联系,并查看 我们的许可选项 来开启你的计算机视觉项目。如果你正在探索 AI 在制造业 和 汽车行业计算机视觉 等领域的创新,请访问我们的解决方案页面以了解更多信息。






