跳至内容

如何从YOLOv8 导出到NCNN 以便顺利部署

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

导出为NCNN 格式的功能可让您优化您的 Ultralytics YOLOv8模型,使其适用于基于设备的轻量级应用程序。在本指南中,我们将指导您如何将模型转换为NCNN 格式,使您的模型更容易在各种移动和嵌入式设备上良好运行。

为什么要导出到NCNN ?

NCNN 概况

NCNNNCNN 兼容 Linux、Android、iOS 和 macOS 等多种平台。

NCNN 以其在移动 CPU 上的快速处理速度而著称,可将深度学习模型快速部署到移动平台。这使得构建智能应用程序变得更加容易,让人工智能的力量触手可及。

NCNN 机型的主要特点

NCNN 模型提供了广泛的关键功能,通过帮助开发人员在移动、嵌入式和边缘设备上运行模型,实现了设备上的机器学习:

  • 高效和高性能:NCNN 模型高效轻便,经过优化,可在资源有限的移动和嵌入式设备(如 Raspberry Pi)上运行。它们还能在各种基于计算机视觉的任务中实现高性能和高精度。

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

  • 兼容性:NCNN 模型与流行的深度学习框架兼容,如 TensorFlowCaffeONNX.这种兼容性使开发人员可以轻松使用现有模型和工作流程。

  • 易于使用:NCNN 模型与流行的深度学习框架兼容,可轻松集成到各种应用程序中。此外,NCNN 还提供用户友好型工具,用于在不同格式之间转换模型,确保在整个开发环境中实现流畅的互操作性。

部署选项NCNN

在了解将YOLOv8 模型导出为NCNN 格式的代码之前,我们先来了解一下NCNN 模型通常是如何使用的。

NCNN 这些型号专为提高效率和性能而设计,与各种部署平台兼容:

  • 移动部署:专门针对 Android 和 iOS 进行了优化,可无缝集成到移动应用程序中,实现高效的设备推理。

  • 嵌入式系统和物联网设备Ultralytics NCNN NCNN 非常适合 Raspberry Pi 和 NVIDIAJetson等设备,尤其是在需要在设备上进行快速处理的情况下。

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

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

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

安装

要安装所需的软件包,请运行

安装

# Install the required package for YOLOv8
pip install ultralytics

有关安装过程的详细说明和最佳实践,请查阅我们的Ultralytics 安装指南。在安装YOLOv8 所需的软件包时,如果遇到任何困难,请查阅我们的常见问题指南,了解解决方案和技巧。

使用方法

在了解使用说明之前,需要注意的是,虽然Ultralytics YOLOv8 的所有 型号都可以导出,但您可以在此确保您选择的型号支持导出功能。

使用方法

from ultralytics import YOLO

# Load the YOLOv8 model
model = YOLO('yolov8n.pt')

# Export the model to NCNN format
model.export(format='ncnn') # creates '/yolov8n_ncnn_model'

# Load the exported NCNN model
ncnn_model = YOLO('./yolov8n_ncnn_model')

# Run inference
results = ncnn_model('https://ultralytics.com/images/bus.jpg')
# Export a YOLOv8n PyTorch model to NCNN format
yolo export model=yolov8n.pt format=ncnn  # creates '/yolov8n_ncnn_model'

# Run inference with the exported model
yolo predict model='./yolov8n_ncnn_model' source='https://ultralytics.com/images/bus.jpg'

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

部署导出的YOLOv8 NCNN 模型

成功将Ultralytics YOLOv8 模型导出为NCNN 格式后,现在就可以部署它们了。运行NCNN 模型的首要和推荐的第一步是使用YOLO("./model_ncn_model") 方法,如前面的使用代码片段所述。不过,有关在其他各种设置中部署NCNN 模型的深入说明,请参阅以下资源:

  • 安卓:本博客介绍了如何使用NCNN 模型通过 Android 应用程序执行物体检测等任务。

  • MacOS:了解如何使用NCNN 模型通过 macOS 执行任务。

  • Linux:浏览本页,了解如何在资源有限的设备(如 Raspberry Pi 和其他类似设备)上部署NCNN 模型。

  • 使用 VS2017 的 Windows x64:浏览本博客,了解如何使用 Visual Studio Community 2017 在 Windows x64 上部署NCNN 模型。

摘要

在本指南中,我们将介绍如何将Ultralytics YOLOv8 模型导出为NCNN 格式。这一转换步骤对于提高YOLOv8 模型的效率和速度至关重要,可使其更加有效,并适用于资源有限的计算环境。

有关使用的详细说明,请参阅 NCNN 官方文档

此外,如果您有兴趣探索Ultralytics YOLOv8 的其他集成选项,请务必访问我们的集成指南页面,了解更多信息。



创建于 2024-03-01,更新于 2024-03-03
作者:glenn-jocher(1)、abirami-vina(1)

评论