資料介紹
描述
抽象的
簡(jiǎn)介:最新的深度學(xué)習(xí)模型與最先進(jìn)的硬件相結(jié)合,可以實(shí)時(shí)執(zhí)行人體姿態(tài)估計(jì) (HPE)。HPE 是指根據(jù)圖像數(shù)據(jù)估計(jì)人體的運(yùn)動(dòng)學(xué)模型。瑞士東部應(yīng)用科學(xué)大學(xué) ( OST )的人工智能跨學(xué)科中心 ( ICAI ) 與瑞士 VRM合作,采用了著名的OpenPoseHPE 的網(wǎng)絡(luò),并使其計(jì)算效率更高。讓我們將此項(xiàng)目的網(wǎng)絡(luò)稱為 ICAIPose。當(dāng)前的原型使用具有一流和計(jì)算密集型深度學(xué)習(xí)模型的多攝像頭系統(tǒng),可在多個(gè)圖形處理單元(GPU)上運(yùn)行,具有足夠的性能。
為了在治療環(huán)境中廣泛采用 HPE,需要一個(gè)小型且具有成本效益的系統(tǒng)。因此,姿勢(shì)跟蹤系統(tǒng)應(yīng)該在邊緣設(shè)備上運(yùn)行。
目標(biāo):在這個(gè)項(xiàng)目中,ICAIPose 應(yīng)該在 AMD-Xilinx 的 FPGA 邊緣設(shè)備 Kria KV 260 上實(shí)現(xiàn)。由于 ICAIPose 是為 GPU 設(shè)計(jì)的,因此在 FPGA 上運(yùn)行這樣一個(gè)給定的網(wǎng)絡(luò)所需的努力和性能影響是主要關(guān)注點(diǎn)。
方法:該應(yīng)用程序需要一個(gè)攝像頭接口和一個(gè)深度學(xué)習(xí)處理單元。為了測(cè)試這些硬件部件,使用這些部件的給定示例項(xiàng)目首先在 Kria 板上運(yùn)行。然后,使用 AMD-Xilinx 的 Vitis AI 為 FPGA 上的深度學(xué)習(xí)處理器單元 (DPU) 編譯 ICAIPose 網(wǎng)絡(luò),并對(duì)網(wǎng)絡(luò)進(jìn)行微調(diào)。隨附的 Vitis AI 運(yùn)行時(shí)引擎及其 Python API 通過 FPGA 微處理器上的嵌入式 Linux 與 DPU 進(jìn)行通信。
結(jié)論:ICAIPose 是一個(gè)非常大的神經(jīng)網(wǎng)絡(luò),具有超過 100 個(gè) GOps 來處理一幀。然而,在 KV260 上可以實(shí)現(xiàn)每秒 8 幀的吞吐量。基于 GPU 的 NVIDIA Jetson Xavier NX 的成本是 Kria 主板的兩倍多,它實(shí)現(xiàn)了相似的幀速率。
ICAIPose 在具有良好性能的邊緣設(shè)備上的成功實(shí)施為在治療環(huán)境中的廣泛應(yīng)用開辟了領(lǐng)域。
AMD-Xilinx 的 Vitis AI 框架已經(jīng)過廣泛測(cè)試并顯示出其優(yōu)勢(shì),但也存在一些初期問題。對(duì)于在 FPGA 上運(yùn)行深度神經(jīng)網(wǎng)絡(luò),Vitis AI 是一個(gè)在開發(fā)時(shí)間和性能之間取得良好平衡的框架。在用 HDL 或 HLS 實(shí)現(xiàn)硬件加速算法之前應(yīng)該考慮這一點(diǎn)。
先決條件
- 安裝了 Vitis AI 的 Linux 主機(jī) PC
- 了解 Vitis AI 工作流程
- KV260 上網(wǎng)
基礎(chǔ)知識(shí)
HPE 網(wǎng)絡(luò)的通常輸出是給定人體姿勢(shì)關(guān)鍵點(diǎn)的置信度圖。對(duì)于單個(gè)HPE的任務(wù),找到置信度圖的最大值并分配相應(yīng)的關(guān)鍵點(diǎn)。

