rk3588 部署yolov8之模型转换
rk3588 部署yolov8之模型转换
1. 环境说明
需要用到 airockchip 提供的三个库, ultralytics_yolov8、rknn_model_zoo、rknn-toolkit2
链接: https://github.com/airockchip

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

2. pt模型转换onnx
ultralytics_yolov8,将 ultralytics_yolov8-main 重命名为 ultralytics_yolov8-rknn, 使用vscode打开,项目的pyproject.toml 中已经定义了相关依赖, 直接安装即可。

我使用的是anaconda python3.10虚拟环境,根据自己环境安装即可。
pip install . -i https://pypi.tuna.tsinghua.edu.cn/simple

pt模型转 onnx,将需要转换的pt模型放到上述瑞芯微提供的ultralytics_yolov8-rknn下, 在终端执行转化命令,执行完后会在项目根目录下生成onnx模型:
yolo export model=模型名称.pt format=rknn
或者在虚拟环境运行如下代码:
from ultralytics import YOLO
model = YOLO(r"yolov8n.pt")
model.export(format="rknn")
如果报错,把没安装的包安装一下!!!!
pip install xxxxx -i https://pypi.tuna.tsinghua.edu.cn/simple

合并
import onnx
# 加载结构文件(它会自动寻找同目录下的.onnx.data)
onnx_model= onnx.load("yolov8n.onnx")
# 保存时设置成不使用外部数据
onnx.save(onnx_model, "yolov8n_combined.onnx", save_as_external_data=False)
print("模型已成功合并为单文件:yolov8ncombined.onnx")

3.ubuntu安装conda环境
根据系统下载对应的conda,地址: https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/
我下载的python3.10版本的aarch64的:
![]()
上传到ubuntu系统后,给与权限并执行:
sudo chmod 777 Miniconda3-py310_23.10.0-1-Linux-aarch64.sh -R
./Miniconda3-py310_23.10.0-1-Linux-aarch64.sh
根据提示操作!
# 激活conda环境
source ~/.bashrc
配置镜像地址:
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --set show_channel_urls yes
然后可以创建虚拟环境:
conda create -n rknn310 python=3.10 -y
应用虚拟环境
conda activate rknn310
安装rknn-toolkit2的依赖(根据自己的环境选择是arm还是x86):
cd /data/rk_test/rknn-toolkit2-2.3.0/rknn-toolkit2/packages/arm64

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple -r arm64_requirements_cp310.txt
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple rknn_toolkit2-2.3.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
4.onnx 模型转 rknn模型
在ubuntu系统执行:rknn-toolkit2,将yolov8n_combined.onnx文件拷贝到ubuntu系统中的
/data/rk_test/rknn_model_zoo-main/examples/yolov8/python/

python convert.py yolov8n_combined.onnx rk3588

完成后可在/data/rk_test/rknn_model_zoo-main/examples/yolov8/model/目录下找到生成的rknn,也可以自定义输出位置,在convert.py中修改:


5.验证 rknn模型
通过地址:https://netron.app/ 上传rknn模型查看有9个输出:

更多推荐
所有评论(0)