金映谷,張 濤,楊亞寧,王 月,楚艷麗
(大連民族大學(xué) a.機(jī)電工程學(xué)院;b.信息與通信工程學(xué)院,遼寧 大連 116605)
自新型冠狀病毒肺炎(COVID-19)疫情暴發(fā)以來(lái)[1],傳播迅速,嚴(yán)重威脅人民的生命安全,為了防止交叉感染以及疫情范圍擴(kuò)大,佩戴口罩且佩戴標(biāo)準(zhǔn)成為疫情防控的重要方式。但由于意識(shí)不到位、佩戴口罩不舒服等種種原因,難以實(shí)現(xiàn)人人自覺(jué)地標(biāo)準(zhǔn)佩戴口罩[2]。因此在公共場(chǎng)合對(duì)口罩是否佩戴以及佩戴是否規(guī)范進(jìn)行檢測(cè)就十分重要。
目前,百度、華為、??低暤裙疽淹瓿苫谝曨l的乘客佩戴檢測(cè),并應(yīng)用于鐵路交通系統(tǒng)。肖俊杰[3]提出了一種基于YOLOv3和YCrCb的人臉口罩檢測(cè)與規(guī)范佩戴識(shí)別方法,其中YOLOv3對(duì)是否佩戴口罩進(jìn)行檢測(cè),對(duì)檢測(cè)到佩戴口罩的圖像,利用YCrCb的橢圓膚色模型對(duì)該區(qū)域進(jìn)行膚色檢測(cè),進(jìn)而判斷口罩是否佩戴規(guī)范,人臉口罩檢測(cè)的mAP達(dá)到89.04%,口罩規(guī)范佩戴的識(shí)別率達(dá)到82.48%。管軍霖等[4]提出了一種基于圖片高低頻成分融合YOLOv4卷積神經(jīng)網(wǎng)絡(luò)的口罩佩戴檢測(cè)方法,通過(guò)網(wǎng)絡(luò)爬蟲(chóng)構(gòu)建數(shù)據(jù)集,并進(jìn)行手動(dòng)數(shù)據(jù)標(biāo)注,經(jīng)過(guò)Darknet深度學(xué)習(xí)框架訓(xùn)練,進(jìn)行模擬檢測(cè),訓(xùn)練后模型檢測(cè)精度值達(dá)到0.985,平均檢測(cè)速度35.2 ms。鄧黃瀟[5]提出一種基于遷移學(xué)習(xí)與RetinaNet網(wǎng)絡(luò)的口罩佩戴檢測(cè)方法,訓(xùn)練后模型在驗(yàn)證集下的AP值為86.45%。王藝皓等[6]提出了一種復(fù)雜場(chǎng)景下基于改進(jìn)YOLOv3的口罩佩戴檢測(cè)算法,結(jié)合跨階段局部網(wǎng)絡(luò)對(duì)DarkNet53骨干網(wǎng)絡(luò)進(jìn)行了改進(jìn),在YOLOv3中引入改進(jìn)空間金字塔池化結(jié)構(gòu),并結(jié)合自上而下和自下而上的特征融合策略對(duì)多尺度預(yù)測(cè)網(wǎng)絡(luò)進(jìn)行改進(jìn),選取CIoU作為損失函數(shù),改進(jìn)后方法有效提升了復(fù)雜場(chǎng)景下的人臉佩戴口罩檢測(cè)精度和速度。
現(xiàn)有口罩佩戴檢測(cè)算法多數(shù)需數(shù)據(jù)標(biāo)注,且使用的網(wǎng)絡(luò)模型參數(shù)量大,運(yùn)算時(shí)間長(zhǎng),對(duì)硬件配置要求高,成本較高。為使口罩檢測(cè)應(yīng)用更為廣泛,成本更低,同時(shí)保證檢測(cè)的精度,本文提出一種基于MobileNet V2的口罩佩戴識(shí)別研究方法,使用輕量級(jí)網(wǎng)絡(luò)減少網(wǎng)絡(luò)模型參數(shù)量,減少運(yùn)算時(shí)間,使用目標(biāo)檢測(cè)網(wǎng)絡(luò)將口罩佩戴識(shí)別問(wèn)題簡(jiǎn)化為分類(lèi)問(wèn)題。同時(shí)提出了基于數(shù)據(jù)擴(kuò)充的MobileNet V2網(wǎng)絡(luò)口罩佩戴規(guī)范性檢測(cè)方法。
MobileNet網(wǎng)絡(luò)是一種為嵌入式設(shè)備或移動(dòng)端設(shè)備設(shè)計(jì)的輕量級(jí)卷積神經(jīng)網(wǎng)絡(luò),自2017年4月MobileNet V1[7]被提出以來(lái),逐漸發(fā)展、優(yōu)化、更新迭代。MobileNet V1的核心思想是使用深度可分離卷積代替標(biāo)準(zhǔn)的卷積操作,但是這種操作會(huì)帶來(lái)一些問(wèn)題:一是深度卷積本身無(wú)法改變通道數(shù)量,若輸入深度卷積的通道數(shù)較少,則只能工作于低維度特征,效果不好;二是無(wú)法復(fù)用特征。而MobileNet V2可以很好地解決以上問(wèn)題。目前,MobileNet V2[8]已發(fā)展十分成熟且應(yīng)用廣泛。
MobileNet V2繼承MobileNet V1使用ReLU6[9]作為激活函數(shù),比起ReLU激活函數(shù),ReLU6限制后的最大輸出值為6,主要目的是避免在便攜式設(shè)備或移動(dòng)設(shè)備上,使用低精度的float16描述大范圍數(shù)值時(shí)造成的精度損失,從而影響分類(lèi)特征的提取與描述,進(jìn)而影響準(zhǔn)確率。ReLU6表達(dá)式如下:
ReLU(6)=min(max(x,0),6) 。
(1)
深度可分離卷積[10]即使用深度卷積操作和逐點(diǎn)卷積操作取代標(biāo)準(zhǔn)卷積操作。以F表示輸入特征映射;G表示輸出特征映射;K表示標(biāo)準(zhǔn)卷積,標(biāo)準(zhǔn)卷積的卷積計(jì)算公式[7]:
(2)
深度卷積的卷積公式[7]:
(3)
式中:k、l代表輸出特征圖大??;n代表輸出通道數(shù),數(shù)值上等于卷積核個(gè)數(shù);m代表輸入通道數(shù),數(shù)值上等于卷積核的深度。
深度卷積操作即將卷積核拆解為單通道形式,在不改變輸入特征圖像深度的前提下,對(duì)每一個(gè)輸入圖像的通道進(jìn)行卷積操作,使輸入、輸出的特征圖通道數(shù)一致。這種情況下當(dāng)輸入的特征圖通道數(shù)較少時(shí),網(wǎng)絡(luò)模型只能工作于低維度,無(wú)法確保獲取足夠的有效信息,需要對(duì)特征圖進(jìn)行升維或降維操作,本文使用逐點(diǎn)卷積實(shí)現(xiàn)。
深度可分離卷積與標(biāo)準(zhǔn)卷積對(duì)比示意圖如圖1。以12×12×3的輸入為例,標(biāo)準(zhǔn)卷積使用256個(gè)5×5×3的卷積核,得到8×8×256的輸出,而同樣的輸入經(jīng)過(guò)深度可分離卷積操作欲得到相同尺寸的輸出,需先對(duì)輸入的每一個(gè)圖像通道進(jìn)行5×5的卷積操作,得到8×8×3的特征圖,后使用256個(gè)1×1×3的卷積核進(jìn)行逐點(diǎn)卷積操作,得到8×8×256的輸出。
圖1 深度可分離卷積與標(biāo)準(zhǔn)卷積對(duì)比示意圖
假設(shè)卷積核的尺寸為Dk×Dk×M,共N個(gè),即標(biāo)準(zhǔn)卷積的參數(shù)量是Dk×Dk×M×N,對(duì)每一個(gè)卷積核要進(jìn)行DW×DH次運(yùn)算,即標(biāo)準(zhǔn)卷積核要完成的計(jì)算量為Dk×Dk×M×N×DW×DH,深度卷積使用相同的卷積核尺寸,逐點(diǎn)卷積使用1×1×M尺寸的卷積核,共N個(gè),即深度可分離卷積的參數(shù)量為Dk×Dk×M+M×N。兩部分分別需要對(duì)每一個(gè)卷積核進(jìn)行DW×DH次運(yùn)算,則深度可分離卷積的計(jì)算量為Dk×Dk×M×DW×DH+M×N×DW×DH。將深度可分離卷積與標(biāo)準(zhǔn)卷積的參數(shù)量和計(jì)算量分別作比,可計(jì)算得出式(4)、式(5)。
參數(shù)量:
(4)
計(jì)算量:
(5)
逆殘差[8]作為MobileNet V2的核心,引入了shortcut[11]結(jié)構(gòu),實(shí)現(xiàn)了對(duì)于特征的復(fù)用,減小了模型的體積與計(jì)算量,與ResNet的shortcut結(jié)構(gòu)對(duì)比如圖2。Input表示輸入數(shù)據(jù);Output表示輸出數(shù)據(jù);input表示過(guò)程數(shù)據(jù);PW表示逐點(diǎn)卷積操作;SC表示標(biāo)準(zhǔn)卷積操作;DW表示深度卷積操作??梢园l(fā)現(xiàn)結(jié)構(gòu)模式相同,但MobileNet V2將輸入的特征圖先升維,后進(jìn)行卷積,最后降維,ResNet則相反。
圖2 網(wǎng)絡(luò)中shortcut部分結(jié)構(gòu)對(duì)比圖
深度可分離卷積與逆殘差雖然減少了參數(shù)量但會(huì)損失特征,且激活函數(shù)ReLU6同樣會(huì)產(chǎn)生低維度特征丟失的問(wèn)題。對(duì)于高維度信息相對(duì)友好的情況下,MobileNet V2選擇在降維操作之后將激活函數(shù)ReLU6替換為線(xiàn)性激活函數(shù)Linear,這一部分稱(chēng)為線(xiàn)性瓶頸(Linear Bottleneck)[8],如圖3。
圖3 線(xiàn)性瓶頸示意圖
本文數(shù)據(jù)集采用RMFD(Real-World Masked Face Dataset)[12]中的真實(shí)口罩人臉識(shí)別數(shù)據(jù)集,篩選了3 180張人臉佩戴口罩目標(biāo)和2 000張人臉目標(biāo),重新組合成本文使用的僅限于識(shí)別口罩是否佩戴的數(shù)據(jù)集1,包括佩戴口罩類(lèi)(mask)和未佩戴口罩類(lèi)(no_mask)。在重新組合數(shù)據(jù)集時(shí)發(fā)現(xiàn)數(shù)張口罩佩戴并不規(guī)范的目標(biāo),也計(jì)入佩戴口罩的人臉?lè)诸?lèi)中,本文將這些不規(guī)范的圖片提取出來(lái),集合在一起劃分為佩戴口罩不規(guī)范類(lèi)(nonstandard),組合成識(shí)別口罩佩戴是否規(guī)范的數(shù)據(jù)集2。其中由于提取出的佩戴不規(guī)范圖片較少,僅152張,與另兩類(lèi)數(shù)量差別較大,本文采取對(duì)圖像進(jìn)行添加高斯噪聲[13]、均值平滑[14]的方式,將該類(lèi)圖片數(shù)據(jù)擴(kuò)充至1 216張。其中添加高斯噪聲與均值平滑操作后的圖片與原圖相比,肉眼難以分辨,但在像素級(jí)別上對(duì)輸入數(shù)據(jù)進(jìn)行了擴(kuò)充,從而在分類(lèi)識(shí)別時(shí)獲得更多的特征進(jìn)而提高準(zhǔn)確率。
數(shù)據(jù)集包含圖像類(lèi)別及示例圖像見(jiàn)表1。
表1 數(shù)據(jù)集2包含圖像類(lèi)別及示例一覽表
實(shí)驗(yàn)操作系統(tǒng)為Windows10,CPU型號(hào)為Intel Xeon E5-2623 v4 @ 2.60GHz,顯卡型號(hào)為Nvidia Quadro P4000,64 G運(yùn)行內(nèi)存,CUDA Toolkit 9.1版本、CUDNN神經(jīng)網(wǎng)絡(luò)加速庫(kù)7.1版本以及機(jī)器視覺(jué)軟件HALCON。神經(jīng)網(wǎng)絡(luò)模型及訓(xùn)練參數(shù)如下:每次迭代訓(xùn)練樣本數(shù)為32,分100個(gè)批次,動(dòng)因子設(shè)置為0.9,正則化系數(shù)為0.000 5,初始學(xué)習(xí)率為0.001,每隔30個(gè)迭代周期,學(xué)習(xí)率減少為初始的0.1。
本文引入準(zhǔn)確率、召回率和精確率[15]對(duì)圖像分類(lèi)任務(wù)模型的性能進(jìn)行評(píng)價(jià)。
準(zhǔn)確率是預(yù)測(cè)正確的結(jié)果占所有樣本的比重,其表達(dá)式為
(6)
式中:TP表示所有正樣本中預(yù)測(cè)為正樣本的樣本;FP表示所有負(fù)樣本中預(yù)測(cè)為正樣本的樣本;FN表示所有正樣本預(yù)測(cè)為負(fù)樣本的樣本;TN表示所有負(fù)樣本中預(yù)測(cè)為負(fù)樣本的樣本。
召回率是預(yù)測(cè)正確的正樣本數(shù)占實(shí)際正樣本數(shù)的比重,其表達(dá)式為
(7)
精確率是預(yù)測(cè)正樣本中實(shí)際為正樣本的概率,其表達(dá)式為
(8)
本實(shí)驗(yàn)分為兩個(gè)部分:第一部分為對(duì)真實(shí)人臉數(shù)據(jù)集口罩是否佩戴進(jìn)行分類(lèi)識(shí)別;第二部分為對(duì)真實(shí)人臉數(shù)據(jù)集口罩佩戴是否標(biāo)準(zhǔn)進(jìn)行分類(lèi)識(shí)別。兩部分實(shí)驗(yàn)均采用MobileNet V2神經(jīng)網(wǎng)絡(luò)模型,MobileNet V2神經(jīng)網(wǎng)絡(luò)模型線(xiàn)性瓶頸塊模型結(jié)構(gòu)如圖4。MobileNet V2神經(jīng)網(wǎng)絡(luò)模型整體結(jié)構(gòu)圖如圖5。
圖4 MobileNet V2神經(jīng)網(wǎng)絡(luò)模型線(xiàn)性瓶頸塊
圖5 MobileNet V2神經(jīng)網(wǎng)絡(luò)模型結(jié)構(gòu)圖
將兩種數(shù)據(jù)集均以70:15:15的比例劃分,數(shù)據(jù)集1的訓(xùn)練過(guò)程可視化如圖6,數(shù)據(jù)集2的訓(xùn)練過(guò)程可視化如圖7。
a)損失函數(shù)曲線(xiàn) b)訓(xùn)練及驗(yàn)證過(guò)程誤差曲線(xiàn)圖6 數(shù)據(jù)集1訓(xùn)練過(guò)程
a) 損失函數(shù)曲線(xiàn) b) 訓(xùn)練及驗(yàn)證過(guò)程誤差曲線(xiàn)圖7 數(shù)據(jù)集2訓(xùn)練過(guò)程
由圖6和圖7可知,MobileNet V2神經(jīng)網(wǎng)絡(luò)在兩個(gè)數(shù)據(jù)集上的損失函數(shù)收斂性較好,誤差函數(shù)收斂較快,訓(xùn)練過(guò)程平滑。將訓(xùn)練所得模型應(yīng)用于測(cè)試集得到混淆矩陣見(jiàn)表2、表3。
表2 數(shù)據(jù)集1測(cè)試集混淆矩陣
表3 數(shù)據(jù)集2測(cè)試集混淆矩陣
在顯示結(jié)果時(shí)每個(gè)類(lèi)別賦予一個(gè)數(shù)字代替,替代表見(jiàn)表4。
表4 數(shù)據(jù)集內(nèi)不同類(lèi)別數(shù)字替代表
MobileNet V2神經(jīng)網(wǎng)絡(luò)對(duì)數(shù)據(jù)集1的測(cè)試效果見(jiàn)表5,其中口罩部分被手部或其他物體遮擋時(shí)也可以較好地被識(shí)別。
表5 測(cè)試集1檢測(cè)結(jié)果
MobileNet V2神經(jīng)網(wǎng)絡(luò)對(duì)數(shù)據(jù)集2的測(cè)試效果見(jiàn)表6,結(jié)果顯示當(dāng)被測(cè)目標(biāo)佩戴反光物體使圖片中有多個(gè)人臉出現(xiàn)時(shí),模型也可以準(zhǔn)確進(jìn)行識(shí)別。
表6 測(cè)試集2檢測(cè)結(jié)果
結(jié)合評(píng)價(jià)指標(biāo),計(jì)算兩個(gè)數(shù)據(jù)集每個(gè)分類(lèi)的精確率、召回率和平均準(zhǔn)確率,評(píng)價(jià)結(jié)果見(jiàn)表7。
由表7的評(píng)價(jià)結(jié)果可知:MobileNet V2神經(jīng)網(wǎng)絡(luò)模型對(duì)于口罩是否佩戴以及佩戴是否標(biāo)準(zhǔn)的識(shí)別具有良好的效果,各類(lèi)平均準(zhǔn)確率、召回率和精確率均在97%以上,但是在識(shí)別佩戴是否標(biāo)準(zhǔn)時(shí)整體檢測(cè)精度下降,這可能是因?yàn)榕宕鞑灰?guī)范的圖像樣本較少,或佩戴不標(biāo)準(zhǔn)類(lèi)與其他兩類(lèi)圖像較為相似,模型進(jìn)行了錯(cuò)誤識(shí)別。
為了進(jìn)一步驗(yàn)證本文算法的有效性,將本文算法與其他算法進(jìn)行比較,結(jié)果見(jiàn)表8。其中,由于文獻(xiàn)[6]中對(duì)于口罩的檢測(cè)僅為是否佩戴,這里僅用數(shù)據(jù)集1的實(shí)驗(yàn)結(jié)果進(jìn)行比較。
表8 算法性能比較
從表8的比較結(jié)果可知,本文算法平均準(zhǔn)確率比YOLOV3算法提升19.3%,比改進(jìn)YOLOV3算法提升4.4%,但對(duì)于多人臉目標(biāo)檢測(cè),YOLOV3算法與改進(jìn)YOLOV3算法均可實(shí)現(xiàn)多人臉同時(shí)檢測(cè),效率高于本文算法,但本文算法準(zhǔn)確率較高,能在一定程度上滿(mǎn)足實(shí)際檢測(cè)需求。
本文針對(duì)已有口罩佩戴識(shí)別方法需要標(biāo)注、時(shí)間成本高、硬件配置要求高等問(wèn)題,提出一種基于MobileNet V2的口罩佩戴識(shí)別方法。該方法以MobileNet V2目標(biāo)分類(lèi)算法為基礎(chǔ),通過(guò)對(duì)原始數(shù)據(jù)集進(jìn)行擴(kuò)充,實(shí)現(xiàn)了高準(zhǔn)確度、高效率的口罩佩戴識(shí)別及口罩佩戴是否規(guī)范的識(shí)別。通過(guò)RMFD數(shù)據(jù)集進(jìn)行了有效性的驗(yàn)證,結(jié)果顯示,該方法對(duì)口罩是否佩戴的檢測(cè)準(zhǔn)確率可達(dá)99.83%,對(duì)口罩佩戴是否標(biāo)準(zhǔn)的檢測(cè)準(zhǔn)確率可達(dá)98.97%,可以滿(mǎn)足口罩佩戴檢測(cè)的實(shí)際需求,具有較強(qiáng)的適用性。