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

当 AI 解决方案 开始受到关注时,大多数模型都部署在受控环境中的高性能服务器上。然而,随着技术不断进步,部署范围已经远远超出数据中心。
如今,AI 模型的运行环境涵盖云服务器、桌面设备、智能手机和边缘设备。这一转变支持更快的处理速度、离线功能,以及更智能的系统,使其能够在更接近数据生成位置的地方运行。
这一点在计算机视觉领域尤为明显。计算机视觉是 AI 的一个分支,能够让机器理解视觉数据。它正被用于推动人脸识别、自动驾驶和实时视频分析等应用。随着这些用例不断增长,对能够在各种硬件和平台上流畅运行的模型的需求也在增加。
但是,在各种部署目标上部署计算机视觉模型并不总是简单。不同设备在硬件、操作系统和支持的框架方面存在差异,因此灵活性和兼容性至关重要。
因此,能够将 Ultralytics YOLO11 等计算机视觉模型导出为不同格式非常关键。例如,Ultralytics 支持的 ONNX(开放神经网络交换)集成提供了一种实用方式,可以弥合训练与部署之间的差距。ONNX 是一种开放格式,可让模型摆脱框架限制,并在各种平台上做好部署准备。

图 1。ONNX 可以帮助你轻松将在一个框架中训练的模型迁移到另一个框架中运行。
本文将深入了解 Ultralytics 支持的 ONNX 集成,并探索如何导出你的 YOLO11 模型,以便灵活地进行跨平台部署。
什么是 ONNX 和 ONNX Runtime?#
开放神经网络交换(ONNX)是一个定义机器学习模型标准格式的开源项目。它最初由 Microsoft 和 Facebook 开发,允许开发者在一个框架(如 PyTorch)中训练模型,然后在另一个框架(如 TensorFlow)中运行。这让 AI 开发更加灵活、协作性更强且更易于使用,尤其适用于计算机视觉等领域。
ONNX 提供了一组通用算子和统一的文件格式,使模型更容易在不同工具、框架、运行时和编译器之间迁移。通常,在一个框架中训练的模型并不能轻松兼容另一个框架;但借助 ONNX,你只需导出一次模型,就几乎可以在任何地方部署:CPU(中央处理器)、GPU(图形处理器)、移动设备或边缘硬件。
此外,ONNX Runtime 是专门用于运行 ONNX 格式模型的高性能推理引擎。它旨在让 ONNX 模型在各种平台上运行得更快、更高效,包括服务器、移动设备和边缘硬件。ONNX Runtime 兼容 PyTorch、TensorFlow、TensorFlow Lite 和 scikit-learn 等常用框架,因此可以轻松集成到不同工作流中,并将模型部署到所需位置。

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

图 3。在图像上使用导出的 Ultralytics YOLO11 模型执行推理。
什么时候应该选择 ONNX 集成?#
Ultralytics Python 软件包支持将模型导出为多种格式,包括 TorchScript、CoreML、TensorRT 和 ONNX。那么,为什么选择 ONNX?
ONNX 的突出之处在于它是一种与框架无关的格式。许多其他导出格式都与特定工具或环境绑定,而 ONNX 使用标准化格式和一组通用算子。因此,它具有很强的可移植性、良好的硬件适配性,非常适合跨平台部署,无论你使用的是云服务器、移动应用还是边缘设备。
以下是 ONNX 集成可能成为你的 Ultralytics YOLO11 项目理想选择的一些原因:
-
**可移植部署:**将 Ultralytics YOLO11 模型导出为 ONNX 后,你可以将其部署到各种平台,而无需修改代码或重新训练。
-
**全行业支持:**ONNX 获得主要 AI 公司和框架的支持,是一种可靠且广泛接受的格式。它能够确保长期兼容性,就像 PDF 可以跨设备使用一样。
-
**面向未来的开发:**使用 ONNX 有助于保护你的模型投资。随着工具不断发展,ONNX 能让模型保持相关性和可用性,即使是在新的或不同的环境中。
-
**避免供应商锁定:**有些工具会将你限制在只能使用其系统,这可能限制模型的能力。ONNX 通过让你选择最符合需求的平台来避免这一问题,不会让你受困于单一配置。
Ultralytics YOLO11 和 ONNX 模型格式的应用#
接下来,让我们探索一些现实应用场景,了解如何借助 ONNX 集成部署 Ultralytics YOLO11。
使用 Ultralytics YOLO11 跟踪仓库库存#
在繁忙的仓库中,很难始终关注每一件产品和包裹。计算机视觉系统可以帮助工作人员找到货架上的产品,并获取产品数量、类型等信息。这类系统可以帮助企业自动管理大量库存,为仓库工作人员节省大量时间。
具体来说,在智能仓库中,导出为 ONNX 的 Ultralytics YOLO11 模型可以借助摄像头和边缘设备实时识别和统计物品。导出的模型可以扫描货架或托盘,检测库存水平、缺失物品或空位。由于导出为 ONNX 后模型更加轻量高效,因此可以直接在智能摄像头等小型边缘设备上运行,无需昂贵的服务器或持续访问云端。

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

图 5。使用 Ultralytics YOLO11 检测医疗器械。
基于 Ultralytics YOLO11 的作物监测#
了解作物的最佳收获时间,会对农产品质量和农场整体生产力产生重大影响。传统上,农民依靠经验和人工检查,但随着近期技术进步,这种情况正在改变。
如今,借助 YOLO11 等以 ONNX 格式导出的计算机视觉创新技术,农民可以将自动化和精准性带入田间。通过使用无人机,或安装在拖拉机和杆架上的摄像头,农民可以拍摄作物图像(例如番茄、苹果或小麦)。随后可以使用 YOLO11 检测颜色、大小和作物分布等关键指标。根据这些信息,农民可以判断作物是否已经成熟待收、仍在成熟过程中,或已经过了最佳收获期。

图 6。YOLO11 可用于检测无人机航拍视频中的作物。
需要考虑的 ONNX 局限性#
虽然 ONNX 具有可移植性、跨平台兼容性和框架互操作性等诸多优势,但仍有一些局限性需要注意:
-
模型大小:将模型转换为 ONNX 格式有时会导致文件大小大于原始格式。使用量化和剪枝等技术,可以在不显著影响性能的情况下减小模型大小,从而缓解这一问题。
-
**运行时兼容性:**虽然 ONNX Runtime 专为跨平台兼容性设计,但其性能和支持情况可能因硬件和操作系统而异。
-
**调试难题:**与 PyTorch 或 TensorFlow 等原生框架相比,调试 ONNX 模型可能更加复杂。错误消息的描述性可能较弱,因此更难定位问题。不过,Netron 等模型可视化工具以及 ONNX Runtime 的日志功能可以协助排查故障。
要点总结#
将 Ultralytics YOLO11 导出为 ONNX 后,你可以轻松地将训练好的计算机视觉模型部署到几乎任何地方,无论是笔记本电脑、移动设备,还是小型智能摄像头。借助 ONNX 集成,你不必受限于单一框架或平台,可以灵活地在最适合应用的环境中运行模型。
这让从训练到实际部署的过渡更加快速高效。无论你是在仓库中跟踪库存,还是确保医院废弃物得到正确处理,这种配置都能帮助系统运行得更加顺畅,减少错误并节省宝贵时间。
想进一步了解计算机视觉和 AI?探索我们的 GitHub 代码仓库,加入我们的社区,并查看我们的许可选项,为你的计算机视觉项目快速起步。如果你正在探索制造业中的 AI和汽车行业中的计算机视觉等创新应用,请访问我们的解决方案页面,了解更多信息。









