Ultralytics YOLO27:
集成

使用 ExecuTorch 集成部署 Ultralytics YOLO 模型

探索如何将 Ultralytics YOLO 模型(例如 Ultralytics YOLO11)导出为 ExecuTorch 格式,从而在边缘设备和移动设备上实现高效的原生 PyTorch 部署。

ABAbirami Vina8 min read
使用 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 中训练模型时,模型会在云端的高性能服务器或图形处理器 (GPUs) 上运行。然而,要将同一个模型部署到手机、无人机或微控制器等移动设备或嵌入式设备上,则需要专门的解决方案来应对有限的计算能力、内存和连接能力。

这正是 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 和神经处理器 (NPUs))之间的交互方式。

模型导出后,可以配置 ExecuTorch,使其针对特定设备选择最合适的后端。开发者无需编写特定于设备的自定义代码或维护独立的转换流程,即可在各种硬件上高效部署模型。

凭借模块化、可移植的设计以及与 PyTorch 的无缝集成,ExecuTorch 非常适合将 Ultralytics YOLO11 等计算机视觉模型部署到移动和嵌入式系统中。它弥合了模型训练与实际部署之间的差距,让边缘 AI 更快速、高效且易于实施。

ExecuTorch 的主要功能#

在了解如何将 Ultralytics YOLO 模型导出为 ExecuTorch 格式之前,我们先来看看 ExecuTorch 具备哪些特性,使其成为在边缘设备上部署 AI 的可靠选择。

下面简要介绍其中一些主要功能:

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

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

现在我们已经更好地了解了 ExecuTorch 的功能,下面来看看如何将 Ultralytics YOLO 模型导出为 ExecuTorch 格式。

第 1 步:安装 Ultralytics Python 软件包#

首先,你需要使用 pip 安装 Ultralytics Python 软件包,pip 是一个软件包安装程序。你可以在终端或命令提示符中运行 “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” 文件夹中找到保存的、包含检测对象的输出图像。

使用导出的 Ultralytics YOLO11 模型(ExecuTorch 格式)检测对象

图 2. 使用导出的 Ultralytics YOLO11 模型(ExecuTorch 格式)检测对象。

使用 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物流中的计算机视觉等创新应用。

Explore solutions

用于航拍影像的计算机视觉

用于航拍影像的计算机视觉

使用 Ultralytics YOLO 将无人机和航拍影像转化为针对农业、水产养殖、环境监测、自然保护及地理空间分析的实时洞察。
了解更多
航空航天中的计算机视觉

航空航天中的计算机视觉

借助 Ultralytics YOLO 模型将视觉 AI 引入空中监测。使用计算机视觉解决方案赋能无人机、航空航天工作流、环境保护与地理空间行业。
了解更多

使用 Ultralytics YOLO 模型保护每个站点。视觉 AI 赋能周界监控、威胁检测、车牌识别和工作场所安全。
了解更多
机器人计算机视觉

机器人计算机视觉

借助 Ultralytics YOLO 模型打造更智能的机器。机器人技术中的视觉 AI 可实现自主导航、感知、目标跟踪和实时控制。
了解更多
物流计算机视觉

物流计算机视觉

使用 Ultralytics YOLO 模型提升物流效率。视觉 AI 可实现包裹检测、分拣、车辆跟踪和仓库安全实时监控。
了解更多
零售计算机视觉

零售计算机视觉

使用 Ultralytics YOLO 模型重新构想零售。视觉 AI 为库存跟踪、货架监控、队列管理和更智能的客户洞察提供支持。
了解更多
医疗领域的计算机视觉

医疗领域的计算机视觉

使用 Ultralytics YOLO 模型构建医疗解决方案。医疗领域的视觉 AI 可实现更快的医学影像处理、更智能的诊断和患者监护。
了解更多
制造业中的计算机视觉

制造业中的计算机视觉

使用 Ultralytics YOLO 模型优化制造业。视觉 AI 可推动质量控制、缺陷检测、PPE 合规和装配线自动化。
了解更多
汽车行业中的计算机视觉

汽车行业中的计算机视觉

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

农业中的计算机视觉

使用 Ultralytics YOLO 模型将视觉 AI 带入智能农业。为作物监测、牲畜追踪和精准农业提供支持,提升产量与智能化水平。
了解更多
用于航拍影像的计算机视觉

