<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>

電子發燒友App

硬聲App

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示
電子發燒友網>電子資料下載>電子資料>使用Xilinx KV260對智能家居設備進行手勢控制

使用Xilinx KV260對智能家居設備進行手勢控制

2023-06-25 | zip | 0.00 MB | 次下載 | 免費

資料介紹

描述

介紹

今天的家庭擁有越來越多的智能設備,從電視到燈,再到百葉窗等等。如果我們要處理我們已經生成的這些數據,并用它來控制物聯網設備會怎樣?

幸運的是,借助強大的新型邊緣計算設備,例如 Xilinx 的 Kria KV260,此類應用變得越來越可行。

感謝 Xilinx 在 Xilinx 自適應計算挑戰賽中提供 KV260 入門套件。

大綱

在本教程中,我們將了解如何使用 Vitis-AI 1.4 工具量化和編譯預訓練的 PyTorch 模型以在 Xilinx Kria KV260 SOM 上運行。然后我們將看看如何使用 Ubuntu 設置我們的 KV260,并安裝 PYNQ DPU Overlay。這將允許我們使用 Python 代碼在 KV260 上運行我們編譯的模型。

最后,我將使用該模型檢測來自 USB 網絡攝像頭的一些手勢,然后根據模型的輸出,通過我的本地 WiFi 網絡向我的 FireTV 棒發送一些命令,以允許我使用手勢導航菜單.

此項目的所有代碼以及其他提示、技巧和故障排除都可以在此項目的GitHub 頁面上找到。

