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

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

NFS 文件系统

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

第一步编译 uboot 和 kernel

这一步我建议是跟着 <WM_Hi3559A╱C V100 SDK 安装及升级使用说明> 走就行,有疑问的话也可以参考下面的博客

编译 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

 

结果

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

 

 

 

已标记关键词 清除标记
本课程讲解sensor直接采集的图像都有各种不理想性,因此在编码前都会经过一个软件方式处理,这个处理就叫ISP,图像的IQ调试就是研究这些处理算法和实现的。常见的IQ调试技术如:线性纠正、噪声去除、黑电平校正、坏点去除、颜色插补、Gamma 校正、RGB2YUV 转换、主动白平衡处理、主动曝光控制、AE评估等。 随着通信行业发展,网速越来越快,网络也从文本时代发展越过语音时代到了现在视频时代,“优酷、爱奇艺”、“微视频”、“直播”等的出现也是视频逐步成为主流媒体的证据和表现。航拍、视频监控、刷脸过关检测、汽车ADAS系统等应用也是视频在主流行业中的应用,因此视频的采集、编解码、传输、识别等技术变得越来越有价值,涌现出了“海康威视”、“大华股份”、“深圳英飞拓”等一批明星企业,名扬海内外,动辄市值几百亿。同时在芯片级,国产华为海思HI35xx系列视频编解码方案也逐步取代进口芯片(如TI、安霸)成为主流方案。 视频行业技术含量高、难度大、学习周期长、发展变化快而资料少,因此行业比较缺人、工资较高。如海康威视,普通高校硕士研究生应届进入年薪普遍高于15-20万,在嵌入式linux领域也算高工资技术方向了。 本项目是朱老师及其团队推出的一个嵌入式linux领域重量级企业级实战项目,选用华为海思HI3518E方案,结合OV9712/AR0130 Sensor实现图像采集和H.264编码压缩,并通过ethernet和WIFI,以socket实时流和RTSP等方式,实现720P/960P高清视频传输。本项目共分11季,从海思SDK开发环境搭建,到sample程序讲解、SDK中API函数解析,到H.264编解码、RTSP流媒体传输、MP4文件打包,到图像IQ调试、图像识别等视频领域高阶内容,可以说从零基础入手,对图像采集、编解码、网络传输、图像存储和识别做了全方位的详细讲解和代码分析,是目前市面上**一套系统讲解图像和视频技术的视频课程。
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页