1. 环境准备与工具链配置
要在RK3588上成功部署YOLOv5模型,首先需要搭建合适的开发环境。我实测过多个版本组合,最稳定的是Ubuntu 20.04搭配Python 3.8和RKNN-Toolkit2 v2.3.0。这个组合不仅兼容性好,还能充分发挥RK3588 NPU的6TOPS算力。
先安装Miniconda来管理Python环境,这是避免依赖冲突的关键一步:
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-aarch64.sh
bash Miniconda3-latest-Linux-aarch64.sh
source ~/.bashrc
创建专用环境时,记得配置清华源加速下载:
conda create -n rknn python=3.8
conda activate rknn
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple/
pip install opencv-python
接下来安装RKNN工具链,这里有两个关键包需要区分:rknn_toolkit2用于模型转换(在PC端运行),rknn_toolkit_lite2用于模型推理(在板端运行)。我建议直接从GitHub拉取最新代码:
git clone https://github.com/airockchip/rknn-toolkit2.git --depth 1
cd rknn-toolkit2/packages/arm64
pip install rknn_toolkit2-2.3.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
cd ../rknn-toolkit-lite2/packages
pip install rknn_toolkit_lite2-2.3.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
注意:如果后续运行时报错提示RKNN库不匹配,需要将编译好的librknnrt.so库文件拷贝到系统目录。这个文件通常位于rknn-toolkit2/rknpu2/runtime/Linux/librknn_api/aarch64/路径下,执行sudo cp librknnrt.so /lib即可解决。
2. 模型量化与转换实战
模型量化是提升NPU推理性能的关键步骤。RK3588支持INT8和FP16两种量化模式,实测INT8量化能让模型体积减少75%,推理速度提升2-3倍,而精度损失不到1%。
先准备校准数据集,这个步骤很多新手会忽略。需要创建一个包含20-50张代表性图像的文本文件,每行指定图像路径:
# coco_subset_20.txt
./COCO/val2017/000000001.jpg
./COCO/val2017/000000002.jpg
...
下面是完整的模型转换脚本,我添加了详细的参数说明:
import sys
from rknn.api import RKNN
DATASET_PATH = './COCO/coco_subset_20.txt'
DEFAULT_RKNN_PATH = './yolov5s_quant.rknn'
def parse_arg():
if len(sys.argv) < 3:
print("Usage: python3 onnx_to_rknn.py onnx_model_path platform [dtype] [output_path]")
print("Platform options: rk3562, rk3566, rk3568, rk3576, rk3588")
print("Dtype options: i8 (INT8量化), fp (FP16不量化)")
exit(1)
model_path = sys.argv[1]
platform = sys.argv[2]
do_quant = True # 默认开启量化
if len(sys.argv) > 3:
model_type = sys.argv[3]
if model_type == 'fp': # 明确指定不量化
do_quant = False
output_path = sys.argv[4] if

967

被折叠的 条评论
为什么被折叠?



