敬请关注 YOLO Vision 2025!
2025年9月25日
英国夏令时 10:00 - 18:00
混合活动
Yolo Vision 2024

使用 ONNX 集成导出 Ultralytics YOLO 模型

Abirami Vina

4 分钟阅读

2025年5月2日

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

AI 解决方案 首次受到关注时,大多数模型都部署在受控环境中的强大服务器上。然而,随着技术的进步,部署已远远超出数据中心的范围。

如今,AI 模型可以在从云服务器和桌面电脑到智能手机和边缘设备的各种设备上运行。这种转变支持更快的处理速度、离线功能以及更智能的系统,这些系统可以在更接近数据生成地点的地方运行。

其中一个特别明显的领域是计算机视觉,它是 AI 的一个分支,使机器能够解释视觉数据。它被用于驱动面部识别、自动驾驶和实时视频分析等应用。随着这些用例的增长,对能够在各种硬件和平台上流畅运行的模型的需求也在增长。

但是,在各种部署目标上部署计算机视觉模型并不总是那么简单。设备在硬件、操作系统和支持的框架方面各不相同,因此灵活性和兼容性至关重要。

因此,能够将像Ultralytics YOLO11这样的计算机视觉模型导出为不同格式至关重要。例如,Ultralytics支持的ONNX(开放神经网络交换)集成提供了一种实用的方法来弥合训练和部署之间的差距。ONNX是一种开放格式,使模型具有框架无关性,并可在各种平台上进行部署。

图 1. ONNX 帮助您在一个框架中训练的模型轻松地在另一个框架中运行。

在本文中,我们将仔细研究 Ultralytics 支持的 ONNX 集成,并探讨如何导出您的 YOLO11 模型以实现灵活的跨平台部署。

什么是 ONNX 和 ONNX Runtime?

开放神经网络交换 (ONNX) 是一个开源项目,它定义了机器学习模型的标准格式。它最初由微软和 Facebook 开发,允许开发人员在一个框架(如 PyTorch)中训练模型,并在另一个框架(如 TensorFlow)中运行它。这使得人工智能开发更加灵活、协作和易于访问,尤其是在计算机视觉等领域。

ONNX提供了一组通用的运算符和一个统一的文件格式,从而可以更轻松地在不同的工具、框架、运行时和编译器之间移动模型。通常,在一个框架中训练的模型不容易与另一个框架兼容 - 但使用ONNX,您可以导出模型一次,并几乎可以在任何地方部署它:在CPU(中央处理器)、GPU(图形处理单元)、移动设备或边缘硬件上。

此外,ONNX Runtime 是一个高性能的推理引擎,专门用于运行 ONNX 格式的模型。它旨在使 ONNX 模型在各种平台(包括服务器、移动设备和边缘硬件)上运行得更快、更高效。ONNX Runtime 与 PyTorch、TensorFlow、TensorFlow Lite 和 scikit-learn 等流行的框架兼容,可以轻松集成到不同的工作流程中,并在需要的地方部署模型。

图 2. ONNX 和 ONNX Runtime 实现灵活的跨平台模型部署。

ONNX 的主要特性 

在讨论如何将YOLO11 导出为 ONNX 格式之前,让我们先了解一下 ONNX 模型格式的一些关键特性。 

无论您是在工具之间切换、部署到不同的设备,还是升级系统,ONNX 都有助于保持一切平稳运行。以下是 ONNX 模型格式的独特之处:

  • 统一标准格式: ONNX 使用通用的方式来描述模型的构建方式,例如层和操作(可以将其视为构建块)。当模型转换为 ONNX 时,它会遵循此标准,以便任何支持 ONNX 的系统都可以理解并运行它。
  • 向后兼容性: 即使 ONNX 不断改进,它也能确保旧模型仍然可以使用较新版本。这意味着您不必每次 ONNX 更新时都重新训练或重建模型。
  • 基于图的模型设计: ONNX 模型被构造为计算图,其中每个节点代表一个操作(例如层或数学函数),边表示数据的流动。这种基于图的设计有助于与利用类似计算图结构的各种系统集成。
  • 开发者友好的工具: 它配备了各种工具,可帮助您转换、验证和优化模型。这些工具简化了在不同框架之间移动模型的过程,并可以加快部署速度,尤其是在计算机视觉应用中。

ONNX 集成概述

以 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) 并使用它运行推理。推理简单来说就是使用经过训练的模型对新数据进行预测。在本例中,我们将使用一张公共汽车的图像 URL 来测试该模型。

当您运行此代码时,以下输出图像将保存在 runs/detect/predict 文件夹中。

图 3. 使用导出的 YOLO11 模型对图像进行推理。

何时应选择ONNX集成?

Ultralytics Python 软件包支持将模型导出为多种格式,包括 TorchScript、CoreML、TensorRT 和 ONNX。那么,为什么要选择 ONNX 呢?

ONNX 的突出之处在于它是一种与框架无关的格式。虽然许多其他导出格式都与特定的工具或环境相关联,但 ONNX 使用标准化的格式和共享的运算符集。这使其具有高度的可移植性、对硬件友好,并且非常适合跨平台部署——无论您使用的是云服务器、移动应用程序还是边缘设备。 

