将 Ultralytics YOLO11 模型导出为 NCNN 模型格式
将 Ultralytics YOLO11 模型导出为 NCNN 格式,在功耗和计算资源有限的边缘设备上实现高效、低延迟推理。
Abirami Vina6 分钟阅读
AI 解决方案正日益普及,甚至应用于灾害管理、废弃物管理和消防等高风险领域。随着应用范围不断扩大,AI 模型正被部署到更多样的环境中——不仅是在服务器或云端,也直接运行在现场设备上。
例如,配备边缘组件和小型处理器的无人机与设备在灾区可以发挥关键作用。这些设备搭载热成像摄像头,可以在现场收集并分析数据,搜寻被困在废墟下的人。这得益于计算机视觉——人工智能的一个分支,能够解读图像和视频中的视觉信息。
不过,在边缘设备上部署视觉 AI 模型并不像看起来那么简单。AI 模型需要经过优化,才能在计算能力和内存有限的硬件上高效运行。因此,NCNN 等 AI 框架至关重要。它们有助于转换和优化模型,使模型能在低功耗设备上以最小的准确率损失实现实时性能。
具体来说,借助 Ultralytics 支持的 NCNN 集成,可以轻松将 Ultralytics YOLO11 等 Ultralytics YOLO 模型导出为 NCNN 模型格式。将 YOLO11 转换为 NCNN 模型格式后,模型运行速度更快、内存占用更少,还能在不同设备上流畅运行,同时将准确率损失降至最低。
本文将介绍 Ultralytics 支持的 NCNN 集成,并逐步讲解如何将 YOLO11 模型导出为 NCNN 模型格式。
NCNN 概览:轻量级神经网络框架#
NCNN 是由腾讯开发的开源神经网络推理框架,专为移动和边缘环境设计,能够以极小的资源占用实现高性能推理。因此,它非常适合部署在智能手机、无人机和物联网(IoT)设备等资源受限的设备上。
NCNN 框架凭借高效、可移植以及针对移动 CPU(CPU)的优化,在 AI 和深度学习社区中广受欢迎。它让开发者能够在内存和处理能力有限的经济型设备上运行神经网络模型。NCNN 设计简洁灵活,支持多种计算机视觉模型,并可在 Android、Linux、iOS 和 macOS 等多个平台上运行。

图 1。NCNN 格式的模型可以部署在多种平台上。
NCNN 性能优化的关键特性#
以下是使 NCNN 成为高效且广泛应用的神经网络推理框架的一些关键特性:
- 轻量级、独立于硬件的运行时: NCNN 框架经过优化,可在标准 CPU 上运行模型,无需 GPU(GPU)或 NPU(NPU)等专用硬件。
- 模型量化:对于内存和速度至关重要的应用,NCNN 支持量化方法,可缩小模型体积并缩短推理时间。这有助于 AI 模型在移动设备和嵌入式设备上流畅运行。
- 开源且易于使用: NCNN 是一个开源框架,任何人都可以免费使用、修改和改进。这推动了创新,并促进它在各种用例中得到广泛应用。
- 持续开发并拥有活跃社区: 腾讯和不断壮大的开发者社区在 GitHub 上积极维护 NCNN,定期更新并改进模型兼容性。
将 Ultralytics YOLO11 导出为 NCNN 模型格式:快速指南#
了解 NCNN 的基本情况后,接下来具体看看如何将 Ultralytics YOLO11 模型导出为 NCNN 格式。
第 1 步:安装 Ultralytics Python 包#
导出模型之前,第一步是使用包安装程序 pip 安装 Ultralytics Python 软件包。在终端或命令提示符中运行 pip install ultralytics 即可。如果你使用 Jupyter Notebook 或 Google Colab,请在命令前加上感叹号,例如:!pip install ultralytics。
Ultralytics 软件包提供了用于训练、测试、微调和导出视觉 AI 模型的工具,支持多种计算机视觉任务。如果你在安装或导出模型时遇到问题,可以参考官方 Ultralytics 文档和常见问题指南来排查故障。
第 2 步:导出 Ultralytics YOLO11#
安装 Ultralytics 软件包后,你就可以加载 YOLO11 模型并将其导出为 NCNN 格式。下面的示例使用预训练的 YOLO11n 模型(yolo11n.pt)并将其导出为 NCNN 格式,输出保存在名为 yolo11n_ncnn_model 的文件夹中。
from ultralytics import YOLO
model = YOLO("yolo11n.pt")
model.export(format="ncnn")随后,你可以将导出的 Ultralytics YOLO11 模型部署到各种轻量级设备上,例如智能手机、嵌入式系统或 IoT 平台。部署过程也非常简便。
例如,下面的代码片段展示了如何加载导出的模型并运行推理。推理是指使用训练好的模型对新的、未见过的数据进行预测。在这个示例中,模型会对一张从公开 URL 获取的、有人骑自行车的图像进行测试。
ncnn_model = YOLO("./yolo11n_ncnn_model")
results = ncnn_model("https://images.pexels.com/photos/19431209/pexels-photo-19431209/free-photo-of-a-man-riding-a-bike-on-a-road.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=2.jpg", save=True)运行代码后,你可以在 runs/detect/predict 文件夹中找到输出图像。