相機(jī)接口

相機(jī)接口是設(shè)計(jì)的重要組成部分。Kria KV260 Basic Accessory Pack 包含一個(gè)小型相機(jī)。
AMD-Xilinx 為Kria? KV260 Vision AI Starter Kit Applications提供了一個(gè)示例應(yīng)用程序。
智能相機(jī)應(yīng)用程序的模塊設(shè)計(jì)表明,硬件平臺(tái)包含了我們這個(gè)項(xiàng)目所需的一切,包括相機(jī)的硬件接口和 DPU。此示例應(yīng)用程序可用作基礎(chǔ)設(shè)計(jì),以使用相機(jī)運(yùn)行自定義 Vitis AI 模型。

對(duì)基礎(chǔ)設(shè)計(jì)的修改
首先,仔細(xì)檢查所有版本以確保它們匹配:
- 對(duì)于 Vitis AI 1.4 和以前的版本,KV260 的板映像為 2020.2
- 這需要使用 Smartcamera 應(yīng)用程序,該應(yīng)用程序也使用 2020.2 板映像(不是最新版本)。
- 2020.2智能相機(jī)平臺(tái)的Vitis AI版本為Vitis AI 1.3.0
按照此說明在 KV260 上安裝 smartcamera 應(yīng)用程序(直到第 5 節(jié))。
使用以太網(wǎng)端口將 KV260 板連接到本地網(wǎng)絡(luò)。
通過 UART/JTAG 連接時(shí),檢查以太網(wǎng) (eth0) 端口的分配 IP 地址。
ifconfig
該命令的輸出類似于:
eth0 Link encap:Ethernet HWaddr 00:0a:35:00:22:01
inet addr:152.96.212.163 Bcast:152.96.212.255 Mask:255.255.255
inet6 addr: fe80::20a:35ff:fe00:2201/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:67 errors:0 dropped:0 overruns:0 frame:0
TX packets:51 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:9478 (9.2 KiB) TX bytes:5806 (5.6 KiB)
Interrupt:44
在這種情況下,IP 地址是152.96.212.163.
使用此地址從主機(jī) PC(連接到與 KV260 相同的網(wǎng)絡(luò))通過網(wǎng)絡(luò)連接ssh到 KV260。
ssh petalinux@
要運(yùn)行所有 Vitis AI 示例,必須在 KV260 上進(jìn)行一些進(jìn)一步的安裝。確保設(shè)備已連接到互聯(lián)網(wǎng)。
X11-轉(zhuǎn)發(fā)
sudo dnf install packagegroup-petalinux-x11
設(shè)置顯示環(huán)境
export DISPLAY=:0.0
葡萄籽油
sudo dnf install packagegroup-petalinux-vitisai
開放式CV
sudo dnf install packagegroup-petalinux-opencv
柏油
sudo dnf install xz
Vitis AI 運(yùn)行時(shí)
sudo wget https://www.xilinx.com/bin/public/openDownload?filename=vitis-ai-runtime-1.3.0.tar.gz
sudo tar -xzvf openDownload\?filename\=vitis-ai-runtime-1.3.0.tar.gz
cd vitis-ai-runtime-1.3.0/aarch64/centos/
sudo bash setup.sh
Vitis AI 運(yùn)行時(shí) (VART) 需要DPU.xclbin文件中vart.conf文件的位置。但相應(yīng)的xclbin文件是來自 smartcam 應(yīng)用程序的文件。
使用以下命令更改和 xclbin 文件。vart.conf
echo "firmware: /lib/firmware/xilinx/kv260-smartcam/kv260-smartcam.xclbin" | sudo tee /etc/vart.conf
sudo cp /lib/firmware/xilinx/kv260-smartcam/kv260-smartcam.xclbin /usr/lib/
sudo mv /usr/lib/kv260-smartcam.xclbin /usr/lib/dpu.xclbin
在運(yùn)行 Vitis AI 示例之前,必須加載相應(yīng)的 smartcam 應(yīng)用程序(每次啟動(dòng)后)。
sudo xmutil unloadapp
sudo xmutil loadapp kv260-smartcam
加載 KV260-smartcam 應(yīng)用程序后,可以使用以下 GStreamer 命令使用 X11-forwarding 測(cè)試相機(jī):
gst-launch-1.0 mediasrcbin media-device=/dev/media0 v4l2src0::io-mode=dmabuf v4l2src0::stride-align=256 ! video/x-raw, width=256, height=256, format=NV12, framerate=30/1 ! videoconvert! ximagesink
如果通過 HDMI(本例中為 1920x1200)連接顯示器,則也可以測(cè)試相機(jī)。請(qǐng)根據(jù)您連接的顯示器更改寬度和高度參數(shù)
gst-launch-1.0 mediasrcbin media-device=/dev/media0 v4l2src0::io-mode=dmabuf v4l2src0::stride-align=256 ! video/x-raw, width=1920, height=1200, format=NV12, framerate=30/1 ! kmssink driver-name=xlnx plane-id=39 sync=false fullscreen-overlay=true
Vitis AI 模型動(dòng)物園
在下一個(gè)項(xiàng)目步驟中,將結(jié)合 Vitis AI 對(duì)攝像頭系統(tǒng)進(jìn)行測(cè)試。借助來自Vitis AI Model Zoo的大量預(yù)訓(xùn)練神經(jīng)網(wǎng)絡(luò),可以選擇一個(gè)示例。
Hourglass 是一個(gè) HPE 網(wǎng)絡(luò),具有以下屬性:
cf_hourglass_mpii_256_256_10.2G_2.0
- 描述:帶有沙漏的姿勢(shì)估計(jì)模型
- 輸入尺寸:256x256
- 浮動(dòng)操作:10.2G
- 任務(wù):姿態(tài)估計(jì)
- 框架:咖啡
- 修剪:'不'
- 最新版本:Vitis AI 2.0
KV260 模型的預(yù)編譯版本已使用 Vitis AI 2.0 和 DPU 配置進(jìn)行編譯B4096。
我們使用 DPU 配置B3136。caffe因此,必須使用相應(yīng) DPU 和正確的 Vitis AI 版本 1.3.0(Docker 映像:)的工作流重新編譯沙漏模型xilinx/vitis-ai-cpu:1.3.411。
DPU 指紋和相應(yīng)的arch.json文件可以在smartcam 文檔中找到。
{
"fingerprint":"0x1000020F6014406"
}
新編譯的文件模型可以保存在 KV260 上。
Vitis AI 庫(kù)提供的測(cè)試應(yīng)用程序 ( test_video_hourglass) 用于運(yùn)行模型。為此,請(qǐng)使用此項(xiàng)目中提供的預(yù)構(gòu)建文件或使用 KV260 主機(jī) PC 上的交叉編譯系統(tǒng)環(huán)境編譯測(cè)試應(yīng)用程序(遵循 Vitis AI說明)。
下載并解壓 KV260 上的預(yù)構(gòu)建文件。
wget https://github.com/Nunigan/HardwareAcceleratedPoseTracking/raw/main/prebuilt.tar.xz
tar -xf prebuilt.tar.xz
轉(zhuǎn)到沙漏文件夾
cd prebuilt/hourglass/
來自相機(jī)接口的 GStreamer 字符串用作輸入設(shè)備。使用以下命令,程序以兩個(gè)線程運(yùn)行。
./test_video_hourglass hourglass_kv.xmodel "mediasrcbin media-device=/dev/media0 v4l2src0::io-mode=dmabuf v4l2src0::stride-align=256 ! video/x-raw, width=256, height=256, format=NV12, framerate=30/1 ! videoconvert ! appsink" -t 2
沙漏以 30 fps 運(yùn)行。請(qǐng)注意,限制因素是相機(jī)而不是神經(jīng)網(wǎng)絡(luò)。
葡萄籽油
該項(xiàng)目的主要部分是使用為傳統(tǒng) GPU 實(shí)現(xiàn)和 Tensorflow 設(shè)計(jì)的神經(jīng)網(wǎng)絡(luò),并嘗試在 FPGA 上運(yùn)行它。
ICAIPose 是一個(gè)相當(dāng)大的網(wǎng)絡(luò),具有大約 1100 萬(wàn)個(gè)可學(xué)習(xí)參數(shù)并103 GOps用于處理圖像。
原始網(wǎng)絡(luò)由以下層組成:
-
Conv2D -
PReLU activation function -
Concatenate -
UpSampling2D -
DepthwiseConv2D -
MaxPooling2D
對(duì)于 Vitis AI 的使用,必須檢查 Vitis AI 是否支持神經(jīng)網(wǎng)絡(luò)的所有層(請(qǐng)參閱相應(yīng)的用戶指南)。
PReLU支持除激活函數(shù)之外的所有層。“Parametric ReLU”與函數(shù)非常相似Leaky ReLU(見下圖),只是泄漏項(xiàng)是一個(gè)可學(xué)習(xí)的參數(shù)。Vitis AI 支持Leaky ReLU0.1 的固定泄漏項(xiàng)。

