李夢茹,肖秦琨,韓澤佳
(1.西安工業大學 兵器科學與技術學院,陜西 西安 710021;2.西安工業大學 電子信息工程學院,陜西 西安 710021)
現階段,針對人臉口罩佩戴檢測任務的算法大多與目標檢測算法通用,但是由于口罩佩戴檢測環境復雜、目標密集、遮擋以及小尺度目標等問題,使得現有目標檢測算法應用效果差強人意。因此許多國內外學者在現有目標檢測算法基礎上進行了大量研究并取得了大量成果。文獻[2]針對口罩檢測任務中特征提取不均衡和利用效率不夠高的問題,將Max Module結構引入YOLOV4[3]的多尺度融合過程中,提出一種YOLOV4-tiny的輕量化網絡,達到口罩佩戴檢測的目的。文獻[4]將優化的MobileNetv3作為主干網絡,利用SPPNet和PANet優化特征提取網絡進行人臉口罩佩戴檢測。文獻[5]在YOLOV3特征提取網絡中引入注意力機制,實現了人臉口罩佩戴檢測。文獻[6]考慮到參數量以及經濟適用,提出一種YOLOv5s輕量化算法,使口罩佩戴檢測精度達到95%以上。文獻[7]運用遷移學習和RetinaNet網絡對人臉口罩佩戴檢測,驗證集下平均檢測精度達到86.5%。上述研究均對人臉口罩佩戴情況進行檢測,并取得了較好的檢測精度。但并沒有考慮到人流量較大的商場、車站等更加復雜的應用場景。
現階段,目標檢測算法主要有兩類,一類是以Faster R-CNN[8,9]為代表的基于候選區域(region proposal network,RPN)的Two-Stage檢測算法。另一類是以YOLO[10,11]系列和SSD系列為代表的基于回歸的One-Stage檢測算法。其中YOLOv5是目前YOLO系列中最SOTA(state-of-the-art)的目標檢測模型,根據模型的深度和寬度不同,該網絡分為YOLOv5s、YOLOv5m、YOLOv5l、YOLOv5x這4個版本[12],其中YOLOv5s因其最小的網絡深度和寬度,使其在保證檢測精度的同時具有較好的檢測速度。本文考慮了復雜環境下人臉口罩佩戴檢測任務中存在的目標密集、遮擋以及小尺度目標等問題,對YOLOv5s網絡進行改進與優化,提出了一種復雜環境下基于改進YOLOv5的人臉口罩佩戴檢測模型。
2020年,Ultralytics公司在YOLOv4基礎上進行改進,提出了具有更高檢測精度的YOLOv5檢測算法,其網絡結構如圖1所示。主要由輸入端、主干部分、頸部以及預測4部分組成。

圖1 YOLOv5網絡結構
其中輸入端主要對輸入圖片進行預處理。主干網絡通過Focus與Conv模塊實現不同倍數的下采樣,得到大小存在差異的特征圖,然后將這些不同尺度特征圖拼接融合,再與其初始特征相加,在確保速度的同時提升了感受野,便于提取最重要的特征,降低圖片信息丟失的可能性,進而提高模型精度。頸部作為YOLOv5多尺度融合模塊,主要通過將高底層特征信息進行傳遞,實現自頂向下、從下到上的簡單信息融和,加強了不同尺度特征間的信息傳播,同時準確保留了空間維度的信息,有助于高低層特征的互補,對像素進行適當的定位以形成掩模,從而有效解決多尺度問題。預測部分通過損失函數對模型中的分類、定位、置信度損失進行計算,以評判網絡誤測樣本。
DenseNet(densely connected convolutional networks)[13]是密集型網絡模型,具有L(L+1)/2個直接連接,其中每層的輸入均為前面所有層輸出結果的疊加,從而增加參數的重用性,防止過擬合現象的發生。該網絡通過Concatnate操作保存復用大量的特征信息,主要由多個Dense block組成,其網絡結構如圖2所示。

