Skip to content

如何从YOLO11导出到NCNN以实现顺畅部署

在计算能力有限的设备上部署计算机视觉模型,如移动设备或嵌入式系统,可能会很棘手。您需要确保使用一种针对最佳性能优化的格式。这确保了即使处理能力有限的设备也能很好地处理高级计算机视觉任务。

导出到NCNN格式的功能允许您优化Ultralytics YOLO11模型,以适应轻量级设备应用。在本指南中,我们将引导您如何将模型转换为NCNN格式,使您的模型在各种移动和嵌入式设备上表现良好。

为什么要导出到NCNN?

NCNN概述

由腾讯开发的NCNN框架是一个高性能的神经网络推理计算框架,专门为移动平台优化,包括手机、嵌入式设备和物联网设备。NCNN兼容多种平台,包括Linux、Android、iOS和macOS。

NCNN以其在移动CPU上的快速处理速度而闻名,并能快速将深度学习模型部署到移动平台。这使得构建智能应用变得更加容易,将AI的力量直接放在您的指尖。

NCNN模型的关键特性

NCNN模型提供了一系列关键特性,通过帮助开发者在移动、嵌入式和边缘设备上运行他们的模型,实现设备上的机器学习

  • 高效和高性能:NCNN模型设计为高效和轻量级,针对在资源有限的设备如树莓派上运行进行了优化。它们还能在各种基于计算机视觉的任务中实现高准确性的高性能。

  • 量化:NCNN模型通常支持量化,这是一种减少模型权重和激活精度的技术。这进一步提升了性能并减少了内存占用。

  • 兼容性:NCNN模型与流行的深度学习框架如TensorFlowCaffeONNX兼容。这种兼容性使得开发者能够轻松使用现有的模型和工作流程。

  • 易于使用:NCNN模型设计为易于集成到各种应用中,得益于其与流行深度学习框架的兼容性。此外,NCNN提供了用户友好的工具,用于在不同格式之间转换模型,确保在整个开发领域中的顺畅互操作性。

使用NCNN的部署选项

在我们查看将YOLO11模型导出到NCNN格式的代码之前,让我们了解一下NCNN模型通常是如何使用的。

NCNN模型设计为高效和性能,兼容多种部署平台:

  • 移动部署:特别针对Android和iOS进行了优化,允许无缝集成到移动应用中,实现高效的在设备推理。

  • 嵌入式系统和物联网设备:如果您发现使用Ultralytics指南在树莓派上运行推理不够快,切换到NCNN导出的模型可能会帮助加快速度。NCNN非常适合树莓派和NVIDIA Jetson等设备,特别是在需要设备上快速处理的情况下。

  • 桌面和服务器部署:能够在Linux、Windows和macOS上的桌面和服务器环境中部署,支持开发、训练和评估,具有更高的计算能力。

导出到NCNN:转换您的YOLO11模型

您可以通过将YOLO11模型转换为NCNN格式来扩展模型兼容性和部署灵活性。

安装

要安装所需的包,请运行:

安装

# 安装YOLO11所需的包
pip install ultralytics

有关安装过程的详细说明和最佳实践,请查看我们的Ultralytics 安装指南。在安装 YOLO11 所需包的过程中,如果遇到任何困难,请参考我们的常见问题指南以获取解决方案和提示。

使用方法

在深入使用说明之前,需要注意的是,虽然所有Ultralytics YOLO11 模型都可供导出,但您可以确保所选模型支持导出功能在此

使用方法

from ultralytics import YOLO

# 加载 YOLO11 模型
model = YOLO("yolo11n.pt")

# 将模型导出为 NCNN 格式
model.export(format="ncnn")  # 创建 '/yolo11n_ncnn_model'

# 加载导出的 NCNN 模型
ncnn_model = YOLO("./yolo11n_ncnn_model")

# 运行推理
results = ncnn_model("https://ultralytics.com/images/bus.jpg")
# 将 YOLO11n PyTorch 模型导出为 NCNN 格式
yolo export model=yolo11n.pt format=ncnn  # 创建 '/yolo11n_ncnn_model'

# 使用导出的模型进行推理
yolo predict model='./yolo11n_ncnn_model' source='https://ultralytics.com/images/bus.jpg'

有关支持的导出选项的更多详细信息,请访问Ultralytics 部署选项文档页面

部署导出的 YOLO11 NCNN 模型

成功将 Ultralytics YOLO11 模型导出为 NCNN 格式后,您现在可以部署它们。运行 NCNN 模型的主要和推荐的第一步是使用 YOLO("./model_ncnn_model") 方法,如前面的使用代码片段中所述。然而,对于在其他各种环境中部署 NCNN 模型的深入说明,请查看以下资源:

  • Android: 本博客解释了如何使用 NCNN 模型通过 Android 应用程序执行目标检测等任务。

  • macOS: 了解如何在 macOS 上使用 NCNN 模型执行任务。

  • 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: 使用 YOLO 类的 export 函数。

    from ultralytics import YOLO
    
    # 加载 YOLO11 模型
    model = YOLO("yolo11n.pt")
    
    # 导出为 NCNN 格式
    model.export(format="ncnn")  # 创建 '/yolo11n_ncnn_model'
    
  • CLI: 使用带有 export 参数的 yolo 命令。

    yolo export model=yolo11n.pt format=ncnn  # 创建 '/yolo11n_ncnn_model'
    

有关详细的导出选项,请查看文档中的导出页面。

将 YOLO11 模型导出为 NCNN 有哪些优势?

将 Ultralytics YOLO11 模型导出为 NCNN 提供了几个优势:

  • 效率: NCNN 模型针对移动和嵌入式设备进行了优化,即使在计算资源有限的情况下也能确保高性能。
  • 量化: NCNN 支持量化等技术,提高模型速度并减少内存使用。
  • 广泛兼容性: 您可以在多个平台上部署 NCNN 模型,包括 Android、iOS、Linux 和 macOS。

有关更多详细信息,请参阅文档中的导出为 NCNN部分。

为什么我应该为移动 AI 应用程序使用 NCNN?

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模型:

  1. 为Android构建: 遵循NCNN为Android构建指南。
  2. 集成到您的应用: 使用NCNN Android SDK将导出的模型集成到您的应用程序中,以实现高效的在设备推理。

如需逐步指导,请参阅我们的部署YOLO11 NCNN模型指南。

更多高级指南和使用案例,请访问Ultralytics文档页面


📅 Created 7 months ago ✏️ Updated 13 days ago

Comments