精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

電子發燒友App

硬聲App

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

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

3天內不再提示
創作
電子發燒友網>電子資料下載>電子資料>Ultra96-V2上的頭部姿勢估計

Ultra96-V2上的頭部姿勢估計

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

資料介紹

描述

介紹

Xilinx Model Zoo 包含許多預構建的卷積神經網絡模型。

該項目利用了其中幾個模型,以實現創建面部應用程序的基礎。

  • 人臉檢測densebox_640_360
  • 人臉地標檢測:facelandmark
pYYBAGNy7TOAId8wAAAcUzUv4cI737.png
頭部姿勢估計 - 2 推理管道 + 附加處理
?

檢測到面部并識別面部標志后,我們可以添加額外的處理,例如頭部姿勢估計。

  • Satya Mallick,使用 OpenCV 和 DLIB 進行頭部姿勢估計,LearnOpenCV https://learnopencv.com/head-pose-estimation-using-opencv-and-dlib/ https://github.com/spmallick/learnopencv/blob/master/頭部姿勢/headPose.cpp
poYBAGNy7TWAYeDkAAAm9gPuYKw123.png
使用 OpenCV 和 DLIB 進行頭部姿勢估計,作者 Satya Mallick (LearnOpenCV)
?

讓我們開始吧 !

第 1 步 - 創建 SD

為以下 Avnet 平臺提供了預構建的 Vitis-AI 1.3 SD 卡映像:

  • u96v2_sbc_base : Ultra96-V2 開發板
  • uz7ev_evcc_base:UltraZed-EV SOM (7EV) + FMC 載卡
  • uz3eg_iocc_base:UltraZed-EG SOM (3EG) + IO 載卡

可在此處找到預構建 SD 卡映像的下載鏈接:

下載并解壓后,.img 文件可以編程到 16GB 微型 SD 卡。

0.解壓壓縮包得到.img文件

1. 將開發板特定的 SD 卡映像編程到 16GB(或更大)的 micro SD 卡

一個。在 Windows 機器上,使用 Balena Etcher 或 Win32DiskImager(免費開源軟件)

灣。linux 機器上,使用 Balena Etcher 或使用 dd 實用程序

$ sudo dd bs=4M if=Avnet-{platform}-Vitis-AI-1-3-{date}.img of=/dev/sd{X} status=progress conv=fsync

其中 {X} 是一個小寫字母,用于指定 SD 卡的設備。您可以使用“df -h”來確定您的 SD 卡對應的設備。

第 2 步 - 克隆源代碼存儲庫

本項目中使用的源代碼可以從以下存儲庫中獲?。?/font>

如果您有活動的互聯網連接,您可以簡單地將存儲庫克隆到嵌入式平臺的根目錄:

$ cd ~
$ git clone https://github.com/AlbertaBeef/vitis_ai_cpp_examples
$ git clone https://github.com/AlbertaBeef/vitis_ai_python_examples

第 3 步 - 人臉檢測示例概述

為了實現頭部姿態估計示例,我們修改了一個現有示例facedetect ,該示例可以在以下目錄中找到:

~/Vitis-AI/demo/Vitis-AI-Library/samples/facedetect

如果我們查看 test_video_facedetect.cpp 源代碼,我們可以看到它非常小:

int main(int argc, char *argv[]) {
string model = argv[1];
return vitis::ai::main_for_video_demo(
    argc, argv,
    [model] {
        return vitis::ai::FaceDetect::create(model);
    },
    process_result, 2);
}

此代碼的可視化表示如下圖所示:

poYBAGNy7TiAB9SrAABNn9d4KTU544.png
?

我們可以看到 main 函數使用了一個通用的 main_for_video_demo() 函數,并向它傳遞了一個 FaceDetect 類的實例,該類提供了 create() 和 run() 方法,以及一個 process_result() 函數。

該示例可以使用以下命令運行:

1. 啟動后,啟動 dpu_sw_optimize.sh 腳本,該腳本將優化 DDR 內存的 QoS 配置

$ cd ~/dpu_sw_optimize/zynqmp
$ source ./zynqmp_dpu_optimize.sh

2. 禁用 dmesg 詳細輸出:

$ dmesg -D

3.定義DISPLAY環境變量

$ export DISPLAY=:0.0

4.將DP顯示器的分辨率改為較低的分辨率,比如640x480

$ xrandr --output DP-1 --mode 640x480

5.使用以下參數啟動面部檢測應用程序:

  • 指定“densebox_640_360”作為第一個參數
  • 指定“0”作為第二個參數,指定 USB 攝像頭)
$ cd ~/Vitis-AI/demo/Vitis-AI-Library/samples/facedetect
$ ./test_video_facedetect densebox_640_360 0
pYYBAGNy7T2AfNWOAAAWRmrf8Ok695.png
test_video_facedetect 密集框_640_360 0
?

第 4 步 - 創建頭部姿勢估計應用程序

我們可以使用這個通用的 main_for_video_demo(),以及一個定義我們修改后的用例的自定義類,如下圖所示:

poYBAGNy7T-AFWKAAABRg3L360w786.png
?

對于頭部姿態估計示例,對面部檢測示例進行了以下修改:

  • 添加人臉地標
  • 添加頭部姿勢估計

下圖說明了此示例的修改代碼。

pYYBAGNy7UKAZelYAACfPE25ELo978.png
?

修改后的代碼可以在以下位置找到:

~/vitis_ai_cpp_examples/facedetectwithheadpose/test_video_facedetectwithheadpose.cpp

1. 構建頭部姿態估計應用程序

$ cd ~/vitis_ai_cpp_examples/facedetectwithheadpose
$ ./build.sh

2.啟動頭部姿勢估計應用程序

