姜月武,張玉金,施建新
(上海工程技術(shù)大學(xué) 電子電氣工程學(xué)院, 上海 201620)
新型冠狀病毒(COVID—19)主要通過呼吸道飛沫和接觸傳播[1],具有很強的致病力和傳染力。截止到2020年11月17日,全球累計確診超過5 525萬,累計死亡超132萬。醫(yī)用外科口罩可以有效地預(yù)防飛沫引起的呼吸道傳染病[2],佩戴口罩已成為大多數(shù)國家防疫的一項基本措施。人流密集場合實現(xiàn)實時的口罩佩戴及規(guī)范性檢測具有重要的理論和實際意義。目前存在多種口罩檢測算法,百度基于Pyramid Box-Lite[3]構(gòu)建了口罩檢測的輕量級模型,該模型是針對移動端優(yōu)化的模型,可用于檢測人臉是否佩戴口罩。AIZOOM使用SSD(single shot multibox detector)[4]類型的架構(gòu)設(shè)計了一種微型模型實現(xiàn)瀏覽器以及終端設(shè)備上的口罩檢測。牛作東等人[5]提出了一種基于Re-tina Face算法[6]改進(jìn)模型,該模型在特征金字塔中引入自注意力機制優(yōu)化損失函數(shù),實現(xiàn)自然場景下的口罩佩戴檢測。研究發(fā)現(xiàn)多數(shù)檢測口罩算法僅識別是否佩戴口罩,解決了口罩佩戴有無的問題卻沒有解決規(guī)范性問題?,F(xiàn)有的數(shù)據(jù)集包含佩戴口罩和未佩戴口罩兩種情況,如人臉口罩?jǐn)?shù)據(jù)集(MAFA)[7]、真實面部口罩?jǐn)?shù)據(jù)集(RMFRD)[8]等包含了大量的佩戴口罩圖像,然而對口罩佩戴是否規(guī)范并沒有詳細(xì)的區(qū)分。使用這些數(shù)據(jù)集進(jìn)行訓(xùn)練可以較好地識別人們有沒有佩戴口罩,尚不能用于識別是否規(guī)范佩戴口罩。
本文以殘差網(wǎng)絡(luò)[9]為基礎(chǔ)網(wǎng)絡(luò),同時引入通道和空間注意力機制[10]構(gòu)成注意力殘差網(wǎng)絡(luò)對佩戴口罩圖像進(jìn)行特征提取。殘差網(wǎng)絡(luò)進(jìn)行不同層次的特征融合,注意力機制通過增強有用信息的聚合和無用信息的抑制提高網(wǎng)絡(luò)對主要特征的敏感度。
本文所提出的檢測口罩規(guī)范佩戴算法主要有兩部分構(gòu)成,第一部分構(gòu)建實驗數(shù)據(jù)集,該數(shù)據(jù)集包含規(guī)范佩戴口罩、不規(guī)范佩戴口罩和未佩戴口罩3種類別;第二部分本文基于殘差網(wǎng)絡(luò),引入通道注意力機制和空間注意力機制增強相關(guān)特征表達(dá)和抑制無關(guān)信息,增強網(wǎng)絡(luò)對口罩部位特征學(xué)習(xí)。本文整體的算法架構(gòu)如圖1所示。
圖1 本文算法的總體架構(gòu)
現(xiàn)有人臉口罩?jǐn)?shù)據(jù)集對規(guī)范佩戴口罩和不規(guī)范佩戴口罩并未加以區(qū)分,如何劃分是否規(guī)范佩戴口罩具有一定的難度。為了給本文算法構(gòu)建訓(xùn)練集和測試集,需要對數(shù)據(jù)集進(jìn)行進(jìn)一步劃分。采用人工方法去標(biāo)注海量數(shù)據(jù)集工作量巨大,阻礙算法的實際應(yīng)用。根據(jù)已有數(shù)據(jù)集以及佩戴口罩特性,本文提出了一種基于口鼻檢測的方法對數(shù)據(jù)集進(jìn)行重新標(biāo)注。該方法基于改進(jìn)的Haar級聯(lián)方式[11]進(jìn)行面部特征提取獲取口鼻特征,通過口鼻分類器檢測口鼻是否存在?;诳诒菣z測的口罩佩戴實驗數(shù)據(jù)集構(gòu)建流程如圖2所示,規(guī)范佩戴口罩面部口鼻被遮蓋,不規(guī)范佩戴口罩主要有口、鼻和口鼻未被遮蓋3種情況。
圖2 基于口鼻檢測的口罩佩戴實驗數(shù)據(jù)集構(gòu)建
根據(jù)該特點,本文使用口鼻檢測器來檢測圖像中是否包括口、鼻,若檢測出口或鼻的存在即可判定為不規(guī)范佩戴口罩,實驗數(shù)據(jù)集構(gòu)建算法如下:
1:Input:Unclassified mask data imageI
2:Dm=Mouth detectorDn=Nose detector
3:If·Dn(I)TRUE:
ImageIis saved as incorrectly masked
Else if:Dm(I)TRUE:
ImageIis saved as incorrectly masked
Else:
ImageIis saved as correctly masked
4:Obtain sort data set
實驗數(shù)據(jù)集的具體建立過程如下:基于已有的口罩?jǐn)?shù)據(jù)集(RMFRD,MAFA),首先將圖像輸入到鼻檢測器,檢測到鼻子外漏可判定為不規(guī)范佩戴口罩,再進(jìn)一步使用口部檢測器,檢測到口部可判為不規(guī)范佩戴口罩。當(dāng)口鼻均未被檢測到可視為規(guī)范佩戴口罩。在此基礎(chǔ)上,添加未佩戴口罩類別。完成數(shù)據(jù)分類后,進(jìn)行人工核驗對少部分劃分錯誤的數(shù)據(jù)進(jìn)行剔除。規(guī)范佩戴口罩的人臉圖像1 645張,不規(guī)范佩戴口罩的人臉圖像1 465張,未佩戴口罩的人臉圖像1 843張,由這3個類別共同構(gòu)成了實驗數(shù)據(jù)集,共計4 773張圖片。
由于每張圖片的亮度、對比度等存在一定差異,標(biāo)準(zhǔn)化處理使數(shù)據(jù)有可比性,同時使相比較的2個數(shù)據(jù)之間的相對關(guān)系轉(zhuǎn)換成標(biāo)準(zhǔn)模式,減小仿射變換帶來的影響。首先對圖像進(jìn)行直方圖均衡實現(xiàn)光照歸一化,直方圖均衡化是一種利用灰度變換自動調(diào)節(jié)圖像對比質(zhì)量的方法,通過灰度級的概率密度函數(shù)求出灰度變換函數(shù)s。變換函數(shù)T(r)與原圖像概率密度函數(shù)pr(r)之間的關(guān)系
(1)
式中T(r)滿足0≤T(r)≤1。
直方圖均衡會降低有用信號的對比度,使用Z-score標(biāo)準(zhǔn)化來增強圖像的對比度。Z-score標(biāo)準(zhǔn)化是基于原始數(shù)據(jù)的均值和標(biāo)準(zhǔn)差來進(jìn)行數(shù)據(jù)的標(biāo)準(zhǔn)化,其計算公式如下
(2)
式中Z為原始值與總體平均值間的距離,μ為均值,σ為標(biāo)準(zhǔn)差。
在殘差網(wǎng)絡(luò)上引入注意力機制,分別在通道和空間維度上進(jìn)行注意權(quán)重的推斷。將權(quán)重與原始特征相乘實現(xiàn)特征重要性的自適應(yīng)調(diào)整,使得所要關(guān)注的特征被強化而忽略其他部分,提高特征圖的描述能力以區(qū)分佩戴口罩規(guī)范性類別。殘差網(wǎng)絡(luò)的學(xué)習(xí)單元可以有效地緩解反向傳播中的梯度消失問題,從而使得深度網(wǎng)絡(luò)的性能保持穩(wěn)定,解決性能退化問題。
通道注意力機制:通道注意力機制關(guān)注最有意義的特征是什么形態(tài)。輸入一個特征圖F∈RC×H×W,使用平均池化和最大池化進(jìn)行空間信息的聚合,得到平均池化后的特征圖Favg和最大池化后的Fmax。將得到的特征圖輸入到共享網(wǎng)絡(luò),該共享網(wǎng)絡(luò)有一個隱含層的感知機構(gòu)成,輸出層的大小為1×1×C。最后將2個新得到的特征圖相加經(jīng)過Sigmod激活函數(shù)得到權(quán)重系數(shù)Mc∈RC×1×1,將權(quán)重系數(shù)和原始特征相乘得到基于通道注意力的新特征。計算方式如下
Mc(F)=σ(MLP(avgPool(F))+MLP(maxPool(F)))
=σ(W1(W0(Favg))+W1(W0(Fmax)))
(3)
式中σ為Sigmod激活函數(shù),W0,W1為多層感知機(MLP)的權(quán)重。
Ms(F)=σ(Conv7×7([avgPool(F);maxPool(F)]))
(4)
式中σ為Sigmod激活函數(shù),Conv7×7為卷積核為7×7的標(biāo)準(zhǔn)卷層。圖3為通道注意力機制與空間力機制結(jié)構(gòu)。
圖3 注意力機制結(jié)構(gòu)
殘差網(wǎng)絡(luò)(ResNet)是一種有效的特征提取網(wǎng)絡(luò),ResNet使用卷積層捷徑連接支路構(gòu)成基本的殘差學(xué)習(xí)單元,將這些基本單元順序疊加后可有效減小訓(xùn)練不佳和性能削減問題。殘差網(wǎng)絡(luò)每隔2層進(jìn)行殘差學(xué)習(xí),層與層之間的恒等映射,使網(wǎng)絡(luò)可以融合淺層與深層特征實現(xiàn)較好的特征學(xué)習(xí)性能。在激活層前加入BN(batch normalization)層[12]加速網(wǎng)絡(luò)收斂,有效地避免梯度的消失和爆炸。深度網(wǎng)絡(luò)使用交叉熵?fù)p失函數(shù),通過隨機梯度下降(stochastic gradient descent,SGD)法進(jìn)行函數(shù)優(yōu)化。該網(wǎng)絡(luò)的損失函數(shù)包含分類損失項和正則化項
(5)
式中 第一項Lclassifier為交叉熵分類損失,第二項為L2正則項用來防止過擬合問題,λ為正則項系數(shù),w為權(quán)重參數(shù)。
特征提取網(wǎng)絡(luò)是基于殘差網(wǎng)絡(luò)引入通道注意力(channel attention)和空間注意力(spatial attention)組成(下文縮寫為CSA-ResNet)。使用ResNet來克服深度網(wǎng)絡(luò)性能削減問題,注意力機制使得口罩部位特征實現(xiàn)強化,在學(xué)習(xí)中占有更大的權(quán)重實現(xiàn)口罩規(guī)范性檢測。本文在ResNet網(wǎng)絡(luò)上部署了兩處注意力機制模塊,分別為第一層卷積層和最后一層卷積層之后,這樣的布置更有利于保持殘差模塊的完整。數(shù)據(jù)輸入ResNet后經(jīng)過第一層卷積層后輸出特征圖F,經(jīng)過通道注意加權(quán)后得到F1,再將F1傳入空間注意力機制加權(quán)后得到F2,將新特征輸入到剩余的殘差模塊。在最后一層卷積層執(zhí)行同性的操作。特征提取網(wǎng)絡(luò)結(jié)構(gòu)圖如圖4所示,計算方式如式(6)所示
圖4 提取特征的網(wǎng)絡(luò)結(jié)構(gòu)
F1=Mc(F)?F
F2=Mc(F1)?F1
(6)
從1.2節(jié)構(gòu)建的實驗數(shù)據(jù)集中分別隨機抽取90 %的樣本作為訓(xùn)練集(包含未佩戴口罩1 660張、規(guī)范佩戴口罩1 444張和不規(guī)范佩戴口罩1 320張),余下作為測試集(包含未佩戴口罩183張、規(guī)范佩戴口罩201張和不規(guī)范佩戴口罩145張)進(jìn)行模型的訓(xùn)練和測試。實驗均使用NVIDIA RTX 2080Ti GPU進(jìn)行加速處理。每次實驗迭代250次(epoch),初始學(xué)習(xí)率為0.01,當(dāng)?shù)螖?shù)大于20后,每5次迭代學(xué)習(xí)率以0.9倍衰減。
在圖像數(shù)據(jù)輸入深度網(wǎng)絡(luò)之前,使用線上數(shù)據(jù)增強手段,包括隨機水平翻折、隨機中心裁剪擴展數(shù)據(jù)的不同形態(tài),使數(shù)據(jù)內(nèi)容更加豐富增強網(wǎng)絡(luò)的泛化性。本文算法在測試集上每次實驗的預(yù)測準(zhǔn)確率均在96 %以上,平均預(yù)測準(zhǔn)確率97.240 %,最高可達(dá)97.732 %。預(yù)測準(zhǔn)確率波動較小,說明模型的性能穩(wěn)定。圖5為CSA-ResNet和ResNet在測試集實驗的混淆矩陣,可以發(fā)現(xiàn):
1)未佩戴口罩、不規(guī)范佩戴口罩和規(guī)范佩戴口罩的預(yù)測準(zhǔn)確率在圖5(a)為93.99 %,99.31 %和100 %,圖5(b)中為91.80 %,95.86 %和100 %。加入注意力機制后不規(guī)范佩戴口罩準(zhǔn)確率有了明顯提高,不規(guī)范佩戴口罩圖像內(nèi)容與其余兩類相對接近較難識別。加入注意力機制后改善了該問題,預(yù)測準(zhǔn)確率得到提高,模型具有一定的有效性。
2)佩戴口罩(規(guī)范佩戴和不規(guī)范佩戴)的樣本被分類成未佩戴口罩的樣本在圖5(a)中為0.4 %,圖5(b)為2.43 %,在檢測是否配帶口罩上也有很大提升。規(guī)范佩戴和不規(guī)范佩戴之間并未出現(xiàn)誤判。
3)圖5(a)存在5.46 %的未佩戴口罩的樣本被誤判成佩戴口罩(包含規(guī)范佩戴和不規(guī)范佩戴)的樣本,相較于圖5(b)8.20 %的識別錯誤率有了明顯的下降。模型可能會受到遮擋、大角度側(cè)臉、光照、對比等影響造成誤判,通過引入注意力機制有效緩解了該問題。
圖5 口罩識別算法混淆矩陣
圖6是CSA-ResNet和ResNet迭代250次的準(zhǔn)確率曲線和Loss曲線圖,可以看出改進(jìn)的CSA-ResNet網(wǎng)絡(luò)的性能優(yōu)于ResNet。準(zhǔn)確率的波動相對較小,說明了本文模型的有效性。CSA-ResNet的Loss值低于ResNet說明網(wǎng)絡(luò)的優(yōu)化性能更好,Loss曲線并未出現(xiàn)過擬合的現(xiàn)象。
圖6 準(zhǔn)確率和Loss變化曲線
本文基于殘差網(wǎng)絡(luò)和通道注意力、空間注意力構(gòu)建了特征提取網(wǎng)絡(luò)。為驗證加入注意力機制對口罩規(guī)范性檢測的影響,進(jìn)行消融實驗來驗證注意力機制的有效性。實驗結(jié)果如表1所示,第一組為ResNet網(wǎng)絡(luò),第二組為使用注意力機制網(wǎng)絡(luò)(CSA-ResNet),可見第二組最低準(zhǔn)確率高于第一組,平均準(zhǔn)確率和最高分別提高1.777個和1.702個百分點。由實驗結(jié)果可知改進(jìn)后的網(wǎng)絡(luò)的合理性和有效性。
表1 在測試集上的5次試驗的準(zhǔn)確率 %
使用可視化技術(shù)Grad-CAM[13]對本文提出的網(wǎng)絡(luò)進(jìn)行定性分析,Grad-CAM使用梯度來計算卷積層中空間位置的重要性,構(gòu)建熱力圖直觀展示卷積神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)到的特征。從圖7中可以清晰發(fā)現(xiàn)本文算法對口鼻部位的熱力圖覆蓋范圍優(yōu)于ResNet網(wǎng)絡(luò)。CSA-ResNet能更好地學(xué)習(xí)和利用目標(biāo)區(qū)域的信息,并從中聚合特征。從圖中可以發(fā)現(xiàn),注意力機制可以很好地挖掘口鼻區(qū)域的信息,并引導(dǎo)網(wǎng)絡(luò)更好地利用聚合特征進(jìn)行分類。
圖7 基于Grad-CAM可視化特征參與區(qū)域
為了驗證網(wǎng)絡(luò)模型在真實場景下檢測效果,構(gòu)建了一個小型真實環(huán)境數(shù)據(jù)集。數(shù)據(jù)集包含6名成員,每名成員規(guī)范佩戴口罩圖片5張、不規(guī)范佩戴口罩10張、未佩帶口罩5張,合計共120張圖片。在該數(shù)據(jù)集上進(jìn)行模型測試,統(tǒng)計識別的準(zhǔn)確率。如表2所示,最終的準(zhǔn)確率為96.7 %,相較于模型在測試集上的準(zhǔn)確率略低。模型的最后一層為SoftMax層,輸出表征了不同類別之間的相對概率,圖8為一些測試圖像的SoftMax分類得分的可視化直方圖。
表2 現(xiàn)實場景下的識別準(zhǔn)確率
圖8 測試圖像的分類得分直方圖
本文設(shè)計了一種口罩佩戴規(guī)范檢測算法,相較于現(xiàn)有佩戴口罩檢測算法進(jìn)一步解決了口罩佩戴是否規(guī)范的問題。該網(wǎng)絡(luò)結(jié)合殘差網(wǎng)絡(luò)與注意力機制的優(yōu)點實現(xiàn)口罩規(guī)范性端到端的識別。通過測試集的實驗結(jié)果和現(xiàn)實場景下的實現(xiàn)結(jié)果證明了算法的有效性和實用性,達(dá)到識別是否規(guī)范佩戴口罩的目標(biāo)。未來輕量級數(shù)據(jù)應(yīng)用將會更廣泛,設(shè)計更好的網(wǎng)絡(luò)應(yīng)用在輕量級數(shù)據(jù)集上有利于實現(xiàn)快速場景應(yīng)用,這將是接下來的進(jìn)一步研究的工作。