Link to this sectionUltralytics YOLO NCNN 导出#
在计算能力有限的设备(如移动设备或嵌入式系统)上部署 计算机视觉 模型,需要仔细选择模型格式。使用优化后的格式可以确保即使是资源受限的设备也能高效地处理复杂的计算机视觉任务。
导出为 NCNN 格式,你可以优化 Ultralytics YOLO26 模型,以适配轻量级的设备端应用。本指南介绍了如何将模型转换为 NCNN 格式,从而提升其在移动设备和嵌入式设备上的性能。
Link to this section为什么要导出为 NCNN?#
NCNN 框架由腾讯开发,是一个高性能的 神经网络 推理计算框架,专门针对移动平台(包括手机、嵌入式设备和物联网设备)进行了优化。NCNN 兼容多种平台,包括 Linux、Android、iOS 和 macOS。
NCNN 以其在移动 CPU 上的快速处理速度而闻名,能够将 深度学习 模型快速部署到移动平台,是构建人工智能应用的绝佳选择。
Link to this sectionNCNN 模型的主要特性#
NCNN 模型提供了一些关键特性,支持设备端 机器学习,帮助开发者在移动、嵌入式和边缘设备上部署模型:
-
高效且高性能:NCNN 模型轻量化,并针对 Raspberry Pi 等资源受限的移动和嵌入式设备进行了优化,同时在计算机视觉任务中保持了高 准确率。
-
量化:NCNN 支持量化,这是一种降低模型权重和激活 精度 的技术,旨在提高性能并减少内存占用。
-
兼容性:NCNN 模型与包括 TensorFlow、Caffe 和 ONNX 在内的主流深度学习框架兼容,允许开发者利用现有的模型和工作流。
-
易用性:NCNN 提供了用户友好的工具,用于在不同格式之间转换模型,确保了不同开发环境间的顺畅互操作性。
-
Vulkan GPU 加速:NCNN 支持 Vulkan 进行 GPU 加速推理,适用于 AMD、Intel 以及其他非 NVIDIA 的 GPU,能够在更广泛的硬件上实现高性能部署。
Link to this section使用 NCNN 的部署选项#
NCNN 模型兼容多种部署平台:
-
移动端部署:针对 Android 和 iOS 进行了优化,能够无缝集成到移动应用中,实现高效的设备端推理。
-
嵌入式系统和物联网设备:非常适合 Raspberry Pi 和 NVIDIA Jetson 等资源受限的设备。如果你按照 Ultralytics 指南 在 Raspberry Pi 上进行标准推理的效果不够理想,NCNN 可以带来显著的性能提升。
-
桌面端和服务器部署:支持在 Linux、Windows 和 macOS 上进行部署,以满足开发、训练和评估工作流的需求。
Link to this sectionVulkan GPU 加速#
NCNN 通过 Vulkan 支持 GPU 加速,从而在包括 AMD、Intel 和其他非 NVIDIA 显卡在内的各种 GPU 上实现高性能推理。这在以下场景中特别有用:
- 跨厂商 GPU 支持:与仅限于 NVIDIA GPU 的 CUDA 不同,Vulkan 可在多个 GPU 厂商的硬件上运行。
- 多 GPU 系统:在具有多个 GPU 的系统中,使用
device="vulkan:0"、device="vulkan:1"等来选择特定的 Vulkan 设备。 - 边缘和桌面端部署:在没有 CUDA 的设备上利用 GPU 加速。
要使用 Vulkan 加速,请在运行推理时指定 Vulkan 设备:
from ultralytics import YOLO
# Load the exported NCNN model
ncnn_model = YOLO("./yolo26n_ncnn_model")
# Run inference with Vulkan GPU acceleration (first Vulkan device)
results = ncnn_model("https://ultralytics.com/images/bus.jpg", device="vulkan:0")
# Use second Vulkan device in multi-GPU systems
results = ncnn_model("https://ultralytics.com/images/bus.jpg", device="vulkan:1")确保你的 GPU 安装了 Vulkan 驱动程序。大多数现代 GPU 驱动程序默认包含 Vulkan 支持。你可以在 Linux 上使用 vulkaninfo 或在 Windows 上使用 Vulkan SDK 等工具来验证 Vulkan 的可用性。
Link to this section导出为 NCNN:转换你的 YOLO26 模型#
你可以通过将 YOLO26 模型转换为 NCNN 格式来扩展模型的兼容性和部署灵活性。
Link to this section支持的任务#
NCNN 导出支持标准的 Ultralytics YOLO26 任务集。
Link to this section安装#
要安装所需的软件包,请运行:
# Install the required package for YOLO26
pip install ultralytics有关详细说明和最佳实践,请参阅 Ultralytics 安装指南。如果你遇到任何困难,请查阅我们的 常见问题指南 以寻求解决方案。
Link to this section用法#
所有 Ultralytics YOLO26 模型 都设计为开箱即用支持导出,这使得将它们集成到你首选的部署工作流中变得非常容易。你可以 查看支持的导出格式和配置选项的完整列表,为你的应用选择最佳设置。
NCNN 格式支持 导出、预测 和 验证 模式。导出你的模型,然后加载导出的模型来运行推理或验证其准确性。
from ultralytics import YOLO
# Load a YOLO26 model
model = YOLO("yolo26n.pt")
# Export the model to NCNN format
model.export(format="ncnn") # creates '/yolo26n_ncnn_model'from ultralytics import YOLO
# Load the exported NCNN model
model = YOLO("./yolo26n_ncnn_model")
# Run inference
results = model("https://ultralytics.com/images/bus.jpg")from ultralytics import YOLO
# Load the exported NCNN model
model = YOLO("./yolo26n_ncnn_model")
# Validate accuracy on the COCO8 dataset
metrics = model.val(data="coco8.yaml")Link to this section导出参数#
| 参数 | 类型 | 默认值 | 描述 |
|---|---|---|---|
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 导出文档页面。
Link to this section部署已导出的 YOLO26 NCNN 模型#
将 Ultralytics YOLO26 模型导出为 NCNN 格式后,你可以使用上面用法示例中展示的 YOLO("yolo26n_ncnn_model/") 方法进行部署。有关特定平台的部署说明,请参阅以下资源:
-
macOS:在 macOS 系统上部署 NCNN 模型。
-
Linux:在 Linux 设备(包括 Raspberry Pi 和类似嵌入式系统)上部署 NCNN 模型。
-
Windows x64:使用 Visual Studio 在 Windows x64 上部署 NCNN 模型。
Link to this section总结#
本指南介绍了如何将 Ultralytics YOLO26 模型导出为 NCNN 格式,以提高其在资源受限设备上的效率和速度。
更多详细信息,请参考 官方 NCNN 文档。若需了解其他导出选项,请访问我们的 集成指南页面。
Link to this section常见问题解答#
Link to this section如何将 Ultralytics YOLO26 模型导出为 NCNN 格式?#
要将你的 Ultralytics YOLO26 模型导出为 NCNN 格式:
-
Python:使用 YOLO 类中的
export方法。from ultralytics import YOLO # Load a YOLO26 model model = YOLO("yolo26n.pt") # Export to NCNN format model.export(format="ncnn") # creates '/yolo26n_ncnn_model' -
CLI:使用
yolo export命令。yolo export model=yolo26n.pt format=ncnn # creates '/yolo26n_ncnn_model'
有关详细的导出选项,请参阅 导出 文档。
Link to this section将 YOLO26 模型导出为 NCNN 有什么优势?#
将 Ultralytics YOLO26 模型导出为 NCNN 具有多项好处:
- 效率:NCNN 模型针对移动和嵌入式设备进行了优化,确保即使在计算资源有限的情况下也能保持高性能。
- 量化:NCNN 支持量化等技术,可提高模型速度并减少内存使用。
- 广泛的兼容性:你可以在包括 Android、iOS、Linux 和 macOS 在内的多个平台上部署 NCNN 模型。
- Vulkan GPU 加速:通过 Vulkan 在 AMD、Intel 和其他非 NVIDIA 的 GPU 上利用 GPU 加速,从而实现更快的推理。
更多详情,请参阅 为什么要导出为 NCNN? 部分。
Link to this section为什么要在移动端人工智能应用中使用 NCNN?#
由腾讯开发的 NCNN 是专为移动平台优化的。使用 NCNN 的主要原因包括:
- 高性能:专为在移动 CPU 上进行高效、快速的处理而设计。
- 跨平台:与 TensorFlow 和 ONNX 等流行框架兼容,使得在不同平台之间转换和部署模型变得更加容易。
- 社区支持:活跃的社区支持确保了持续的改进和更新。
更多信息,请参阅 NCNN 模型的主要特性 部分。
Link to this sectionNCNN 模型部署 支持哪些平台?#
NCNN 功能丰富,支持多种平台:
- 移动端:Android, iOS。
- 嵌入式系统和物联网设备:Raspberry Pi 和 NVIDIA Jetson 等设备。
- 桌面端和服务器:Linux, Windows, macOS。
若要在 Raspberry Pi 上获得更好的性能,请考虑使用 NCNN 格式,详细信息请参见我们的 Raspberry Pi 指南。
Link to this section我该如何在 Android 上部署 Ultralytics YOLO26 NCNN 模型?#
要在 Android 上部署你的 YOLO26 模型:
- 为 Android 构建:遵循 NCNN Android 构建 指南。
- 集成到你的 App 中:使用 NCNN Android SDK 将导出的模型集成到你的应用程序中,以实现高效的设备端推理。
有关详细说明,请参阅 部署已导出的 YOLO26 NCNN 模型。
如需更多高级指南和用例,请访问 Ultralytics 部署指南。
Link to this section我该如何将 Vulkan GPU 加速用于 NCNN 模型?#
NCNN 支持 Vulkan 在 AMD、Intel 和其他非 NVIDIA GPU 上进行 GPU 加速。要使用 Vulkan:
from ultralytics import YOLO
# Load NCNN model and run with Vulkan GPU
model = YOLO("yolo26n_ncnn_model")
results = model("image.jpg", device="vulkan:0") # Use first Vulkan device对于多 GPU 系统,请指定设备索引(例如,vulkan:1 用于第二个 GPU)。确保你的 GPU 已安装 Vulkan 驱动程序。有关更多详细信息,请参阅 Vulkan GPU 加速 部分。