$ cd ~/vitis_ai_cpp_examples/facedetectwithheadpose
$ ./test_video_facedetectwithheadpose 0
poYBAGNy7USAV-gBAABlhwXxoOo894.png
test_video_facedetectwithheadpose 0
?

對于頭部姿勢估計示例,我重用了以下代碼:

頭部姿勢估計:

我不會描述這個算法背后的數學原理,因為 Mallick 先生做得很好。我們需要知道的是,在我們的 2D 檢測到的面部上需要以下 6 個標志點,以便估計頭部位置。

poYBAGNy7UeAOpVTAACG-aEw6y4627.png
?

Xilinx 的 facelandmark 模型為我們提供了 5 個界標,分別對應兩只眼睛、鼻子和嘴角,因此我們缺少第 6 個界標,對應下巴。

在我的實現中,我粗略估計了下巴的位置:

  • 相對于嘴的位置與相對于眼睛的鼻子的位置大致相同

第 5 步 - Python 實現

python中也提供了類似的實現。

1.啟動頭部姿態估計示例的python版本:

$ cd ~/vitis_ai_python_examples/face_applications
$ python3 face_headpose.py

?

已知限制

在這個項目中實現的頭部姿勢估計有一定的局限性。當頭部姿勢向上或向下看時,它不能很好地工作。有兩個因素可能導致這種情況:

  • 用于眼睛的界標對應于眼睛的中心,而頭部姿勢源代碼假設眼睛的外角
  • 估計用于下巴的地標,可能并不總是正確的

你能改進這個實現嗎?

  • 你會以不同的方式計算下巴位置嗎?
  • 你會使用一個替代的面部標志,包括面部

第 6 步 - 使用 DLIB 改進結果

為了改善結果,我嘗試了 DLIB 提供的功能,這是一個非常流行的人臉檢測和地標庫。

為了加快速度,我將在 python(而不是 C++)中執行此操作。

1.首先需要做的是安裝DLIB

安裝 dlib 包(僅與 python 一起使用)的最快方法是使用 pip3 命令:

$ pip3 install dlib

安裝 dlib(供 python 和 C++ 使用)的較長方法是從源代碼構建:

# download source code from dlib.net
wget http://dlib.net/files/dlib-19.21.tar.bz2
tar xvf dlib-19.21.tar.bz2
cd dlib-19.21

# build/install for use with C++
mkdir build
cd build
cmake ..
cmake --build . --config Release
sudo make install

# build/install for use with python
python setup.py install

這兩種方法都需要有效的互聯網連接并且需要很長時間,因為需要為我們的嵌入式平臺構建包。

2. 確保您擁有最新版本的存儲庫內容

$ cd ~/vitis_ai_python_examples
$ git pull

3.接下來,運行以下腳本

$ cd ~/vitis_ai_python_examples/face_applications_dlib
$ python3 face_headpose_dlib.py

此版本的腳本具有以下附加功能:

  • 添加了狀態顯示,其中包括 FPS
  • 按“d”在人臉檢測算法之間切換(VART 與 DLIB)
  • 按“l”在人臉界標算法之間切換(VART 與 DLIB)

請注意,VART 是 Vitis-AI 運行時的縮寫,此處用于表示使用 Vitis-AI 預構建模型。

首先要觀察的是,VART 人臉檢測的運行速度比 DLIB 人臉檢測快 5 倍,但結果相似。

?
?
?
pYYBAGNy7UuAFMWVAAU-cdPCUtA810.png
?
1 / 2 ? VART 人臉檢測 - 10 幀/秒
?

可以進行的第二個觀察是 VART 面部標志與 DLIB 面部標志不在同一個位置,這可能解釋了為什么使用 DLIB 面部標志可以獲得更好的頭部姿勢結果:

  • 眼睛標志物:VART 位于眼睛中心,DLIB 位于外角
  • 鼻子標志:VART 位于鼻子底部,DLIB 位于鼻尖
  • 下巴地標:為 VART 估計,為 DLIB 正確定位
?
?
?
poYBAGNy7U-AMMNIAAVNaFos9xU938.png
?
1 / 2 ? VART 面部標志 - 正面
?

可以觀察到的第三個觀察結果是,當人臉不是正面時,VART 人臉界標更好。

?
?
?
pYYBAGNy7VSAOtOIAAV4JjnpfEo778.png
?
1 / 2 ? VART 面部標志 - 側面
?

那么,有贏家嗎?

就性能而言,絕對是基于 Vitis-AI 的人臉檢測和地標實現。

對于頭部姿勢結果:

對于正面用例,基于 Vitis-AI 的人臉檢測和基于 DLIB 的地標可提供更好的結果。

對于側面用例,基于 Vitis-AI 的人臉檢測和地標可提供更好的結果。

第 7 步 - 進一步使用 DLIB 面部標志

我鼓勵您運行顯示每種算法的所有地標的腳本版本,如下所示:

$ cd ~/vitis_ai_python_examples/face_applications_dlib
$ python3 face_landmark_dlib.py
?
?
?
pYYBAGNy7ViACwUiAAT518hpkDA033.png
?
1 / 2 ? DLIB 地標 - 68 分
?

您還能想到哪些其他使用面部標志的應用程序?在下面的評論中分享您的想法。

結論

我希望本教程能幫助您開始在 Ultra96-V2 和其他 Avnet 平臺上使用人臉應用程序。

如果您還想看到任何其他相關內容,請在下面的評論中分享您的想法。

修訂記錄

2021/03/15 - 第一版

2021/03/18 - 添加了“第 6 步 - 使用 DLIB 改進結果”


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

評論

查看更多

下載排行

本周

  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次下載  |  免費