1.引言
之前一直使用的是pc端的环境,但为了校验RKNN模型的真机推理结果和实际的推理结果的差异,因而不得不连真机来检验检测结果。
2.准备工作
2.1 下载RKNN环境文件
安装RKNN环境可以选择whl的安装方式,也可以选择docker的安装方式。两种方式的安装文件可以通过百度云盘下载:
1
2
下载链接:https://eyun.baidu.com/s/3eTG3VsY
密码: rknn
whl和docker文件都在下面的目录:
- RKNN-Toolkit/release/rknn-toolkit-<version>/
- packages
- docker
其中version表示版本号,packages中是whl安装文件,docker里的是docker镜像文件。
2.2 安装RKNN环境
如果是whl文件,则通过pip命令安装;如果是docker文件则通过docker load XX.tar.gz命令加载即可。本文不再赘述。
3.具体操作
3.1 准备工作
顺序进行如下操作即可:
- 通电,给机器通上电源
- 连接USB,用USB线连接上板子,然后把板子上USB这一侧的开关打开。检测有无打开可以看机器有无提示调试模型已打开。
- 准备adb,下载Android的SDK即可,路径为~/Android/Sdk/platform-tools
3.2 更新rknn_server
具体的步骤可以参见更新rknn_server和rknpu2仓库。
下面列出具体的步骤:
3.2.1 获取device_id
1
2
3
~/Android/Sdk/platform-tools$ ./adb devices
List of devices attached
6f9da6c82c838e2d device
其中的6f….就是设备的device_id。
3.2.2 获取写权限并更新rknn_server
更新rknn_server主要是把bin和so推送到android机器中,且所需文件都在rknpu2仓库中。
1
2
3
4
5
./adb root
./adb remount
./adb push rknpu2/runtime/RK356X/Android/rknn_server/arm64/rknn_server /vendor/bin/
./adb push rknpu2/runtime/RK356X/Android/librknn_api/arm64-v8a/librknnrt.so /vendor/lib64/
./adb push rknpu2/runtime/RK356X/Android/librknn_api/arm64-v8a/librknnrt.so /vendor/lib/
3.2.3 赋予执行权限并重启
首先赋予rknn_server执行权限,然后重启即可:
1
2
3
4
su
chmod +x /vendor/bin/rknn_server
sync
reboot
4.总结
RKNN安装和更新的步骤比较简单清晰,只要按照步骤做即可达到目标。但有两个步骤比较容易遗漏:
- 一是板子上的USB开关记得打开,不然无法使用USB进行调试
- 二是记得给予root权限,不然会出现推送文件失败,导致重启之后rknn_server的版本依然还是1.1.0.