一、开发板点亮
1、需要的硬件设备
ITX-3588J开发板、板子电源、键鼠一套、USB摄像头、便携显示器、HDMI-miniHDMI线、显示器电源
2、连线
开发板连接键鼠、摄像头;显示器链接电源;
*注意:开发板上有三个HDMI,其中VGA下面的时HDMI-in,应该用开发板的HDMI-out与显示器连接
3、点亮
板子内系统以烧录,开发板连接电源即可开机,后续可能会自己烧系统?
二、移植跟踪代码
1、联网
桌面右上角有wifi选项,连接bit-web,打开chorm浏览器登陆即可联网,每次开机后首次登陆浏览器可能会蹦出需要填写密码的窗口,unlock密码被我设置为了 “ 3588 ”
2、安装Anaconda
我在板子里安完了,这步可以跳过。网上有很多在linux上安装conda的教程。
*注意:3588是aarch架构,别选错版本
3、代码测试
利用conda创建虚拟环境
*注意:推荐创建python=3.9,后续用到的rknn有python版本限制
移植一个kcf跟踪代码,例如:GitHub - chuanqi305/KCF: python implementation of "high-speed tracking with kernelized correlation filters"
git clone 或者 浏览器download 或者 U盘copy 都可以
后面用到板子的师弟师妹,请创建自己的文件夹单独存放用到的代码等文件,便于日后清除冗余
测试代码可以正常运行
4、rknn使用
3588可以运行深度学习,这里以NanoTrack为例,项目地址:GitHub - Try2ChangeX/NanoTrack_RK3588_python: python版本基于rk3588的NanoTrack,每秒可达120FPS
3588运行深度学习,以Pytorch开发,以C++或python部署,推理方式有四种,详情见:RK3588模型推理总结 - 知乎,写的很详细,对理解整体流程很有帮助
最终我们使用的开发方式为:
①在PC端利用Pytorch训练网络模型,得到pth或pt文件
②pth转onnx,onnx转rknn
③将rknn文件copy到开发板,最终仅利用开发板,无需PC即可运行项目
5、rknn-toolkit2-lite
在开发板上运行rknn模型需要rknn-toolkit2-lite工具
开发板初始自带rknn驱动版本较低,不支持新版的rknn-toolkit2-lite,官方教程推荐使用的是1.3.0版本,没找到这个版本的资源。初步测试发现,1.4.0可以用,1.6.0用不了,1.5.0未测试。1.4.0资源地址:GitHub - rockchip-linux/rknn-toolkit2 at v1.4.0,或者来找我拷贝(如果我还没毕业)。
需要把文件放在板子里,如果直接用git clone的方式下载会报错,好像是因为git内存不足,建议U盘拷贝过去。并不需要全部文件,需要
\rknn-toolkit2-1.4.0\rknn_toolkit_lite2\examples\ 以及 \rknn-toolkit2-1.4.0\rknn_toolkit_lite2\packages\rknn_toolkit_lite2-1.4.0-cp39-cp39-linux_aarch64.whl
在开发板内的虚拟环境中,在终端中运行指令:
pip3 install rknn_toolkit_lite2-1.4.0-cp39-cp39-linux_aarch64.whl
安装后运行样例测试安装是否成果,在examples\inference_with_lite 路径下 python test.py 即可,若报错缺少什么库就安装什么即可
6、NanoTrack
在NanoTrack路径下运行 python main.py,其中更改video_name以对本地文件或摄像头进行处理;init_rect是初始帧检测框,(x1,y1,w,h),可以用 cv2.selectROI("tracking", frame, False, False) 实现鼠标选框