rk3588 部署yolov8 记录

1. 环境说明

需要用到 airockchip 提供的三个库, ultralytics_yolov8、rknn_model_zoo、rknn-toolkit2
链接: https://github.com/airockchip
在这里插入图片描述

    1. ultralytics_yolov8
      瑞芯微官方根据对应平台进行优化过的。
    1. rknn_model_zoo
      功能:瑞芯微官方维护的模型仓库,包含预优化的深度学习模型(如 YOLOv5/YOLOv8、MobileNet、ResNet 等)。
      核心特点:
      模型已针对瑞芯微 NPU(如 RK3588、RK3568)进行量化和优化。
      提供 Python 和 C++ 推理示例代码。
      包含模型转换脚本,支持从 ONNX/TensorFlow 转为 RKNN 格式。
    1. rknn-toolkit2
      功能:瑞芯微提供的模型转换和推理工具包,用于将标准深度学习模型(如 ONNX、TensorFlow)转换为 RKNN 格式并在 NPU 上运行。
      核心特点:
      支持 INT8/FP16 量化,提升推理速度。
      提供 Python 和 C++ API,方便集成到应用中。
      包含模型性能分析工具(如内存占用、推理时间)。

2. pt模型转换onnx

2.1 下载ultralytics_yolov8

https://github.com/airockchip/ultralytics_yolov8

2.2 依赖安装

这里将 ultralytics_yolov8-main 重命名为 ultralytics_yolov8-rknn, 使用vscode打开。
项目的pyproject.toml 中已经定义了相关依赖, 直接安装即可。
在这里插入图片描述
我这里使用的是anaconda python3.10环境,可根据自己环境安装即可。
在这里插入图片描述

# 依赖安装

pip install . -i https://pypi.tuna.tsinghua.edu.cn/simple

2.3 yolov8 pt模型转 onnx

将之前训练好的yolov8 模型放到上述瑞芯微提供的ultralytics_yolov8-rknn下, 在终端执行转化命令:

yolo export model=模型名称.pt format=rknn

若报错:
在这里插入图片描述
缺少ONNX库,安装一下即可:

pip install onnx -i https://pypi.tuna.tsinghua.edu.cn/simple

执行完后会在项目根目录下生成onnx模型。

3. onnx 模型转 rknn模型

3.1 rknn-toolkit 安装

3.1.1 下载

https://github.com/airockchip/rknn-toolkit2
需要准备pc虚拟机,这里使用ubuntu20.04, 下载上述工具包上传到ubuntu虚拟机或者直接使用git clone, 这里使用的是 2.3.0版本
在这里插入图片描述
在这里插入图片描述
或者: git clone https://github.com/airockchip/rknn-toolkit2 -b v2.3.0
在这里插入图片描述

3.1.2 安装

# 创建一个虚拟环境,这里使用anaconda 管理python环境
 conda create -n rknn-tk2-py310 python=3.10
 # 激活环境
 conda activate rknn-tk2-py310

进入上述下载的 rknn-toolkit2/rknn-toolkit2/packages/x86_64 目录
执行安装:

# 先安装依赖
 pip install -r requirements_cp310-2.3.0.txt -i https://pypi.tuna.tsinghua.edu.cn/simple/
# 安装 安装rknn-toolkit2工具
pip install rknn_toolkit2-2.3.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

在这里插入图片描述
上述两部安装后转rknn模型工具环境就已经安装完成了

3.2 模型转换

  • rknn_model_zoo 下载
    根上述一样直接下载zip传入ubuntu pc解压或者直接使用git clone, 版本和之前的rknn-toolkit保持一致。
git clone https://github.com/airockchip/rknn_model_zoo.git -b v2.3.0
  • 模型转化
    进入 rknn_model_zoo/examples/yolov8/python 目录下, 将之前转过的 onnx上传到次目录下,执行:
python convert.py yolov8n.onnx rk3588

完成后可在上一级目录下找到,或者自定义输出位置,在convert.py中修改:
在这里插入图片描述

4. 板端部署

4.1 更新NPU驱动

根据之前下载的rknn-toolkit2/doc/rknn_server_proxy.md 说明,只需要将对应的动态库和文件更新到开发板即可。如果使用文档中adb 更新的话请自行配置adb环境。
在这里插入图片描述

4.2 安装RKNNToolkitLite2

RKNNToolkitLite2为RockchipNPU平台提供Python编程接口,帮助用户部署RKNN模型。

  • 查看开发板python 版本
    在这里插入图片描述
    从linux虚拟机推送对应的安装文件到开发板:
adb push rknn-toolkit2/rknn-toolkit-lite2/packages/rknn_toolkit_lite2-2.3.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl /home/orangepi/rknn-toolkit

在这里插入图片描述
传输完成后在开发板安装:
因为有python2和python3 两个版本的,所以指定使用3版本的pip

 python3 -m pip install rknn_toolkit_lite2-2.3.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

在这里插入图片描述
上述安装完成后就可以在开发按官方示例来测试了。

4.3 部署测试

参考瑞芯微官方示例部署到开发板:
https://github.com/airockchip/rknn_model_zoo
上述yolov8示例是基于RKNNToolkit而非RKNNToolkitLite2,可参考RKNNToolkitLite2下的example进行对应修改。
https://github.com/airockchip/rknn-toolkit2/tree/master/rknn-toolkit-lite2/examples

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不知所云,

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值