本网页已闲置超过3分钟,按键盘任意键或点击空白处,即可回到网页
最热资讯


亲,“电路城”已合并升级到更全、更大、更强的「新与非网」。点击查看「新与非网」
原文链接:https://www.hackster.io/AlbertaBeef/vitis-ai-1-3-flow-for-avnet-vitis-platforms-cd0c51
本文将介绍如何下载和安装构建SD卡映像,以及如何在硬件上执行AI应用程序,提供了将Xilinx Vitis-AI 1.3流定位到以下Avnet Vitis 2020.2平台的详细说明:
(Ultra96-V2开发板)
(UltraZed-EV SOM(7EV)+ FMC运营商卡)
(UltraZed-EG SOM(3EG)+ IO运营商卡)
硬件部件:
设计概述:
预构建映像的硬件设计框图:
这些设计是使用具有以下DPU配置的Vitis流构建的:
预先构建的映像包括以下两个不同配置的编译模型:
(注意:B4096_LR的配置与Xilinx的ZCU102和ZCU104预制映像上的配置相同)
根据每个平台的资源利用捕获了带DPU和不带DPU的资源利用率:
(u96v2_sbc_base-带DPU(B2304,RAM使用率低))
(u96v2_sbc_base-不带DPU)
(uz7ev_evcc_base-带DPU(2*B4096,RAM使用率低))
(uz7ev_evcc_base-不带DPU)
(uz3eg_iocc_base-带DPU(B2304,RAM使用率低))
(uz3eg_iocc_base-不带DPU)
以资源放置的形式捕获了每个平台使用和不使用DPU的资源利用率,如图所示:
(u96v2_sbc_base-带DPU(B2304,RAM使用率低))
(u96v2_sbc_base-不带DPU)
(uz7ev_evcc_base-带DPU(2*B4096,RAM使用率低))
(uz7ev_evcc_base-不带DPU)
(uz3eg_iocc_base-带DPU(B2304,RAM使用率低))
(uz3eg_iocc_base-不带DPU)
设计步骤:
步骤一、创建SD卡
为以下Avnet平台提供了预构建的SD卡映像:
需要下载以下预构建的SD卡映像之一:
每个主板特定的SD卡映像均包含:硬件设计(BOOT.BIN,dpu.xclbin)、petalinux映像(boot.scr,image.ub,rootfs.tar.gz),且它以图像(IMG)格式提供,包含两个分区:
创建的第一个BOOT分区大小为400MB,其中包含以下文件:
第二个ROOTFS分区包含rootfs.tar.gz内容,并预先安装了Vitis-AI运行时的软件包,其中有:
下载并解压缩后,即可将.img文件编程为16GB的micro SD卡
1、解压缩档案以获得.img文件
2、将主板专用的SD卡映像编程为16GB(或更大)的micro SD卡,在Windows计算机上,使用Balena Etcher或Win32DiskImager(免费的开源软件)
3、在Linux机器上,使用Balena Etcher或使用dd实用程序:
$ sudo dd bs=4M if=Avnet-{platform}-Vitis-AI-1-3-{date}.img of=/dev/sd{X} status=progress conv=fsync
(其中{X}是小写字母,用于指定SD卡的设备。也可以使用“ df -h”来确定哪个设备与您的SD卡相对应)
步骤二:在硬件上执行AI应用程序
一些配置步骤只需要执行一次(第一次启动后),包括以下内容:
该脚本将执行以下步骤:
[可选]禁用dmesg详细输出:
可以使用以下方法重新启用它:
使用dexplorer实用程序验证Vitis-AI运行时。
对于u96v2_sbc和uz3eg_iocc目标,这应与以下输出相对应:
对于uz7ev_evcc目标,它应对应于以下输出:
定义DISPLAY环境变量:
将DP监视器的分辨率更改为较低的分辨率,例如640x480:
启动基于VART的示例应用程序,启动adas_detection应用程序
启动pose_detection应用程序:
启动resnet50应用程序的caffe版本:
启动细分应用程序;
启动video_analysis应用程序:
启动基于Vitis-AI-Library的示例应用程序,使用密集盒模型的两个变体启动face_detect应用程序(将“ 0”指定为第二个参数,以指定USB摄像头)
比较密集盒模型每个变体的性能:
分段和道路检测演示可以在DRM模式或GUI模式下运行。在GUI模式下,演示将使用火柴盒,该火柴盒一次仅显示一个窗口,但可在GUI中选择。在DRM模式下,火柴盒将被禁用,并且输出将直接发送到DRM驱动程序。
注:segs_and_roadline演示需要更高的分辨率(1920x1080),这会在Ultra96-V2上产生明显的闪烁。
在GUI模式下运行分段和道路检测演示
可以从GUI中选择可见的输出,如下所示:
在DRM模式下运行分段和道路检测演示:
分割和姿势估计演示可以在DRM模式或GUI模式下运行。在GUI模式下,演示将使用火柴盒,该火柴盒一次仅显示一个窗口,但可在GUI中选择。在DRM模式下,火柴盒将被禁用,并且输出将直接发送到DRM驱动程序。
注:seg_and_pose_detect演示需要更高的分辨率(1920x1080),这会在Ultra96-V2上产生明显的闪烁。
在两个视频文件下以GUI模式运行分割和姿势估计演示
在GUI模式下使用视频文件和USB摄像头运行分割和姿势估计演示:
在两个视频文件下以DRM模式运行分割和姿势估计演示:
在DRM模式下使用视频文件和USB摄像头运行分割和姿势估计演示:
步骤三、修改示例
参考项目一:Ultra96-V2的头姿势估计
该项目描述了如何使用Xilinx模型动物园中的预构建模型来实现面部识别:
参考项目二:Vitis-AI识别车牌
该项目描述了如何使用Xilinx模型动物园中的预构建模型来实现车牌识别:
问题解决:
问题一、安装的python API无法正常工作
Vitis-AI 1.3运行时软件包中预装的python API无法正常工作
此问题的原因是存在旧的python API
Vitis-AI 1.3需要以下文件,并且需要保留以下文件:
以下文件适用于Vitis-AI 1.2,必须将其删除:
可以使用以下命令完成此操作:
问题二、将e-Con USB3相机与Ultra96-V2一起使用
对于某些USB3相机(例如下面列出的相机),Ultra96-V2将出现问题:
解决方案:通过USB2集线器/扩展器将它们连接到USB2模式
问题三、Ultra96-V2 PMIC固件更新
对于Ultra96-V2开发板,需要运行重要的PMIC固件更新才能运行所有AI应用程序。
如果不更新PMIC固件,则以下AI应用程序将导致周期性的峰值电流超过默认的4A故障阈值,从而使上电复位有效,从而使电路板重新启动。
PMIC固件更新会增加此故障阈值,并防止重新启动。
为了更新Ultra96-V2开发板的PMIC固件,请参考《 Ultra96-V2入门指南》:
问题四、某些SSD型号缺少{model} _officialcfg.prototxt文件
在u96v2_sbc_base和uz3eg_iocc_base的预构建SD卡映像中,缺少一些{model} _officialcfg.prototxt文件:
遗漏的原因:compile_modelzoo.sh不在存在时,从zcu102 / zcu104预先构建的归档文件中复制{model} _officialcfg.prototxt(点击查看)
缺少的文件作为存档提供,以便与现有的预构建SD卡映像一起使用,需要安装,请复制到SD卡映像,然后运行以下命令:
哪一种编程语言适合人工智能?——Python在人工智能中的作用
2016-08-16
全面解析华为麒麟970,搭载NPU的好处有哪些?
2017-09-05
年薪25万只是白菜价?你绝对想象不出会人工智能的应届工程师是有多抢手!
2017-10-23
带你窥探一下人工智能下的——TPU/NPU/CPU/GPU
2016-07-25
这可能是最全的一份CES 2018 消费电子展观展指南
2018-01-04
2019年你最值得入手的5款开发板
2019-08-21
树莓派4B与英特尔神经计算棒2实现人体跟踪计数
2019-09-04
树莓派机器学习:运行MobileNet V2 SSD Lite
2019-09-11
STM32的Cube AI是什么?
2019-10-25
基于Arduino的脑电波控制无人机系统
2021-08-16
讨论