本期為大家帶來的是暑期學校優秀作品——口罩佩戴檢測系統的介紹。在疫情防控期間,要好好佩戴口罩哦!
本項目已開源,詳細內容請參照github庫:https://github.com/seujingwei/Masking-Detection
項目介紹
日常生活中,面對經呼吸道傳播的包括新冠肺炎等在內的傳染性疾病,人們佩戴口罩進行防護可保護身體健康和生命安全。人臉佩戴口罩的自動化識別可以有效監督人們佩戴口罩,是抑制疾病在人流量大的公共場合快速傳播和保護身體健康的重要技術手段。對于生活和生產中的口罩佩戴識別的需求,本文設計了基于深度學習的人臉口罩佩戴識別系統。該方法在利用自主設計的圖像識別網絡以及Xilinx最新的vitis-ai技術快速開發出符合要求的系統。利用近1萬個公開數據,并采用數據增強等方法,在訓練后得到95%的識別準確率,并可區分出正確佩戴口罩和捂嘴、帶圍巾等遮擋的情況。
作品功能
1. 對存儲在SD卡內部的照片,進行口罩佩戴檢測,檢測到佩戴口罩則輸出mask,否則輸出nomask。
2. 通過usb攝像頭,實時監測口罩佩戴情況,即是被檢測者身處復雜背景下,依舊有良好的識別功能。
3. 通過實際測試,部署在u96平臺上的神經網絡相比較pc轉換后的模型,轉換精度損失小,測試集識別正確率依舊有88%以上。
4. 選取更加有代表性的數據集,網絡模型訓練更加充分,系統有較強的魯棒性,不對測試環境有要求(如要求白色背景等等),此外口罩檢測很容易出現用手捂住嘴巴,模型就認為是戴口罩的情況,本文通過數據清洗篩除了這些遮擋面部依舊算作佩戴口罩的數據,使得作品可以更加貼近現實情況,有更好的應用前景。
項目系統框圖與步驟
1、獲取數據集
為了獲得理想的訓練效果,大量的優質數據集是非常重要的,可以說沒有好的數據集作為支持,再好的網絡結構也沒有發揮全部的性能。我們獲得數據的來源是網絡爬蟲技術。
2、網絡訓練
當口罩數據集準備好后,就可以進行神經網絡模型的訓練了。神經網絡模型訓練效果的好壞也會直接影響到最后模型部署到板卡上的效果。模型訓練的過程基本上都在電腦(服務器)上進行。可以使用GPU來訓練模型,如果沒有GPU,也可以用CPU來訓練,但訓練速度會下降很多。
3、Vitis-AI
由網絡訓練獲得的模型到后面部署在FPGA上,這一過程實現的方法有很多,如Verilog等rtl語言行為級描述設計整個加速器,包括卷積模塊、池化模塊等等;或者使用HLS高層級語言綜合工具將C或者C++語言快速轉換成相應的IP在vivado中調用,這種方法速度快于Verilog手寫加速器。而本文則以第三種方式,即使用Xilinx公司最新生產力工具Vitis-AI,將訓練獲得的H5模型文件作為輸入,通過模型的轉化、模型量化、編譯最后生成了一個可以部署在指定硬件平臺的配置文件。
4、硬件部署
在Vitis-AI環境中,我們得到了elf部署文件,而在硬件平臺ultra96V2上,需要使用類似于:
gcc -fPIC -shared dpu_dpuCarModel_0.elf -o libdpumodeldpuCarModel.so
這樣的命令,調用pynq內部的編譯器將elf文件編譯成可被pynq識別的動態庫文件,之后可以在python中使用
n2cube.dpuLoadKernel(KERNEL_CONV)
等API命令來調用之前編譯生成的DPU動態庫文件,如同vitis-ai的模型量化,讀取的圖片數據需要經過預處理才能輸入到DPU的輸入網絡節點中,而輸出節點輸出的是softmax之前的網絡輸出,所以需要在pynq平臺上用python手寫一個softmax函數,使得網絡結構保持完整(也可以通過節點連接dpu0的輸出和dpu1的輸入)。
項目結果示例
編輯:hfy
-
神經網絡
+關注
關注
42文章
4771瀏覽量
100723 -
檢測系統
+關注
關注
3文章
954瀏覽量
43033 -
AI
+關注
關注
87文章
30763瀏覽量
268917 -
深度學習
+關注
關注
73文章
5500瀏覽量
121118
發布評論請先 登錄
相關推薦
評論