我使用的芯片平台是J3,目前团队希望在板上部署YOLOv5算法以及机器人运动控制算法,但是依赖问题迟迟无法解决,板子是我们自己设计的,不支持联网,有串口和USB接口,通过adbshell在开发机上访问,板上已经烧录好了yocto系统。我是团队里负责算法的,但是对地平线工具链不熟悉,使用的工具链版本是horizon_xj3_open_explorer_v1.16.4-py38目前跟随博客教程完成了模型验证和转换的工作,且转换得到的bin文件通过了工具链检查,按理说是可以部署运行的,但是依赖包问题迟迟无法解决,因为依赖关系比较复杂,而板上的内存给到我们软件只有2G,需要进行精简,但是我看了教程并没有讲怎么配依赖环境,尝试了用docker镜像的方法,但是板上yocto系统不支持docker引擎
板上系统不知道怎么装依赖库,比如opencv这些,此外这些库本身体积比较大,如何精简库的大小是第二个问题,因为docker只要封装好镜像文件,以容器的方式解决环境问题,所以我们之前在尝试给板上系统装docker引擎,但是不支持,没办法装上
主要是项目给到的硬件资源比较局促,给到软件的内存空间只有2个G,目前算法的依赖库关系比较复杂而且体积大,不知道怎么编译到板上运行以及如何精简库。我们已经通过工具链转换得到模型bin文件,感觉离部署就差临门一脚了
建议将您的所有依赖文件,以及模型和主程序全部整到一个文件夹内,写camke,然后在x_86下先编译下,确保编译通过,然后将整个工程copy到板端。至于您说的如何精简库,这就需要看您程序的一些依赖,哪些用到哪些用不到,逐步删除一些。
您说的开发及应该就是服务器端而非板端吧 ,若是,那就是您说的这样,服务器端编译,板端推理,服务器端用which g++,which gcc 看下路径们是否安装了交叉编译工具,如没有,export以下,格式export CC= gcc路径,export CXX=g++路径,
开发端是我自己的电脑,就是一个带gpu的笔记本,系统是ubuntu22.04,我打算试试在电脑上编译依赖包,再把编译得到的文件拷到板子上,电脑环境是docker_open_explorer_ubuntu_20_xj3_gpu_v1.16.4.tar.gz这个docker镜像的环境,官方文档这段我的理解是,这个docker环境自带交叉编译工具,在这里编译成功就能上板了