资料介绍
描述
介绍
在这个项目中,我将为 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的办公桌机器人助手 0次下载
- 智能办公桌开源分享 0次下载
- 带有PYNQ和Vitis HLS的SHA256加密加速器 2次下载
- 自动家庭办公室 0次下载
- 物联网办公室清洁跟踪系统 2次下载
- 控制家庭或办公室照明的创新系统开源分享 0次下载
- Arduino在办公室地图上绘制汽车路线 0次下载
- 适用于智能办公室和建筑的终极物联网传感器盒 0次下载
- 办公室数字化的实现 0次下载
- Vitis AI1.1 系列教程1——软件安装 5次下载
- 办公室综合布线系统解决方案 75次下载
- 现代化办公大楼的弹性供电 22次下载
- C-BUS系统在粤电广场办公楼照明中的应用 13次下载
- 办公业务网信息监控系统设计 13次下载
- Lirong 网络办公系统 企业版 0次下载
- AMD Vitis™ Libraries Vision L3 Isppipeline U50流程示例 259次阅读
- 如何使用Vitis-AI加速YOLOX模型实现视频中的目标检测 495次阅读
- 分享一个触摸激活办公室呼叫铃电路 473次阅读
- Vitis IDE Git集成快速入门 569次阅读
- 芝芯多功能打印机方案,完美解决现代办公难题 831次阅读
- 理解Vitis HLS默认行为 1286次阅读
- 如何使用Vitis AI Library来安装、使用和开发应用 1356次阅读
- Vitis HLS知识库总结 2861次阅读
- 如何更改VCK190单板启动模式 856次阅读
- Vitis初探—1.将设计从SDSoC/Vivado HLS迁移到Vitis上的教程 3067次阅读
- Vitis HLS工具简介及设计流程 1930次阅读
- 米尔PYNQ开发板来了 843次阅读
- 远程办公远程办公场景下,IT运维如何做好网络监测工作 1589次阅读
- PYNQ中MicroBlaze程序文件的加载过程 2101次阅读
- Office的3个办公小技巧你知道吗 3746次阅读
下载排行
本周
- 1山景DSP芯片AP8248A2数据手册
- 1.06 MB | 532次下载 | 免费
- 2RK3399完整板原理图(支持平板,盒子VR)
- 3.28 MB | 339次下载 | 免费
- 3TC358743XBG评估板参考手册
- 1.36 MB | 330次下载 | 免费
- 4DFM软件使用教程
- 0.84 MB | 295次下载 | 免费
- 5元宇宙深度解析—未来的未来-风口还是泡沫
- 6.40 MB | 227次下载 | 免费
- 6迪文DGUS开发指南
- 31.67 MB | 194次下载 | 免费
- 7元宇宙底层硬件系列报告
- 13.42 MB | 182次下载 | 免费
- 8FP5207XR-G1中文应用手册
- 1.09 MB | 178次下载 | 免费
本月
- 1OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 2555集成电路应用800例(新编版)
- 0.00 MB | 33566次下载 | 免费
- 3接口电路图大全
- 未知 | 30323次下载 | 免费
- 4开关电源设计实例指南
- 未知 | 21549次下载 | 免费
- 5电气工程师手册免费下载(新编第二版pdf电子书)
- 0.00 MB | 15349次下载 | 免费
- 6数字电路基础pdf(下载)
- 未知 | 13750次下载 | 免费
- 7电子制作实例集锦 下载
- 未知 | 8113次下载 | 免费
- 8《LED驱动电路设计》 温德尔著
- 0.00 MB | 6656次下载 | 免费
总榜
- 1matlab软件下载入口
- 未知 | 935054次下载 | 免费
- 2protel99se软件下载(可英文版转中文版)
- 78.1 MB | 537798次下载 | 免费
- 3MATLAB 7.1 下载 (含软件介绍)
- 未知 | 420027次下载 | 免费
- 4OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 5Altium DXP2002下载入口
- 未知 | 233046次下载 | 免费
- 6电路仿真软件multisim 10.0免费下载
- 340992 | 191187次下载 | 免费
- 7十天学会AVR单片机与C语言视频教程 下载
- 158M | 183279次下载 | 免费
- 8proe5.0野火版下载(中文版免费下载)
- 未知 | 138040次下载 | 免费
评论
查看更多