YOLO Vision 2026:
集成

使用 ONNX 集成导出 Ultralytics YOLO 模型

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

ABAbirami Vina4 min read
ONNX 让在一个框架中训练的模型能在另一个框架中运行

AI solutions最初受到关注时,大多数模型都部署在受控环境中的强大服务器上。然而,随着技术的发展,部署范围早已远远超出了数据中心。

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

这一点最明显的领域之一就是computer vision——人工智能的一个分支,它使机器能够解释视觉数据。它正被用于驱动人脸识别、自动驾驶和实时视频分析等应用。随着这些用例的增长,对能够在各种硬件和平台上顺利运行的Models的需求也在增加。

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

这就是为什么能够选择将Ultralytics YOLO11等计算机视觉模型导出为不同格式至关重要的原因。例如,Ultralytics支持的ONNX(Open Neural Network Exchange)集成提供了一种实用的方法来弥合训练和部署之间的鸿沟。ONNX是一个开放格式,使模型具有框架无关性,并且可以在各个平台上准备好进行部署。

ONNX enabling a model trained in one framework to run in another

Fig 1. ONNX可以帮助你轻松地将一个在某个框架中训练的模型放到另一个框架中运行。

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

什么是 ONNX 和 ONNX Runtime?#

Open Neural Network Exchange 是一个定义机器学习模型标准格式的开源项目。它最初由微软和 Facebook 开发,允许开发者在一个框架(如 PyTorch)中训练模型,并在另一个框架(如 TensorFlow)中运行。这使得 AI 开发更加灵活、协作且易于访问,尤其是在计算机视觉等领域。

ONNX提供了一组通用的算子和一个统一的文件格式,使得在不同的工具、框架、运行时和编译器之间迁移模型变得更加容易。通常,在一个框架中训练的模型不容易与另一个框架兼容——但有了ONNX,你只需导出一次模型,就可以几乎在任何地方部署它:在CPU(Central Processing Units)、GPUs (Graphics Processing Units)、移动设备或边缘硬件上。

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

ONNX and ONNX Runtime enabling cross-platform model deployment

Fig 2. ONNX和ONNX Runtime支持灵活的跨平台模型部署。

ONNX 的核心特性#

在讨论如何将 export Ultralytics YOLO11 导出为 ONNX 格式之前,我们先来看看 ONNX 模型格式的一些核心功能。

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

  • 一种标准格式:ONNX 使用通用的方式来描述模型构建,例如层和操作(可以将其视为积木)。当模型转换为 ONNX 时,它遵循此标准,以便任何支持 ONNX 的系统都能理解并运行它。

  • 向后兼容性:即使 ONNX 不断改进,它也能确保旧模型在较新版本中依然有效。这意味着你无需在 ONNX 更新时重新训练或重新构建模型。

  • 基于图的模型设计:ONNX 模型被构建为计算图,其中每个节点代表一个操作(如一层或数学函数),边表示数据流。这种基于图的设计方便了与使用类似计算图结构的不同系统的集成。

  • 开发者友好的工具:它配备了一系列工具,帮助你转换、验证和优化模型。这些工具简化了在不同框架之间移动模型的过程,并能加快部署速度——特别是对于计算机视觉应用。

ONNX 集成概览#

将像Ultralytics YOLO11这样的Ultralytics YOLO models导出为ONNX格式非常简单,只需几个步骤即可完成。

首先,使用像“pip”这样的包管理器安装Ultralytics Python package。你可以在命令提示符或终端中运行命令**“pip install ultralytics”**来开始使用。

借助Ultralytics包,你可以轻松地针对各种计算机视觉任务训练、测试、微调、导出和部署模型——从而使整个过程更快、更高效。在安装过程中,如果你遇到任何困难,可以参考Common Issues guide获取解决方案和提示。

安装好 Ultralytics 包后,你可以使用下面的代码加载并将 YOLO11 模型导出为 ONNX 格式。此示例加载了一个预训练的 YOLO11 模型 (yolo11n.pt) 并将其导出为 ONNX 文件 (yolo11n.onnx),使其能够跨不同平台和设备进行部署。

将模型转换为 ONNX 格式后,你可以将其部署到各种平台上。

下面的示例展示了如何加载导出的 YOLO11 模型 (yolo11n.onnx) 并使用它运行推理。推理简单来说就是使用训练好的模型对新数据进行预测。在这种情况下,我们将使用一张公交车的图片链接来测试该模型。

当你运行此代码时,生成的输出图像将保存到 runs/detect/predict 文件夹中。

Running an inference using the exported Ultralytics YOLO11 model on an image

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

你应该在什么时候选择 ONNX 集成?#

Ultralytics Python包支持exporting models到多种格式,包括TorchScript、CoreML、TensorRT和ONNX。那么,为什么要选择ONNX呢?

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

