了解如何使用ONNX 集成导出Ultralytics YOLO 模型(如Ultralytics YOLO11),以便在各种硬件上进行跨平台部署。
人工智能解决方案刚开始受到关注时,大多数模型都部署在受控环境中的强大服务器上。然而,随着技术的进步,部署范围已远远超出数据中心。
如今,人工智能模型可在从云服务器和台式机到智能手机和边缘设备的所有设备上运行。这种转变支持更快的处理速度、离线功能和更智能的系统,这些系统的运行更接近数据产生的地方。
计算机视觉就是其中一个表现尤为明显的领域,它是人工智能的一个分支,能让机器解读视觉数据。它被用于推动面部识别、自动驾驶和实时视频分析等应用。随着这些用例的增加,对能够在不同硬件和平台上流畅运行的模型的需求也在增加。
但是,在一系列部署目标中部署计算机视觉模型并不总是那么简单。设备的硬件、操作系统和支持的框架各不相同,因此灵活性和兼容性至关重要。
这就是为什么可以选择导出计算机视觉模型,如 Ultralytics YOLO11等计算机视觉模型导出为不同格式的选项至关重要。例如,Ultralytics 支持的ONNX (开放神经网络交换)集成为弥合训练和部署之间的差距提供了一种实用的方法。ONNX 是一种开放格式,可使模型不受框架限制,并可跨平台部署。
在本文中,我们将详细介绍Ultralytics 支持的ONNX 集成,并探讨如何导出YOLO11 模型,以实现灵活的跨平台部署。
开放神经网络交换(Open Neural Network Exchange)是一个开源项目,定义了机器学习模型的标准格式。它最初由Microsoft 和 Facebook 共同开发,允许开发人员在一个框架(如PyTorch)中训练模型,然后在另一个框架(如TensorFlow)中运行。这使得人工智能开发变得更加灵活、更具协作性和更易于访问,尤其是在计算机视觉等领域。
ONNX 提供了一套通用的运算符和统一的文件格式,使模型在不同工具、框架、运行时和编译器之间的移动变得更加容易。通常情况下,在一个框架中训练好的模型不容易与另一个框架兼容,但有了ONNX,您只需导出一次模型,就能将其部署到几乎任何地方:CPU(中央处理器)、GPU(图形处理器)、移动设备或边缘硬件。
此外,ONNX Runtime 是一个高性能推理引擎,专门为运行ONNX 格式的模型而开发。它旨在让ONNX 模型在各种平台(包括服务器、移动设备和边缘硬件)上运行得更快、更高效。ONNX Runtime 与PyTorch、TensorFlow、TensorFlow Lite 和 scikit-learn 等流行框架兼容,可轻松集成到不同的工作流中,并在需要的地方部署模型。
在讨论如何将 YOLO11导出为ONNX 格式之前,我们先来了解一下ONNX 模型格式的一些主要特点。
无论您是在不同工具间切换、部署到不同设备还是升级系统,ONNX 都能帮助您保持一切顺利运行。以下是ONNX 模型格式的独特之处:
以ONNX 格式导出Ultralytics YOLO 模型(如Ultralytics YOLO11 )非常简单,只需几个步骤即可完成。
要开始使用,请使用 "pip "之类的软件包管理器安装Ultralytics Python 软件包。在命令提示符或终端运行"pip installultralytics"命令即可开始安装。
有了Ultralytics 软件包,你可以轻松地为各种计算机视觉任务训练、测试、微调、导出和部署模型,使整个过程更快、更高效。在安装过程中,如果遇到任何困难,可以参考常见问题指南,了解解决方案和技巧。
安装Ultralytics 软件包后,您可以使用下面的代码将YOLO11 模型加载并导出为ONNX 格式。本示例加载预训练的YOLO11 模型 (yolo11n.pt) 并将其导出为ONNX 文件 (yolo11n.onnx),以便在不同平台和设备上部署。
from ultralytics import YOLO
model = YOLO("yolo11n.pt")
model.export(format="onnx")
将模型转换为ONNX 格式后,您可以将其部署到各种平台上。
下面的示例展示了如何加载导出的YOLO11 模型 (yolo11nonnx) 并运行推理。推理简单地说就是使用训练有素的模型对新数据进行预测。在本例中,我们将使用一张公共汽车图片的 URL 来测试模型。
onnx_model = YOLO("yolo11n.onnx")
results = onnx_model("https://ultralytics.com/images/bus.jpg",save=True)
运行此代码后,以下输出图像将保存在 runs/detect/predict 文件夹中。
Ultralytics Python 软件包支持将模型导出为多种格式,包括TorchScript、CoreML、TensorRT 和ONNX。那么,为什么要选择ONNX 呢?
ONNX 脱颖而出的原因在于它是一种与框架无关的格式。许多其他导出格式与特定工具或环境绑定,而ONNX 则使用标准化格式和一套共享操作符。这使它具有高度的可移植性,对硬件友好,是跨平台部署的理想选择--无论您使用的是云服务器、移动应用程序还是边缘设备。
以下是ONNX 集成成为YOLO11 项目理想选择的一些原因:
接下来,让我们来探讨一下在ONNX 集成的帮助下部署YOLO11 的一些实际应用。
在繁忙的仓库中,很难随时监控每件产品和包装。计算机视觉系统可以帮助工人找到货架上的产品,并了解产品数量、类型等信息。这些系统可以帮助企业自动管理庞大的库存,为仓库工人节省大量时间。
具体来说,在智能仓库中,导出到ONNX 的YOLO11 模型可用于使用摄像头和边缘设备实时识别和清点物品。导出的模型可以帮助扫描货架或托盘,检测库存水平、缺失物品或空位。由于导出到ONNX 的模型轻便高效,因此可以直接在智能摄像头等小型边缘设备上运行,无需昂贵的服务器或持续的云访问。
世界各地的医院每天都会产生大量废物,从用过的手套和注射器到手术中使用的设备(如一次性或受污染的手术工具,如剪刀和手术刀)。事实上,研究表明,医院每年产生约 500 万吨废物,即每张病床每天产生 29 磅废物。
正确分类这些废物对卫生、安全和遵守法规至关重要。利用以ONNX 格式导出的YOLO11 模型,医院可以实时自动监控废物处理情况。
例如,放置在手术室或走廊等区域废物箱附近的摄像头可以监控物品被丢弃的过程。经过训练的定制YOLO11 模型可以识别不同类型的医疗废物,它可以分析录像并识别出被丢弃的物品。如果物品最终被扔进了错误的垃圾桶,比如将用过的注射器扔进了普通垃圾桶,系统可以设置为立即用灯光或声音提醒工作人员,帮助防止污染并确保合规。
掌握正确的作物收割时间,对农产品的质量和农场的整体生产力都有很大影响。传统上,农民依赖经验和人工检查,但随着最近技术的进步,这种情况开始发生变化。
现在,有了以ONNX 格式输出的YOLO11 等计算机视觉创新技术,农民可以将自动化和精确性带入田间地头。通过使用无人机或安装在拖拉机或电线杆上的摄像头,农民可以捕捉到农作物(如西红柿、苹果或小麦)的图像。然后,YOLO11 可用于检测作物的颜色、大小和分布等关键指标。根据这些信息,农民可以确定农作物是准备收获、仍在成熟还是已经过了收获高峰期。
ONNX 具有许多优点,如可移植性、跨平台兼容性和框架互操作性,但也有一些局限性需要注意。
将Ultralytics YOLO11 输出到ONNX ,就可以轻松地将训练有素的计算机视觉模型部署到几乎任何地方--无论是笔记本电脑、移动设备,甚至是小型智能相机。有了ONNX 集成,您就不必受限于单一框架或平台,可以灵活地在最适合您应用的环境中运行模型。
这使得从培训到实际部署的过渡更加快速高效。无论是跟踪仓库库存还是确保正确处理医院废物,这种设置都能帮助系统更顺畅地运行,减少错误并节省宝贵的时间。
想了解有关计算机视觉和人工智能的更多信息?探索我们的GitHub 存储库,与我们的社区建立联系,了解我们的许可选项,启动您的计算机视觉项目。如果您正在探索制造业中的人工智能 和汽车行业中的计算机视觉等创新,请访问我们的解决方案页面了解更多信息。