华为海思 AI 芯片 (Hi3559A V100) 算法开发(五) 在 Hi3559 上运行 YOLOv3

又到了最麻烦的嵌入式环节,这里将教大家如何在 Hi3559 上运行 YOLO v3 。废话不多说

NFS 文件系统

我使用的是 VM player 虚拟机,虚拟机装的 Ubuntu 16.04

第一步编译 uboot 和 kernel

这一步我建议是跟着 走就行,有疑问的话也可以参考下面的博客

编译 uboot与kernel

这一步我的同仁做了,物品主要负责算法部分。直接拿过来用,就不过多废话,有问题也可以评论问我,会的话我会回复。

第二步需要在自己的虚拟机的 Ubuntu 上弄文件系统

所以不管怎么样都是要做的

先让大家理解一下,什么是 NFS 文件系统,理论上 NFS 相当于把你的 Ubuntu 当做一个服务器,板子是客户端,然后你可以将 Ubuntu 的某个文件夹挂载到你的 板子 上的某个文件夹下面,这样你就可以通过往这个文件夹丢东西,实现把数据传入板子。挂载的过程有点类似你插上 sd 卡后,比他挂载到板子上。只是这个 sd 卡实时与 Ubuntu 更新数据

这里我们先弄一个 Ubuntu 的串口工具

这样你就不用在 windows 和虚拟机之间切来切去

参考这篇博文就好 

Ubuntu 串口工具安装与使用

记得改第一项属性

这个没注意到搞得我浪费了十分钟

修改属性只要在对应窗口输入 A B 等字母就好

好了,我们继续弄 NFS

先安装相关包,(参考官方文档即可)

sudo apt-get install nfs-kernel-server          //install sw

sudo apt-get install samba, ssh, tftp 

配置好后根据官方文档,或者以下这篇博文即可

NFS 文件系统配置

其中主要的问题在于:

想链接板子和 Ubuntu,关键在于你板子的 ip 地址前三段需要使用跟 Ubuntu 一致的 ip,并且使用虚拟机的桥接模式(不复制物理状态),且要断开其他一切网络(包括 WIFI),不然可能导致链接不稳

配置成功以后,我整理了一下每次开机挂载 NFS 所需要的命令

启动串口

sudo minicom 

启动板子网卡并配置 IP 地址(可以将 Ubuntu 的IP 地址设为静态,那板子的 IP 地址就也不需要改变)

ifconfig eth0 hw ether 00:10:67:20:81:70
ifconfig eth0 169.254.9.10 netmask 255.255.0.0
route add default gw 169.254.9.1

挂载 NFS 文件系统

mount -t nfs -o nolock -o tcp -o rsize=32768,wsize=32768 169.254.9.173:/home/xming/Hisi/nfs /mnt/ 

 加载 KO 等文件

修改配置脚本,重新编译

Linux上运行的模块,如SVP等,需要先将cfg.mak.biglittle文件更名为cfg.mak,再进行编译

链接资源环境(这一步不是很确定需不需要)

source /etc/profile 

 

在 mpp/sample 下编译(这里我们可以对模型进行大量的修改,篇幅所限,且每个人需要不一致,就不贴上来了)

make

 

加载驱动

① 在 NFS 文件系统下创建 ko/ 文件夹用来放所需的驱动文件夹    

② 进入 mpp/out/linux/multi-core/ko 目录下将所有驱动文件拷贝到 /NFS/rootfs/ko/ cp ./* /NFS/rootfs/ko        

③ 进入 mpp/out/linux/multi-core/lib 目录下将所有库文件拷贝到 /NFS/rootfs/lib/ 下 cp ./* /NFS/rootfs/lib 
 
④ 增加权限 chmod 775 ./ko/ -R

                   chmod 775 ./lib/ -R          

⑤ 加载驱动

./load3559av100_multicore -i -sensor0 imx334 -sensor1 imx334 

 

移动编译后的 sample 与 data

将编译好的 sample ,mpp/sample/svp/“你配置的系统环境”/nnie

以及同目录下的 data 文件夹一同转移到 NFS 挂载的文件夹下

 

运行 YOLOv3

./sample_nnie_main 8

 

结果

华为海思 AI 芯片 (Hi3559A V100) 算法开发(五) 在 Hi3559 上运行 YOLOv3_第1张图片

从中我们可以看到检测到了三个物品

 

 

 

你可能感兴趣的:(项目讲解)