用于 Ultralytics YOLO11 模型的 Rockchip RKNN 导出
在嵌入式设备上部署计算机视觉模型时,特别是那些由瑞芯微处理器驱动的设备,拥有兼容的模型格式至关重要。将Ultralytics YOLO11模型导出为RKNN格式,可确保优化的性能以及与瑞芯微硬件的兼容性。本指南将引导您完成将YOLO11模型转换为RKNN格式的过程,从而能够在瑞芯微平台上高效部署。
注意
本指南已经过基于 Rockchip RK3588 的 Radxa Rock 5B 和基于 Rockchip RK3566 的 Radxa Zero 3W 的测试。预计它可以在支持 rknn-toolkit2 的其他基于 Rockchip 的设备上运行,例如 RK3576、RK3568、RK3562、RV1103、RV1106、RV1103B、RV1106B 和 RK2118。
什么是 Rockchip?
瑞芯微以提供通用且节能的解决方案而闻名,它设计了先进的片上系统 (SoC),为各种消费电子产品、工业应用和 AI 技术提供动力。 凭借基于 ARM 的架构、内置神经处理单元 (NPU) 和高分辨率多媒体支持,瑞芯微 SoC 为平板电脑、智能电视、物联网系统和边缘 AI 应用等设备提供前沿性能。 Radxa、ASUS、Pine64、Orange Pi、Odroid、Khadas 和 Banana Pi 等公司提供各种基于瑞芯微 SoC 的产品,进一步扩大了它们在不同市场的影响力。
RKNN 工具包
RKNN Toolkit是由瑞芯微(Rockchip)提供的一组工具和库,旨在促进深度学习模型在其硬件平台上的部署。RKNN,即Rockchip Neural Network(瑞芯微神经网络),是这些工具使用的专有格式。RKNN模型旨在充分利用瑞芯微NPU(神经处理单元)提供的硬件加速,从而确保在RK3588、RK3566、RV1103、RV1106和其他瑞芯微驱动的系统上实现高性能的AI任务。
RKNN 模型的主要特性
RKNN 模型为在瑞芯微平台上部署提供了以下几个优势:
- 针对 NPU 优化:RKNN 模型经过专门优化,可在 Rockchip 的 NPU 上运行,从而确保最佳性能和效率。
- 低延迟: RKNN 格式最大限度地减少了推理延迟,这对于边缘设备上的实时应用至关重要。
- 平台特定定制:RKNN 模型可以针对特定的 Rockchip 平台进行定制,从而更好地利用硬件资源。
- 电源效率: 通过利用专用 NPU 硬件,RKNN 模型比基于 CPU 或 GPU 的处理消耗更少的电量,从而延长了便携式设备的电池续航时间。
将操作系统刷入 Rockchip 硬件
获得基于 Rockchip 的设备后的第一步是刷入操作系统,以便硬件可以启动到工作环境中。在本指南中,我们将介绍我们测试过的两种设备的入门指南,它们是 Radxa Rock 5B 和 Radxa Zero 3W。
导出到 RKNN:转换您的 YOLO11 模型
将 Ultralytics YOLO11 模型导出为 RKNN 格式,并使用导出的模型运行推理。
注意
请确保使用基于 X86 的 Linux PC 将模型导出到 RKNN,因为不支持在基于 Rockchip 的设备 (ARM64) 上导出。
安装
要安装所需的软件包,请运行:
安装
# Install the required package for YOLO11
pip install ultralytics
有关安装过程的详细说明和最佳实践,请查看我们的 Ultralytics 安装指南。如果在为 YOLO11 安装所需软件包时遇到任何困难,请查阅我们的 常见问题指南以获取解决方案和提示。
用法
注意
目前仅检测模型支持导出功能。未来将支持更多模型。
用法
from ultralytics import YOLO
# Load the YOLO11 model
model = YOLO("yolo11n.pt")
# Export the model to RKNN format
# 'name' can be one of rk3588, rk3576, rk3566, rk3568, rk3562, rv1103, rv1106, rv1103b, rv1106b, rk2118
model.export(format="rknn", name="rk3588") # creates '/yolo11n_rknn_model'
# Export a YOLO11n PyTorch model to RKNN format
# 'name' can be one of rk3588, rk3576, rk3566, rk3568, rk3562, rv1103, rv1106, rv1103b, rv1106b, rk2118
yolo export model=yolo11n.pt format=rknn name=rk3588 # creates '/yolo11n_rknn_model'
导出参数
参数 | 类型 | 默认值 | 描述 |
---|---|---|---|
format |
str |
'rknn' |
导出模型的目标格式,定义与各种部署环境的兼容性。 |
imgsz |
int 或 tuple |
640 |
模型输入的所需图像大小。 可以是正方形图像的整数或元组 (height, width) 用于指定特定维度。 |
batch |
int |
1 |
指定导出模型批处理推理大小或导出模型将并发处理的最大图像数量,在 predict 模式下。 |
name |
str |
'rk3588' |
指定瑞芯微模型(rk3588、rk3576、rk3566、rk3568、rk3562、rv1103、rv1106、rv1103b、rv1106b、rk2118) |
device |
str |
None |
指定导出设备:GPU (device=0 ),CPU(device=cpu )。 |
提示
导出到 RKNN 时,请确保使用 x86 Linux 机器。
有关导出过程的更多详细信息,请访问Ultralytics 文档页面上的导出。
部署导出的 YOLO11 RKNN 模型
成功将 Ultralytics YOLO11 模型导出为 RKNN 格式后,下一步是将这些模型部署在基于 Rockchip 的设备上。
安装
要安装所需的软件包,请运行:
安装
# Install the required package for YOLO11
pip install ultralytics
用法
用法
from ultralytics import YOLO
# Load the exported RKNN model
rknn_model = YOLO("./yolo11n_rknn_model")
# Run inference
results = rknn_model("https://ultralytics.com/images/bus.jpg")
# Run inference with the exported model
yolo predict model='./yolo11n_rknn_model' source='https://ultralytics.com/images/bus.jpg'
真实世界的应用
采用 YOLO11 RKNN 模型的 Rockchip 设备可用于各种应用:
- 智能监控: 部署高效的目标检测系统,用于低功耗的安全监控。
- 工业自动化:直接在嵌入式设备上实施质量控制和缺陷检测。
- 零售分析:无需云依赖,实时跟踪客户行为和库存管理。
- 智慧农业: 使用农业计算机视觉来监测作物健康状况并检测害虫。
- 自主机器人技术: 在资源受限的平台上实现基于视觉的导航和障碍物检测。
基准测试
以下 YOLO11 基准测试由 Ultralytics 团队在基于瑞芯微 RK3588 的 Radxa Rock 5B 上运行,采用 rknn
模型格式,用于衡量速度和准确性。
性能
模型 | 格式 | 状态 | 大小 (MB) | mAP50-95(B) | 推理时间 (ms/im) |
---|---|---|---|---|---|
YOLO11n | rknn |
✅ | 7.4 | 0.505 | 71.5 |
YOLO11s | rknn |
✅ | 20.7 | 0.578 | 98.9 |
YOLO11m | rknn |
✅ | 41.9 | 0.629 | 235.3 |
YOLO11l | rknn |
✅ | 53.3 | 0.633 | 282.0 |
YOLO11x | rknn |
✅ | 114.6 | 0.687 | 679.2 |
使用以下工具进行基准测试: ultralytics 8.3.152
注意
以上基准测试的验证使用了COCO128数据集。推理时间不包括预处理/后处理。
总结
在本指南中,您学习了如何将 Ultralytics YOLO11 模型导出为 RKNN 格式,以增强它们在瑞芯微平台上的部署。此外,还向您介绍了 RKNN 工具包以及使用 RKNN 模型进行边缘 AI 应用的特定优势。
Ultralytics YOLO11 和 Rockchip 的 NPU 技术的结合为在嵌入式设备上运行高级计算机视觉任务提供了一种高效的解决方案。这种方法能够以最小的功耗和高性能实现实时对象检测和其他视觉 AI 应用。
有关使用详情,请访问 RKNN 官方文档。
此外,如果您想了解更多关于 Ultralytics YOLO11 集成的信息,请访问我们的集成指南页面。您将在那里找到大量有用的资源和见解。
常见问题
如何将我的 Ultralytics YOLO 模型导出为 RKNN 格式?
您可以使用 export()
方法,可以通过 Ultralytics python 包或命令行界面 (CLI) 使用。请确保您使用的是基于 x86 的 Linux PC 进行导出,因为 ARM64 设备(如 Rockchip)不支持此操作。您可以使用指定的目标 Rockchip 平台 name
参数,例如 rk3588
, rk3566
,或其他。此过程会生成一个优化的 RKNN 模型,可以部署在您的 Rockchip 设备上,从而利用其神经处理单元 (NPU) 来加速推理。
示例
from ultralytics import YOLO
# Load your YOLO model
model = YOLO("yolo11n.pt")
# Export to RKNN format for a specific Rockchip platform
model.export(format="rknn", name="rk3588")
yolo export model=yolo11n.pt format=rknn name=rk3588
在 Rockchip 设备上使用 RKNN 模型有哪些好处?
RKNN 模型经过专门设计,旨在利用瑞芯微(Rockchip)的神经处理单元(NPU)的硬件加速功能。与在同一硬件上运行 ONNX 或 TensorFlow Lite 等通用模型格式相比,这种优化可以显著提高推理速度并减少延迟。使用 RKNN 模型可以更有效地利用设备资源,从而降低功耗并提高整体性能,这对于边缘设备上的实时应用至关重要。通过将您的 Ultralytics YOLO 模型转换为 RKNN,您可以在由瑞芯微 SoC(如 RK3588、RK3566 等)驱动的设备上实现最佳性能。
是否可以在 NVIDIA 或 Google 等其他制造商的设备上部署 RKNN 模型?
RKNN 模型专门针对瑞芯微平台及其集成的 NPU 进行了优化。虽然从技术上讲,您可以使用软件仿真在其他平台上运行 RKNN 模型,但您将无法从瑞芯微设备提供的硬件加速中受益。为了在其他平台上获得最佳性能,建议将您的 Ultralytics YOLO 模型导出为专门为这些平台设计的格式,例如用于 NVIDIA GPU 的 TensorRT 或用于 Google 的 Edge TPU 的 TensorFlow Lite。Ultralytics 支持导出为各种格式,确保与各种硬件加速器兼容。
RKNN 模型部署支持哪些瑞芯微(Rockchip)平台?
Ultralytics YOLO 导出为 RKNN 格式支持各种 Rockchip 平台,包括流行的 RK3588、RK3576、RK3566、RK3568、RK3562、RV1103、RV1106、RV1103B、RV1106B 和 RK2118。这些平台常见于 Radxa、ASUS、Pine64、Orange Pi、Odroid、Khadas 和 Banana Pi 等制造商的设备中。这种广泛的支持确保您可以在各种 Rockchip 驱动的设备上部署优化的 RKNN 模型,从单板计算机到工业系统,充分利用其 AI 加速功能,从而增强计算机视觉应用程序的性能。
RKNN 模型在 Rockchip 设备上的性能与其他格式相比如何?
由于 RKNN 模型针对瑞芯微的 NPU 进行了优化,因此在瑞芯微设备上,RKNN 模型的性能通常优于 ONNX 或 TensorFlow Lite 等其他格式。例如,在 Radxa Rock 5B (RK3588) 上的基准测试表明,RKNN 格式的 YOLO11n 实现了 99.5 毫秒/图像的推理时间,明显快于其他格式。正如 benchmarks section 所示,这种性能优势在各种 YOLO11 模型尺寸中是一致的。通过利用专用的 NPU 硬件,RKNN 模型可以最大限度地减少延迟并最大限度地提高吞吐量,使其成为基于瑞芯微的边缘设备上实时应用的理想选择。