
RK平台部署实战:RKNN工具链安装、模型转换适配作者:黒漂技术佬 | 系列:嵌入式端目标检测部署实战一、瑞芯微RKNN工具链是什么?前面几篇我们已经完成了模型训练、ONNX导出和量化原理的学习。现在是时候把我们精心准备好的ONNX模型,真正"种"到瑞芯微的芯片上去了。这里需要一个关键的桥梁——RKNN工具链。它包含两个核心组件:rknn-toolkit2:运行在PC上的Python工具包,负责把ONNX/PyTorch/TensorFlow模型转换成RK平台专用的.rknn格式。它同时会���成INT8量化——注意这里的量化和转换是一步完成的,不像TensorRT那样需要先用其他工具量化。librknnrt:运行在RK设备上的C/C++运行时库,负责加载.rknn模型并执行推理。一句话总结:PC端用rknn-toolkit2把ONNX转成RKNN并量化,设备端用librknnrt加载推理。二、环境准备2.1 PC端(rknn-toolkit2安装)rknn-toolkit2目前支持Ubuntu 18.04/20.04/22.04和Windows(WSL2),Python版本要求3.8~3.11。官方最推荐的环境是Ubuntu 20.04 + Python 3.8。安装步骤如下:# 1. 创建虚拟环境(强烈推荐,不要污染系统Python)conda create-nrknnpython=3.8conda activate rknn# 2. 安装rknn-toolkit2(假设你已经从瑞芯微官方获取了.whl文件)pipinstallrknn_toolkit2-2.1.0-cp38-cp38-linux_x86_64.whl# 3. 验证安装python-c"from rknn.api import RKNN; print('RKNN Toolkit安装成功')"注意:rknn-toolkit2各个版本之间有API变化,以下代码基于rknn-toolkit2 v2.1.0。如果你用其他版本,记得查阅对应版本的文档。2.2 设备端(librknnrt)设备端一般不需要额外安装——如果你用的是瑞芯微官方的固件镜像,librknnrt已经预装好了。验证一下:# 在RK设备上执行find/usr-name"librknnrt*"2/dev/null# 预期输出类似:/usr/lib/librknnrt.so# 检查NPU驱动是否加载cat/sys/kernel/debug/rknpu/load如果找不到,需要从瑞芯微官方SDK中拷贝对应版本的.so文件并配置LD_LIBRARY_PATH。三、ONNX到RKNN:模型转换全流程这是本文的核心内容。完整的转换流程分为五步:初始化→配置→加载模型→构建→导出。fromrknn.apiimportRKNN# ==========================================# 第一步:创建RKNN对象# ==========================================rknn=RKNN(verbose=True)# verbose=True 打印详细日志# ==========================================# 第二步:配置转换参数# ==========================================rknn.config(mean_values=[[123.675,116.28