圖2 Dense block的結構
其中,X0為第0層的輸入特征圖,H為每層特征圖進行拼接,由批量標準化(BN)、線性整流函數(ReLU)、卷積3種操作對應的非線性轉化函數,H1的輸入為X0,H2的輸入為X0和X1,X1為H1的輸出,經l次的非線性轉化函數后,最終得到的Xl可表示為
Xl=Hl(Xl-1)=Hl[X0,X1,L,Xl-1]
(1)
DenseNet網絡的密集連接(dense connection),在解決梯度消失同時加深網絡層數、減少了網絡參數。
YOLOv5檢測算法由于檢測速度與精度的優勢被許多學者關注,并且其各部分技術相較于其它One-Stage算法也比較成熟,加之YOLOv5s本身已具有工程意義,故將其作為本文檢測模型的基礎網絡是可行的。但根據現有研究和應用情況,想提高實際場景下的檢測準確率,仍需對YOLOv5s改進。本文針對商場、車站等人流量較大的復雜環境,以YOLOv5s模型為基礎,對Backbone、Neck和損失函數幾部分進行改進,完成人臉口罩佩戴的實時檢測。
相比其它檢測目標,人臉口罩目標尺度小且所在環境復雜,而原YOLOv5s主干網絡主要采用BottleneckCSP模塊對目標特征進行提取,由于該操作減少了訓練過程中的特征映射,因而對目標特征提取能力有限;并且在卷積和降采樣過程中,訓練樣本中一些重要的特征信息可能會丟失。為此,本文將改進DenseNet網絡引入主干部分,形成一種能保證檢測任務速度并進一步提高檢測精度的CSPDenseNet模塊,該模塊如圖3所示。首先針對DenseNet網絡的冗余連接而導致的速度較慢問題,本文采用剪枝策略對模型中貢獻不大的卷積層進行裁剪,在不損失目標關鍵特征信息的情況下實現較小的計算代價,得到較少參數的人臉口罩檢測模型的主干網絡;然后將CBAM(convolutional block attention module)[14]模塊嵌入剪枝后的DenseNet網絡,使模型更易聚焦目標關鍵特征、抑制無關背景特征,提高網絡提取口罩特征的能力;最后將該部分與改進后CSP模塊結合,形成改進后的主干網絡CSPDenseNet網絡,將其生成特征送入特征融合網絡。
圖3左上是CBAM模塊網絡結構,它是一種針對特征圖進行操作的輕量級的卷積注意力模型,它旨在使用注意力機制增加表現力[14],使網絡可以“有區別”的對目標進行檢測,以達到關注重要特征抑制不必要特征的目的。此外,對于給定的任一中間特征圖,都會從通道和空間兩個維度依次推斷出注意力圖,然后通過自適應特征優化將注意力圖與輸入特征圖相乘。通道注意力與空間注意力作為卷積注意力機制的核心,在不同維度上對特征圖進行高效融合,使得CBAM提取到更加精煉的特征,從而提升網絡的性能。
圖3右上是改進后YOLOv5s模型主干的組成之一CSP1_X,它借鑒了CSPNet[15]結構。輸入特征圖在通道維度被分為兩個部分,一部分被保留下來,另一部分則經過多個殘差塊向后傳遞,最后將兩者在CSPNet結構的末端進行合并。但由于被保留的卷積部分不承擔主要的特征提取作用,并且通常包含很多冗余信息,因此本文考慮引入Ghost模塊,壓縮參數的同時減少了信息冗余,提高重要信息的提取效率,降低了網絡中的數據傳遞量與計算量。
為了將圖像中提取的不同尺度特征合并成一個更具有判別能力的特征,針對不同的應用場景,現有目標檢測網絡提出了不同的特征融合方式。而YOLOv5s特征融合網絡為PANet[16],它是在FPN[17]基礎上直接增加了反向的融合路徑,將包含較清晰的位置信息的淺層網絡與包含豐富語義信息的深層網絡充分融合,增強了不同大小目標間的適應性,同時生成3種高級語義信息,以計算損失,從而提取到更加豐富的ROI特征,增強網絡中語義信息。
在人臉口罩佩戴檢測任務中,存在小尺度目標和目標遮擋等問題,使得目標特征差異小,需要利用更多的目標特征信息。本文針對上述問題對PANet網絡進行了改進,增加1個4倍降采樣特征圖作為特征融合網絡的輸入,并對不同尺度特征圖進行跨級連接,提高不同尺度間信息交流,從而改善模型對小尺度信息的融合能力,以便學習到更多小尺度目標特征,從而提高模型對小目標和遮擋目標的檢測能力。改進后PANet網絡結構如圖4所示。