以下是为什么 ONNX 集成可能是你进行 Ultralytics YOLO11 项目的理想选择的几个原因:

  • 可移植部署: 一旦导出为 ONNX,你的 Ultralytics YOLO11 模型就可以部署到各种平台上,而无需更改代码或重新训练。

  • 行业级支持:ONNX 得到了主流 AI 公司和框架的支持,使其成为一种可靠、广受认可的格式。它确保了长期的兼容性,就像 PDF 在不同设备上运行一样。

  • 面向未来的开发:使用 ONNX 有助于保护你的模型投资。随着工具的演进,即使在新的或不同的环境中,ONNX 也能让你的模型保持相关性和可用性。

  • 无供应商锁定:某些工具会将你锁定在只能使用它们的系统上,这可能会限制模型的功能。ONNX 通过让你选择最适合自己需求的平台来避免这种情况,而无需被困在单一的设置中。

Ultralytics YOLO11 与 ONNX 模型格式的应用#

接下来,让我们探讨一些借助 ONNX 集成部署 Ultralytics YOLO11 的实际应用场景。

使用 Ultralytics YOLO11 跟踪仓库库存#

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

具体来说,在智能仓库中,导出为 ONNX 的 Ultralytics YOLO11 模型可用于通过摄像头和边缘设备实时识别和清点物品。导出的模型可以帮助扫描货架或托盘,以检测库存水平、缺货物品或空位。由于导出为 ONNX 使模型变得轻量且高效,它可以直接在小型边缘设备(如智能摄像头)上运行,从而消除了对昂贵服务器或持续云端访问的需求。

An example of using Ultralytics YOLO11 to detect and count packages

Fig 4. 使用YOLO11检测和清点包裹的示例。

使用 Ultralytics YOLO11 进行医院医疗废物管理#

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

妥善分类此类废物对于卫生、安全和合规至关重要。借助以 ONNX 格式导出的 Ultralytics YOLO11 模型,医院可以实现废物处理的自动化并进行实时监控。

例如,放置在手术室或走廊等区域废物桶附近的摄像头可以在丢弃物品时进行监控。经过训练以识别不同类型医疗废物的自定义 Ultralytics YOLO11 模型可以分析视频片段并识别丢弃的物品。如果物品最终进入了错误的垃圾桶(例如普通垃圾中混入了用过的注射器),系统可以设置为立即通过灯光或声音向工作人员发出警报,从而帮助防止污染并确保合规。

Using Ultralytics YOLO11 to detect medical instruments

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

启用了 Ultralytics YOLO11 的作物监测#

了解农作物的最佳收获时间对农产品的质量和农场的整体生产力都有重大影响。传统上,农民依赖经验和人工检查,但随着近来的技术进步,这种情况正在改变。

现在,借助以ONNX格式导出的YOLO11等计算机视觉创新技术,农民可以将自动化和精准化带入田间。通过使用无人机或安装在拖拉机或杆子上的摄像头,农民可以拍摄农作物(如西红柿、苹果或小麦)的图像。然后可以使用YOLO11来检测关键指标,例如颜色、大小和distribution of crops。基于这些信息,农民可以确定作物是准备收获、仍在成熟还是已经过了最佳采摘期。

Ultralytics YOLO11 detecting crops in aerial drone footage

Fig 6. YOLO11可用于检测航拍无人机画面中的农作物。

需要考虑的 ONNX 限制#

虽然 ONNX 提供了许多优势,如便携性、跨平台兼容性和框架互操作性,但也有一些限制需要牢记:

  • Model size:与原始格式相比,将模型转换为ONNX格式有时会导致文件更大。quantization and pruning等技术可以通过在不显著影响性能的情况下减小模型大小来帮助缓解此问题。

  • 运行时兼容性:尽管 ONNX Runtime 是为跨平台兼容性而设计的,但性能和支持情况可能会因不同硬件和操作系统而异。

  • 调试挑战:调试 ONNX 模型可能比在 PyTorch 或 TensorFlow 等原生框架中更复杂。错误消息可能描述性较弱,使定位问题变得更困难。不过,像 Netron 这样的模型可视化工具和 ONNX Runtime 的日志记录功能可以协助进行故障排除。

关键要点#

将 Ultralytics YOLO11 导出为 ONNX,可以轻松地将训练好的计算机视觉模型部署到几乎任何地方——无论是笔记本电脑、移动设备,还是紧凑型智能摄像头。有了 ONNX 集成,你不会被绑定在单一的框架或平台上,从而能够灵活地在最适合你应用的环境中运行模型。

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

想了解更多关于计算机视觉和人工智能的知识吗?浏览我们的GitHub repository,与our community联系,并查看our licensing options来开启你的计算机视觉项目。如果你正在探索诸如AI in manufacturingcomputer vision in the automotive行业中的计算机视觉等创新技术,请访问我们的解决方案页面以了解更多信息。

Explore solutions

Real-time AI that works with your team

