簡介
本案例主要基于DPU-PYNQ來實現(xiàn)一個常見的手勢識別--石頭剪刀布,目的是讓大家了解如何使用DPU開發(fā)深度學習應用的整個流程。本案例分為三個部分:分別是PC模型訓練、VitisAI模型編譯、Edge模型部署三個部分。PC模型訓練是通過tensorflow對數(shù)據(jù)集進行分析訓練,得到需要的tf模型;VitisAI模型編譯是通過vitis ai工具鏈,對tf模型進行量化、編譯,轉換成dpu可以運行的模型;Edge模型部署是在U96上調度使用編譯好的模型。
Git倉庫:https://github.com/linxiaobo110/rps_u96.git
在PC上訓練NN模型
數(shù)據(jù)集
數(shù)據(jù)集使用的是谷歌發(fā)布的開源數(shù)據(jù)集:
https://www.tensorflow.org/datasets/catalog/rock_paper_scissors
訓練環(huán)境說明
議在有顯卡的環(huán)境下訓練,本教程使用的python環(huán)境所需的庫如下所示:
python 3.7
tensorflow 2.0
numpy
opencv
matplotlib
sklearn
在安裝好的python環(huán)境下,使用spyder或者命令行運行train.py:
python train.py
正常運行時會有以下輸出:
1、打印部分數(shù)據(jù)集圖片(注意觀察圖片是否正常),以及各種標簽的樣本數(shù)量:
2、打印訓練過程以及訓練精度的變化
在Vitis AI里編譯NN模型
把訓練好的模型通過vitis AI編譯后才可以在U96上運行。
1、把訓練好的模型拷貝到DpuCarU96的vitisAI目錄,同時需要把vitisAI/dataset_valid下的驗證集換成用戶自己的數(shù)據(jù),至少50張圖片。
2、啟動vitis AI的docker,并把工程里的vitisAI目錄拷貝到docker虛擬機里。
./docker_run.sh xilinx/vitis-ai
3、在vitisAI的dockder里,激活tensorflow的環(huán)境:
conda activate vitis-ai-tensorflow
4、在vitisAI的dockder里,運行權值固化、權值量化、模型編譯等腳本可以得到以下輸出:
編譯完完的模型在./vitisAI/compile_results目錄下,里面的.elf文件是下一階段的教程所需要的。
在Utral96上調用NN模型
1、把倉庫拷貝到U96的jupyter_notebook目錄下,如果要使用用戶的模型,請把里面的.elf文件換成vitisAI教程里生成的elf文件。
2、在U96的終端上,把elf模型編譯程序共享庫:
sudo ./1.compile.sh
3、在U96的終端上,查看IP地址:
sudo ifconfig
4、在用戶PC上,打開瀏覽器,輸入IP地址,即可進入jupyter Notebook。
5、在用戶PC上,按照jupyterNotebook的提示逐步地運行程序,即可看到效果。
-
手勢識別
+關注
關注
8文章
225瀏覽量
47761 -
DPU
+關注
關注
0文章
353瀏覽量
24103 -
深度學習
+關注
關注
73文章
5471瀏覽量
120904
發(fā)布評論請先 登錄
相關推薦
評論