深圳尤洛视觉
深圳
立即加入

使用 ExecuTorch 集成部署 Ultralytics YOLO 模型

Abirami Vina

5 分钟阅读

2025 年 11 月 4 日

探索如何将 Ultralytics YOLO 模型(如 Ultralytics YOLO11)导出为 ExecuTorch 格式,以便在边缘设备和移动设备上进行高效的 PyTorch 本地部署。

当 Ultralytics YOLO 模型(如Ultralytics YOLO11)在捕捉图像的传感器附近运行时,某些计算机视觉应用(如自动质量检测、自主无人机或智能安防系统)的性能最佳。换句话说,这些模型需要在摄像机、无人机或嵌入式系统上直接处理数据,而不是将数据发送到云端。 

这种方法被称为边缘人工智能,能让模型直接在采集数据的设备上执行推理。通过在本地处理信息而不是依赖远程服务器,系统可以实现更低的延迟、更强的数据隐私性和更高的可靠性,即使在互联网连接有限或没有互联网连接的环境中也是如此。

例如,每分钟检测数千件产品的制造相机或在复杂环境中航行的无人机无法承受云处理带来的延迟。直接在设备上运行 YOLO11 可以实现即时的设备推理。

为了使在边缘运行Ultralytics YOLO模型变得更简单、更高效,Ultralytics支持的新的ExecuTorch集成提供了一种简化的方式,可将模型直接导出并部署到移动和嵌入式设备上。ExecuTorch 是 PyTorch Edge 生态系统的一部分,为直接在移动和边缘硬件(包括手机、可穿戴设备、嵌入式板卡和微控制器)上运行人工智能模型提供了端到端的解决方案。

这种整合使Ultralytics YOLO模型(如YOLO11)从训练到在边缘设备上部署变得简单易行。通过将YOLO11的视觉功能与ExecuTorch的轻量级运行时和PyTorch输出管道相结合,用户可以部署在边缘硬件上高效运行的模型,同时保持基于PyTorch推理的准确性和性能。

在本文中,我们将详细介绍 ExecuTorch 集成的工作原理,为什么它非常适合边缘人工智能应用,以及您如何开始使用 ExecuTorch 部署 Ultralytics YOLO 模型。让我们开始吧

什么是 ExecuTorch?

通常,在 PyTorch 中训练模型时,模型会在云端功能强大的服务器或图形处理器(GPU)上运行。但是,要将相同的模型部署到移动或嵌入式设备(如智能手机、无人机或微控制器)上,就需要一个能处理有限计算能力、内存和连接性的专门解决方案。

这正是ExecuTorch的优势所在。ExecuTorch是作为PyTorch Edge生态系统的一部分而开发的端到端解决方案,能够在移动、嵌入式和边缘平台上实现高效的设备推理。它将 PyTorch 的功能扩展到云之外,让人工智能模型直接在本地设备上运行。

将 PyTorch 推理带到边缘

ExecuTorch 的核心是提供一个轻量级 C++ 运行时,允许 PyTorch 模型直接在设备上执行。ExecuTorch 使用 PyTorch ExecuTorch (.pte) 模型格式,这是一种经过优化的导出格式,可加快加载速度、减少内存占用并提高可移植性。 

它支持将 XNNPACK 作为默认后端,以实现高效的中央处理器(CPU)推理,并扩展了各种硬件后端的兼容性,包括 Core ML、Metal、Vulkan、Qualcomm、MediaTek、Arm EthosU、OpenVINO 等。 

这些后端可在移动、嵌入式和专用边缘设备上实现优化加速。ExecuTorch 还与 PyTorch 输出管道集成,为量化和动态形状处理等高级功能提供支持,以提高性能和对不同部署环境的适应性。

量化可将高精度值(如 32 位浮点数)转换为低精度值,从而减小模型大小并提高推理速度,而动态形状处理则可使模型高效处理不同的输入大小。这两项功能对于在资源有限的边缘设备上运行人工智能模型至关重要。

图 1.ExecuTorch 工作原理一览(资料来源)

统一的边缘硬件层

除了运行时之外,ExecuTorch 还是多个硬件后端的统一抽象层。简而言之,它抽象出硬件的具体细节,并管理模型如何与不同的处理单元(包括 CPU、GPU 和神经处理单元(NPU))进行交互。