以下是 ONNX 集成可能是您的 YOLO11 项目的理想选择的一些原因:

  • 可移植部署: 一旦导出到 ONNX,您的 YOLO11 模型就可以部署在各种平台上,而无需更改代码或重新训练。
  • 行业范围内的支持:主要的 AI 公司和框架都支持 ONNX,使其成为一种可靠且被广泛接受的格式。它确保了长期的兼容性,就像 PDF 在各种设备上的工作方式一样。
  • 面向未来的开发: 使用 ONNX 有助于保护您的模型投资。随着工具的发展,ONNX 使您的模型保持相关性和可用性,即使在新的或不同的环境中也是如此。
  • 无供应商锁定:某些工具将您限制为只能使用他们的系统,这会限制您的模型可以执行的操作。ONNX 通过让您选择最适合您需求的平台来避免这种情况,而不会被单一设置所束缚。

YOLO11 和 ONNX 模型格式的应用

接下来,让我们探索一些在 ONNX 集成的帮助下可以部署 YOLO11 的实际应用。

使用 YOLO11 跟踪仓库中的库存

在繁忙的仓库中,很难始终关注每个产品和包裹。计算机视觉系统可以帮助工人找到货架上的产品并获得诸如产品数量、类型等见解。此类系统可以帮助企业自动管理其庞大的库存,并节省仓库工人大量时间。

具体来说,在智能仓库中,导出到 ONNX 的 YOLO11 模型可用于使用摄像头和边缘设备实时识别和计数物品。导出的模型可以帮助扫描货架或托盘,以检测库存水平、缺失物品或空位。由于导出到 ONNX 使模型变得轻量且高效,因此它可以直接在智能摄像头等小型边缘设备上运行,从而无需昂贵的服务器或持续的云访问。

图 4. 使用 YOLO11 检测和计数包裹的示例。

使用 YOLO11 进行医院废物管理

世界各地的医院每天都会产生大量废物,从用过的手套和注射器到手术期间使用的设备(如一次性或受污染的手术工具,如剪刀和手术刀)。事实上,研究表明,医院每年产生约 500 万吨废物,即每天每张病床 29 磅的废物。 

正确分类此类废物对于卫生、安全和遵守法规至关重要。借助以 ONNX 格式导出的 YOLO11 模型,医院可以自动化并实时监控废物处理。

例如,在手术室或走廊等区域的垃圾桶附近安装摄像头可以监控物品的丢弃情况。一个经过训练的定制 YOLO11 模型可以识别不同类型的医疗废物,分析拍摄的视频并识别被丢弃的物品。如果物品最终被扔到错误的垃圾桶中,例如用过的注射器被扔到普通垃圾中,则可以将系统设置为立即通过灯光或声音提醒工作人员,从而帮助防止污染并确保合规性。

图 5. 使用 YOLO11 检测医疗器械。

基于 YOLO11 的作物监测

了解何时是收获农作物的最佳时机,对于农产品的质量和农场的整体生产力都有很大的影响。 传统上,农民依靠经验和人工检查,但随着技术的进步,这种情况开始发生变化。

现在,借助像 YOLO11 这样以 ONNX 格式导出的计算机视觉创新技术,农民可以将自动化和精准性引入田间。通过使用无人机或安装在拖拉机或杆子上的摄像头,农民可以捕捉农作物(如西红柿、苹果或小麦)的图像。然后,YOLO11 可用于检测关键指标,如颜色、大小和作物分布。基于这些信息,农民可以确定农作物是否已准备好收割、仍在成熟或已过高峰期。

图 6. YOLO11 可用于检测航拍无人机拍摄的农作物。 

需要考虑的 ONNX 局限性

虽然ONNX提供了许多好处,例如可移植性、跨平台兼容性和框架互操作性,但仍有一些限制需要注意:

  • 模型大小:与原始格式相比,将模型转换为 ONNX 格式有时会导致更大的文件大小。诸如量化和剪枝之类的技术可以通过减小模型大小而不显着影响性能来帮助缓解此问题。​
  • 运行时兼容性:虽然ONNX Runtime专为跨平台兼容性而设计,但性能和支持可能因不同的硬件和操作系统而异。 
  • 调试挑战: 调试 ONNX 模型可能比在 PyTorch 或 TensorFlow 等原生框架中更复杂。 错误消息可能不够详细,使得查明问题更加困难。 但是,用于模型可视化的 Netron 和 ONNX Runtime 的日志记录功能等工具可以帮助进行故障排除。

主要要点

将 Ultralytics YOLO11 导出到 ONNX,可以轻松地将训练好的计算机视觉模型部署到几乎任何地方,无论是在笔记本电脑、移动设备,甚至是紧凑型智能相机上。通过 ONNX 集成,您不再受限于单一框架或平台,从而可以灵活地在最适合您应用的环境中运行模型。 

这使得从训练到实际部署的过渡更快、更高效。无论您是在仓库中跟踪库存,还是确保医院废物得到正确处理,这种设置都有助于系统更顺畅地运行,减少错误,并节省宝贵的时间。

想了解更多关于计算机视觉和人工智能的信息吗?请浏览我们的GitHub 仓库,与我们的社区互动,并查看我们的许可选项,以快速启动您的计算机视觉项目。如果您正在探索制造业中的人工智能汽车行业中的计算机视觉等创新应用,请访问我们的解决方案页面以了解更多信息。 

让我们一起构建人工智能的未来!

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

免费开始
链接已复制到剪贴板