探索如何将 Ultralytics YOLO 模型(如 Ultralytics YOLO11)导出为 ExecuTorch 格式,以便在边缘设备和移动设备上进行高效的 PyTorch 本地部署。
探索如何将 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 模型。让我们开始吧
通常,在 PyTorch 中训练模型时,模型会在云端功能强大的服务器或图形处理器(GPU)上运行。但是,要将相同的模型部署到移动或嵌入式设备(如智能手机、无人机或微控制器)上,就需要一个能处理有限计算能力、内存和连接性的专门解决方案。
这正是ExecuTorch的优势所在。ExecuTorch是作为PyTorch Edge生态系统的一部分而开发的端到端解决方案,能够在移动、嵌入式和边缘平台上实现高效的设备推理。它将 PyTorch 的功能扩展到云之外,让人工智能模型直接在本地设备上运行。
ExecuTorch 的核心是提供一个轻量级 C++ 运行时,允许 PyTorch 模型直接在设备上执行。ExecuTorch 使用 PyTorch ExecuTorch (.pte) 模型格式,这是一种经过优化的导出格式,可加快加载速度、减少内存占用并提高可移植性。
它支持将 XNNPACK 作为默认后端,以实现高效的中央处理器(CPU)推理,并扩展了各种硬件后端的兼容性,包括 Core ML、Metal、Vulkan、Qualcomm、MediaTek、Arm EthosU、OpenVINO 等。
这些后端可在移动、嵌入式和专用边缘设备上实现优化加速。ExecuTorch 还与 PyTorch 输出管道集成,为量化和动态形状处理等高级功能提供支持,以提高性能和对不同部署环境的适应性。
量化可将高精度值(如 32 位浮点数)转换为低精度值,从而减小模型大小并提高推理速度,而动态形状处理则可使模型高效处理不同的输入大小。这两项功能对于在资源有限的边缘设备上运行人工智能模型至关重要。

除了运行时之外,ExecuTorch 还是多个硬件后端的统一抽象层。简而言之,它抽象出硬件的具体细节,并管理模型如何与不同的处理单元(包括 CPU、GPU 和神经处理单元(NPU))进行交互。
一旦模型被导出,ExecuTorch 就可以被配置为针对特定设备的最合适的后端。开发人员可以在不同的硬件上高效地部署模型,而无需编写针对特定设备的定制代码或维护单独的转换工作流程。
ExecuTorch采用模块化、便携式设计,并与PyTorch无缝集成,是将Ultralytics YOLO11等计算机视觉模型部署到移动和嵌入式系统的最佳选择。它缩小了模型训练与实际部署之间的差距,使边缘人工智能更快、更高效、更易于实现。
在了解如何将 Ultralytics YOLO 模型导出为 ExecuTorch 格式之前,我们先来探讨一下是什么让 ExecuTorch 成为在边缘部署人工智能的可靠选择。
下面我们就来看看它的一些主要功能:
既然我们已经对 ExecuTorch 的功能有了更深入的了解,下面就让我们来看看如何将 Ultralytics YOLO 模型导出为 ExecuTorch 格式。
要开始使用,你需要使用 pip(一种软件包安装程序)安装Ultralytics Python软件包。在终端或命令提示符下运行 "pip install ultralytics "即可。
如果你在 Jupyter Notebook 或 Google Colab 环境中工作,只需在命令前添加感叹号,如"!pip install ultralytics"。安装完成后,Ultralytics 软件包将提供训练、测试和导出计算机视觉模型所需的所有工具,包括 Ultralytics YOLO11。
如果在安装过程中或导出模型时遇到任何问题,Ultralytics 官方文档和常见问题指南会提供详细的故障排除步骤和最佳实践,帮助你顺利启动和运行。
安装 Ultralytics 软件包后,您可以加载 YOLO11 模型的变体,并将其导出为 ExecuTorch 格式。例如,您可以使用 "yolo11n.pt "这样的预训练模型,通过调用导出函数并将格式设置为 "executorch "来导出模型。
这会创建一个名为 "yolo11n_executorch_model "的目录,其中包括优化后的模型文件(.pte)和一个单独的元数据 YAML 文件,该文件包含图像大小和类名等重要细节。
下面是导出模型的代码:
from ultralytics import YOLO
model = YOLO("yolo11n.pt")
model.export(format="executorch")
模型导出后,即可使用ExecuTorch运行时部署到边缘设备和移动设备上。导出的 .pte 模型文件可加载到您的应用程序中,无需云连接即可在设备上运行实时推理。
例如,下面的代码片段展示了如何加载导出模型并运行推理。推理简单地说就是使用训练有素的模型对新数据进行预测。在这里,模型是在公共 URL 中的一张公交车图像上进行测试的。
executorch_model = YOLO("yolo11n_executorch_model")
results = executorch_model.predict("https://ultralytics.com/images/bus.jpg", save=True)
运行代码后,您会在 "runs/detect/predict "文件夹中找到包含检测到的对象的输出图像。

在探索 Ultralytics 所支持的不同导出选项时,您可能会想知道 ExecuTorch 集成的独特之处。主要区别在于它如何将性能、简单性和灵活性很好地结合在一起,使强大的人工智能模型能够轻松地直接部署在移动设备和边缘设备上。
以下是使用 ExecuTorch 集成的一些主要优势:
最近,Ultralytics被评为PyTorch ExecuTorch的成功案例,突出了我们对设备推理的早期支持和对PyTorch生态系统的持续贡献。这一表彰反映了我们的共同目标,即让高性能人工智能在移动和边缘平台上更加普及。
在实际应用中,这看起来就像是在从智能手机到嵌入式系统的所有设备上高效运行的真实世界视觉人工智能解决方案。例如,在制造业中,边缘设备在监控生产线和实时检测缺陷方面发挥着至关重要的作用。

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

将 Ultralytics YOLO 模型导出为 ExecuTorch 格式后,计算机视觉模型就可以轻松地部署到多种设备上,包括智能手机、平板电脑和 Raspberry Pi 等嵌入式系统。这意味着可以在不依赖云连接的情况下运行优化的设备推理,从而提高速度、隐私性和可靠性。
除了ExecuTorch,Ultralytics还支持包括TensorRT、OpenVINO、CoreML等在内的多种集成,使开发人员能够灵活地跨平台运行他们的模型。随着 Vision AI 应用的增长,这些集成简化了智能系统的部署,使其能够在真实世界条件下高效运行。
对人工智能感到好奇?查看我们的GitHub 存储库,加入我们的社区,探索我们的许可选项,启动您的视觉人工智能项目。访问我们的解决方案页面,了解更多有关零售业人工智能 和物流业计算机视觉等创新的信息。