Link to this sectionUltralytics YOLO NCNN 导出#
在计算能力有限的设备(如移动设备或嵌入式系统)上部署 计算机视觉 模型时,需要谨慎选择格式。使用优化后的格式可以确保资源受限的设备也能高效地处理先进的计算机视觉任务。
导出为 NCNN 格式可以让你优化 Ultralytics YOLO26 模型,以适应基于设备的轻量级应用。本指南介绍了如何将模型转换为 NCNN 格式,从而在移动和嵌入式设备上获得更好的性能。
Link to this section为什么要导出为 NCNN?#
NCNN 框架由腾讯开发,是一个专为移动平台(包括手机、嵌入式设备和物联网设备)优化的高性能 神经网络 推理计算框架。NCNN 与多种平台兼容,包括 Linux、Android、iOS 和 macOS。
NCNN 以其在移动 CPU 上的快速处理速度而闻名,能够将 深度学习 模型快速部署到移动平台,是构建 AI 应用的绝佳选择。
Link to this sectionNCNN 模型的主要特性#
NCNN 模型提供了几项关键特性,支持设备端 机器学习,帮助开发者在移动、嵌入式和边缘设备上部署模型:
-
高效且高性能:NCNN 模型轻量化,并针对像 Raspberry Pi 这样资源受限的移动和嵌入式设备进行了优化,同时在计算机视觉任务中保持了高 精度。
-
量化:NCNN 支持量化技术,这是一种通过降低模型权重和激活值的 精度 来提高性能并减少内存占用的方法。
-
兼容性:NCNN 模型与包括 TensorFlow、Caffe 和 ONNX 在内的流行深度学习框架兼容,允许开发者利用现有的模型和工作流。
-
易用性:NCNN 提供了用户友好的工具来在不同格式之间转换模型,确保了跨不同开发环境的平滑互操作性。
-
Vulkan GPU 加速:NCNN 支持 Vulkan,可实现跨多个供应商(包括 AMD、Intel 和其他非 NVIDIA GPU)的 GPU 加速推理,从而在更广泛的硬件上实现高性能部署。
Link to this sectionNCNN 的部署选项#
NCNN 模型与多种部署平台兼容:
-
移动端部署:针对 Android 和 iOS 进行了优化,能够无缝集成到移动应用中,实现高效的设备端推理。
-
嵌入式系统和物联网设备:非常适合 Raspberry Pi 和 NVIDIA Jetson 等资源受限的设备。如果使用 Ultralytics 指南 在 Raspberry Pi 上进行的标准推理无法满足要求,NCNN 可以提供显著的性能提升。
-
桌面和服务器部署:支持在 Linux、Windows 和 macOS 上进行部署,以支持开发、训练和评估工作流。
Link to this sectionVulkan GPU 加速#
NCNN 通过 Vulkan 支持 GPU 加速,可在多种 GPU(包括 AMD、Intel 和其他非 NVIDIA 显卡)上实现高性能推理。这尤其适用于:
- 跨供应商 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:在包括 Raspberry Pi 及类似嵌入式系统在内的 Linux 设备上部署 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为什么我应该在移动 AI 应用中使用 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我该如何将 Ultralytics YOLO26 NCNN 模型部署到 Android 上?#
要将 YOLO26 模型部署到 Android 上:
- 构建 Android 版本:按照 NCNN Android 构建指南 进行操作。
- 与你的应用集成:使用 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 加速 部分。