蔣益鳴 范希喆 張美嘉 邱少君 付貴忠
(蘇州科技大學(xué)機(jī)械工程學(xué)院,江蘇 蘇州 215009)
新冠疫情爆發(fā)以來,為保障社會(huì)的平穩(wěn)運(yùn)行,疫情防控中已經(jīng)消耗了大量的人力和物力。目前在大部分公共場(chǎng)所,出于疫情防控安全的考慮,通過保安人員檢查口罩佩戴的情況,該方式會(huì)消耗大量人力資源,增加防疫人員的感染風(fēng)險(xiǎn),并且無法實(shí)現(xiàn)全天候的監(jiān)測(cè)。與傳統(tǒng)人工檢測(cè)相比,機(jī)器視覺技術(shù)的口罩識(shí)別系統(tǒng)具有識(shí)別準(zhǔn)確、成本低廉、人力消耗小和全天候監(jiān)測(cè)等特點(diǎn)。
基于卷積神經(jīng)網(wǎng)絡(luò)的口罩檢測(cè)方法屬于機(jī)器視覺技術(shù),是一種通過機(jī)器模仿人類視覺功能來進(jìn)行測(cè)量與判斷的方式[1]。一套典型的視覺檢測(cè)系統(tǒng)主要包括圖像采集、圖像處理分析及輸出和顯示。機(jī)器視覺領(lǐng)域的圖像處理和分析技術(shù)已從機(jī)器學(xué)習(xí)發(fā)展到最新的卷積神經(jīng)網(wǎng)絡(luò)方法。隨著工業(yè)技術(shù)的不斷發(fā)展,自動(dòng)化和智能化水平也在不斷發(fā)展,用于疫情防控的口罩檢測(cè)就是其中一個(gè)重要的應(yīng)用。雖然有部分學(xué)者研究了口罩檢測(cè)方法[2-3],但是對(duì)于一些特殊的場(chǎng)景關(guān)注不夠,因此該文針對(duì)口罩檢測(cè)任務(wù)進(jìn)行了研究,解決了現(xiàn)實(shí)場(chǎng)景中可能出現(xiàn)的口罩顏色不常見、佩戴不規(guī)范以及光線弱等問題,并在可移動(dòng)設(shè)備上進(jìn)行了應(yīng)用。
在進(jìn)行試驗(yàn)前需要提前篩選試驗(yàn)數(shù)據(jù)集,數(shù)據(jù)集的豐富程度往往決定了模型訓(xùn)練的效果,場(chǎng)景和特征豐富的圖像數(shù)據(jù)能提高模型的泛化能力,在實(shí)際檢測(cè)時(shí)能提高對(duì)不同情形的應(yīng)變能力。目前公開的人臉識(shí)別的數(shù)據(jù)集有MAFA、WIDER FACE數(shù)據(jù)集圖片,其中MAFA數(shù)據(jù)集主要包括各種面部被遮擋的檢測(cè)的數(shù)據(jù)集,且遮擋種類多樣;WIDER FACE數(shù)據(jù)集是人臉識(shí)別常用數(shù)據(jù)集,且多為不佩戴口罩的情況。鑒于口罩種類、刻意遮擋物種類不同等會(huì)對(duì)訓(xùn)練檢測(cè)有巨大的影響,而該文的實(shí)時(shí)口罩佩戴檢測(cè)需要較高準(zhǔn)確度,所以選擇的數(shù)據(jù)集也需要更全面。該文選取了檢票口、室內(nèi)取景以及機(jī)場(chǎng)等公共場(chǎng)合的,近、遠(yuǎn)距離相結(jié)合的,并考慮了背景虛化、逆光環(huán)境和側(cè)臉拍攝等的樣本。數(shù)據(jù)集標(biāo)注常用工具為L(zhǎng)abelImg軟件,能對(duì)人臉是否佩戴口罩進(jìn)行判斷,分為“Mask”(已佩戴)和“No Mask”(未佩戴)。
因?yàn)樾枰軌蜃龅綄?shí)時(shí)自動(dòng)檢測(cè)并準(zhǔn)確識(shí)別圖片信息是否為正確佩戴口罩,所以要求該系統(tǒng)具有比較完備的組成,其主要組成部分如圖1所示,即圖像采集、圖像處理、圖像分析和結(jié)果輸出[4]。
該試驗(yàn)訓(xùn)練時(shí)不需要圖像采集,在測(cè)試時(shí)通過筆記本電腦的攝像頭來采集圖像。圖像處理是將輸入的圖像提前進(jìn)行預(yù)處理,讀取所有照片以后對(duì)圖像進(jìn)行裁剪灰度化和平滑處理,采用二值化圖像將圖像降維,轉(zhuǎn)為黑白圖像,方便進(jìn)行圖像特征區(qū)域識(shí)別和分類檢測(cè)。圖像分析是對(duì)已經(jīng)通過圖像處理步驟的圖像進(jìn)行特征裁取,并對(duì)所需要的口罩部分進(jìn)行定位和分析,最后進(jìn)行圖像檢測(cè)結(jié)果的輸出,并顯示在顯示屏上。
該文模型測(cè)試環(huán)境是基于TensorFlow深度學(xué)習(xí)框架開發(fā)的。其特征提取應(yīng)用了DarkNet-53多尺度特征學(xué)習(xí)與融合網(wǎng)絡(luò)結(jié)構(gòu),如圖2所示。
該模型的設(shè)計(jì)思路如下。
首先,DarkNet-53有53層卷積層,通過卷積層1進(jìn)行特征的學(xué)習(xí),利用殘差模塊1~殘差模塊5進(jìn)行尺寸壓縮和特征學(xué)習(xí),殘差模塊的具體結(jié)構(gòu)如圖3所示。其中殘差模塊包括梯度回傳回路即跳躍連接,可以有效防止訓(xùn)練深層網(wǎng)絡(luò)出現(xiàn)梯度消失的現(xiàn)象。此外,用卷積層步長(zhǎng)為2的方式代替?zhèn)鹘y(tǒng)的池化層,有利于保留紋理細(xì)節(jié)特征。
殘差結(jié)構(gòu)所用的跳躍連接是將輸入特征圖與經(jīng)過處理的輸出特征圖經(jīng)過級(jí)聯(lián)層進(jìn)行維度拼接后輸出,如公式(1)所示。
式中:x為模塊輸入;f(x)為經(jīng)過本模塊卷積層特征學(xué)習(xí)后的輸出;y為最終的模塊輸出。
其次,該模型采用類金字塔結(jié)構(gòu)進(jìn)行預(yù)測(cè),經(jīng)過包括步長(zhǎng)為2的殘差模塊時(shí),每次壓縮圖像尺寸都會(huì)縮小一半。如果設(shè)定圖像輸入時(shí)尺寸為256×256像素(有時(shí)也會(huì)選擇416×416像素作為輸入圖像的尺寸);經(jīng)過卷積層1時(shí),圖像尺寸變?yōu)?56×256像素;經(jīng)過殘差模塊1時(shí),圖像尺寸變?yōu)?28×128像素。依此類推,經(jīng)過殘差模塊5時(shí),圖像尺寸變?yōu)?×8像素。
DarkNet-53主干網(wǎng)絡(luò)的詳細(xì)參數(shù)見表1,隨著網(wǎng)絡(luò)深度的加深,卷積層通道數(shù)也在增加。隨著特征的不斷學(xué)習(xí),卷積層學(xué)習(xí)到的語義特征越來越豐富,因此需要更多的卷積層通道數(shù)來表征。卷積核選用的是1×1和3×3的組合,這兩種卷積核可以減少模型的參數(shù)量,同時(shí)能進(jìn)行特征學(xué)習(xí)和特征融合。
表1 DarkNet-53主干網(wǎng)絡(luò)詳細(xì)參數(shù)
因此,殘差模塊3~殘差模塊5的特征輸出尺寸分別為原圖的1/8、1/16和1/32,在隨后的網(wǎng)絡(luò)中分別對(duì)3個(gè)尺度的特征進(jìn)行特征學(xué)習(xí)和檢測(cè)結(jié)果預(yù)測(cè),這種技術(shù)稱之為多尺度特征學(xué)習(xí),可以讓網(wǎng)絡(luò)的特征適應(yīng)圖像中可能出現(xiàn)的各種尺寸的物體。
再次,檢測(cè)框的尺寸往往也會(huì)影響最終的檢測(cè)效果,因?yàn)闄z測(cè)框的尺寸需要定位所檢測(cè)的目標(biāo)。一般來說是通過K-means聚類的方法對(duì)數(shù)據(jù)集中的標(biāo)注框進(jìn)行統(tǒng)計(jì)分析,找到適用于特定數(shù)據(jù)集的標(biāo)注框尺寸。對(duì)人臉佩戴口罩的數(shù)據(jù)集的訓(xùn)練能獲得相對(duì)合適的先驗(yàn)框,在此使用的K-Means聚類具體過程如下。。
根據(jù)數(shù)據(jù)的標(biāo)注框尺寸的設(shè)定劃分為k個(gè)簇,將簇上的緊密連接連接起來,然后計(jì)算均方誤差SSE,如公式(2)所示。
式中:k為k個(gè)簇;j為正在計(jì)算的簇的序號(hào);Cj為簇j內(nèi)數(shù)據(jù)樣本的集合;x為Cj內(nèi)樣本的數(shù)值;mj為Cj簇的質(zhì)心。
在不同的迭代中去優(yōu)化,減小均分誤差,當(dāng)誤差達(dá)到設(shè)定的數(shù)值或者誤差幾乎穩(wěn)定不變時(shí)停止迭代。K-Means算法可以更高效地對(duì)檢測(cè)特征和結(jié)果進(jìn)行聚類強(qiáng)化,提高整個(gè)系統(tǒng)的檢測(cè)精度。
最后,利用檢測(cè)框進(jìn)行檢測(cè),需要采用非極大值的抑制方式去除置信度不高的候選框,具體過程如下。對(duì)圖像進(jìn)行檢測(cè)時(shí),如果輸入尺寸為416像素,檢測(cè)模型會(huì)有3個(gè)輸出,即即13×13像素、26×26像素和52×52像素,輸出像素尺寸總和為13×13+26×26+52×52=10647像素,數(shù)量為分類類別n(n在該試驗(yàn)中取2+5,2為戴口罩和不戴口罩2種情況,5為檢測(cè)框的位置、數(shù)量信息及置信度);通過置信度篩選大于閾值的預(yù)測(cè)作為新的預(yù)測(cè);計(jì)算置信度得分;將置信度得分進(jìn)行排序,得到最大值,找到和這個(gè)得分最大的預(yù)測(cè)類別相同的計(jì)算IOU值,通過加權(quán)計(jì)算得到最終的預(yù)測(cè)框。
最后,輸出預(yù)測(cè)模塊部分采用的損失函數(shù)是CIOU損失函數(shù)[5],計(jì)算預(yù)測(cè)框和真實(shí)標(biāo)記框之間的差異,其計(jì)算方法如公式(3)~公式(5)所示。
式中:d為真實(shí)框的中心點(diǎn)與預(yù)測(cè)框中心點(diǎn)的距離;c為預(yù)測(cè)框與真實(shí)框交集的最小矩形的對(duì)角線距離;α為平衡比例的一個(gè)系數(shù);v為測(cè)量長(zhǎng)寬比的一致性;wgt和hgt分別為真實(shí)框的寬和高;w和h分別為預(yù)測(cè)框的寬和高。
該試驗(yàn)是在處理器為i5-6500,GPU為英偉達(dá)1050顯卡的筆記本上進(jìn)行的,在TensorFlow深度學(xué)習(xí)平臺(tái)上進(jìn)行運(yùn)算,并采用基于Cuda編程的GPU進(jìn)行加速訓(xùn)練。
當(dāng)訓(xùn)練時(shí),先確保系統(tǒng)通過數(shù)據(jù)加載器載入標(biāo)注好的數(shù)據(jù)集,沒有對(duì)數(shù)據(jù)集進(jìn)行特別的圖像預(yù)處理。再加載卷積神經(jīng)網(wǎng)絡(luò)模型,通過圖像讀取文件讀取訓(xùn)練集,進(jìn)行人臉識(shí)別并獲取人臉的位置,獲取后裁取圖片并保存。在得到灰化后的圖像以后,通過測(cè)試文件對(duì)截取得到的畫面進(jìn)行反復(fù)訓(xùn)練,當(dāng)損失函數(shù)趨于穩(wěn)定就可以即停止訓(xùn)練。通過K-Means聚類處理選擇預(yù)選框,選擇尺寸為10×13、16×30、33×33、45×45、45×62、90×90、116×90、156×195以及373×326像素的候選框。
該測(cè)試過程采用的模型是在上一步中訓(xùn)練得到的,測(cè)試的數(shù)據(jù)可以通過2種方式獲得,第一種是利用攝像頭實(shí)時(shí)采集圖像,第二種是載入本地圖像。通過以上2種方式獲得的圖像將在模型中載入,模型將針對(duì)圖像輸出檢測(cè)結(jié)果,并同步標(biāo)注好“Mask”或“No Mask”以及對(duì)應(yīng)的預(yù)測(cè)置信度。
如果某張圖像的檢測(cè)結(jié)果“Mask”數(shù)值標(biāo)注為1.0,那么檢測(cè)模型認(rèn)為已佩戴口罩的概率是100%,“Mask”標(biāo)注框的顏色是綠色。反之,“No Mask”標(biāo)注框的顏色是紅色,如果標(biāo)注數(shù)值為0.8,就認(rèn)為沒有佩戴口罩的概率是0.8。在測(cè)試時(shí),通過時(shí)間函數(shù)記錄運(yùn)行程序所需要的時(shí)間。
為了驗(yàn)證該模型在正確佩戴口罩、未完全佩戴口罩、刻意遮擋臉部以及多種顏色口罩下的檢測(cè)結(jié)果,采用多種場(chǎng)景下的照片,結(jié)果如圖4所示。
可以看出,該模型在光照相對(duì)清晰、側(cè)面拍照或非常見顏色口罩的情況下都能夠?qū)⒖谡謾z測(cè)出來。第二張圖片屬于光照較弱的情況,模型也能夠完成對(duì)口罩的檢測(cè)。最后一組圖片為口罩從完全未戴到戴好,可以看出模型對(duì)于佩戴口罩和未佩戴口罩的識(shí)別結(jié)果都很理想。當(dāng)口罩只戴了一部分,模型會(huì)將其識(shí)別為未佩戴口罩,如果將口罩戴到鼻子部位,將識(shí)別為已佩戴。通過分析可以看出,檢測(cè)模型在檢測(cè)口罩佩戴規(guī)范性方面有比較良好的效果,但是仍有提升的空間。
此外,該文還對(duì)該模型進(jìn)行了量化指標(biāo)的評(píng)估,見表2。根據(jù)表2的數(shù)據(jù),檢測(cè)的平均精度值為96.5%,計(jì)算速度為67 F/s,即每秒可以處理67張圖片,考慮實(shí)際使用時(shí)鏡頭前面的待檢測(cè)人群是慢慢出現(xiàn)的,該檢測(cè)速度完全可以滿足需求。
表2 模型的運(yùn)行結(jié)果
綜上所述,口罩佩戴檢測(cè)系統(tǒng)目前雖然已經(jīng)發(fā)展成熟,但面對(duì)光線極端差異、人群復(fù)雜的情況下仍然可能或多或少有誤判、漏判的問題,可以在圖像預(yù)處理過程中進(jìn)行分析,通過圖像增強(qiáng)的方式提供更多的數(shù)據(jù),提高檢測(cè)的準(zhǔn)確性。
該文主要對(duì)人臉口罩佩戴檢測(cè)進(jìn)行了深入研究,在標(biāo)注了自建的數(shù)據(jù)集后,采用基于DarkNet -53的YOLOv3模型進(jìn)行數(shù)據(jù)集訓(xùn)練,對(duì)弱光照、側(cè)拍和不規(guī)范佩戴口罩的情況都得到了不錯(cuò)的效果,試驗(yàn)的檢測(cè)精度達(dá)到96.5%,檢測(cè)速度達(dá)到67 F/s。