当前位置:首页 > 芯闻号 > 充电吧
[导读]简介市面上基于嵌入式平台的神经网络加速平台有很多,今天给大家带来是百度大脑出品的EdgeBoard。按照官网文档的介绍,EdgeBoard是基于Xilinx Zynq Ultrascale+ MPSo

简介

市面上基于嵌入式平台的神经网络加速平台有很多,今天给大家带来是百度大脑出品的EdgeBoard。按照官网文档的介绍,EdgeBoard是基于Xilinx Zynq Ultrascale+ MPSoC列芯片打造的一款深度学习加速套件,也就是比较常见的利用FPGA进行加速的方案。

开箱

收到的EdgeBoard,是一个淡黄的纸盒子,将其打开,里面共有四样物品,分别为

EdgeBoard本体一块,相比官网上的图片,多出了散热器、风扇以及起到保护作用的亚克力板

已经刷好固件的SD卡一张

12V2A适配器一个,接头为2P间距为3.81的接线端子

MicroUSB线一条

EdgeBoard板子做工不错,按照官网资料,他分为主板和电源板两部分,加上散热器后组合后的长宽高为120×80×50。板子具体的硬件资源就不过多介绍了,官方目前也没公布具体硬件框图。

启动系统

将配套SD卡插入电脑,可以发现他已经烧录好了固件,应该是可以直接启动的(官方资料内没有找到烧录SD卡的方式,如果这张卡丢了的话……)

1. 将SD卡插入SD卡槽,使用MicroUSB线连接电脑,设备管理器里会出现USB to UART的设备。

2. 使用任意串口终端打开串口(以Xshell为例),COM口号设置为设备管理所看到的串口号,其余设置如下

Band Rate: 115200

Data Bits:8

Stop Bits:1

Parity: None

Flow Control: None

3. 将接线端子连接到电源插座,接通电源适配器,可以看到电源灯亮起,风扇传来了怒吼,这个风扇实测转速为6000转,长时间调试时候,噪音略微明显。上电后,可以看到串口终端内显示出了boot数据。

1、Xilinx Zynq MP First Stage Boot Loader

2、Release 2017.4 Apr 23 2019 - 13:19:54

3、NOTICE: ATF running on XCZU9EG/silicon v4/RTL5.1 at 0xfffea000, with PMU firmware

4、NOTICE: BL31: Secure code at 0x0

5、NOTICE: BL31: Non secure code at 0x8000000

6、NOTICE: BL31: v1.3(release):47af34b

7、NOTICE: BL31: Built : 04:10:38, Apr 23 2019

8、U-Boot 2017.01 (Apr 23 2019 - 12:20:25 +0800) Xilinx ZynqMP ZCU102 revB for OpenAi

9、I2C: ready

10、DRAM: 2 GiB

11、EL Level: EL2

12、Chip ID: xczu9eg

13、MMC: sdhci@ff160000: 0 (eMMC), sdhci@ff170000: 1 (SD)

14、reading uboot.env

可以看到Xilinx特有的FSBL数据,从中可以看出这个板子的基本配置应该是ZCU102的精简版,配备了2G的DRAM。等待几秒钟后,kernel启动完毕,串口内出现登录信息。

1、PetaLinux 2017.4 edge_board /dev/ttyPS0

2、edge_board login:

输入用户名root,密码root,即可进入系统,出现了终端标识,代表启动成功。

1、root@edge_board:~#

总结:系统启动还是比较容易的,不过在启动过程中遇到一个问题,如果插着网线的话,U-Boot会选择从网络启动,会导致系统启动偏慢

配置SSH与SMB开发环境

EdgeBorad已经配置好了SSH终端以及SMB文件共享服务器,也可参照官方使用步骤:https://ai.baidu.com/docs#/EdgeBoard%20quick%20start/23cb95ae

1. 在串口终端查看板子IP

1、root@edge_board:~# ifconfig

2、eth0 Link encap:Ethernet HWaddr 00:0a:35:00:00:09

3、inet6 addr: fe80::20a:35ff:fe00:9/64 Scope:Link

4、UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1

5、RX packets:39 errors:0 dropped:0 overruns:0 frame:0

6、TX packets:122 errors:0 dropped:0 overruns:0 carrier:0

7、collisions:0 txqueuelen:1000

8、RX bytes:4964 (4.8 KiB) TX bytes:25813 (25.2 KiB)

9、Interrupt:30

10、eth0:avahi Link encap:Ethernet HWaddr 00:0a:35:00:00:09

11、inet addr:169.254.1.162 Bcast:169.254.255.255 Mask:255.255.0.0

12、UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1

13、

1、Interrupt:30

2、lo Link encap:Local Loopback

3、inet addr:127.0.0.1 Mask:255.0.0.0