一旦模型被导出,ExecuTorch 就可以被配置为针对特定设备的最合适的后端。开发人员可以在不同的硬件上高效地部署模型,而无需编写针对特定设备的定制代码或维护单独的转换工作流程。

ExecuTorch采用模块化、便携式设计,并与PyTorch无缝集成,是将Ultralytics YOLO11等计算机视觉模型部署到移动和嵌入式系统的最佳选择。它缩小了模型训练与实际部署之间的差距,使边缘人工智能更快、更高效、更易于实现。

ExecuTorch 的主要功能

在了解如何将 Ultralytics YOLO 模型导出为 ExecuTorch 格式之前,我们先来探讨一下是什么让 ExecuTorch 成为在边缘部署人工智能的可靠选择。

下面我们就来看看它的一些主要功能:

  • 量化支持:ExecuTorch 支持模型量化,这是一种将高精度值转换为低精度值的技术,以减小模型大小,加快推理速度。这有助于模型在边缘设备上运行得更快,使用更少的内存,同时保持几乎相同的精度水平。
  • 高效使用内存 ExecuTorch 最大的优势之一是如何处理内存。动态内存分配会带来延迟和功耗,而 ExecuTorch 则不依赖于动态内存分配,而是采用了超前(AOT)内存规划。在导出过程中,它会分析模型图,并预先计算出每个操作需要多少内存。这样,运行时就能使用静态内存计划来执行模型,从而确保可预测的性能,并防止在内存或处理能力有限的设备上出现速度减慢或崩溃的情况。
  • 内置模型元数据:使用 Ultralytics 支持的集成导出时,每个模型都包含一个 YAML 文件,其中包含输入图像大小、类名和配置参数等重要元数据。这个附加文件简化了将模型集成到各种应用程序中的过程,并确保不同边缘平台上的行为保持一致。

如何将 Ultralytics YOLO 模型导出为 ExecuTorch 格式

既然我们已经对 ExecuTorch 的功能有了更深入的了解,下面就让我们来看看如何将 Ultralytics YOLO 模型导出为 ExecuTorch 格式。

步骤 1:安装 Ultralytics Python 包

要开始使用,你需要使用 pip(一种软件包安装程序)安装Ultralytics Python软件包。在终端或命令提示符下运行 "pip install ultralytics "即可。 

如果你在 Jupyter Notebook 或 Google Colab 环境中工作,只需在命令前添加感叹号,如"!pip install ultralytics"。安装完成后,Ultralytics 软件包将提供训练、测试和导出计算机视觉模型所需的所有工具,包括 Ultralytics YOLO11。

如果在安装过程中或导出模型时遇到任何问题,Ultralytics 官方文档和常见问题指南会提供详细的故障排除步骤和最佳实践,帮助你顺利启动和运行。

步骤 2:导出 Ultralytics YOLO11

安装 Ultralytics 软件包后,您可以加载 YOLO11 模型的变体,并将其导出为 ExecuTorch 格式。例如,您可以使用 "yolo11n.pt "这样的预训练模型,通过调用导出函数并将格式设置为 "executorch "来导出模型。 

这会创建一个名为 "yolo11n_executorch_model "的目录,其中包括优化后的模型文件(.pte)和一个单独的元数据 YAML 文件,该文件包含图像大小和类名等重要细节。

下面是导出模型的代码:

from ultralytics import YOLO

model = YOLO("yolo11n.pt")

model.export(format="executorch")

步骤 3:输出模型后运行推论

模型导出后,即可使用ExecuTorch运行时部署到边缘设备和移动设备上。导出的 .pte 模型文件可加载到您的应用程序中,无需云连接即可在设备上运行实时推理。

例如,下面的代码片段展示了如何加载导出模型并运行推理。推理简单地说就是使用训练有素的模型对新数据进行预测。在这里,模型是在公共 URL 中的一张公交车图像上进行测试的。

executorch_model = YOLO("yolo11n_executorch_model")

results = executorch_model.predict("https://ultralytics.com/images/bus.jpg", save=True)

运行代码后,您会在 "runs/detect/predict "文件夹中找到包含检测到的对象的输出图像。 

