Ubuntu 22.04 环境实战:从零部署RKNN-Toolkit2 v1.6.0完整指南

张开发
2026/4/16 5:17:31 15 分钟阅读

分享文章

Ubuntu 22.04 环境实战:从零部署RKNN-Toolkit2 v1.6.0完整指南
1. 环境准备从零搭建RKNN-Toolkit2开发环境刚拿到一块Rockchip开发板准备跑AI模型或是需要将训练好的PyTorch模型部署到NPU上RKNN-Toolkit2就是你的必备工具。作为Rockchip官方推出的模型转换工具链它能将主流框架训练的模型转换成NPU可执行的格式。不过在Ubuntu 22.04上安装时会遇到Python 3.10适配、特定依赖版本冲突等问题。下面我就带大家完整走一遍安装流程顺便分享几个我踩过的坑。首先确保你的Ubuntu 22.04系统已经更新到最新状态。打开终端执行sudo apt update sudo apt upgrade -y接下来安装Anaconda或Miniconda。我推荐用Miniconda更轻量wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh bash Miniconda3-latest-Linux-x86_64.sh安装完成后记得执行source ~/.bashrc激活conda。创建Python 3.10的专用环境这是Ubuntu 22.04的推荐版本conda create -n rknn python3.10 -y conda activate rknn注意有些教程会推荐Python 3.8但在Ubuntu 22.04上使用3.10能避免后续很多依赖冲突问题。我实测3.10环境更稳定。2. 关键依赖安装解决那些令人头疼的版本冲突激活conda环境后第一个拦路虎就是tf-estimator-nightly这个包。由于RKNN-Toolkit2对TensorFlow生态有依赖但官方requirements里的版本已经过时直接安装会报错。经过多次尝试这个组合最稳定pip install tf-estimator-nightly2.8.0.dev2021122109 --no-deps pip install protobuf3.20.3 numpy1.23.5实测发现如果先安装完整TensorFlow再装RKNN会导致numpy版本冲突。建议按上述顺序单独安装必要组件。接下来下载RKNN-Toolkit2的官方资源包需要从Rockchip官网获取解压后进入packages目录cd ~/Downloads/rknn-toolkit2-v1.6.0/rknn-toolkit2/packages pip install -r requirements_cp310-1.6.0.txt -i https://pypi.tuna.tsinghua.edu.cn/simple如果遇到opencv-python安装失败可以尝试pip install opencv-python-headless4.7.0.723. 核心工具链安装细节决定成败现在来到最关键的一步——安装RKNN-Toolkit2本体。在packages目录下找到对应的whl文件注意Python版本和系统架构pip install rknn_toolkit2-1.6.081f21f4d-cp310-cp310-linux_x86_64.whl安装完成后验证是否成功python -c from rknn.api import RKNN; print(Import success!)如果看到Import success!输出说明核心组件安装正确。但别急着庆祝还需要配置环境变量让工具链能找到NPU驱动echo export LD_LIBRARY_PATH$LD_LIBRARY_PATH:~/Downloads/rknn-toolkit2-v1.6.0/rknn-toolkit2/runtime/RK3588/Linux/librknn_api/aarch64 ~/.bashrc source ~/.bashrc4. 实战验证用YOLOv5测试工具链理论说得再多不如实际跑个模型。我们以YOLOv5为例cd ~/Downloads/rknn-toolkit2-v1.6.0/rknn-toolkit2/examples/onnx/yolov5 python test.py如果一切正常你会看到终端输出模型加载、推理和结果解析的全过程。常见问题及解决方案报错libOpenCL.so not foundsudo apt install ocl-icd-opencl-dev模型转换失败 检查onnx模型版本建议用1.12.0导出pip install onnx1.12.0推理结果异常 可能是预处理/后处理代码不匹配对比官方example检查你的数据处理流程最后分享一个性能优化技巧在RKNN.init_runtime()时启用core_mask参数可以指定NPU核心数比如四核全开rknn.init_runtime(targetrk3588, core_maskRKNN.NPU_CORE_0_1_2_3)我在RK3588开发板上实测四核比单核推理速度提升近3倍。具体选择可以根据你的功耗和性能需求调整。

更多文章