1. 前言
rk3588 的ai开发环境,需要安装的库有点多,名称看起来有点像,经常会乱,本文重点是更新板端 推理库和python npu 的api,并运行测试。
2. 下载官方工程
官方提供的PC端需要安装的依赖和板端的依赖在同一个工程。
https://github.com/airockchip/rknn-toolkit2.git
下载官方的rknn2工程
git clone -b v2.3.0 https://github.com/airockchip/rknn-toolkit2.git rknn-toolkit2-v2.3.0
3. 安装推理库
进入到下载的工程,执行更新库和权限修订
cp rknpu2/runtime/Linux/librknn_api/aarch64/librknnrt.so /usr/lib
cp rknpu2/runtime/Linux/rknn_server/aarch64/usr/bin/* /usr/bin/
chmod +x /usr/bin/rknn_server
chmod +x /usr/bin/start_rknn.sh
chmod +x /usr/bin/restart_rknn.sh
# 重启rknn 后台服务
restart_rknn.sh
restart_rknn.sh 运行成功之后显示 版本号 ,显示 2.3.0
4. 安装 python rknn api 环境
4.1 安装
安装环境的基础包如下图所示,根据RK3588 运行的python版本安装对应的软件包
安装指令
pip install rknn_toolkit_lite2-2.3.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
安装过程
root@ATK-DLRK3588-Ubuntu:/work/rknn-toolkit2-v2.3.0/rknn-toolkit-lite2/packages# pip install rknn_toolkit_lite2-2.3.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Processing ./rknn_toolkit_lite2-2.3.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Requirement already satisfied: numpy in /usr/local/lib/python3.8/dist-packages (from rknn-toolkit-lite2==2.3.0) (1.24.4)
Collecting psutil (from rknn-toolkit-lite2==2.3.0)
Downloading psutil-7.0.0-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.metadata (22 kB)
Collecting ruamel.yaml (from rknn-toolkit-lite2==2.3.0)
Downloading ruamel.yaml-0.18.10-py3-none-any.whl.metadata (23 kB)
Collecting ruamel.yaml.clib>=0.2.7 (from ruamel.yaml->rknn-toolkit-lite2==2.3.0)
Downloading ruamel.yaml.clib-0.2.8-cp38-cp38-manylinux_2_24_aarch64.whl.metadata (2.2 kB)
Downloading psutil-7.0.0-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (279 kB)
Downloading ruamel.yaml-0.18.10-py3-none-any.whl (117 kB)
Downloading ruamel.yaml.clib-0.2.8-cp38-cp38-manylinux_2_24_aarch64.whl (641 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 641.5/641.5 kB 18.2 kB/s eta 0:00:00
Installing collected packages: ruamel.yaml.clib, psutil, ruamel.yaml, rknn-toolkit-lite2
Successfully installed psutil-7.0.0 rknn-toolkit-lite2-2.3.0 ruamel.yaml-0.18.10 ruamel.yaml.clib-0.2.8
WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager, possibly rendering your system unusable. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv. Use the --root-user-action option if you know what you are doing and want to suppress this warning.
root@ATK-DLRK3588-Ubuntu:/work/rknn-toolkit2-v2.3.0/rknn-toolkit-lite2/packages#
4.2 测试
rknn的官方工程同时也提供了验证程序,进到对应的目录执行程序
root@ATK-DLRK3588-Ubuntu:/work/rknn-toolkit2-v2.3.0/rknn-toolkit-lite2/examples/resnet18# python3 test.py
W rknn-toolkit-lite2 version: 2.3.0
--> Load RKNN model
done
--> Init runtime environment
I RKNN: [16:26:54.254] RKNN Runtime Information, librknnrt version: 2.3.0 (c949ad889d@2024-11-07T11:35:33)
I RKNN: [16:26:54.254] RKNN Driver Information, version: 0.9.2
I RKNN: [16:26:54.254] RKNN Model Information, version: 6, toolkit version: 2.3.0(compiler version: 2.3.0 (c949ad889d@2024-11-07T11:39:30)), target: RKNPU v2, target platform: rk3588, framework name: PyTorch, framework layout: NCHW, model inference type: static_shape
W RKNN: [16:26:54.268] query RKNN_QUERY_INPUT_DYNAMIC_RANGE error, rknn model is static shape type, please export rknn with dynamic_shapes
W Query dynamic range failed. Ret code: RKNN_ERR_MODEL_INVALID. (If it is a static shape RKNN model, please ignore the above warning message.)
done
--> Running model
resnet18
-----TOP 5-----
[812] score:0.999680 class:"space shuttle"
[404] score:0.000249 class:"airliner"
[657] score:0.000013 class:"missile"
[466] score:0.000009 class:"bullet train, bullet"
[895] score:0.000008 class:"warplane, military plane"
done
5. 总结
- 推理库的安装过程,以及验证是否安装是否成功
- python 推理 api 安装过程,以及验证安装是否成功