如何从 YOLO11 导出到 NCNN 以实现平滑部署
在计算能力有限的设备(如移动或嵌入式系统)上部署计算机视觉模型可能很棘手。您需要确保使用针对最佳性能优化的格式。这可以确保即使是处理能力有限的设备也能很好地处理高级计算机视觉任务。
导出为 NCNN 格式的功能允许您优化 Ultralytics YOLO11 模型,以用于轻量级设备应用。在本指南中,我们将引导您完成将模型转换为 NCNN 格式的过程,从而使您的模型更容易在各种移动和嵌入式设备上表现良好。
为什么要导出到 NCNN?
NCNN框架由腾讯开发,是一个高性能的神经网络推理计算框架,专门为移动平台(包括手机、嵌入式设备和物联网设备)优化。NCNN与包括Linux、Android、iOS和macOS在内的各种平台兼容。
NCNN 以其在移动 CPU 上的快速处理速度而闻名,并能够将 深度学习 模型快速部署到移动平台。这使得构建智能应用程序变得更加容易,将 AI 的强大功能触手可及。
NCNN 模型的主要特性
NCNN 模型提供了一系列关键特性,通过帮助开发者在移动设备、嵌入式设备和边缘设备上运行模型,从而实现设备上的 机器学习:
-
高效和高性能: NCNN 模型旨在实现高效和轻量级,经过优化可在资源有限的移动和嵌入式设备(如 Raspberry Pi)上运行。它们还可以在各种基于计算机视觉的任务中实现高精度。
-
量化:NCNN 模型通常支持量化,这是一种降低模型权重和激活精度的技术。这可以进一步提高性能并减少内存占用。
-
兼容性: NCNN模型与流行的深度学习框架(如TensorFlow、Caffe和ONNX)兼容。 这种兼容性使开发人员可以轻松使用现有模型和工作流程。
-
易于使用:NCNN 模型旨在轻松集成到各种应用程序中,这归功于它们与流行的深度学习框架的兼容性。 此外,NCNN 提供了用户友好的工具,用于在不同格式之间转换模型,从而确保整个开发领域中的平稳互操作性。
NCNN 的部署选项
在查看将 YOLO11 模型导出为 NCNN 格式的代码之前,让我们先了解 NCNN 模型通常是如何使用的。
NCNN 模型专为效率和性能而设计,与各种部署平台兼容:
-
移动部署: 专门针对 Android 和 iOS 进行了优化,可以无缝集成到移动应用程序中,以实现高效的设备端推理。
-
嵌入式系统和物联网设备: 如果您发现使用 Ultralytics 指南 在 Raspberry Pi 上运行推理不够快,切换到 NCNN 导出的模型可能有助于提高速度。NCNN 非常适合 Raspberry Pi 和 NVIDIA Jetson 等设备,尤其是在您需要在设备上快速处理的情况下。
-
桌面和服务器部署: 能够在 Linux、Windows 和 macOS 的桌面和服务器环境中进行部署,支持具有更高计算能力的开发、训练和评估。
导出到 NCNN:转换您的 YOLO11 模型
通过将 YOLO11 模型转换为 NCNN 格式,您可以扩展模型的兼容性和部署灵活性。
安装
要安装所需的软件包,请运行:
安装
# Install the required package for YOLO11
pip install ultralytics
有关安装过程的详细说明和最佳实践,请查看我们的 Ultralytics 安装指南。如果在为 YOLO11 安装所需软件包时遇到任何困难,请查阅我们的 常见问题指南以获取解决方案和提示。
用法
所有Ultralytics YOLO11 模型都设计为支持开箱即用的导出,从而可以轻松地将其集成到您首选的部署工作流程中。您可以查看支持的导出格式和配置选项的完整列表,以选择最适合您应用程序的设置。
用法
from ultralytics import YOLO
# Load the YOLO11 model
model = YOLO("yolo11n.pt")
# Export the model to NCNN format
model.export(format="ncnn") # creates '/yolo11n_ncnn_model'
# Load the exported NCNN model
ncnn_model = YOLO("./yolo11n_ncnn_model")
# Run inference
results = ncnn_model("https://ultralytics.com/images/bus.jpg")
# Export a YOLO11n PyTorch model to NCNN format
yolo export model=yolo11n.pt format=ncnn # creates '/yolo11n_ncnn_model'
# Run inference with the exported model
yolo predict model='./yolo11n_ncnn_model' source='https://ultralytics.com/images/bus.jpg'
导出参数
参数 | 类型 | 默认值 | 描述 |
---|---|---|---|
format |
str |
'ncnn' |
导出模型的目标格式,定义与各种部署环境的兼容性。 |
imgsz |
int 或 tuple |
640 |
模型输入的所需图像大小。 可以是正方形图像的整数或元组 (height, width) 用于指定特定维度。 |
half |
bool |
False |
启用 FP16(半精度)量化,从而减小模型大小并可能加快受支持硬件上的推理速度。 |
batch |
int |
1 |
指定导出模型批处理推理大小或导出模型将并发处理的最大图像数量,在 predict 模式下。 |
device |
str |
None |
指定导出设备:GPU (device=0 ),CPU(device=cpu ),适用于 Apple 芯片的 MPS(device=mps )。 |
有关导出过程的更多详细信息,请访问Ultralytics 文档页面上的导出。
部署导出的 YOLO11 NCNN 模型
成功将 Ultralytics YOLO11 模型导出为 NCNN 格式后,您现在可以部署它们。运行 NCNN 模型的主要和推荐的第一步是利用 YOLO("yolo11n_ncnn_model/") 方法,如前面的使用代码段中所述。但是,有关在各种其他设置中部署 NCNN 模型的深入说明,请查看以下资源:
-
macOS:了解如何使用 NCNN 模型通过 macOS 执行任务。
-
Linux:浏览此页面,了解如何在 Raspberry Pi 和其他类似设备等资源有限的设备上部署 NCNN 模型。
-
使用 VS2017 的 Windows x64: 浏览此博客,了解如何使用 Visual Studio Community 2017 在 windows x64 上部署 NCNN 模型。
总结
在本指南中,我们介绍了将 Ultralytics YOLO11 模型导出为 NCNN 格式。此转换步骤对于提高 YOLO11 模型的效率和速度至关重要,使其更有效并适用于资源有限的计算环境。
有关使用的详细说明,请参阅NCNN官方文档。
此外,如果您有兴趣探索 Ultralytics YOLO11 的其他集成选项,请务必访问我们的集成指南页面,以获取更多见解和信息。
常见问题
如何将 Ultralytics YOLO11 模型导出为 NCNN 格式?
要将您的 Ultralytics YOLO11 模型导出为 NCNN 格式,请按照以下步骤操作:
-
Python:使用
export
YOLO 类中的 function。from ultralytics import YOLO # Load the YOLO11 model model = YOLO("yolo11n.pt") # Export to NCNN format model.export(format="ncnn") # creates '/yolo11n_ncnn_model'
-
CLI:使用
yolo
命令,使用export
参数生成。yolo export model=yolo11n.pt format=ncnn # creates '/yolo11n_ncnn_model'
有关详细的导出选项,请查看文档中的导出页面。
将 YOLO11 模型导出到 NCNN 有哪些优势?
将您的 Ultralytics YOLO11 模型导出到 NCNN 具有以下几个优点:
- 效率: NCNN 模型针对移动和嵌入式设备进行了优化,即使在计算资源有限的情况下也能确保高性能。
- 量化:NCNN 支持诸如量化等技术,这些技术可以提高模型速度并减少内存使用。
- 广泛的兼容性: 您可以在包括 Android、iOS、Linux 和 macOS 在内的多个平台上部署 NCNN 模型。
有关更多详细信息,请参阅文档中的导出到 NCNN部分。
为什么我应该使用 NCNN 用于我的移动 AI 应用程序?
NCNN 由腾讯开发,专门为移动平台优化。使用 NCNN 的主要原因包括:
- 高性能:专为在移动 CPU 上进行高效快速处理而设计。
- 跨平台: 与 TensorFlow 和 ONNX 等常用框架兼容,可以更轻松地在不同平台之间转换和部署模型。
- 社区支持: 活跃的社区支持确保持续改进和更新。
要了解更多信息,请访问文档中的 NCNN 概述。
NCNN 模型部署支持哪些平台?
NCNN 功能多样,支持多种平台:
- 移动端: Android、iOS。
- 嵌入式系统和物联网设备: 诸如 Raspberry Pi 和 NVIDIA Jetson 等设备。
- 桌面和服务器: Linux、Windows 和 macOS。
如果在 Raspberry Pi 上运行模型速度不够快,转换为 NCNN 格式可能会提高速度,详情请参阅我们的 Raspberry Pi 指南。
如何在 Android 上部署 Ultralytics YOLO11 NCNN 模型?
要在 Android 上部署 YOLO11 模型:
- 为 Android 构建: 请参考 NCNN Android 构建 指南。
- 与您的应用集成:使用 NCNN Android SDK 将导出的模型集成到您的应用程序中,以实现高效的设备端推理。
有关分步说明,请参阅我们的 部署 YOLO11 NCNN 模型 指南。
如需更多高级指南和用例,请访问 Ultralytics 文档页面。