4、inet6 addr: ::1/128 Scope:Host

5、UP LOOPBACK RUNNING MTU:65536 Metric:1

6、RX packets:2 errors:0 dropped:0 overruns:0 frame:0

7、TX packets:2 errors:0 dropped:0 overruns:0 carrier:0

8、collisions:0 txqueuelen:1

9、RX bytes:140 (140.0 B) TX bytes:140 (140.0 B)

2. 使用串口读出来的IP,本例中为169.254.1.162即可连接上SSH与SMB。本地输入:169.254.1.162 即可访问edgeboard文件。Win7系统需要注意一些配置,具体请查看Edgeboard使用说明。

总结:环境都配置好了,上手还是很简单,在用户目录下发现存在.xfce4的配置文件,莫非带了图形界面?手头没有DP线,后面会试试。

EasyDL+EdgeBoard搭建带性别检测的人脸识别模型

Edge的卖点之一,就是支持导入EasyDL生成的模型,EasyDL平台是一个使用几十、几百张图片就能训练出一个效果还不错的模型训练平台,官方宣称,对于不了解深度学习用户,可以仅仅依靠可视化操作即可完成深度学习训练。

1、登录EasyDl官网创建物体检测模型 http://ai.baidu.com/easydl/。

2. 创建训练的数据集,本次测试在百度新闻里抓取了20张包含人脸的图片。

3. 数据集标注,Easydl支持在线标注,只需选中图片用鼠标在图片上拉出一个框即可。

4. 数据集标注完成后即可训练模型,由于要测试的模型是基于SSD的目标检测,所以此次选中精度较低模型。(高精度是基于RetinaNet的模型),点击开始训练,大概需要30分钟左右,即可训练完成。

5. 在线校验模型,训练完成后点击校验模型,可以查看测试模型训练效果。此次发现误识别一个女生为男生,猜测大概是训练集太小,不过人脸识别功能到是没问题。

6. 模型导出:由于Easydl还没正式发布模型导出功能,因此此次是通过联系后台人员导出的模型。7. 将Easydl导出的模型,通过SMB传输到EdgeBoard内替换原有的params、model.encrypted:

169.254.1.162roothomeworkspacesamplesample_easydlmodel

8. 重新编译模型,步骤如下:

1、insmod /home/root/workspace/driver/fpgadrv.ko

2、cd /home/root/workspace/sample/sample_easyd

3、// 如果没有build目录,创建一个

4、mkdir build

5、cd build

6、rm -rf *

7、cmake ..

8、make

9. 编程成功之后,运行预测程序。

1、a、在网络上随意下载一张人物图,修改名字为1.jpg 并替换

2、\169.254.1.162roothomeworkspacesamplesample_easydlimage 内的原有图片。

3、b.执行./paddle_edgeboard

10. 查看图片输出结果。 打开169.254.1.162roothomeworkspacesamplesample_easydlbuildresult.jpg和命令行预测出的四个目标一致,这里由于没有调整阈值所以检测出来四个框。

总结:本次是创建了一个简单的Easydl模型并且数据集准备的也小,所以精度不是很高,从可用性和快速部署方面Edgeboard和Easydl的结合可以帮助我们快速开发相关应用产品。

运行usb摄像头输入预测示例

通过官方文档,发现板子支持USB摄像头以及海思的IPC摄像头接口,翻箱倒柜找到了两个摄像头接下来我们就试试用USB摄像头进行实时的输入检测。

1. 连接设备

直接将摄像头插入到底板的USB口上即可

2. 在开发板中,附带了usb摄像头的驱动与示例工程,依次执行以下命令

1、// 查看设备文件是否产生,正常是/dev/video2

2、ls /dev/video*

3、insmod /home/root/workspace/driver/fpgadrv.ko

4、cd /home/root/workspace/sample/sample_usb

5、mkdir build

6、cd build

7、rm -rf *

8、cmake ..

9、make

3. 执行预测命令

1、./paddle_edgeboard

输出结果如下:可以看到实时的检测结果,输出格式为目标的位置,如下图所示

总结:本次是通过命令行方式进行的USB摄像头测试,并输出每一帧的目标检测结果,实时性能达到10FPS,效果还不错。但是随机附带的例程并没有实时可视化的功能,我们没能看到实际预测的结果,比较遗憾。

运行海思ipc摄像头输入预测示例

1. 连接设备,将海思IPC摄像头排线插入插槽内,上电后,摄像头电源指示灯会一并亮起

2. 依次执行以下命令

1、insmod /home/root/workspace/driver/fpgadrv.ko

2、sudo chmod +x /home/root/workspace/driver/media-ctl

3、/home/root/workspace/driver/media-ctl -v -f '"a0010000.v_tpg":0[fmt:SRGGB8/1920x1080

4、field:none]'

