使用 ExecuTorch 集成部署 Ultralytics YOLO 模型
了解如何将 Ultralytics YOLO 模型(如 Ultralytics YOLO11)导出为 ExecuTorch 格式,以便在边缘设备和移动设备上高效部署,并原生支持 PyTorch。
Abirami Vina8 分钟阅读
某些计算机视觉应用,例如自动化质量检测、自主无人机或智能安防系统,在图像采集传感器附近运行 Ultralytics YOLO 模型(例如 Ultralytics YOLO11)时效果最佳。换句话说,这些模型需要在数据生成的位置直接处理数据,例如摄像头、无人机或嵌入式系统,而不是将数据发送到云端。
这种方法称为边缘 AI,可让模型直接在采集数据的设备上执行推理。通过在本地处理信息,而非依赖远程服务器,系统可以降低延迟、增强数据隐私并提高可靠性,即使在互联网连接有限或没有网络连接的环境中也能如此。
例如,每分钟检查数千件产品的制造业摄像头,或在复杂环境中导航的无人机,都无法承受云端处理带来的延迟。直接在设备上运行 Ultralytics YOLO11,即可实现即时的设备端推理。
为了让在边缘设备上运行 Ultralytics YOLO 模型更简单、更高效,Ultralytics 提供了全新的 ExecuTorch 集成,让你可以轻松将模型导出并直接部署到移动设备和嵌入式设备。ExecuTorch 是 PyTorch Edge 生态系统的一部分,为在移动设备和边缘硬件上直接运行 AI 模型提供端到端解决方案,支持手机、可穿戴设备、嵌入式开发板和微控制器等设备。
通过这项集成,你可以轻松地将 Ultralytics YOLO 模型(例如 YOLO11)从训练阶段部署到边缘设备。结合 YOLO11 的视觉能力与 ExecuTorch 的轻量级运行时和 PyTorch 导出流程,用户可以将模型部署到边缘硬件上高效运行,同时保留基于 PyTorch 的推理精度和性能。
本文将深入介绍 ExecuTorch 集成的工作原理、它为何适用于边缘 AI 应用,以及你如何开始使用 ExecuTorch 部署 Ultralytics YOLO 模型。
什么是 ExecuTorch?#
通常,你在 PyTorch 中训练模型时,模型会在云端的强大服务器或图形处理器(GPU)上运行。然而,要将同一模型部署到智能手机、无人机或微控制器等移动设备或嵌入式设备上,就需要一种专门的解决方案,以适应有限的计算能力、内存和连接能力。
ExecuTorch 正是为此而生。ExecuTorch 是 PyTorch Edge 生态系统的一部分,是一套端到端解决方案,可在移动、嵌入式和边缘平台上实现高效的设备端推理。它将 PyTorch 的能力扩展到云端之外,让 AI 模型可以直接在本地设备上运行。
将 PyTorch 推理带到边缘设备#
ExecuTorch 的核心是一款轻量级 C++ 运行时,可让 PyTorch 模型直接在设备上执行。ExecuTorch 使用 PyTorch ExecuTorch (.pte) 模型格式,这种优化后的导出格式可加快加载速度、缩小内存占用并提升可移植性。
它默认支持 XNNPACK 作为高效中央处理器(CPU)推理后端,并兼容多种硬件后端,包括 CoreML、Metal、Vulkan、Qualcomm、MediaTek、Arm EthosU、OpenVINO 等。
这些后端可在移动设备、嵌入式设备和专用边缘设备上实现优化加速。ExecuTorch 还与 PyTorch 导出流程集成,支持量化和动态形状处理等高级功能,以提升不同部署环境中的性能和适应性。
量化通过将高精度数值(例如 32 位浮点数)转换为低精度数值来缩小模型体积并加快推理速度;动态形状处理则能让模型高效处理大小不一的输入。这两项功能对于在资源有限的边缘设备上运行 AI 模型至关重要。

