資料介紹
描述
介紹
在這個項目中,我將為 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次閱讀
下載排行
本周
- 1貼片電阻阻值代號
- 0.08 MB | 1次下載 | 1 積分
- 2U盤一鍵制作
- 23.84 MB | 1次下載 | 免費
- 3ch341驅動
- 0.18 MB | 次下載 | 免費
- 4DS1302芯片英文手冊
- 0.24 MB | 次下載 | 免費
- 5基于Linux的液晶顯示屏驅動技術的研究與應用
- 14.59 MB | 次下載 | 1 積分
- 6DS-CM5A H24-CN-V2
- 524.28 KB | 次下載 | 免費
- 7醫療器械專用集成化高性能TSIF集成濾波器
- 0.33 MB | 次下載 | 免費
- 8PC1405/PC1407/PC1410高精度電壓基準數據手冊
- 0.73 MB | 次下載 | 免費
本月
- 1晶體三極管的電流放大作用詳細說明
- 0.77 MB | 32次下載 | 2 積分
- 2九陽豆漿機高清原理圖
- 2.47 MB | 29次下載 | 1 積分
- 3雙極型三極管放大電路的三種基本組態的學習課件免費下載
- 4.03 MB | 25次下載 | 1 積分
- 4AIWA HS-J303 MKⅡ維修手冊
- 22.47 MB | 24次下載 | 10 積分
- 5多級放大電路的學習課件免費下載
- 1.81 MB | 21次下載 | 2 積分
- 6人形機器人電機驅動和傳感報告
- 4.27 MB | 17次下載 | 免費
- 7AIWA HS-J202/HS-J202M/HS-J800維修手冊
- 13.60 MB | 16次下載 | 10 積分
- 8Altium Designer元件庫
- 17.11 MB | 10次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935127次下載 | 10 積分
- 2開源硬件-PMP21529.1-4 開關降壓/升壓雙向直流/直流轉換器 PCB layout 設計
- 1.48MB | 420063次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233089次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費下載
- 340992 | 191382次下載 | 10 積分
- 5十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183338次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81586次下載 | 10 積分
- 7Keil工具MDK-Arm免費下載
- 0.02 MB | 73814次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65988次下載 | 10 積分
評論