图 2.使用以 ExecuTorch 格式导出的 YOLO11 模型检测物体。

使用 ExecuTorch 集成的好处

在探索 Ultralytics 所支持的不同导出选项时,您可能会想知道 ExecuTorch 集成的独特之处。主要区别在于它如何将性能、简单性和灵活性很好地结合在一起,使强大的人工智能模型能够轻松地直接部署在移动设备和边缘设备上。

以下是使用 ExecuTorch 集成的一些主要优势:

  • 灵活的部署选项:ExecuTorch 模型可部署在移动应用程序、嵌入式系统、物联网(IoT)设备和专用边缘人工智能硬件上。这种灵活性使开发人员能够构建可扩展的人工智能解决方案,并在不同的平台和环境中始终如一地执行。
  • 经过基准测试验证的性能:在 Raspberry Pi 5 等设备上进行的测试表明,导出为 ExecuTorch 格式的 YOLO11 模型的运行速度是 PyTorch 对应模型的 2 倍,而精确度几乎相同。
  • 灵活的集成应用程序接口:ExecuTorch为iOS、Android和嵌入式Linux提供C++、Kotlin和Objective-C应用程序接口,允许开发人员将YOLO模型直接集成到本地应用程序中。
  • 硬件加速支持:ExecuTorch 支持多种硬件加速后端,包括用于移动 GPU 的 Vulkan 和 Metal,并可选择集成 OpenCL 和其他供应商特定的 API。它还可以利用专用加速器(如 NPU 和 DSP),实现比仅使用 CPU 进行推理更快的速度。

YOLO11 和 ExecuTorch 导出的实际应用

最近,Ultralytics被评为PyTorch ExecuTorch的成功案例,突出了我们对设备推理的早期支持和对PyTorch生态系统的持续贡献。这一表彰反映了我们的共同目标,即让高性能人工智能在移动和边缘平台上更加普及。

从云到边缘:ExecuTorch和YOLO11如何将Vision AI带入生活

在实际应用中,这看起来就像是在从智能手机到嵌入式系统的所有设备上高效运行的真实世界视觉人工智能解决方案。例如,在制造业中,边缘设备在监控生产线和实时检测缺陷方面发挥着至关重要的作用。

图 3.使用 YOLO11 分析制造装配线的示例。(资料来源)

ExecuTorch的集成使YOLO11模型能够直接在本地硬件上运行,而不是将图像或传感器数据发送到云端进行处理,因为云端处理可能会带来延迟并依赖于互联网连接。这意味着工厂可以即时检测质量问题,减少停机时间,维护数据隐私,同时利用有限的计算资源进行操作。

以下是其他几个例子,说明如何应用 ExecuTorch 集成和 Ultralytics YOLO 模型:

  • 智能城市: 通过使用 ExecuTorch 在本地运行 YOLO11 模型,城市可以更快地做出以数据为导向的决策,从检测交通拥堵到识别危险,从而提高整体流动性和安全性。
  • 零售和仓储: 借助设备上的推理功能,零售商可以自动进行货架监控、跟踪库存和快速安全地检查包裹,而无需依赖云连接。
  • 机器人和无人机: 边缘优化的 YOLO11 模型使机器人和无人机即使在没有互联网接入的情况下也能识别物体、导航环境并做出实时决策。

图 4.使用 YOLO11 检测和计算车流中的汽车数量(资料来源)

主要要点

将 Ultralytics YOLO 模型导出为 ExecuTorch 格式后,计算机视觉模型就可以轻松地部署到多种设备上,包括智能手机、平板电脑和 Raspberry Pi 等嵌入式系统。这意味着可以在不依赖云连接的情况下运行优化的设备推理,从而提高速度、隐私性和可靠性。

除了ExecuTorch,Ultralytics还支持包括TensorRT、OpenVINO、CoreML等在内的多种集成,使开发人员能够灵活地跨平台运行他们的模型。随着 Vision AI 应用的增长,这些集成简化了智能系统的部署,使其能够在真实世界条件下高效运行。

对人工智能感到好奇?查看我们的GitHub 存储库,加入我们的社区,探索我们的许可选项,启动您的视觉人工智能项目。访问我们的解决方案页面,了解更多有关零售业人工智能 物流业计算机视觉等创新的信息。

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

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

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