资料介绍
描述
介绍
在这个项目中,我将为 Smart Office Hot Desking 安排创建一个应用程序。
- 现代办公室正在采用“Hot Desking”的概念。以“先到先得”的方式更有效地利用共享空间和办公桌。然而,面临的问题是工人可能会浪费更多时间来寻找空置的办公桌。跟踪入住率并在预订系统中更新也很乏味。借助基于边缘的图像处理能力,我们可以检测区域内的人员并确定办公桌是否被占用。
在技??术方面,我将使用 Ultra96-V2 演示 Vitis AI Model Zoo 和 PYNQ 的 DPU IP 内核的编译流程。
我将从头开始编译。从头开始编译将使以后修改硬件设计更容易。我觉得获取环境设置的过程令人困惑,因此我将帮助您逐步记录它。
PYNQ & Vitis AI 工作流程说明
在我们开始之前,重要的是要知道 Ultra96-V2 使用 Xilinx Zynq UltraScale+? MPSoC。我们可以称它为基于 ARM 的 FPGA,这意味着既有处理系统(PS)又有可编程逻辑(PL)。
我将使用 PYNQ,我们在其中制作在 PS 上运行的 Python 脚本。使用预编译的 PYNQ 覆盖(或比特流),在 PL 中配置深度学习处理器单元 (DPU)。在 PS 上运行的软件可以使用 DPU 来加速图像识别任务。
使用的额外硬件
除了 Ultra96-V2 捆绑包之外,您可能还需要这些附加硬件。
1. USB 摄像头
2. 有源 Mini-DisplayPort 适配器
- 我使用了 PowerColor Active Mini Displayport 到单链路 DVI 适配器
- Ultra96-V2 仅输出纯 DisplayPort 信号,因此需要有源适配器。
- 为了获得更好的搜索结果,您可以尝试搜索“兼容 ATI Eyefinity”的适配器。众所周知,Eyefinity 适配器处于活动状态。
注意:如果您的预算有限,则可以不使用这些。例如,可以改用 IP 摄像机。有一些应用程序可以将您的智能手机用作 IP 摄像机。如果您使用 USB 或远程 SSH 进行连接,则可能不需要 mini-DP 适配器。

准备 PYNQ 映像
我们将首先将 PYNQ 加载到板上并进行一些测试。从官网下载Avnet Ultra96-V2 v2.5 PYNQ镜像。
您可以在社区板下找到它。

根据这些说明将图像写入 SD 卡。
插入你的 SD 卡。在 Ubuntu 上,您将能够在Disks应用程序中看到您的开发板。在这种情况下,设备名称是/dev/sdb。

卸载分区
$ umount /dev/sdb
下一个命令的设备名称要非常小心,我们将用 PYNQ 映像覆盖 SD 卡的内容。
您可以使用dd命令将 PYNQ 映像写入 SD 卡。我决定使用显示进度的dcfldd
$ sudo dcfldd bs=4M if=ultra96v2_v2.5.img of=/dev/sdb
1536 blocks (6144Mb) written.
1574+1 records in
1574+1 records out
启动 PYNQ
插入 SD 卡并按下电源按钮启动板。

将 Micro USB 电缆从您的 PC 连接到 Ultra96-V2。您将在 PC 上看到一个新的以太网接口。
您现在可以通过此链接在浏览器中访问 Jupyter Notebook http://192.168.2.1:9090
如果升级为密码,则为“xilinx”。

连接到 WiFi
我们需要将开发板连接到 Wifi,因为我们将下载一些东西。如果您有 USB 转以太网适配器,您也可以使用它并跳过本节。
有一个带有脚本的 Jupyter Notebook 可以帮助您连接到 Wifi。导航到notebooks/common/wifi.ipynb,您可以从这里将脚本修改为您自己的 Wifi 凭据。

