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

了解如何使用 ONNX 集成导出 Ultralytics YOLO 模型(如 Ultralytics YOLO11),以便在各种硬件上进行跨平台部署。
当 AI 解决方案 首次受到关注时,大多数模型都部署在受控环境中的强大服务器上。然而,随着技术的进步,部署已远远超出数据中心的范围。
如今,AI 模型可以在从云服务器和桌面电脑到智能手机和边缘设备的各种设备上运行。这种转变支持更快的处理速度、离线功能以及更智能的系统,这些系统可以在更接近数据生成地点的地方运行。
其中一个特别明显的领域是计算机视觉,它是 AI 的一个分支,使机器能够解释视觉数据。它被用于驱动面部识别、自动驾驶和实时视频分析等应用。随着这些用例的增长,对能够在各种硬件和平台上流畅运行的模型的需求也在增长。
但是,在各种部署目标上部署计算机视觉模型并不总是那么简单。设备在硬件、操作系统和支持的框架方面各不相同,因此灵活性和兼容性至关重要。
因此,能够将像Ultralytics YOLO11这样的计算机视觉模型导出为不同格式至关重要。例如,Ultralytics支持的ONNX(开放神经网络交换)集成提供了一种实用的方法来弥合训练和部署之间的差距。ONNX是一种开放格式,使模型具有框架无关性,并可在各种平台上进行部署。
在本文中,我们将仔细研究 Ultralytics 支持的 ONNX 集成,并探讨如何导出您的 YOLO11 模型以实现灵活的跨平台部署。
开放神经网络交换 (ONNX) 是一个开源项目,它定义了机器学习模型的标准格式。它最初由微软和 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 install ultralytics” 来完成。
使用 Ultralytics 软件包,您可以轻松地训练、测试、微调、导出和部署模型,以用于各种计算机视觉任务 - 从而使整个过程更快、更高效。安装过程中,如果遇到任何困难,您可以参考常见问题解答指南以获取解决方案和提示。
安装 Ultralytics 软件包后,您可以使用下面的代码加载 YOLO11 模型并将其导出为 ONNX 格式。此示例加载预训练的 YOLO11 模型 (yolo11n.pt) 并将其导出为 ONNX 文件 (yolo11n.onnx),使其可以跨不同的平台和设备进行部署。
将模型转换为 ONNX 格式后,您可以将其部署在各种平台上。
下面的示例展示了如何加载导出的 YOLO11 模型 (yolo11n.onnx) 并使用它运行推理。推理简单来说就是使用经过训练的模型对新数据进行预测。在本例中,我们将使用一张公共汽车的图像 URL 来测试该模型。
当您运行此代码时,以下输出图像将保存在 runs/detect/predict 文件夹中。
Ultralytics Python 软件包支持将模型导出为多种格式,包括 TorchScript、CoreML、TensorRT 和 ONNX。那么,为什么要选择 ONNX 呢?
ONNX 的突出之处在于它是一种与框架无关的格式。虽然许多其他导出格式都与特定的工具或环境相关联,但 ONNX 使用标准化的格式和共享的运算符集。这使其具有高度的可移植性、对硬件友好,并且非常适合跨平台部署——无论您使用的是云服务器、移动应用程序还是边缘设备。
以下是 ONNX 集成可能是您的 YOLO11 项目的理想选择的一些原因:
接下来,让我们探索一些在 ONNX 集成的帮助下可以部署 YOLO11 的实际应用。
在繁忙的仓库中,很难始终关注每个产品和包裹。计算机视觉系统可以帮助工人找到货架上的产品并获得诸如产品数量、类型等见解。此类系统可以帮助企业自动管理其庞大的库存,并节省仓库工人大量时间。
具体来说,在智能仓库中,导出到 ONNX 的 YOLO11 模型可用于使用摄像头和边缘设备实时识别和计数物品。导出的模型可以帮助扫描货架或托盘,以检测库存水平、缺失物品或空位。由于导出到 ONNX 使模型变得轻量且高效,因此它可以直接在智能摄像头等小型边缘设备上运行,从而无需昂贵的服务器或持续的云访问。
世界各地的医院每天都会产生大量废物,从用过的手套和注射器到手术期间使用的设备(如一次性或受污染的手术工具,如剪刀和手术刀)。事实上,研究表明,医院每年产生约 500 万吨废物,即每天每张病床 29 磅的废物。
正确分类此类废物对于卫生、安全和遵守法规至关重要。借助以 ONNX 格式导出的 YOLO11 模型,医院可以自动化并实时监控废物处理。
例如,在手术室或走廊等区域的垃圾桶附近安装摄像头可以监控物品的丢弃情况。一个经过训练的定制 YOLO11 模型可以识别不同类型的医疗废物,分析拍摄的视频并识别被丢弃的物品。如果物品最终被扔到错误的垃圾桶中,例如用过的注射器被扔到普通垃圾中,则可以将系统设置为立即通过灯光或声音提醒工作人员,从而帮助防止污染并确保合规性。
了解何时是收获农作物的最佳时机,对于农产品的质量和农场的整体生产力都有很大的影响。 传统上,农民依靠经验和人工检查,但随着技术的进步,这种情况开始发生变化。
现在,借助像 YOLO11 这样以 ONNX 格式导出的计算机视觉创新技术,农民可以将自动化和精准性引入田间。通过使用无人机或安装在拖拉机或杆子上的摄像头,农民可以捕捉农作物(如西红柿、苹果或小麦)的图像。然后,YOLO11 可用于检测关键指标,如颜色、大小和作物分布。基于这些信息,农民可以确定农作物是否已准备好收割、仍在成熟或已过高峰期。
虽然ONNX提供了许多好处,例如可移植性、跨平台兼容性和框架互操作性,但仍有一些限制需要注意:
将 Ultralytics YOLO11 导出到 ONNX,可以轻松地将训练好的计算机视觉模型部署到几乎任何地方,无论是在笔记本电脑、移动设备,甚至是紧凑型智能相机上。通过 ONNX 集成,您不再受限于单一框架或平台,从而可以灵活地在最适合您应用的环境中运行模型。
这使得从训练到实际部署的过渡更快、更高效。无论您是在仓库中跟踪库存,还是确保医院废物得到正确处理,这种设置都有助于系统更顺畅地运行,减少错误,并节省宝贵的时间。
想了解更多关于计算机视觉和人工智能的信息吗?请浏览我们的GitHub 仓库,与我们的社区互动,并查看我们的许可选项,以快速启动您的计算机视觉项目。如果您正在探索制造业中的人工智能和汽车行业中的计算机视觉等创新应用,请访问我们的解决方案页面以了解更多信息。