深圳Yolo 视觉
深圳
立即加入

使用 MNN 集成无缝部署Ultralytics YOLO11

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

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

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

计算机视觉是人工智能的一个分支,专注于理解图像和视频,目前正被迅速应用于边缘领域。从清点包装中的食品到帮助车辆detect 行人,计算机视觉为不同领域的无数实际应用提供了支持。

通过计算机视觉模型可以实现这一点。例如 Ultralytics YOLO11是一个支持各种视觉人工智能任务的模型,如物体检测、实例分割、物体跟踪和姿势估计 。它的设计既快速又高效,在硬件资源有限的设备上也能很好地运行。

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

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

最有效的选择之一是 MNN(移动神经网络),这是一个专为低资源设备设计的轻量级推理引擎。将YOLO11 输出到 MNN 后,它就可以直接在手机、嵌入式系统和其他边缘平台上运行,在这些平台上,快速的设备处理是必不可少的。

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

MNN:深度学习框架概述

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

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

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

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

转换后,它们可以部署在支持 MNN 框架的设备上,以实现高效的设备推理。使用 MNN 格式的一个主要好处是,它简化了YOLO11 在大小、速度和资源效率至关重要的情况下的部署。

MNN推理后端的关键特性

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

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

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

  • 后端自动选择:
    CPU
  • 多线程执行: 它支持多线程,从而可以充分利用多核处理器来实现更快的推理。
  • 支持模型量化:它使您可以使用 FP16 或 INT8 量化来显著减小模型大小,从而在使用更少内存的同时帮助提高推理速度。
  • 轻便快捷: MNN 占用空间非常小,核心库在Android 上约为 400 KB,在iOS 上约为 5 MB,因此非常适合移动和嵌入式设备。

了解 MNN 集成的工作原理

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

第一步是安装Ultralytics Python 软件包,它提供了将YOLO11 模型导出为 MNN 格式所需的一切。您可以在终端或使用命令提示符运行 "pip installultralytics"来完成安装。如果您使用的是 Jupyter Notebook 或Google Colab,请在命令前添加感叹号。

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

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

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

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

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

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 "文件夹中。此外,如果你想直接使用 MNNPython 软件包运行推理,可以查看Ultralytics 官方文档,了解更多详情和示例。

图 3.使用导出为 MNN 格式的YOLO11 模型分析流量。图片由作者提供。

由YOLO11 和 MNN 支持的边缘人工智能模型部署用例

将YOLO11 与 MNN 部署在一起,可以快速、高效地完成计算机视觉任务,例如在基于云的处理不现实或不可能的环境中进行物体检测。让我们来看看这种集成如何在实际应用场景中发挥特别的作用。

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

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

训练完成后,YOLO11 模型可导出为 MNN 格式,并直接在移动设备上运行。然后,该模型可以classify 植物种类classify ,并在本地detect 可见的病害症状,而无需向服务器发送任何数据。 

图 4.使用YOLO11 detect 叶片上锈病(一种植物病害)迹象的示例(资料来源)。

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

准确的包装跟踪对于生产设施中繁忙的生产线至关重要。YOLO11 可以在每个物品通过关键检查点时对其进行track 和计数,实时更新计数并标记任何差异。这有助于减少遗漏或下落不明的货物,支持更顺畅、更可靠的运营。

图 5.使用YOLO11 跟踪和清点包裹(资料来源)。

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

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

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

以下是Ultralytics 提供的 MNN 集成的一些主要优势:

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

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

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

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

主要要点

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

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

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

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

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

免费开始