图 1. ExecuTorch 工作原理一览(来源)
面向边缘硬件的统一层#
除了运行时功能,ExecuTorch 还充当多个硬件后端的统一抽象层。简单来说,它会隐藏特定硬件的细节,并管理模型与不同处理单元(包括 CPU、GPU 和神经处理器(NPU))之间的交互。
导出模型后,你可以配置 ExecuTorch,为指定设备选择最合适的后端。开发者无需编写针对特定设备的自定义代码,也无需维护单独的转换流程,就能在各种硬件上高效部署模型。
凭借模块化、可移植的设计以及与 PyTorch 的紧密集成,ExecuTorch 非常适合将 Ultralytics YOLO11 等计算机视觉模型部署到移动和嵌入式系统。它弥合了模型训练与实际部署之间的鸿沟,让边缘 AI 更快速、高效且易于实现。
ExecuTorch 的主要功能#
在了解如何将 Ultralytics YOLO 模型导出为 ExecuTorch 格式之前,我们先来看看 ExecuTorch 为何是可靠的边缘 AI 部署方案。
下面简要介绍它的一些主要功能:
- 量化支持:ExecuTorch 支持模型量化,这种技术会将高精度数值转换为较低精度的数值,以缩小模型体积并加快推理速度。这有助于模型在边缘设备上运行得更快、占用更少内存,同时几乎不损失准确性。目前,Ultralytics 导出到 XNNPACK 后端时会生成 FP32 模型。
- 高效利用内存:ExecuTorch 的一大优势在于其内存管理方式。动态内存分配可能会增加延迟和功耗开销;ExecuTorch 则采用预先规划的内存(AOT)方案。在导出期间,它会分析模型图,并预先计算每项操作所需的内存量。这样,运行时就能依据静态内存计划执行模型,确保性能可预测,并避免在 RAM 或处理能力有限的设备上出现速度下降或崩溃。
- 内置模型元数据:使用 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 格式的 Ultralytics YOLO11 模型检测物体。
使用 ExecuTorch 集成的优势#
在了解 Ultralytics 支持的各种导出选项时,你可能会想知道 ExecuTorch 集成有何独特之处。关键在于它出色地结合了性能、易用性和灵活性,让你能够轻松地将强大的 AI 模型直接部署到移动设备和边缘设备上。
下面来看看使用 ExecuTorch 集成的一些主要优势:
- 灵活的部署选项:ExecuTorch 模型可部署到移动应用、嵌入式系统、物联网(IoT)设备和专用边缘 AI 硬件上。这种灵活性让开发者能够构建可扩展的 AI 解决方案,并确保它们在各种平台和环境中稳定运行。
- 经基准测试验证的性能:在 Raspberry Pi 5 等设备上的测试表明,导出为 ExecuTorch 格式的 Ultralytics YOLO11 模型运行速度约为 PyTorch 对应模型的 2 倍,且精度几乎相同。
- 灵活的集成 API:ExecuTorch 为 iOS、Android 和嵌入式 Linux 提供 C++、Kotlin 和 Objective-C API,方便开发者将 YOLO 模型直接集成到原生应用中。
- 支持硬件加速:ExecuTorch 支持多种硬件加速后端,包括面向移动 GPU 的 Vulkan 和 Metal,还可选择集成 OpenCL 及其他供应商专用 API。它还可以利用 NPU 和 DSP 等专用加速器,大幅提升相较于纯 CPU 推理的速度。
Ultralytics YOLO11 和 ExecuTorch 导出的实际应用#
最近,Ultralytics 获评 PyTorch ExecuTorch 成功案例,这突显了我们对设备端推理的早期支持,以及我们持续为 PyTorch 生态系统作出的贡献。这一认可体现了双方的共同目标:让移动和边缘平台能够更广泛地使用高性能 AI。
从云端到边缘:ExecuTorch 和 Ultralytics YOLO11 如何让视觉 AI 落地#
在实际应用中,这意味着各种真实场景中的视觉 AI 解决方案都能高效运行,设备范围从智能手机到嵌入式系统。例如,在制造业中,边缘设备对于监控生产线和实时检测缺陷至关重要。

图 3. 使用 Ultralytics YOLO11 分析制造业装配线的示例。(来源)
将图像或传感器数据发送到云端处理可能会导致延迟,而且依赖互联网连接;ExecuTorch 集成则让 Ultralytics YOLO11 模型可以直接在本地硬件上运行。这意味着工厂可以即时检测质量问题、减少停机时间并保护数据隐私,同时只需有限的计算资源。
以下是 ExecuTorch 集成和 Ultralytics YOLO 模型的其他一些应用示例:
- 智慧城市:通过使用 ExecuTorch 在本地运行 Ultralytics YOLO11 模型,城市可以更快地做出数据驱动的决策,从检测交通拥堵到识别危险因素,从而提升整体出行效率和安全性。
- 零售和仓储:借助设备端推理,零售商可以自动监控货架、跟踪库存并快速安全地检查包裹,而无需依赖云端连接。
- 机器人和无人机:针对边缘设备优化的 Ultralytics YOLO11 模型让机器人和无人机能够识别物体、在环境中导航并实时做出决策,即使没有互联网连接也能如此。

图 4. 使用 YOLO11 检测并统计交通中的汽车(来源)
要点#
将 Ultralytics YOLO 模型导出为 ExecuTorch 格式,可以轻松地将计算机视觉模型部署到多种设备上,包括智能手机、平板电脑和 Raspberry Pi 等嵌入式系统。这意味着你可以在无需云端连接的情况下运行优化后的设备端推理,从而提升速度、隐私保护和可靠性。
除了 ExecuTorch,Ultralytics 还支持多种集成方式,包括 TensorRT、OpenVINO、CoreML 等,让开发者可以灵活地在不同平台上运行模型。随着视觉 AI 的应用日益普及,这些集成让智能系统的部署更加简单,帮助系统在真实环境中高效运行。
对 AI 感兴趣?查看我们的 GitHub 代码仓库,加入我们的社区,并了解我们的许可选项,开启你的视觉 AI 项目。访问我们的解决方案页面,进一步了解零售领域的 AI和物流领域的计算机视觉等创新应用。
作者
评论
提出问题、分享你的结果,或帮助其他人。










