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