机器人技术中的 AI

使用 Ultralytics YOLO 模型为智能机器赋能。机器人技术中的视觉 AI 可推动自主导航、感知、物体跟踪和实时控制。
了解更多
Real-time AI that works with your team

物流中的 AI

使用 Ultralytics YOLO 模型简化物流。视觉 AI 可实现包裹检查、分拣、车辆跟踪和实时仓库安全监控。
了解更多
Real-time AI that works with your team

零售业 AI

使用 Ultralytics YOLO 模型重塑零售业。视觉 AI 推动库存跟踪、货架监控、队列管理和更智能的客户洞察。
了解更多
Real-time AI that works with your team

医疗保健中的 AI

利用 Ultralytics YOLO 模型构建医疗保健解决方案。医疗保健中的视觉 AI 可助力更快速的医学影像分析、更智能的诊断和患者监测。
了解更多
Real-time AI that works with your team

制造业中的 AI

使用 Ultralytics YOLO 模型优化制造业。视觉 AI 推动质量控制、缺陷检测、PPE 合规性和装配线自动化。
了解更多
Real-time AI that works with your operation

汽车中的 AI

将计算机视觉应用于汽车行业,并配合 Ultralytics YOLO 模型。汽车视觉 AI 可提升道路安全、辅助驾驶和车辆自动化,打造更智能的道路。
了解更多
Real-time AI tailored to your operation

农业中的 AI

借助 Ultralytics YOLO 模型,将视觉 AI 引入智慧农业。赋能作物监测、牲畜追踪和精准农业,实现更高、更智能的产量。
了解更多
Real-time AI that works with your team

机器人技术中的 AI

使用 Ultralytics YOLO 模型为智能机器赋能。机器人技术中的视觉 AI 可推动自主导航、感知、物体跟踪和实时控制。
了解更多
Real-time AI that works with your team

物流中的 AI

使用 Ultralytics YOLO 模型简化物流。视觉 AI 可实现包裹检查、分拣、车辆跟踪和实时仓库安全监控。
了解更多
Real-time AI that works with your team

零售业 AI

使用 Ultralytics YOLO 模型重塑零售业。视觉 AI 推动库存跟踪、货架监控、队列管理和更智能的客户洞察。
了解更多
Real-time AI that works with your team

医疗保健中的 AI

利用 Ultralytics YOLO 模型构建医疗保健解决方案。医疗保健中的视觉 AI 可助力更快速的医学影像分析、更智能的诊断和患者监测。
了解更多
Real-time AI that works with your team

制造业中的 AI

使用 Ultralytics YOLO 模型优化制造业。视觉 AI 推动质量控制、缺陷检测、PPE 合规性和装配线自动化。
了解更多
Real-time AI that works with your operation

汽车中的 AI

将计算机视觉应用于汽车行业,并配合 Ultralytics YOLO 模型。汽车视觉 AI 可提升道路安全、辅助驾驶和车辆自动化,打造更智能的道路。
了解更多
Real-time AI tailored to your operation

农业中的 AI

借助 Ultralytics YOLO 模型,将视觉 AI 引入智慧农业。赋能作物监测、牲畜追踪和精准农业,实现更高、更智能的产量。
了解更多
Real-time AI that works with your team

机器人技术中的 AI

使用 Ultralytics YOLO 模型为智能机器赋能。机器人技术中的视觉 AI 可推动自主导航、感知、物体跟踪和实时控制。
了解更多
Real-time AI that works with your team

物流中的 AI

使用 Ultralytics YOLO 模型简化物流。视觉 AI 可实现包裹检查、分拣、车辆跟踪和实时仓库安全监控。
了解更多
Real-time AI that works with your team

零售业 AI

使用 Ultralytics YOLO 模型重塑零售业。视觉 AI 推动库存跟踪、货架监控、队列管理和更智能的客户洞察。
了解更多
Real-time AI that works with your team

医疗保健中的 AI

利用 Ultralytics YOLO 模型构建医疗保健解决方案。医疗保健中的视觉 AI 可助力更快速的医学影像分析、更智能的诊断和患者监测。
了解更多
Real-time AI that works with your team

制造业中的 AI

使用 Ultralytics YOLO 模型优化制造业。视觉 AI 推动质量控制、缺陷检测、PPE 合规性和装配线自动化。
了解更多
Real-time AI that works with your operation

汽车中的 AI

将计算机视觉应用于汽车行业,并配合 Ultralytics YOLO 模型。汽车视觉 AI 可提升道路安全、辅助驾驶和车辆自动化,打造更智能的道路。
了解更多
Real-time AI tailored to your operation

农业中的 AI

借助 Ultralytics YOLO 模型,将视觉 AI 引入智慧农业。赋能作物监测、牲畜追踪和精准农业,实现更高、更智能的产量。
了解更多

让我们一起构建 AI 的未来!

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