或者,如果您熟悉 Linux 系统,也可以发出以下命令。
# Scan Wifi
$ ifconfig wlan0 up
$ iwlist wlan0 scan
# Connect to WEP access point
$ iwconfig wlan0 essid "YOUR_SSID_NAME" key s:YOUR_PASSWORD
# Connect to WPA access point
$ wpa_passphrase YOUR_SSID_NAME YOUR_PASSWORD > /etc/wpa_supplicant.conf
$ sudo wpa_supplicant -c /etc/wpa_supplicant.conf -i wlan0 -B
从这里我们可以从 Web 界面打开一个新终端。

使用 Vitis AI 升级到最新的 PYNQ
在接下来的步骤中,我们将在终端中发出一些命令来下载和安装大量的包。估计需要1小时。
我建议安装 USB 风扇或任何冷却装置,因为 Ultra96-V2 会变得非常烫手。当它变热时,处理器将开始热调节并减慢进程。

从 Jupyter Notebooks 打开终端。
从 Github 存储库下载并编译 Vitis AI PYNQ DPU。这是使用 Vitis-AI 升级 PYNQ 的步骤(可能需要大约一个小时才能完成):
$ git clone --recursive --shallow-submodules https://github.com/Xilinx/DPU-PYNQ.git
$ cd DPU-PYNQ/upgrade
$ make
安装pynq-dpu python包
pip3 install pynq-dpu
将 pynq-dpu 笔记本下载到您的主文件夹中
cd $PYNQ_JUPYTER_NOTEBOOKS
pynq get-notebooks pynq-dpu -p .
测试 USB 网络摄像头功能
连接您的 USB 网络摄像头并测试功能。

这里我使用的是 Logitech C170,它是由 PYNQ 自动检测到的。您可以使用此命令确认这一点。
$ lsusb
Bus 001 Device 004: ID 046d:082b Logitech, Inc. Webcam C170
在 Jupyter 中,打开位于./notebooks/common/usb_webcam.ipynb 的笔记本,您可以运行它来查看您的网络摄像头是否正常工作。

现在我们已经验证了该板功能齐全。现在我们可以编译来自 Vitis AI Zoo 的 PYNQ DPU 图像和模型。
准备编译环境
我们需要安装 Xilinx Vitis 和 Xilinx Runtime (XRT) 版本 2020.1。对于 Vitis 和 XRT 2020.1,支持的最新操作系统是 Ubuntu 18.04.2 LTS。
不支持 Ubuntu 20.04,我无法成功安装。因此,我在虚拟机中安装了所有东西。

在此链接下载 Xilinx 运行时 (XRT) 的 .deb 文件

使用此命令安装它。
sudo apt install ./xrt_202010.2.6.655_18.04-amd64-xrt.deb
接下来,下载将安装 Vitis 2020.1 的 Xilinx Unified Web 安装程序。您需要注册一个 Xilinx 帐户。按照本网站上的说明进行操作
https://www.xilinx.com/html_docs/xilinx2020_1/vitis_??doc/juk1557377661419.html
将您的 swappiness 设置为较低的值也很有用,因为构建过程使用大量 RAM。它告诉操作系统在换出到硬盘之前使用更多的 RAM。
要更改系统 swappiness 值,请以 root 身份打开 /etc/sysctl.conf
sudo gedit /etc/sysctl.con
然后,通过添加此行来更改 swappiness。我选择使用值 1。这意味着系统将使用多达 99% 的 RAM(剩余 1%),然后再将其交换到硬盘。

应用更改。
sudo sysctl -p

现在我们准备编译...
为 Ultra96-V2 编译 DPU-PYNQ
我们将密切参考本指南:
首先,从 Xilinx DPU-PYNQ 存储库中克隆构建文件
git clone --recursive --shallow-submodules https://github.com/Xilinx/DPU-PYNQ.git
cd DPU-PYNQ/boards
我们必须对构建文件进行一些更改,因为最初是在 Vitis 2019.2 中设计的,但现在我们正在使用更新的版本进行编译。
在boards
文件夹中,编辑check_env.sh

