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

使用 MNN 集成无缝部署 Ultralytics YOLO11

Abirami Vina

4 分钟阅读

2025年6月25日

了解如何通过 MNN 集成导出和部署 Ultralytics YOLO11 模型,以便在移动、嵌入式和低功耗平台上实现快速推理。

如今,人工智能创新已扩展到远程服务器环境之外。人工智能解决方案正在集成到传感器和智能手机等边缘设备中。由于这种技术转变,现在可以直接在数据生成的地方处理数据,从而实现更快的响应、更高的隐私以及减少对持续云连接的依赖。

因此,边缘AI正在越来越多的行业中获得关注。边缘AI软件市场预计到2031年将达到88.8亿美元,因为越来越多的系统转向更快、更本地化的处理。

特别是,计算机视觉是人工智能的一个分支,专注于理解图像和视频,正在边缘端被迅速采用。从计算包装中的食物数量到帮助车辆检测行人,计算机视觉支持不同行业的无数实际应用。

这可以通过计算机视觉模型来实现。例如,Ultralytics YOLO11 是一种支持各种视觉 AI 任务的模型,例如对象检测、实例分割、对象跟踪和姿势估计。它旨在快速高效,并且在硬件资源有限的设备上表现良好。

图 1. 使用 YOLO11 检测和跟踪正在包装的食品 (来源)。

除了适用于边缘部署之外,通过 Ultralytics 支持的各种集成,YOLO11 还可以导出为适用于不同硬件环境的各种格式。 

最有效的选择之一是 MNN(移动神经网络),这是一种专为低资源设备设计的轻量级推理引擎。将 YOLO11 导出到 MNN 使其能够直接在手机、嵌入式系统和其他边缘平台运行,在这些平台上,快速的设备上处理至关重要。

在本文中,我们将探讨 MNN 集成 的工作原理,重点介绍常见的用例,并逐步介绍如何开始使用导出的 YOLO11 模型运行推理。让我们开始吧!

MNN:深度学习框架概述

在移动电话、工业传感器和便携式系统等较小设备上运行计算机视觉模型并非总是那么简单。这些设备通常具有有限的内存、较慢的处理器和严格的功率限制。 

移动神经网络 (MNN) 是阿里巴巴开发的一种轻量级、高性能的推理引擎,旨在使 AI 模型能够在低资源硬件上高效运行,同时保持实时性能。MNN 支持各种平台,包括 Android、iOS 和 Linux,并且适用于各种硬件类型,如中央处理器 (CPU) 和图形处理器 (GPU)。

图 2. MNN 框架概览(来源)。

Ultralytics 支持的 MNN 集成可以轻松地将 YOLO11 模型导出为 MNN 格式。简而言之,这意味着可以将模型从 YOLO 格式转换为 MNN 格式。 

转换完成后,这些模型可以部署在支持 MNN 框架的设备上,以实现高效的设备端推理。使用 MNN 格式的一个主要优势是,它简化了在对尺寸、速度和资源效率要求严苛的场景中部署 YOLO11 的过程。

MNN推理后端的关键特性

在深入了解如何使用 MNN 集成之前,我们先来看看是什么让 MNN 框架成为在真实设备上运行 AI 模型的绝佳选择。它旨在处理边缘环境的独特约束,同时提供快速可靠的性能。

有趣的是,MNN 在阿里巴巴内部的 30 多个应用中使用,包括淘宝、天猫、优酷、钉钉和闲鱼,涵盖了直播视频、短视频内容、图像搜索和设备端安全检查等广泛场景。它支持大规模部署,并在生产环境中每天运行数百万次推理。

以下是MNN框架的一些主要功能:

  • 后端自动选择:MNN 可以根据其运行的硬件(如 CPU 或 GPU)自动选择最合适的执行后端。
  • 多线程执行: 它支持多线程,从而可以充分利用多核处理器来实现更快的推理。
  • 支持模型量化:它使您可以使用 FP16 或 INT8 量化来显著减小模型大小,从而在使用更少内存的同时帮助提高推理速度。
  • 轻量且快速: MNN 具有非常小的体积,Android 上的核心库约为 400 KB,iOS 上约为 5 MB,非常适合移动和嵌入式设备。

了解 MNN 集成的工作原理

接下来,让我们了解如何将 YOLO11 模型导出为 MNN 格式。

第一步是安装 Ultralytics Python 包,它提供了将 YOLO11 模型导出为 MNN 格式所需的一切。您可以通过在终端上运行“pip install ultralytics”或使用命令提示符来执行此操作。如果您使用的是 Jupyter Notebook 或 Google Colab,请在该命令前添加一个感叹号。

如果在安装过程中遇到任何问题,请参阅常见问题解答,获取故障排除提示。