图 2. 使用导出为 NCNN 格式的 Ultralytics YOLO11 模型检测对象。图片由作者提供。
为什么选择 NCNN 进行实时检测#
在了解 Ultralytics 支持的各种集成时,你可能会注意到有多种导出选项。那么,什么时候应该选择 NCNN 格式?
当你需要在资源有限的设备上部署 Ultralytics YOLO11 模型时,NCNN 导出格式是可靠的选择。它尤其适用于直接在设备上运行的实时应用,例如边缘设备,无需连接云端。这意味着模型可以在现场处理对象检测等任务。
以下是 NCNN 非常适用的一些常见场景:
- 移动端部署: NCNN 格式针对 Android 和 iOS 进行了优化,便于将模型集成到移动应用中,以低延迟在设备上快速运行推理。
- 嵌入式系统和 IoT 设备:如果你要在 Raspberry Pi 或 NVIDIA Jetson 等设备上部署模型,导出为 NCNN 格式有助于提升性能和响应速度。
- 桌面端和服务器部署: NCNN 虽然适用于低功耗设备,但也支持 Linux、Windows 和 macOS,可用于桌面和服务器环境。这为开发者提供了灵活的部署选项。

图 3. 使用 NCNN 部署 Ultralytics YOLO11 模型的选项。图片由作者提供。
使用 NCNN 部署 Ultralytics YOLO11 模型的应用场景#
接下来,我们来看一些实际用例,了解将 Ultralytics YOLO11 模型导出为 NCNN 格式能在哪些场景中发挥重要作用。
用于消防的视觉 AI 头盔#
配备摄像头和嵌入式微型计算机的安全头盔可用于建筑施工和消防等领域,以提高安全性和态势感知能力。可以在这些设备上运行 Ultralytics YOLO11 等实时视觉 AI 模型,以检测各种对象和设备。例如,这类头盔可以帮助消防员在低能见度环境下发现人员、障碍物或危险。
然而,在可穿戴设备上直接运行完整模型可能导致性能变慢,并迅速耗尽电池电量。在这种情况下,使用 NCNN 集成是一个明智的选择。它能够实现低延迟、节能的推理。
废弃物分类与智能垃圾桶#
类似地,智能垃圾桶可以与摄像头和紧凑型边缘 AI 处理器集成,在材料被丢弃时识别并分类。YOLO11 等视觉 AI 模型可以通过自定义训练来检测纸张、塑料、橡胶等不同类型的废弃物。
识别废弃物后,可以根据其可再利用性自动将其分类到不同的隔间中。通过结合边缘 AI 和导出为 NCNN 格式的 Ultralytics YOLO11 模型,这些垃圾桶可以在本地处理数据,无需互联网连接。这样一来,垃圾桶就能自主运行,以极低的延迟实时做出分类决策。

图 4。使用 YOLO11 检测塑料废弃物。
使用无人机和计算机视觉监测牛群#
有时,偏远地区的农业区域无法接入稳定的互联网,甚至缺乏稳定的电力供应,这限制了它们在线运行 AI 应用的能力。在这种情况下,可以使用边缘设备和无人机来处理各种任务。
一个很好的例子是监测牲畜,例如牛、羊和家禽。这可以借助 YOLO11 等视觉 AI 模型完成,用于追踪动物活动、发现受伤、生病或行为异常的迹象,并在动物走失时提醒农场主。NCNN 集成还可以直接在边缘设备上运行并处理这些数据,因此非常适合在偏远或离网地区的农场进行图像和视频分析。

图 5。使用 YOLO11 监测牲畜的示例。
要点#
借助 Ultralytics 支持的 NCNN 集成导出 YOLO11 模型,是在低功耗环境中部署视觉 AI 的简单方法。无论是灾区的无人机、智能垃圾分类桶,还是偏远农场的牲畜监测,YOLO 和 NCNN 都能实现快速、高效且便于移植的实时 AI 推理。这种方法有助于让 AI 系统在最关键的时刻更易用、更可靠。
想了解更多 AI 相关信息?浏览我们的 GitHub 代码仓库,加入我们的社区,并查看我们的许可选项,开启你的计算机视觉项目。前往解决方案页面,了解零售业中的 AI和医疗健康领域的计算机视觉等创新如何塑造未来。
作者
评论
提出问题、分享你的结果,或帮助其他人。