搜索2019.2,改成2020.1

也去/vitis-ai-git/DPU-TRD/dpu_ip/dpu_eu_v3_2_0
编辑component.xml

搜索2019.2,改成2020.1

最后,如果您想对 DPU IP 配置进行任何更改,请转到boards/Ultra96/dpu_conf.vh
。就我而言,我将内存更改为 RAM_USAGE_HIGH。

我们准备开始编译!
打开终端并获取 Xilinx 工具
source /opt/Xilinx/Vitis/2020.1/settings64.sh
source /opt/xilinx/xrt/setup.sh
开始编译(注:Ultra96和Ultra96-V2使用相同)
$ make BOARD=Ultra96
一段时间后,构建将再次失败,因为它检查的是版本2019.2
而不是2020.1
.
在DPU-PYNQ/boards
目录中查找。这是因为有一个名为 的新文件夹PYNQ-derivative-overlays
。构建脚本克隆了另一个名为PYNQ-derivative-overlays
. 它负责将 DPU IP 置于 PYNQ 基础覆盖之上。
转到PYNQ-derivative-overlays/dpu/
并编辑dpu.tcl

再次从 2019.2 更改为 2020.1

然后继续制作过程。
$ make BOARD=Ultra96

完成后,您将看到以下文件。这些文件是 PYNQ 的比特流覆盖。

我会将这些文件上传到 Juypyter 实例中的一个名为 mymodel 的文件夹中。
在右上角,单击新建 > 文件夹

然后在文件夹中,单击上传并选择 3 个文件。

从 Vitis Model Zoo 编译 YoloV3
请注意:模型特定于您编译的 DPU(即,一种 DPU 配置的模型与另一种不兼容)。例如,这意味着如果您更改编译时使用的内核数量,您还必须重新编译模型。
准备 docker 文件
cd DPU-PYNQ/host
mkdir -p docker
cp -rf ../vitis-ai-git/docker_run.sh .
cp -rf ../vitis-ai-git/docker/PROMPT.txt docker
chmod u+x docker_run.sh
安装泊坞窗
sudo apt install docker -y
sudo groupadd docker
newgrp docker
运行 docker 实例
./docker_run.sh xilinx/vitis-ai-cpu:latest

进入实例后,您可以编译模型
cp ../boards/Ultra96/dpu.hwh ./
./compile.sh Ultra96 tf_yolov3_voc_416_416_65.63G_1.1

完成后,您将在目录中看到模型,dpu_tf_yolov3.elf
.

也将其上传到您的 Jupyter 实例。

示例笔记本
在pynq_dpu/dpu_yolo_v3.ipynb有一个示例,它将测试 YoloV3 模型
现在制作一个副本(File > Make a Copy)并修改代码以指向包含我们自己编译的比特流和模型的mymodel文件夹

运行所有单元格(单元格 > 运行全部)

验证图像分类成功