5、cd /home/root/workspace/sample/sample_bt1120

6、mkdir build

7、cd build

8、rm -rf *

9、cmake ..

10、make

3. 执行预测命令

1、./paddle_edgeboard

输出结果如下:可以看到实时的检测结果,例程里无可视化图片生成,下一步先测试一下摄像头采集地效果。

4. 查看摄像头采集图片可视化图

1、ls /dev/video*

2、/dev/video0 /dev/video1

3、insmod /home/root/workspace/driver/fpgadrv.ko

4、sudo chmod +x /home/root/workspace/driver/media-ctl

5、/home/root/workspace/driver/media-ctl -v -f '"a0010000.v_tpg":0[fmt:SRGGB8/1920x1080

6、field:none]'

7、cd /home/root/workspace/tools/bt1120/

8、mkdir build

9、cd build

10、cmake ..

11、make

12、./bt1120

总结:海思ipc摄像头使用方法与USB基本一致,还是有个共同的缺点,没有办法进行实时的可视化效果,无法直观观察到模型运行的效果。

感受

经过一周的试用,对EdgeBoard也有了初步的了解,总体来说:

优点

1. 自带环境丰富,无需配置交叉编译环境即可使用。

2. 默认的smb+ssh环境基本满足了开发需求,实现了到手即用。

3. 与EasyDL结合后,进行目标分类or目标检测的嵌入式集成基本做到了傻瓜化,模型训练容易上手。

4. 从上手来看,EdgeBoard作为一个异构的ARM+FPGA加速平台,基本上做到了无需了解嵌入式与FPGA的程度即可使用。

缺点

1. 板子试用摄像头,缺乏可视化环境,如果可以实现一个小的流媒体服务器或使用DP接口输出,对模型效果的评估可能可以更加直观。

2. 风扇噪音较大,在室内长时间开发还是略微吵闹,可能因为没有开发调速策略导致。

3.部分win7系统修改系统策略后,仍然无法正常使用SMB连接目标板,希望后续版本可以移植SFTP后续会尝试一下一些已有模型,深度挖掘一下这块板子的功能。


作者Litchll

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

业内消息,近日在央视播出的《对话》・开年说节目上,百度创始人、董事长兼首席执行官李彦宏表示,以后不会存在“程序员”这种职业了,因为只要会说话,所有人都能具备程序员的能力。李彦宏认为,未来的编程语言只会剩下两种,一种叫做英...

关键字: 百度 李彦宏 程序员 AI

近日,某厂一名员工爆料称,由于Bug事故,公司要求他返还去年发放的年终奖,共计4万余元;如果逾期不还,将以每天万分之5的利息收取滞纳金,即每天20元左右;甚至公司HR还扬言,如果三个月内仍不还,就免费开除。

关键字: 程序员 互联网

近日某厂员工爆料,公司程序员因线上流量异常BUG事故,被公司进行处罚。处罚的结果是被要求将去年发的 4 万多年终奖归还给公司,否则就收取滞纳金并辞退,逾期将以每天万分之 5 的利息收取滞纳金。

关键字: 程序员 BUG 事故 年终奖 工程师

据昨天外媒报道,OpenAI首席执行官、Y Combinator前总裁山姆·奥特曼(Sam·Altman)结婚了,男友为前Meta程序员奥利弗·穆尔赫林(Oliver·Mulherin),婚礼在夏威夷举行,整个仪式非常低...

关键字: ChatGPT Meta 程序员 OpenAI 山姆·奥特曼

今后,鸿蒙和安卓应用将不再兼容。眼下,越来越多的互联网公司开始招聘鸿蒙开发相关的人才,以适应市场的变化和用户的需求。

关键字: 程序员 嵌入式

近日,一则“中国程序员在越南遭受残酷虐待”的新闻,引发了国内外的关注和震惊。

关键字: 程序员 互联网

近日,上海公安局普陀分局成功破获一起案件,并在程序员圈内引起了不小轰动。因为该案件涉及的金额高达1.5亿元,而这仅仅是在半年时间内的非法获利。要知道,这样的赚钱速度放在整个互联网界也都是相当炸裂的!

关键字: 代码 程序员

近日,一位清华大学应届硕士生在网上发布的帖子火了,引起了众多网友的“围观”热议。

关键字: 互联网 程序员

如果你被裁员后,公司又请你重返工作岗位,你会回去吗?

关键字: 马斯克 互联网 程序员

最近两周,虽然没发公众号文章,但是粉丝量还是在零星的在增长,多谢支持,原先每天发一篇的计划也没有坚持下来,果然被你们说准了。不得不佩服,你们比我都了解我自己。不过停更的两周,我也没有闲着,整了三个轮子出来,喜欢或者感兴趣...

关键字: 程序员 公众号 文章
关闭
关闭