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