ZLG M1808开发板使用
项目中需要使用工业级的AI处理板,因此考虑采用ZLG的基于rk1808平台的开发板。详细的文档介绍可以看这里M1808文档地址
准备阶段
-
设置PC的固定地址和M1808处于同一网段
-
通过ssh连接到M1808开发板
ip:192.168.1.136
用户名:root
密码:root
测试用例
-
配置rknn模型转换环境
参看了ZLG官网给出的教程,个人猜测应该就是rknn标准的toolkit安装方式,因此我没有按照他这个教程重新安装,而是直接使用了rknn官网给出的镜像安装方式,毕竟docker方式比较简单,而且不容易出错。docker安装方式参见 rk1808s-使用记录 -
以yolov3为例测试模型转换
从ZLG的官网下载用例,放到安装了docker环境的机器上,执行
python rknn_transform_416x416.py
可以得到转换后的模型。转换如果开启量化那么时间会比较久,要耐心等待。不开启转换的模型大概是119M,开启量化之后,转换后的模型大概是61M。
-
配置交叉编译环境
ZLG官网提供了vmware的虚拟机镜像,但是为什么提供的不是docker的!!!!
所以决定自己动手安装官网教程配置一个docker 版本的linux的交叉编译环境。
Docker version 19.03.12
【光盘资料】M1808-T 在线资料包 V1.05
链接:https://pan.baidu.com/s/1C0XZ-D1FXMg2lW4hl4h53g
提取码:rknn -
部署yolov3到M1808
/opt/zlg/m1808-sdk-v1.3.1-ga/host/aarch64-buildroot-linux-gnu/sysroot/usr/lib
这里遇到一个坑,load模型的时候报错。报错的原因是ZLG给出的板子的固件没有升级,升级了一下固件就可以了
。
刷完固件后
[root@M1808 release]# cat /timestamp
built by root on sphinx at 2020-06-30 04:42:40
然后把交叉编译好的可执行文件放到ZLG的板子上进去就好了,这里也要注意下对于so的依赖,总共有如下:
librknn_api.so
libjasper.so.4
libjpeg.so.62
libtiff.so.5
libopencv_core.so.3.4.3
libopencv_imgcodecs.so.3.4.3
libopencv_imgproc.so.3.4.3
如果在ZLG给的板子上找不到以上这些so,那么都可以在交叉编译环境中找到!不要用ZLG官网给出例子里面的!!!!因为有可能环境不一致!!!!!
一切准备就绪,就可以把模型放上去就可以运行了,剩下的就是正常的C++开发套路了。最后的运行效果:
总结
因为核心板毕竟还是RK1808部分,所以对于RK官网给出的1808文档还是要仔细看一下,另外ZLG的支持还算比较快。