用于航拍影像的计算机视觉

使用 Ultralytics YOLO 将无人机和航拍影像转化为针对农业、水产养殖、环境监测、自然保护及地理空间分析的实时洞察。
了解更多
航空航天中的计算机视觉

航空航天中的计算机视觉

借助 Ultralytics YOLO 模型将视觉 AI 引入空中监测。使用计算机视觉解决方案赋能无人机、航空航天工作流、环境保护与地理空间行业。
了解更多

使用 Ultralytics YOLO 模型保护每个站点。视觉 AI 赋能周界监控、威胁检测、车牌识别和工作场所安全。
了解更多
机器人计算机视觉

机器人计算机视觉

借助 Ultralytics YOLO 模型打造更智能的机器。机器人技术中的视觉 AI 可实现自主导航、感知、目标跟踪和实时控制。
了解更多
物流计算机视觉

物流计算机视觉

使用 Ultralytics YOLO 模型提升物流效率。视觉 AI 可实现包裹检测、分拣、车辆跟踪和仓库安全实时监控。
了解更多
零售计算机视觉

零售计算机视觉

使用 Ultralytics YOLO 模型重新构想零售。视觉 AI 为库存跟踪、货架监控、队列管理和更智能的客户洞察提供支持。
了解更多
医疗领域的计算机视觉

医疗领域的计算机视觉

使用 Ultralytics YOLO 模型构建医疗解决方案。医疗领域的视觉 AI 可实现更快的医学影像处理、更智能的诊断和患者监护。
了解更多
制造业中的计算机视觉

制造业中的计算机视觉

使用 Ultralytics YOLO 模型优化制造业。视觉 AI 可推动质量控制、缺陷检测、PPE 合规和装配线自动化。
了解更多
汽车行业中的计算机视觉

汽车行业中的计算机视觉

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

农业中的计算机视觉

使用 Ultralytics YOLO 模型将视觉 AI 带入智能农业。为作物监测、牲畜追踪和精准农业提供支持,提升产量与智能化水平。
了解更多
用于航拍影像的计算机视觉

用于航拍影像的计算机视觉

使用 Ultralytics YOLO 将无人机和航拍影像转化为针对农业、水产养殖、环境监测、自然保护及地理空间分析的实时洞察。
了解更多
航空航天中的计算机视觉

航空航天中的计算机视觉

借助 Ultralytics YOLO 模型将视觉 AI 引入空中监测。使用计算机视觉解决方案赋能无人机、航空航天工作流、环境保护与地理空间行业。
了解更多

使用 Ultralytics YOLO 模型保护每个站点。视觉 AI 赋能周界监控、威胁检测、车牌识别和工作场所安全。
了解更多
机器人计算机视觉

机器人计算机视觉

借助 Ultralytics YOLO 模型打造更智能的机器。机器人技术中的视觉 AI 可实现自主导航、感知、目标跟踪和实时控制。
了解更多
物流计算机视觉

物流计算机视觉

使用 Ultralytics YOLO 模型提升物流效率。视觉 AI 可实现包裹检测、分拣、车辆跟踪和仓库安全实时监控。
了解更多
零售计算机视觉

零售计算机视觉

使用 Ultralytics YOLO 模型重新构想零售。视觉 AI 为库存跟踪、货架监控、队列管理和更智能的客户洞察提供支持。
了解更多
医疗领域的计算机视觉

医疗领域的计算机视觉

使用 Ultralytics YOLO 模型构建医疗解决方案。医疗领域的视觉 AI 可实现更快的医学影像处理、更智能的诊断和患者监护。
了解更多
制造业中的计算机视觉

制造业中的计算机视觉

使用 Ultralytics YOLO 模型优化制造业。视觉 AI 可推动质量控制、缺陷检测、PPE 合规和装配线自动化。
了解更多
汽车行业中的计算机视觉

汽车行业中的计算机视觉

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

农业中的计算机视觉

使用 Ultralytics YOLO 模型将视觉 AI 带入智能农业。为作物监测、牲畜追踪和精准农业提供支持,提升产量与智能化水平。
了解更多

让我们共同构建 AI 的未来!

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