圖4 改進后PANet網絡結構
圖4中152×152、76×76、38×38、19×19表示對特征圖進行4倍、8倍、16倍、32倍下采樣后得到的不同尺度特征圖,PANet網絡通過將這些不同尺度特征圖經過自上而下和自下而上的路徑增強方式進一步提高特征信息的利用率,增加了網絡寬度,提高了網絡傳輸靈活性和專一性,加強了特征金字塔的特征融合能力。
模型損失函數是由分類損失(classification loss)、定位損失(localization loss)和目標置信度損失(confidence loss)組成的深度神經網絡誤測樣本評判依據[18]。為提高模型的收斂效果,選擇合適的損失函數是至關重要的。YOLOv5模型使用GIoU_Loss[19]計算邊界框回歸損失,在進行類別預測時,通過多個獨立的邏輯(logistic)分類器計算輸入屬于某一類特定標簽的概率,而每個標簽所使用二元交叉熵損失函數,使計算更加精簡。YOLOv5損失函數GIoU_Loss如式(2)
(2)
GIoU_Loss關注了重疊區域和非重疊區域,很好反應了預測框與真實框的重合度。但對小尺度目標進行檢測時,真實值與預測值仍存在較大誤差。
針對上述問題,本文在GIoU_Loss的基礎上將寬高比與中心點距離作為考慮,選用CIoU_Loss[20]作為改進后邊界框回歸的損失函數,將預測框與真實框之間的距離最小化,加速模型收斂速度,同時添加影響因子,進一步提升回歸精度。改進前后損失函數如圖5所示。

圖5 改進前后損失函數對比
根據圖5對改進后損失函數進行約束,得到CIoU_Loss如式(3)、式(4)
(3)

(4)
其中,α是平衡比例的參數,v是描述預測框和GT框長寬比的比例一致性的參數,其中w、h分別表示預測框寬高,wgt、hgt分別表示GT框寬高。
上述公式描述了CIoU損失函數的計算方式,CIoU_Loss的引入會促使預測框往重疊區域增多的方向進行移動,尤其是IoU=0的時候,CIoU通過使用參數v對w的求偏導數優化損失,偏導數公式如式(5)

(5)
在上式中,為了使函數能夠穩定收斂,實際中步長w2+h2一般取1。
損失函數的改進,使得預測框與真實值之間的誤差更小,進一步優化網絡模型,實現復雜環境下對人臉口罩佩戴的實時準確的檢測。
本文通過對YOLOv5s模型的Backbone、Neck及損失函數3部分改進,得到網絡結構如圖6所示。將608×608×3大小的輸入圖像送入Backbone,經過下采樣得到不同尺度的特征圖,再利用PANet網絡以雙向融合的方式將不同尺度特征信息充分融合,得到4種不同尺度的新特征圖,最后通過1次CSP2_X和1次普通Conv(3×3)對通道進行調整預測,得到152×152、76×76、38×38、19×19大小的4尺度檢測網絡。具體網絡結構參數見表1。其中來源列的-1指輸入來自上一層輸出。

表1 改進后的網絡參數

圖6 改進的YOLOv5網絡結構
本文算法主要是以YOLOv5s為基礎,展開本文算法的研究。本文算法的實現流程見表2。

表2 本文算法實現流程
由于目前已開源的口罩檢測數據集較少,因此本文從WIDER FACE、MAFA(masked faces)[21]和RMFD(real-world masked face dataset)[22]3種數據集中篩選2600張復雜環境下人臉照片和3364張人臉佩戴口罩照片,此外,收集了新冠疫情以來的各個人流量密集場所照片2211張。將這8175張照片作為本文的數據集,并對其進行手工標注。數據集一共包括3種類別:face_mask、mistake_mask、face。其中face_mask表示正確佩戴口罩,mistake_mask 佩戴口罩但佩戴不規范、face表示未佩戴口罩。對自建數據集進行分析,得到可視化結果,如圖7所示。

圖7 數據集分析
圖7(a)表示數據集類別分類,圖7(b)表示物體中心點位置的分布,其中x、y是指中心點的位置,顏色越深代表該點位置目標框的中心點越集中,圖7(c)物體大小的分布,其中width、height分別代表圖片中物體的寬高。


表3 數據集劃分
Mosaic數據增強是YOLOv4、YOLOv5獨有的數據增強的方式,是在CutMix[23]的基礎上提出的一種數據處理方式,其在CutMix的基礎上,選用4張圖片隨機裁剪、排布和縮放進行拼接。本文數據集經過Mosaic數據增強后的圖片如圖8所示。