设置好环境后,您可以加载预训练的 YOLO11 模型(例如“yolo11n.pt”),并将其导出为 MNN 格式,如下面的代码片段所示。如果您已经训练了自己的自定义 YOLO11 模型,您只需将文件名替换为您模型的路径即可导出它。

from ultralytics import YOLO
model = YOLO("yolo11n.pt")
model.export(format="mnn")

将模型转换为 MNN 后,您可以根据您的应用需求在不同的移动和嵌入式平台上使用它。

例如,假设您想在交通视频上测试导出的模型。在这种情况下,您可以加载 MNN 格式的 YOLO11 模型,以直接在设备上检测车辆、行人、交通标志等物体,如下例所示。

mnn_model = YOLO("yolo11n.mnn")
results = mnn_model("https://videos.pexels.com/video-files/27783817/12223745_1920_1080_24fps.mp4", save=True)

当推理完成时,带有检测到的对象的输出视频会自动保存在“runs/detect/predict”文件夹中。 此外,如果您想直接使用 MNN Python 包运行推理,您可以查看官方的 Ultralytics 文档以获取更多详细信息和示例。

图 3. 使用导出为 MNN 格式的 YOLO11 模型分析交通。作者提供的图像。

YOLO11和MNN支持的边缘AI模型部署用例

通过 MNN 部署 YOLO11 可以在云处理不切实际或不可能的环境中实现快速、高效的计算机视觉任务,例如目标检测。让我们看看这种集成在现实场景中如何特别有用。

用于植物病害识别的移动边缘人工智能

使用图像分类的植物病害识别应用程序在园丁、研究人员和自然爱好者中越来越受欢迎。只需一张照片,用户就可以快速识别疾病的早期迹象,如叶斑或变色。由于这些应用程序通常在互联网接入可能受限或不可用的户外区域使用,因此依赖云处理可能不太可靠。

训练后,可以将 YOLO11 模型导出为 MNN 格式,并直接在移动设备上运行。然后,该模型可以在本地对植物物种进行分类并检测可见的疾病症状,而无需将任何数据发送到服务器。 

图 4. 使用 YOLO11 检测叶子上锈迹(植物病害)的示例(来源)。

制造业中高效的设备端推理

制造 设施中,准确的包裹跟踪在繁忙的生产线上至关重要。YOLO11 可用于跟踪和计数每个通过关键检查点的物品,实时更新计数并标记任何差异。这有助于减少遗漏或未入账的货物,并支持更顺畅、更可靠的运营。

图 5. 使用 YOLO11 跟踪和计数包裹(来源)。

MNN 集成在这种情况下尤其有效。一旦 YOLO11 模型导出为 MNN 格式,它就可以直接在沿传送带安装的紧凑型、低功耗设备上运行。 

由于所有处理都在本地进行,因此系统可以提供即时反馈,并且不需要互联网连接。这确保了工厂车间快速、可靠的性能,在保持高精度和控制的同时,保持生产高效运行。

将 YOLO11 导出为 MNN 模型格式的优势

以下是Ultralytics提供的MNN集成的一些主要好处:

  • 更快的响应时间:由于推理在设备上运行,因此可以实时进行预测,且延迟极低。
  • 改进的数据隐私:数据保留在设备上,减少了将敏感图像或视频发送到云的需求。
  • 开源且积极维护:在阿里巴巴的支持和活跃社区的维护下,MNN 可靠且定期更新,以提高性能。

使用 MNN 框架时要考虑的因素

在选择MNN作为您的部署框架之前,评估它是否适合您项目的需求、部署目标和技术限制也很重要。以下是一些需要考虑的关键因素:

  • 持续兼容性: 框架更新或目标平台更改可能需要重新测试或调整,以保持一切顺利运行。
  • 调试工具较少:与更大的框架相比,MNN 用于调试和检查模型行为的工具更有限,这会使故障排除更加困难。
  • 性能取决于硬件:模型的速度和效率会因设备而异。测试您的目标硬件以确保其满足您的性能目标。

主要要点

Ultralytics 对 MNN 集成的支持使得导出 YOLO11 模型以在移动和嵌入式设备上使用变得容易。对于需要快速、可靠的检测而无需依赖云访问或持续连接的应用程序来说,这是一个实用的选择。

这种设置有助于简化部署,同时保持性能并降低资源需求。无论您是构建智能家居系统、现场工具还是紧凑型工业设备,将 YOLO11 导出到 MNN 都提供了一种灵活高效的方式,可以直接在边缘设备上运行计算机视觉任务。

加入我们不断壮大的社区!探索我们的GitHub 代码仓库,深入了解人工智能。准备好开始您的计算机视觉项目了吗?查看我们的许可选项。在我们的解决方案页面上了解更多关于医疗保健领域的人工智能零售领域的计算机视觉的信息!

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

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

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