本教程假設您熟悉以下概念:

  • Python、PyTorch、虛擬環境/Conda
  • 基本機器學習概念和術語
  • 適用于 Linux 2 (WSL2) 的 Ubuntu / Linux / Windows 子系統
  • SSH(X11 轉發,可選)
  • 碼頭工人(最?。?/font>

量化和編譯我們的預訓練模型

對于本教程,我們將假設我們已經有一個預訓練的 PyTorch 模型,其權重保存到 .pt /.pth 文件中。

注意:我們將使用運行舊版本 PyTorch 的 Vitis-AI 1.4。您需要確保您的模型與 torch==1.4.0 兼容,如果您使用更新版本的 PyTorch 訓練模型,這可能需要使用 _use_new_zipfile_serialization=False保存您的.pt文件

如果您想從頭開始構建和訓練模型,這里有大量教程,以及免費的計算資源,例如 Google Colab,允許免費(有限)使用 GPU 進行訓練和實驗。

注意:本教程側重于將 PyTorch 模型轉換為 xmodel,但我們在此處安裝的 docker 工具也具有將 TensorFlow 和 Caffe 模型轉換為 xmodel 的功能。請參閱賽靈思文檔。一旦模型被量化并編譯為 KV260 的 xmodel,本教程后面的部分就可以按原樣使用,不管我們的浮點模型最初是用什么格式構建的。

我將使用一個自定義模型,該模型是我在電視前的數據集上訓練的,執行我想使用的不同手勢。

該模型能夠預測六種不同的手勢:上、下、左、右、手掌和拳頭。我們將使用這些手勢在我的電視上導航菜單。

該模型處理形狀為 [1, 63] 的輸入向量,該向量對應于 21 個手部關鍵點的 x、y、z 坐標的扁平數組,我們在預處理步驟中使用MediaPipe提取該數組(稍后會詳細介紹)。模型輸出一個 [1, 6] 向量,我們可以取它的 softmax 來確定每個類的概率,取最大條目作為我們的預測輸出。

GitHub 頁面上提供了預訓練模型(.pt和 KV260 編譯版本)供您試用。請記住,您的里程可能會因其有效性而有所不同,因為它專門針對我的硬件設置和環境進行了培訓。

1. 安裝Xilinx Vitis-AI 工具

對于這一步,我們將從賽靈思下載一個 docker 鏡像,并在其中運行幾個命令。您需要一臺裝有 Linux 或能夠運行 Linux VM 的計算機。在此示例中,我將使用帶有 WSL2 Ubuntu 20.04 的 Windows 10。

1.安裝Docker

  • 在 Windows 上,確保接受 Docker 使用 WSL2 運行的權限

2. 打開 Linux 終端并克隆https://github.com/Xilinx/Vitis-AI存儲庫。

3. 拉取正確版本的 Vitis-AI docker 鏡像。對于這個項目,我們需要 Vitis-AI 1.4。請注意,Docker 映像有GPU 版本CPU 版本。如果您的系統中沒有 cuda GPU,則必須使用 CPU 版本。

# pick the correct version
docker pull xilinx/vitis-ai-cpu:1.4.1.978 # CPU version
docker pull xilinx/vitis-ai:1.4.1.978 # GPU version

4. 導航到我們之前克隆的 repo,并docker_run.sh使用您要運行的 docker 的標簽調用腳本。前任:

peter@PeterDesktop:/mnt/d/Vitis-AI$ ./docker_run.sh xilinx/vitis-ai-cpu:1.4.1.978
  • 注意:如果 bash 腳本出錯,您可能需要更改行尾docker_run.sh以兼容 Unix(在 notepad++ 中打開并將左下角的選項更改為 LF 并保存)

有關更多詳細信息,請參閱Xilinx 安裝文檔。

接受提示,你應該會看到一個漂亮的小 Vitis-AI 文字藝術。

==========================================

__      ___ _   _                   _____
\ \    / (_) | (_)            /\   |_   _|
 \ \  / / _| |_ _ ___ ______ /  \    | |
  \ \/ / | | __| / __|______/ /\ \   | |
   \  /  | | |_| \__ \     / ____ \ _| |_
    \/   |_|\__|_|___/    /_/    \_\_____|

==========================================

Docker Image Version:  1.4.1.978
Vitis AI Git Hash:  9f3d6db
Build Date: 2021-10-08

2.量化模型

KV260 旨在內部使用整數來完成所有神經網絡計算。這與 GPU 的工作方式不同,后者使用浮點值。要將我們的模型和權重轉換為在 FPGA 上工作,我們需要執行一個稱為量化的步驟。

我們將使用量化模型的工具組織在 conda 虛擬環境中。要激活它,我們運行:

conda activate vitis-ai-pytorch

請注意,此 conda env 運行 PyTorch==1.4.0。可能不支持來自更新版本的 PyTorch 的 Pytorch 模型中的某些操作。

量化將由使用賽靈思 pytorch_nndct.apisPython 庫的 Python 腳本完成。我使用的腳本來自鏈接model_data/quantize.pyGitHub Repo。它應該很容易適應model_data/quantize.py您自己的模型和數據集。

要運行這個腳本,我們需要三件事:

  • 預訓練網絡的權重(a.pt 文件)
  • 模型的 float / PyTorch 定義(繼承自 torch.nn.Module 的類)
  • 一個小的測試數據集(200-1000張圖像,用于檢查量化模型的準確性。量化過程可能會顯著降低模型的性能對于某些模型。這實際上是可選的。如果我們想跳過這一步,我們可以在導出之前使用隨機輸入轉發一次量化模型。

要訪問這些文件,我們需要將它們(quantize.py文件、模型權重、模型定義和測試集)放在 docker 可見的目錄中。在這種情況下,我們將使用Vitis-AI/data我們之前克隆的 repo 中的目錄,該目錄通過我們用來啟動它的 bash 腳本設置為對 docker 可見。

然后從運行 docker 的終端,我們可以調用 python 腳本:

(vitis-ai-pytorch) Vitis-AI /workspace/data > python quantize.py

運行此腳本后,我們應該會在data 名為 的目錄中看到一個新文件夾quantize_result,其中包含一個_int.xmodel文件。如果是這種情況,我們準備進入下一步。如果發生問題,請參閱故障排除部分。

補充閱讀:Xilinx PyTorch 量化文檔

3.編譯模型

現在我們的模型已經量化為 Xilinx 中間表示 (XIR).xmodel 文件,我們需要針對我們要使用的特定硬件對其進行編譯:KV260。

從 docker conda env 內部,我們將運行vai_c_xir編譯器工具,它需要以下結構:

vai_c_xir -x /PATH/TO/quantized.xmodel -a /PATH/TO/arch.json -o /OUTPUTPATH -n NETNAME
  • -x :量化模型的路徑,如果您按照前面的說明進行操作,則應該是該路徑。data/quantize_result/_int.xmodel
  • -a:目標架構 json。對于 KV260,這將是:/opt/vitis_ai/compiler/arch/DPUCZDX8G/KV260/arch.json
  • -o:要輸出模型的目錄。建議:.
  • -n:您希望編譯模型具有的文件名。前任:mymodel_kv260

警告:注意它所說的輸出行DPU subgraph number X。一定是1。否則,我們在KV260上嘗試運行編譯好的模型時,就會出現問題。如果這不是 1,請參閱故障排除部分。

如果運行成功,您應該會看到名為 mymodel_kv260.xmodel

這是編譯好的模型。將其復制到 KV260 的可訪問位置。我們將在以下部分中使用 Python 腳本加載和運行它。

故障排除

如果您嘗試量化、編譯和運行自己的模型,那么這個量化/編譯部分可能是您遇到最多問題的地方。查看GitHub 存儲庫中的故障排除指南以獲得一些幫助。

使用 Ubuntu、PYNQ 和 Mediapipe 設置 KV260

對于這一步,我們將按照PYNQ Kria GitHub repo上提供的說明開始。簡而言之,步驟是:

1. 用 Ubuntu 鏡像刷寫 microSD 卡。

2. SSH進入KV260

3. 克隆 PYNQ Kria 存儲庫。

4. 運行提供的安裝腳本。

PYNQ 安裝將創建一個名為 pynq-venv 的虛擬環境,其中包含所有 Vitis-AI 1.4 工具(VART、XIR、DPU Overlay),用于通過方便的 Python API 運行已編譯的 xmodel。

最后,我們還要做一件事:將 Mediapipe 安裝到 pynq-venv。

Mediapipe 沒有安裝 aarch64 pip,因此我們必須自己在 KV260 上編譯輪子(說明),或者您可以使用我在該項目的 GitHub 存儲庫中提供的輪子。

要安裝 wheel 文件,首先我們必須以 root 身份激活 pynq-venv,然后運行 ??pip install:

sudo -i 
source /etc/profile.d/pynq_venv.sh
pip install path/to/mediapose/wheel

使用 PYNQ DPU Overlay 運行我們編譯的模型

為了運行我們編譯的模型,并處理輸出以控制我的 FireTV 棒,我編寫了一個名為app_kv260.py.

我們將在上一節中準備好的文件中運行這個腳本。pynq-venv要激活 venv 并運行 python 腳本,我們將使用以下命令。

sudo -i 
source /etc/profile.d/pynq_venv.sh 
xauth merge /home/ubuntu/.Xauthority # optional enable X11 forwarding (ignore warning)
python 

我還包括了一個啟用 X11 轉發的行,這將允許我們在我們用來通過 SSH 連接到 Kria 的計算機上看到來自 OpenCV 的顯示。

這些是使用我們的模型設置 DPU 和運行推理的關鍵線。

# Set up DPU
overlay = DpuOverlay("dpu.bit")  
  
# Path to your compiled x model
path = '/home/ubuntu/my_model.xmodel'  
# gives an assertion error if DPU subgraph number > 1
overlay.load_model(path) 

dpu = overlay.runner  

# Set up space in memory for input and output of DPU
inputTensors = dpu.get_input_tensors()  
outputTensors = dpu.get_output_tensors()    

shapeIn = tuple(inputTensors[0].dims)  
shapeOut = tuple(outputTensors[0].dims)  

input_data = [np.empty(shapeIn, dtype=np.float32, order="C")]
output_data = [np.empty(shapeOut, dtype=np.float32, order="C")]  

# Load in input data, and run inference
x = get_input_data() # generic function to get input data

input_data[0] = x
job_id = dpu.execute_async(input_data, output_data)
dpu.wait(job_id)
y = output_data[0]

process_output(y) # generic output function to process output

這是可視化器輸出的示例,表明它能夠正確分類一些手勢。

pYYBAGNYhxuAN_uJAAQxbz1uf2o389.png
KV260 上運行的模型能夠識別手勢,并在窗口中顯示信息。
?

該應用程序以大約 3 FPS 的速度運行,這足以與菜單 UI 進行實時交互。這實際上是我最初的計劃,但我無法找到一個可使用 Vitis-AI 軟件量化的預訓練模型(例如,我無法使用 OpenPose和 Vitis 玩得很好)。更具挑戰性,但這將允許更自然的手勢,如上下滑動、“點擊”輕敲動作或轉動想象中的音量旋鈕,以控制不同的功能。

結論

KV260 是一款出色的硬件,用于執行計算機視覺任務的推理。開始有點棘手,但希望這個項目能給你一些指導!我期待 Xilinx 即將對 Vitis-AI 工作流程進行改進,并希望未來能有更多以愛好者為中心的硬件。

故障排除

請查看GitHub 存儲庫中的故障排除部分。(這個頁面有點長)


下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評論

查看更多

下載排行

本周

  1. 1山景DSP芯片AP8248A2數據手冊
  2. 1.06 MB  |  532次下載  |  免費
  3. 2RK3399完整板原理圖(支持平板,盒子VR)
  4. 3.28 MB  |  339次下載  |  免費
  5. 3TC358743XBG評估板參考手冊
  6. 1.36 MB  |  330次下載  |  免費
  7. 4DFM軟件使用教程
  8. 0.84 MB  |  295次下載  |  免費
  9. 5元宇宙深度解析—未來的未來-風口還是泡沫
  10. 6.40 MB  |  227次下載  |  免費
  11. 6迪文DGUS開發指南
  12. 31.67 MB  |  194次下載  |  免費
  13. 7元宇宙底層硬件系列報告
  14. 13.42 MB  |  182次下載  |  免費
  15. 8FP5207XR-G1中文應用手冊
  16. 1.09 MB  |  178次下載  |  免費

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234315次下載  |  免費
  3. 2555集成電路應用800例(新編版)
  4. 0.00 MB  |  33566次下載  |  免費
  5. 3接口電路圖大全
  6. 未知  |  30323次下載  |  免費
  7. 4開關電源設計實例指南
  8. 未知  |  21549次下載  |  免費
  9. 5電氣工程師手冊免費下載(新編第二版pdf電子書)
  10. 0.00 MB  |  15349次下載  |  免費
  11. 6數字電路基礎pdf(下載)
  12. 未知  |  13750次下載  |  免費
  13. 7電子制作實例集錦 下載
  14. 未知  |  8113次下載  |  免費
  15. 8《LED驅動電路設計》 溫德爾著
  16. 0.00 MB  |  6656次下載  |  免費

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費
  3. 2protel99se軟件下載(可英文版轉中文版)
  4. 78.1 MB  |  537798次下載  |  免費
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420027次下載  |  免費
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費
  11. 6電路仿真軟件multisim 10.0免費下載
  12. 340992  |  191187次下載  |  免費
  13. 7十天學會AVR單片機與C語言視頻教程 下載
  14. 158M  |  183279次下載  |  免費
  15. 8proe5.0野火版下載(中文版免費下載)
  16. 未知  |  138040次下載  |  免費
亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>