Ultralytics YOLO27: 加入候补名单。
获取 YOLO 许可
集成

使用 ExecuTorch 集成部署 Ultralytics YOLO 模型

了解如何将 Ultralytics YOLO 模型(如 Ultralytics YOLO11)导出为 ExecuTorch 格式,以便在边缘设备和移动设备上高效部署,并原生支持 PyTorch。

Abirami VinaAbirami Vina8 分钟阅读
通过 ExecuTorch 集成部署 Ultralytics YOLO 模型

某些计算机视觉应用,例如自动化质量检测、自主无人机或智能安防系统,在图像采集传感器附近运行 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 模型至关重要。

ExecuTorch 工作原理一览

图 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”文件夹中找到保存了检测结果的输出图像。

使用导出为 ExecuTorch 格式的 Ultralytics YOLO11 模型检测物体

图 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 解决方案都能高效运行,设备范围从智能手机到嵌入式系统。例如,在制造业中,边缘设备对于监控生产线和实时检测缺陷至关重要。

使用 Ultralytics YOLO11 分析制造业装配线

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

将图像或传感器数据发送到云端处理可能会导致延迟,而且依赖互联网连接;ExecuTorch 集成则让 Ultralytics YOLO11 模型可以直接在本地硬件上运行。这意味着工厂可以即时检测质量问题、减少停机时间并保护数据隐私,同时只需有限的计算资源。

以下是 ExecuTorch 集成和 Ultralytics YOLO 模型的其他一些应用示例:

  • 智慧城市:通过使用 ExecuTorch 在本地运行 Ultralytics YOLO11 模型,城市可以更快地做出数据驱动的决策,从检测交通拥堵到识别危险因素,从而提升整体出行效率和安全性。
  • 零售和仓储:借助设备端推理,零售商可以自动监控货架、跟踪库存并快速安全地检查包裹,而无需依赖云端连接。
  • 机器人和无人机:针对边缘设备优化的 Ultralytics YOLO11 模型让机器人和无人机能够识别物体、在环境中导航并实时做出决策,即使没有互联网连接也能如此。

使用 Ultralytics YOLO11 检测并统计交通中的汽车

图 4. 使用 YOLO11 检测并统计交通中的汽车(来源)

要点#

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

除了 ExecuTorch,Ultralytics 还支持多种集成方式,包括 TensorRT、OpenVINO、CoreML 等,让开发者可以灵活地在不同平台上运行模型。随着视觉 AI 的应用日益普及,这些集成让智能系统的部署更加简单,帮助系统在真实环境中高效运行。

对 AI 感兴趣?查看我们的 GitHub 代码仓库,加入我们的社区,并了解我们的许可选项,开启你的视觉 AI 项目。访问我们的解决方案页面,进一步了解零售领域的 AI和物流领域的计算机视觉等创新应用。

作者

Abirami Vina
Abirami Vina

内容创作者 · Ultralytics

Abirami Vina 职业生涯始于计算机视觉工程师,由此在视觉 AI 和机器学习领域打下了坚实基础。她是 Ultralytics 的内容创作者,也是 Scribe of AI 的创始人兼首席撰稿人,为专注 AI 的公司撰写高质量技术内容。她热衷于让 AI 更易理解、更具吸引力,通过自己的作品连接前沿技术与现实影响。

评论

提出问题、分享你的结果,或帮助其他人。

探索解决方案

体育领域的计算机视觉

体育领域的计算机视觉

了解 Ultralytics YOLO 如何通过球员和球追踪、表现分析、教练洞察及运动员康复,推动体育视觉技术的发展。
了解详情
航空影像计算机视觉

航空影像计算机视觉

使用 Ultralytics YOLO 将无人机和航空影像转化为农业、水产养殖、保护工作和地理空间分析的实时洞察。
了解详情
航空航天中的计算机视觉

航空航天中的计算机视觉

使用 Ultralytics YOLO 将计算机视觉应用于航空航天领域,包括飞机检查、跑道 FOD 检测、机场地面作业和复合材料缺陷检测。
了解详情
安防领域的计算机视觉

安防领域的计算机视觉

使用 Ultralytics YOLO 模型守护每个场所。视觉 AI 可用于周界监控、威胁检测、车牌识别和工作场所安全。
了解详情
机器人领域的计算机视觉

机器人领域的计算机视觉

使用 Ultralytics YOLO 模型提升智能机器的能力。机器人领域的视觉 AI 可用于自主导航、感知、目标跟踪和实时控制。
了解详情
物流中的计算机视觉

物流中的计算机视觉

借助 Ultralytics YOLO 模型优化物流流程。视觉 AI 可用于包裹检查、分拣、车辆跟踪和仓库安全实时监控。
了解详情
零售中的计算机视觉

零售中的计算机视觉

借助 Ultralytics YOLO 模型重新构想零售。视觉 AI 可用于库存跟踪、货架监控、排队管理和更深入的客户洞察。
了解详情
医疗领域的计算机视觉

医疗领域的计算机视觉

借助 Ultralytics YOLO 模型构建医疗解决方案。医疗领域的视觉 AI 可加快医学影像处理、优化诊断并监测患者。
了解详情
制造业中的计算机视觉

制造业中的计算机视觉

利用 Ultralytics YOLO 模型优化制造流程。视觉 AI 可用于质量控制、缺陷检测、个人防护装备合规检查和装配线自动化。
了解详情
汽车领域的计算机视觉

汽车领域的计算机视觉

利用 Ultralytics YOLO 模型在汽车领域应用计算机视觉。视觉 AI 可提升道路安全、驾驶辅助和车辆自动化水平,让道路更智能。
了解详情
农业中的计算机视觉

农业中的计算机视觉

借助 Ultralytics YOLO 模型,将视觉 AI 引入智慧农业。为作物监测、牲畜追踪和精准农业提供支持,从而提高产量并实现更智能的生产。
了解详情

让我们携手构建 AI 的未来!

开启你的旅程,迎接机器学习的未来