哇,我们终于准备好申请了!
申请代码
最后,在所有硬件设置和测试后,我编写了软件来创建我自己的Smart Office Hot Desking 应用程序。第二个将利用数据显示基于座位可用性的仪表板。这是我第一次使用 Xilinx 硬件了解边缘上的 FPGA 和 AI。因此,刚开始时,我在开发工具和习惯环境方面遇到了最大的困难,因此,我尽我所能详细展示了设置过程。感谢您一直阅读到最后!
- 基于M5Stick-V和M5Stack的办公桌机器人助手
- 智能办公桌开源分享
- 带有PYNQ和Vitis HLS的SHA256加密加速器
- 自动家庭办公室
- 物联网办公室清洁跟踪系统
- 控制家庭或办公室照明的创新系统开源分享
- Arduino在办公室地图上绘制汽车路线
- 适用于智能办公室和建筑的终极物联网传感器盒
- 办公室数字化的实现 0次下载
- 线性技术公司收到美国检察官办公室的传票,要求提供有关公司股票期权做法的文件
- 家庭/办公室音频及视频监控
- 办公室综合布线系统解决方案
- 门禁系统在办公大楼的应用及案例分析
- 办公业务网信息监控系统设计
- Lirong 网络办公系统 企业版 0次下载
- 使用PYNQ训练和实现BNN 593次阅读
- 请问多个路由器如何组网呢? 3318次阅读
- 如何使用Vitis-AI加速YOLOX模型实现视频中的目标检测 1221次阅读
- 分享一个触摸激活办公室呼叫铃电路 867次阅读
- 芝芯多功能打印机方案,完美解决现代办公难题 1328次阅读
- 如何使用Vitis AI Library来安装、使用和开发应用 2117次阅读
- Vitis HLS知识库总结 3546次阅读
- 如何更改VCK190单板启动模式 1279次阅读
- 远程办公远程办公场景下,IT运维如何做好网络监测工作 1703次阅读
- 同创新佳科技LS-8018H滑盖指纹锁介绍 1766次阅读
- 同欣智能科技感应卡+密码门锁电路板简介 3647次阅读
- Office的3个办公小技巧你知道吗 4047次阅读
- WiFi逐渐成为主要关键任务网络,并成为推动创新和颠覆性商业模式的平台 1007次阅读
- 细菌供电的纸电池如何驱动物联网? 2781次阅读
- DJI M200系列无人机轻松捕捉并结合热图像和RGB图像 4998次阅读
下载排行
本周
- 1DD3118电路图纸资料
- 0.08 MB | 1次下载 | 免费
- 2AD库封装库安装教程
- 0.49 MB | 1次下载 | 免费
- 3PC6206 300mA低功耗低压差线性稳压器中文资料
- 1.12 MB | 1次下载 | 免费
- 4网络安全从业者入门指南
- 2.91 MB | 1次下载 | 免费
- 5DS-CS3A P00-CN-V3
- 618.05 KB | 1次下载 | 免费
- 6海川SM5701规格书
- 1.48 MB | 次下载 | 免费
- 7H20PR5电磁炉IGBT功率管规格书
- 1.68 MB | 次下载 | 1 积分
- 8IP防护等级说明
- 0.08 MB | 次下载 | 免费
本月
- 1贴片三极管上的印字与真实名称的对照表详细说明
- 0.50 MB | 103次下载 | 1 积分
- 2涂鸦各WiFi模块原理图加PCB封装
- 11.75 MB | 89次下载 | 1 积分
- 3锦锐科技CA51F2 SDK开发包
- 24.06 MB | 43次下载 | 1 积分
- 4锦锐CA51F005 SDK开发包
- 19.47 MB | 19次下载 | 1 积分
- 5PCB的EMC设计指南
- 2.47 MB | 16次下载 | 1 积分
- 6HC05蓝牙原理图加PCB
- 15.76 MB | 13次下载 | 1 积分
- 7802.11_Wireless_Networks
- 4.17 MB | 12次下载 | 免费
- 8苹果iphone 11电路原理图
- 4.98 MB | 6次下载 | 2 积分
总榜
- 1matlab软件下载入口
- 未知 | 935127次下载 | 10 积分
- 2开源硬件-PMP21529.1-4 开关降压/升压双向直流/直流转换器 PCB layout 设计
- 1.48MB | 420064次下载 | 10 积分
- 3Altium DXP2002下载入口
- 未知 | 233089次下载 | 10 积分
- 4电路仿真软件multisim 10.0免费下载
- 340992 | 191390次下载 | 10 积分
- 5十天学会AVR单片机与C语言视频教程 下载
- 158M | 183342次下载 | 10 积分
- 6labview8.5下载
- 未知 | 81588次下载 | 10 积分
- 7Keil工具MDK-Arm免费下载
- 0.02 MB | 73815次下载 | 10 积分
- 8LabVIEW 8.6下载
- 未知 | 65989次下载 | 10 积分
评论