Vitis AI 加速 GMSL 摄像头人脸检测 - 第一部分
本文是由四部分组成的系列文章的第一篇
简介
赛灵思为基于 Zynq Ultrascale+ 开发板的神经网络处理提供了大量的参考设计和示例,这些开发板基于预先构建的二进制文件或平台。扩展这些示例和/或者将它们集成到一个更特定于应用的系统中,通常是期望的下一步。例如,这可能涉及在定制电路板上部署或使用特定的传感器。
本文的目的是演示关键概念,这些概念对创建适用于边缘设备上基于 DPU 的神经网络加速的定制 Vitis 平台很有必要。
本文档与 2020_05_28_vitis_ai_multicam.zip 设计文件(或 git tag rev3)相关
期望
本文档并非旨在作为任何特定元素(例如摄像头接口、Vivado、Vitis AI 或 PetaLinux)的教程,而是要简化原型的制作过程。本文档也并非旨在为每个确切命令提供分步说明,而是提供类似于实验室笔记的描述,并突出解释关键概念。
参考材料
ZCU102
https://www.xilinx.com/support/documentation/boards_and_kits/zcu102/ug1182-zcu102-eval-bd.pdf
FMC Card
http://ultrazed.org/product/multi-camera-fmc-module
http://zedboard.org/sites/default/files/documentations/5361-pb-multicamera-v3b.pdf
Vitis
https://www.xilinx.com/support/documentation/sw_manuals/xilinx2019_2/ug1400-vitis-embedded.pdf
Vitis AI
https://www.xilinx.com/support/documentation/sw_manuals/vitis_ai/1_0/ug1414-vitis-ai.pdf
https://www.xilinx.com/support/documentation/user_guides/ug1354-xilinx-ai-sdk.pdf
https://www.xilinx.com/support/documentation/user_guides/ug1355-xilinx-ai-sdk-programming-guide.pdf
Petalinux
Xilinx Runtime (XRT)
安装步骤
本文中演示的流程很复杂,涉及众多要安装和配置的工具、库、驱动程序和设计文件。为了节省用来收集不同来源的安装信息的时间,本节记录了在开发该平台时所使用的设置。想要了解任何有关特定项目的更多详细信息,请参阅相关的文档。
主机详情
本设计构建在 Ubuntu 18.04.3 LTS 机器上

在文档的其余部分安装了几个安装包/库,但现在应该安装一些额外的安装包/库:
sudo apt-get install -y docker wget git make unzip
请注意,是从 Ubuntu 库中安装 docker。官方安装 docker 的方法可能更可取:
https://docs.docker.com/engine/install/ubuntu/
https://docs.docker.com/engine/install/linux-postinstall/
Docker 需要以普通用户身份运行。因此,将 docker 组添加到用户
sudo groupadd docker
sudo usermod -aG docker ${USER}
登录到新的终端会话,以便更改生效。
Vitis

2. 运行 xsetup 脚本来启动安装程序
3. 使用所需设置继续安装程序,并突出显示以下说明
在“选择要安装的产品”页面,选择 Vitis

在 Vitis 统一软件平台页面,确保启用 Vitis、Vivado、为 Alveo 和赛灵思边缘加速平台安装器件、Zynq Ultrascale+ MPSoC

Petalinux

2. 按照 UG1144 安装所有必备的库
3. 运行 petalinux-v2019.2-final-installer.run 进行安装
Xilinx Runtime (XRT)
Vitis AI 加速流程(本设计用于部署 DPU)利用名为 XRT 的软件层,它统一了边缘(即 Zynq PS + PL)或云(即 x86+PCIe FPGA)设计上的加速器内核部署。该设计使用 Zynq PS 在部署期间运行 XRT,XRT 将在 Petalinux 构建期间安装到目标应用。但是,还需要将 XRT 安装到开发主机上,以便 Vitis 对其进行编译和链接。
对于嵌入式部署,可以按照 XRT 上的步骤从源代码构建 XRT 并将其安装到主机上 https://github.com/Xilinx/XRT/blob/master/src/runtime_src/doc/toc/build.rst
1. 克隆 XRT git repo
git clone https://github.com/Xilinx/XRT
2. 安装依赖关系
sudo src/runtime_src/tools/scripts/xrtdeps.sh
3. 构建运行时
cd build
./build.sh
4. 构建 .deb
cd build/Release
make package
cd ../Debug
make package
5.安装 .deb
sudo apt install --reinstall ./xrt_201830.2.1.0_18.10.deb
Docker 镜像
Vitis AI 工具作为需要获取的 docker 镜像提供
docker pull xilinx/vitis-ai:tools-1.0.0-cpu
docker pull xilinx/vitis-ai:runtime-1.0.0-cpu
列出 docker 镜像,以确保它们已正确安装并具有以下名称

请注意,本设计中的脚本将使用 CPU 工具 docker 镜像,而不是 GPU 镜像。
快速入门
安装完所有必需的工具后,执行以下步骤来构建和运行整个设计
1. 要构建整个设计,请执行以下命令:
source
source
unzip
cd vitis_ai_multicam
make
2. 准备 SD 卡
a. 创建 FAT32 启动分区和 EXT4 rootfs 分区
b. 将 sd_card 目录下除 rootfs.tar.gz 外的所有文件复制到 FAT32 启动分区
c. 将 rootfs.tar.gz 提取到 EXT4 rootfs 分区
tar -xvf rootfs.tar.gz -C
3. 硬件设置
a. 将 SD 卡插入 ZCU102
b. 设置启动方式为 SD
c. 插入电源线
d. 将 Avnet FMC MULTICAM4-G FMC 卡与连接到 HPC0 的所有 4 个 AR0231 成像器相连
e 连接 DisplayPort 输出到 720p 显示器
f. 将 MicroUSB 电缆连接到 USB UART 连接器
g. 连接串行终端,波特率为 115200
4. 运行设计
a. 电路板上电
b. 登录
Username: root
Password: root
c. 运行演示
cd /mnt
facedetect
5. 其他
a. I2C 写入设置成像器有时可能会失败并显示以下错误:

如果发生这种情况,请重新运行 facedetect 和/或重新启动。