引入Leaky ReLU激活功能帶來了一些挑戰(zhàn)。
結(jié)果
了解網(wǎng)絡(luò)在 FPGA 上運(yùn)行的速度很有趣,但重要的是了解是否由于量化而損失了一些 HPE 性能。
吞吐量性能
-
ICAIPose (256x256, 103 GOps): 8 fps
在B3136DPU 和時(shí)鐘頻率為 的情況下300 MHz,給出了理論吞吐量940 GOps/s。
因此,結(jié)果在預(yù)期范圍內(nèi)(回想一下:103 GOps對(duì)于一張圖像)。
作為比較,NVIDIA Jetson Xavier NX 比 KV260 更昂貴,并且具有顯著更高的理論吞吐量(21 TOps),達(dá)到了 8 fps 的相同吞吐量。
人體姿勢(shì)估計(jì)性能
該數(shù)據(jù)集提供了 2000 多張圖像和相應(yīng)的理想置信度圖,用于測(cè)試 HPE 性能。
歸一化置信度圖的均方誤差 (MSE) 是通過對(duì)每個(gè)像素之間的差異求平方和求和來計(jì)算的。下圖顯示了一個(gè)示例。左側(cè)圖像的均值是給定輸入的 MSE。

我們現(xiàn)在可以比較量化網(wǎng)絡(luò)和浮點(diǎn)網(wǎng)絡(luò)之間的 MSE。作為附加信息,顯示了具有PReLU激活功能的原始網(wǎng)絡(luò)的 MSE。
所有圖像的 MSE:
-
Float: 0.8109 -
Quantized INT8: 0.9332 -
PReLU: 0.9348
從PRelu到Leaky ReLU激活函數(shù)的變化甚至提高了網(wǎng)絡(luò)性能。量化對(duì) 有影響MSE,但影響很小。量化的網(wǎng)絡(luò)執(zhí)行以及未量化的PReLU網(wǎng)絡(luò)
結(jié)論
AMD-Xilinx 的 Vitis AI 框架經(jīng)過廣泛測(cè)試,顯示出其優(yōu)勢(shì)和一些初期問題。即使 FPGA 板更便宜,也可以將目標(biāo)設(shè)備從 GPU 更改為 FPGA,而不會(huì)損失顯著的性能。Vitis AI 允許在沒有 HDL 或 HLS 知識(shí)的情況下為 FPGA 設(shè)計(jì)高效的深度神經(jīng)網(wǎng)絡(luò)。
Kria KV260 Vision AI Starter Kit 是從 Vitis AI 開始的絕佳選擇。提供的攝像頭可以在 petalinux 環(huán)境中輕松使用。
參考
致謝
特別感謝ICAI和瑞士 VRM提供了經(jīng)過培訓(xùn)的 ICAIpose 版本。
感謝微電子和嵌入式系統(tǒng)研究所作為學(xué)生項(xiàng)目的一部分支持這一挑戰(zhàn)。
修訂記錄
- 2022 年 3 月 14 日 - 初始版本
- 硬件加速自然語(yǔ)言理解解決方案
- Hyperon—大數(shù)據(jù)應(yīng)用的硬件加速解決方案
- 移動(dòng)和嵌入式人體姿態(tài)估計(jì)
- 基于視點(diǎn)與姿態(tài)估計(jì)的視頻監(jiān)控行人再識(shí)別 5次下載
- 基于編解碼殘差的人體姿態(tài)估計(jì)方法 2次下載
- 基于深度學(xué)習(xí)的二維人體姿態(tài)估計(jì)算法 7次下載
- 收藏!姿態(tài)估計(jì)開源項(xiàng)目匯總資料下載
- 基于深度學(xué)習(xí)的二維人體姿態(tài)估計(jì)方法 5次下載
- 人體康復(fù)動(dòng)作識(shí)別算法Pose-ARMGRU 16次下載
- 利用硬件加速器提高仿真速度時(shí)的驗(yàn)證平臺(tái)考慮 3次下載
- MD5算法硬件加速模型 0次下載
- 基于硬件加速系統(tǒng)的PCIe-SRIO橋的邏輯結(jié)構(gòu) 13次下載
- UVM驗(yàn)證平臺(tái)執(zhí)行硬件加速 14次下載
- 基于硬件加速的實(shí)時(shí)仿真平臺(tái)構(gòu)建技術(shù) 1次下載
- 數(shù)字集成電路設(shè)計(jì)中的硬件加速驗(yàn)證技術(shù)
- ANSA人體模型姿態(tài)調(diào)整工具介紹 809次閱讀
- 在樹莓派5上開啟YOLO姿態(tài)估計(jì)識(shí)別之旅! 2.3k次閱讀
- 用DE1-SOC進(jìn)行硬件加速的2D N-Body重力模擬器設(shè)計(jì) 1.4k次閱讀
- 使用愛芯派Pro開發(fā)板部署人體姿態(tài)估計(jì)模型 2.7k次閱讀
- 基于PoseDiffusion相機(jī)姿態(tài)估計(jì)方法 2.5k次閱讀
- 利用opencv+openpose實(shí)現(xiàn)人體姿態(tài)檢測(cè) 4.1k次閱讀
- 如何確定一個(gè)硬件加速應(yīng)用 987次閱讀
- firefly神經(jīng)網(wǎng)絡(luò)硬件加速簡(jiǎn)介 2.6k次閱讀
- LSTM的硬件加速方式 3.5k次閱讀
- 基于增強(qiáng)通道和空間信息的人體姿態(tài)估計(jì)網(wǎng)絡(luò) 4.8k次閱讀
- 一種基于六自由度IMU和動(dòng)力學(xué)的車身姿態(tài)和側(cè)向速度估計(jì)方法 1.2w次閱讀
- 憶芯科技利用Veloce 硬件加速仿真平臺(tái)進(jìn)行高速企業(yè)級(jí)固態(tài)硬盤存儲(chǔ)設(shè)計(jì) 2.2k次閱讀
- Veloce仿真環(huán)境下的SoC端到端硬件加速器功能驗(yàn)證 4.5k次閱讀
- FAIR和INRIA的合作提出人體姿勢(shì)估計(jì)新模型,適用于人體3D表面構(gòu)建 6.3k次閱讀
- 用于軟件驗(yàn)證的硬件加速仿真之一:物理和虛擬探針 2.5k次閱讀
下載排行
本周
- 1矽力杰 Silergy SY7215A 同步升壓調(diào)節(jié)器 規(guī)格書 Datasheet 佰祥電子
- 1.12 MB | 5次下載 | 免費(fèi)
- 2HT81696H 內(nèi)置升壓的30W立體聲D類音頻功放數(shù)據(jù)手冊(cè)
- 1.21 MB | 1次下載 | 免費(fèi)
- 3HTA6863 3W超低噪聲超低功耗單聲道D類音頻功率放大器數(shù)據(jù)手冊(cè)
- 0.87 MB | 次下載 | 免費(fèi)
- 4南芯 Southchip SC8802C 充電控制器 規(guī)格書 Datasheet 佰祥電子
- 88.16 KB | 次下載 | 免費(fèi)
- 5矽力杰 Silergy SY7065 同步升壓轉(zhuǎn)換器 規(guī)格書 Datasheet 佰祥電子
- 910.67 KB | 次下載 | 免費(fèi)
- 6矽力杰 Silergy SY7066 同步升壓轉(zhuǎn)換器 規(guī)格書 Datasheet 佰祥電子
- 989.14 KB | 次下載 | 免費(fèi)
- 7WD6208A產(chǎn)品規(guī)格書
- 631.24 KB | 次下載 | 免費(fèi)
- 8NB685 26 V,12 A,低靜態(tài)電流,大電流 同步降壓變換器數(shù)據(jù)手冊(cè)
- 1.64 MB | 次下載 | 2 積分
本月
- 1EMC PCB設(shè)計(jì)總結(jié)
- 0.33 MB | 12次下載 | 免費(fèi)
- 2PD取電芯片 ECP5702規(guī)格書
- 0.88 MB | 5次下載 | 免費(fèi)
- 3矽力杰 Silergy SY7215A 同步升壓調(diào)節(jié)器 規(guī)格書 Datasheet 佰祥電子
- 1.12 MB | 5次下載 | 免費(fèi)
- 4氮化鎵GaN FET/GaN HEMT 功率驅(qū)動(dòng)電路選型表
- 0.10 MB | 3次下載 | 免費(fèi)
- 5PD取電芯片,可取5/9/12/15/20V電壓ECP5702數(shù)據(jù)手冊(cè)
- 0.88 MB | 3次下載 | 免費(fèi)
- 6SY50655 用于高輸入電壓應(yīng)用的偽固定頻率SSR反激式穩(wěn)壓器英文資料
- 1.01 MB | 3次下載 | 免費(fèi)
- 7怎么為半導(dǎo)體測(cè)試儀選擇精密放大器
- 0.65 MB | 2次下載 | 免費(fèi)
- 8SY52341 次級(jí)側(cè)同步整流英文手冊(cè)
- 0.94 MB | 2次下載 | 免費(fèi)
總榜
- 1matlab軟件下載入口
- 未知 | 935137次下載 | 10 積分
- 2開源硬件-PMP21529.1-4 開關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計(jì)
- 1.48MB | 420064次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233095次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191469次下載 | 10 積分
- 5十天學(xué)會(huì)AVR單片機(jī)與C語(yǔ)言視頻教程 下載
- 158M | 183360次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81606次下載 | 10 積分
- 7Keil工具M(jìn)DK-Arm免費(fèi)下載
- 0.02 MB | 73832次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65991次下載 | 10 積分
電子發(fā)燒友App





創(chuàng)作
發(fā)文章
發(fā)帖
提問
發(fā)資料
發(fā)視頻
上傳資料賺積分
評(píng)論