圖8 Mosaic處理后的圖片
以Mosaic數據增強方式對數據預處理,增加了小目標數量,豐富檢測數據集,同時提高了網絡魯棒性。而且經過Mosaic數據增強后的網絡可以一次性計算4張圖片的數據,從而對Mini-batch的需求降低,即batch-size的初始設置值在比較小的情況下也可以保證檢測結果的精確度。
實驗所用設備配置為Nvidia GeForce RTX 2080Ti顯卡、Intel(R)Xeon(R)Silver4110CPU處理器,在Ubantu18.04LTS虛擬操作環境上進行實驗。模型的搭建、訓練和結果的測試均在Pytorch框架下完成。
類似于其它檢測算法,衡量本文模型的指標主要有以下幾個:
(1)精確率(Precision),即查準率:是預測正確的正樣本占所有檢出樣本的百分比例,是針對預測結果而言的
(6)
式中:TP為檢測到的目標類別與真實目標類別一致的樣本數量,FP為檢測到的目標類別與真實目標類別不一致的樣本數量。
(2)召回率(Recall),即查全率:被正確預測的正樣本占所有正樣本(Ground Truth)的比例,是針對原樣本而言的
(7)
FN表示真實目標存在但未被檢測出的樣本數量。
(3)平均精度(Average Precision,AP):精確率-召回率曲線(P-R曲線)下方的面積即為某一類別的AP值
(8)
式中:N表示所有目標類別的數量。
(4)平均準確率均值(mAP):對每個類別的AP求平均
(9)
(5)為確定人臉口罩佩戴檢測是否達到實時檢測的檢測速率,本文選用FPS (frames per second)作為改進后模型的衡量指標,FPS指的是指目標檢測網絡每秒能夠檢測的圖片數量(幀數)。
本文對Pytorch框架下修改的網絡模型訓練時,初始加載的預訓練權重是YOLOv5算法在VOC2012數據集上訓練得到的,之后通過遷移學習對本文自建數據集進行訓練。為保證模型最佳性能,本文將迭代次數設置為200次,batch size為16,初始學習率為0.0005,每5步降低一次,同時以SGD優化器進行優化,圖9反映了迭代后網絡的CIoU_Loss、Object_Loss以及cls_Loss,可以看出,隨著迭代次數的增加,模型的損失值慢慢趨于穩定,達到最優狀態。

圖9 迭代后網絡損失
4.5.1 本文算法與其它算法結果對比
為驗證本文算法的有效性,將Faster RCNN、SSD、RetinaFace、Attention-RetinaFace、YOLOv5等經典網絡與本文算法進行對比,所有實驗在相同硬件配置的情況下針對相同的數據集進行測試,所有模型所使用預訓練權重均來自該模型在VOC2012數據集上預訓練所得。不同算法的實驗結果使用mAP@0.5、AP以及FPS這3項評價指標進行評價,具體見表4。

表4 不同算法的性能比較結果
從表4中可以看出,相較于其它算法,本文算法在復雜環境下的檢測精度更高,mAP值可達97.8%,對不同標簽的AP值也達到95%以上。本文算法雖滿足實時性要求,但檢測速度僅為32.4幀/s,遜于輕量級SSD算法。不同算法在人臉口罩數據集上的mAP對比結果如圖10所示。

圖10 不同算法在人臉口罩數據集上的mAP對比
為了更加直觀的顯示不同算法之間的區別,本文對稀疏人臉、側面人臉、密集人臉、密集遮擋人臉和小尺度人臉5種情況下的人臉口罩佩戴情況進行了對比分析,本文算法與Faster RCNN、SSD、RetinaFace、Attention-RetinaFace、YOLOv5等算法檢測效果對比如圖11所示。

