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