以下实现了整个模型的训练、编译、RK3588部署和人脸检测测试。文章目录1. RKNN模型导出2. RKNN文件编译3. 固件烧录1. RKNN模型导出第一步环境搭建。主要环境包有以下opencv-python4.8.0.76、numpy1.21.6、Python 3.7.16、torch1.8.0cu111、python3.7.16。第二步模型训练。利用Mobilenetv3在服务器上训练100个epoch生成pth权重文件。第三步pth文件转为onnx文件。第四步onnx文件转RKNN。注意3588的NPU更换RKNPU SDK及rknn-toolkit2的版本可跑通的版本关系为SDK版本1.5.0rknn-toolkit2版本1.4.2b更换librknnrt.so文件–这一步尤为重要。这一步需要用到RKNN-Toollkit2因此需要安装RKNN-Toollkit2。在ubuntu先创建虚拟环境对应的环境依赖为python3.10 - rknn_toolkit2-1.6.0以及相依赖的opencv-python、torchvision和torch。到此完成rknn模型的生成。2. RKNN文件编译将RKNN文件放于\release\frameworks\base\cmds\facedet_server\facedet_source\model下其次需要修改以下文件夹中的RKNN名称。按照以下步骤编译文件。在release目录下选配编译环境1输入source ebsw_select.sh然后选择0 1 0 1 0 1 12输入source build/envsetup.sh激活环境3输入lunch选择64rk3588_t_skg-userdebug4整编 ./build.sh -KUCAu5单编 mmm frameworks/base/cmds/facedet_server/单编 mmm hardware/interfaces/camera/device/3.4/default/3. 固件烧录首先需要创建窜口波特率为1500000在串口窗口输入reboot loader命令使RKDevTool_Release进入LOADER模式再点击升级固件Upgrade。通过RKDevTool_Release升级固件正常烧录完成重启设备后会出现图2中结果。如果重启设备仍出现无法发现设备情况首先需下载adb包出现如下结果则表示完成安装。出现以下问题解决先关闭防火墙① 如果仍然识别不到adb设备则检测图3中文件是否更改。② USB无法识别。更新驱动变换usb接口检测线路。通过命令窗口进入RK3588板端具体执行命令如下进入板子将libc_shared.solibopencv_world.solibrga.solibrknnrt.solibtbb.so推导板子1.adb root adb remount2.adb push libc_shared.so libopencv_world.so librga.so librknnrt.so libtbb.so /system/lib643.先点击 init_facedet_server.bat初始化待设备重启后点击run_facedet_server.bat导入模型。结果如下图所示。4.之后打开设备相机进行人脸检测。