圖11 不同算法的檢測結果對比
從圖11可以看出,在稀疏和側臉場景下,所有算法都可準確識別人臉口罩佩戴情況,但相較而言,本文算法對各類標簽的檢測準確度更高,基本達到95%以上;在密集人臉口罩佩戴檢測場景中,其它算法均存在誤檢漏檢情況,而本文算法中此類情況少有發生,并且從圖11密集目標的檢測中可明顯看出,對已檢測出的目標,本文算法具有更高的準確率;在密集遮擋人臉檢測場景中可知,本文算法相對其它算法漏檢率較低,對于存在較大面積遮擋的人臉口罩佩戴也可以準確識別。同時已檢測到的目標檢測準確率有明顯提升;針對小尺度人臉口罩佩戴情況檢測時,明顯可知,Faster RCNN、SSD、YOLOv5算法存在嚴重漏檢情況,本文算法與Attention-RetinaFace算法都能較好的檢測出人臉口罩目標,但本文算法仍存在少許漏檢現象,但對已檢測到的目標檢測準確率更高,基本達到90%以上。
綜上所述,相較于其它檢測算法,本文算法在各種場景中的人臉口罩佩戴情況檢測中誤檢漏檢率明顯降低,檢測準確度更高,檢測效率更好。
4.5.2 消融實驗
為進一步分析改進后模型對YOLOv5模型的影響,通過構建消融實驗分析改進后各結構對整個網絡的影響,本文將改進的算法分成8組分別進行訓練,改進后各部分對模型的影響具體見表5。(其中“√”表示加入該部分,“×”表示不加入該模塊)

表5 消融實驗結果對比
由表5可知,針對人臉口罩佩戴檢測的自建數據集,實驗1中的YOLOv5模型的mAP值為95.3%,FPS為45;實驗2引入了DenseNet網絡,相比于實驗1,其mAP值提升了0.6%,但FPS下降了5.8,造成這一變化的主要原因是DenseNet的引入增加了內存的消耗,但是提高了模型對目標關鍵特征信息的利用率,從而提高了檢測精度;實驗3主要對改進后DenseNet網絡的效果進行了分析,由結果可知,改進后DenseNet網絡相較于原DenseNet網絡mAP值增加了1.4%,FPS相較于實驗2也有所提升,這是因為嵌入CBAM模塊的DenseNet網絡在提高目標重要特征信息利用效率的同時提升了網絡對重要信息的關注,抑制了不必要特征信息,使模型可以準確定位到待檢測目標,從而提高了網絡的檢測精度,此外,ghostconv的引入使得網絡的檢測速度有所提升;實驗4主要對改進后的PANet網絡進行有效性分析,實驗數據表明,對PANet網絡的改進使模型的mAP值增加了1.1%,發生這一變化的原因是改進后的網絡對接近原始圖像的特征信息進行了考慮,增強了多尺度信息的交流,提高不同尺度信息交互融合效率,對小尺度目標和被遮擋目標檢測精度更高。實驗5對YOLOv5模型改進損失函數前后mAP值進行了對比,發現改進后模型的mAP值增加了0.3%,主要原因在于改進后的損失函數增加了中心點與寬高比的約束,降低了真實值與預測值之間的誤差,從而提升了模型準確率;實驗6的mAP值比實驗3提高了1%,但FPS值減少了2.5,驗證DenseNet模塊和PANet模塊的改進在略微犧牲檢測速度的情況下增強模型的學習能力;實驗7在實驗3的基礎上對損失函數進行了替換,mAP達到96.7%,但FPS降低為39.3;實驗8在為本文算法,在實驗7的基礎上改進了多尺度PANet模塊,此模塊的改進減慢了檢測速度但檢測精度提高了1.1%。
通過對消融實驗分析發現,隨著各模塊的疊加,改進的網絡性能并沒有階段性的提升,而是在上一個改進的基礎上使網絡性能小幅度增加,通過對YOLOv5模型的Backbone以及Neck網絡的逐步改進,模型的檢測性能也隨之提升。綜上,針對不同場景下的人臉口罩佩戴情況,本文提出的改進策略能夠提升模型的檢測效果,具有實際意義。
為解決復雜環境下人臉口罩佩戴檢測任務,本文以YOLOv5s模型為基礎,提出了一種復雜環境下基于改進YOLOv5的人臉口罩佩戴檢測模型。實驗通過8000多個樣本對模型訓練結果表明,本文所提網絡在達到實時性的同時,有效提升了人臉口罩佩戴檢測精度,平均精度均值達到97.8%。但在測試實驗中發現,在嚴重遮擋、人臉模糊以及人臉尺度過小等情況下的檢測效果仍存在誤檢漏檢和檢測精度低的問題,在后續的研究中,將增加上述情況下的圖像數據,并對模型進行優化,減少網絡計算量提高人臉口罩佩戴檢測精度和速度。