于 碩,李 慧,桂方俊,楊彥琦,呂晨陽
(1.北京服裝學院 基礎教學部,北京 100029;2.中國礦業大學(北京) 機電與信息工程學院,北京 100083)
自2019年遭受新型冠狀病毒肺炎(COVID- 19)疫情[1]襲擊以來,我國一直采取強有力的抗疫、防疫措施。目前疫情態勢趨好,抗擊新冠肺炎取得較大成功,但不能因此松懈,而應該更加科學地對抗疫情、更加重視公共衛生工作。現階段有效降低人員間交叉感染風險、嚴防疫情反彈的有效措施之一就是在公共場所正確佩戴口罩,在對民眾日常行為規范做出考驗的同時,也對口罩佩戴的監督和管理檢測技術提出了一定要求。目前的口罩佩戴檢測裝置受特定時刻待檢人數激增、人員間相互遮擋等復雜環境的影響而出現誤檢,同時由于待檢目標小可能導致漏檢,因此復雜場景下提高口罩佩戴檢測的精度與速度十分必要。
伴隨卷積神經網絡的興起,基于深度學習的目標檢測算法在人工智能、信息技術等諸多領域均有廣泛應用[2-3],該算法主要分為兩類,一類是兩級式(two-stage):檢測方式是區域提議結合檢測,以R-CNN系列[4-6]為代表,這類算法精準度高但時效性較低;另一類是單級式(one-stage):檢測方式是無區域提議框架,即提議和檢測一體,以SSD[7]系列、YOLO[8-11]系列為代表,這類算法檢測速度快但精準度較差。疫情前目標檢測已應用在生產生活等諸多方面,但專業的口罩佩戴檢測較少,因此疫情后的急需吸引了國內外眾多學者參與研究。M.D.Pramita等[12]提出基于深度學習的圖像分類模型,使用卷積神經網絡從私有數據集中學習印度尼西亞人臉特征,實時檢測人員是否戴口罩。B.Xue等[13]結合口罩佩戴檢測算法、口罩標準佩戴檢測算法和人臉識別算法提出基于改進的RETINAFACE算法,在實現口罩佩戴檢測的基礎上判斷口罩是否正確佩戴。黃林泉等[14]在YOLOv3中融合SPPNet和PANet提高算法特征融合的質量,并且結合DeepSort目標跟蹤技術以提高檢測實時性。張路達等[15]提出在YOLOv3基礎上引入多尺度融合進行口罩佩戴檢測。
為達到更好的檢測效果,本文在上述研究基礎上利用YOLOv5網絡模型進行復雜場景下口罩佩戴實時檢測算法研究。經驗證,本算法在口罩佩戴實時檢測中兼顧了檢測精度和速度,說明具有較好的實用性。
YOLOv5在結構上可分為4部分:輸入端、主干部分Backbone、Neck和Prediction,其網絡結構如圖1所示。

圖1 YOLOv5網絡結構
YOLOv5的輸入端將圖像進行一定的數據處理,如縮放至統一尺寸然后送入網絡中學習。Backbone包含Focus、CSP及SPP結構。CSP中的CSP1_X 、CSP2_X結構分別應用于Backbone、Neck中。SPP(Spatial Pyramid Pooling,空間金字塔池化)分別采用5、9、13的最大池化,再進行concat融合,提高感受野。這些結構有效避免了對圖像區域剪裁、縮放操作導致的圖像失真等問題,也解決了卷積神經網絡對圖像重復特征提取的問題[16]。Neck部分采用FPN、PAN結合的結構,得到一系列混合和組合圖像特征的網絡層,并將圖像特征傳遞到預測層,加強了信息傳播,具備準確保留空間信息的能力。輸出端Bounding box損失函數為GIOU_Loss,NMS對目標最后的檢測框進行非極大值抑制處理以獲得最優目標框。
YOLOv5的4個模型YOLOv5s、YOLOv5m、YOLOv5l、YOLOv5x在結構上一致,區別在于模型的深度、寬度設置不同。如圖2所示,在對比YOLOv5各版本性能后,本文選用模型大小較適宜、速度較快、精確度較高的YOLOv5m為基礎模型,該模型的寬度、深度控制如圖3所示。

圖2 YOLOv5性能對比

圖3 YOLOv5m深度、寬度控制
模型深度由CSP結構控制,在YOLOv5m模型中第一個CSP1使用了2個殘差組件,因此是CSP1_2;第一個CSP2使用了2組卷積,因此是CSP2_2,此時隨著網絡不斷加深,其網絡特征提取和特征融合的能力也在不斷增強。同時模型在不同階段的卷積核數量不同,直接影響特征圖的厚度,進而影響模型寬度,即卷積核數量越多說明網絡寬度越寬,網絡提取特征的學習能力也越強,其中第一次卷積操作時將原始圖像640*640*3接入Focus結構,通過切片變為320*320*12的特征圖,再經過48個卷積核變為320*320*48的特征圖,如圖4所示,該操作為后續的特征提取保留了更完整的圖片下采樣信息。

圖4 Focus結構圖
本文主要從數據處理、損失函數及檢測框的選擇方面對網絡進行優化。
在一般目標檢測任務中,數據集的圖片尺寸不盡相同,常用的處理方法是訓練及測試時都將原始圖片縮放至統一的標準尺寸,再送入網絡中[17]。但由于復雜場景下待檢測目標小等原因導致實際檢測難度大,采用傳統數據處理方法效果并不理想,因此本文算法選擇在輸入端采用自適應錨框計算、Mosaic數據增強、自適應圖片縮放等數據處理方式。
由于網絡訓練前已經設定好了基礎錨框[116,90,156,198,373,326]、[30,61,62,45,59,119]、[10,13,16,30,33,23],網絡模型將基于此錨框訓練得到的預測框與真實框進行比較,根據其差值反向更新、迭代調整網絡模型參數[18]。
Mosaic數據增強就是把4張圖片,通過隨機縮放、隨機裁減、隨機排布的方式進行拼接,處理過程如圖5所示。這種數據處理的方式不僅豐富了待檢測圖片的背景,也在一定程度使待檢測目標變小進而擴充小目標,此時將處理好的圖片送入網絡中訓練,相當于每次計算4張圖片的數據,這樣單GPU即可以達到比較好的效果。

圖5 Mosaic數據增強
本算法數據處理時的操作如下:訓練時,采用Mosaic數據增強結合自適應圖片縮放,既對原始圖片進行了拼接處理又給圖片添加一定程度的灰邊,然后將圖像縮放至同一尺寸640*640*3送入網絡進行訓練,如圖6(a)所示。測試時,僅使用自適應圖片縮放,對原始圖像自適應地添加最少的灰邊以減少冗余信息,然后再傳入檢測網絡以提高實際檢測時的推理速度,如圖6(b)所示。

圖6 圖片處理
IoU[19]被稱為交并比,是一種評價目標檢測器性能的指標,其計算的是預測框與真實框間交集和并集的比值。GIoU[20]則是在IoU基礎上引入懲罰項以更準確地反應檢測框和真實框相交情況。二者計算公式如下:
(1)
(2)
其中:A表示檢測框,B表示真實框,C代表包含檢測框和真實框的最小外接矩形框,|C-(A∪B)|表示懲罰項。
如圖7(a)、圖7(b)所示可知,當A、B兩框不相交時GIoU能衡量兩框的遠近程度;由圖7(c)、圖7(d)可知,GIoU亦能反映兩框的相交方式,即相比于IoU來說,GIoU可以較好地區分檢測框和真實框之間的位置關系。但當檢測框和真實框之間出現包含這種特殊情況時,C與A∪B相等,那么GIoU中的懲罰項會變為0,即GIoU會退化成IoU,此時GIOU優勢消失。

圖7 位置關系
因此,本文選用CIoU_Loss[21]作為邊界框損失函數使預測框更加貼合真實框。CIoU計算過程如下:
(3)
其中,如圖8所示,b和bgt分別表示預測邊框和真實邊框的中心點,d=ρ(b,bgt)表示兩框中心點間距離,c表示預測框與真實框的最小外接矩形的對角線距離。

圖8 CIoU相關圖示
式(3)中,α是做trade-off的參數,v衡量長寬比一致性[22],計算公式如式(4)和式(5)所示:
(4)
(5)
其中:w和wgt分別表示預測邊框與真實邊框的寬度,h和hgt分別表示預測邊框與真實邊框的高度。CIoU_Loss計算公式為:
CIoU_Loss=1-CIoU
(6)
在經典的NMS中,得分最高的檢測框和其它檢測框逐一算出對應的IoU值,并將該值超過NMS threshold的框全部過濾掉。可以看出在經典NMS算法中,IoU是唯一考量的因素。但是在實際應用場景中,當兩個不同物體很近時,由于IoU值比較大,經過NMS處理后,只剩下單一檢測框,這樣容易導致漏檢的情況發生。而DIoU-NMS不僅考慮到預測框與真實框重疊區域還考慮到中心點距離,即兩框之間出現IoU較大、兩框的中心距離也較大的情況時,會認為是兩個物體的框并同時保留,從而有效提高檢測精度。基于此,本文算法選用DIoU-NMS代替NMS。
實驗數據集4 930張均來自線上收集,較全面的概括各類場景的圖像,涵蓋了單一人員佩戴、未佩戴口罩以及復雜場景下多人佩戴、未佩戴口罩等情況,按照8∶1∶1的比例劃分其用于訓練、驗證及測試,數據集示例如圖9所示。

圖9 數據集示例
數據集采用PASCAL VOC格式,使用LabelImg對圖片進行標注使用,包括face_mask、face、invalid 3種類別,其中face_mask表示待檢測人員已正確佩戴口罩; face表示未佩戴口罩; invalid表示未規范佩戴口罩。并且通過對數據集進行分析,得到可視化結果如圖10所示,可知數據集中已經標記部分小目標,可以一定程度上模擬復雜場景下待檢目標小的情況。

圖10 數據集分析
本實驗配置如表1所示。

表1 實驗環境配置
訓練參數設置如下:輸入圖像尺寸為640*640,在訓練過程中對學習率采用動態調整策略;初始學習率為0.01,學習率周期為0.2,學習率動量為0.937,權重衰減系數為0.000 5,若模型連續3個epoch的損失不再下降,學習率減少為原來的4/5。訓練批次大小為16,最大迭代次數設置為600。
由公式(7)可知,YOLOv5的損失值由3個類別損失構成,分別是表征物體位置、物體類別及是否包含目標物體的損失。
Loss=box_loss+cls_loss+obj_loss
(7)
圖11所示為訓練600個Epoch的損失值收斂曲線,可知模型達到了較好的擬合效果。

圖11 訓練損失下降曲線
采用如下性能指標[23]評估本文算法性能:準確率(P, precision)、召回率(R,recall)、平均精度均值(mAP, mean average precision)以及每秒檢測圖片幀數(FPS,frames per second)。
準確率是精確性的度量,表示被分為正的示例中實際為正例的比例。召回率是覆蓋面的度量,計算有多個正例被分為正例。公式如下:
Precision=TP/(TP+FP)×100%
(8)
Recall=TP/(TP+FN)×100%
(9)
其中:TP代表預測為正例實際也為正例的數量,FP代表預測為正例但實際為負例的數量,FN代表預測為負例但實際為正例的數量。
mAP是用以衡量識別精度,由所有類別的AP值求均值得到。其中通過計算不同召回率下最高的精確率可繪制P-R曲線,該曲線圍成的面積即為該類別的AP值。
訓練后模型的Precision、Recall、mAP_0.5、mAP_0.5∶0.95最高分別能夠達到0.998、0.992、0.996、0.958,具體情況如圖12所示。在數據集隨機劃分的493張測試圖片上進行測試,本文改進的YOLOv5算法檢測結果的P-R 曲線如圖13所示。

圖12 模型性能評價指標

圖13 改進算法的P-R曲線
FPS衡量的是每秒鐘傳輸的圖片幀數。由于人體感官的特殊結構,人眼所見畫面之幀率高于16 FPS時,大腦就會認為是連貫的,這一現象也被稱之為視覺暫留[24-25]。經驗證,本文算法最高每秒檢測圖片的幀數最高可以達到30.0 FPS。
為進一步測試復雜背景下網絡實時檢測小目標的能力,將圖片自適應放縮后又進行拼接,送入網絡模型進行測試,僅需0.035 s得到結果如圖14所示結果。

圖14 復雜背景下檢測結果
同時為了驗證本文算法的有效性,將其與RetinaFace[26]、Attention- RetinaFace[27]、YOLOv3、YOLOv4、YOLOv5[18]進行對比,結果如表2所示。

表2 算法性能對比
對于人臉目標檢測而言,RetinaFace算法和Attention- RetinaFace算法均是專門用于人臉定位的單階段檢測算法,二者原理均是基于人臉對齊、像素級人臉分析和人臉密集關鍵點三維分析來實現多尺度人臉檢測[27],因此它們的檢測精度比較高。而YOLO系列算法中的YOLOv3、YOLOv4、YOLOv5雖不是專業的單階段人臉檢測算法,但將其應用于口罩佩戴檢測上其檢測精度方面已經可以與之比肩。本文算法作為基于 YOLOv5的改進算法,其AP值、mAP 值較前述算法均有顯著提升,且FPS為30.0達到了實時檢測目的。綜上所述,本文的改進策略能夠勝任復雜場景下的口罩佩戴實時檢測。
綜上所述,為了兼顧復雜場景下人員口罩佩戴檢測精度和速度,本文提出了復雜場景下基于YOLOv5的實時口罩佩戴檢測算法。經實驗測試,本算法準確率、召回率等評價指標上均有較好表現,且能達到視頻圖像實時性要求,因此說明本文方法具有一定的優勢,但需承認的是:在目標過多的視頻樣本中檢測會出現幀率偏低的現象,且應對遮擋目標、小目標等特征信息不明顯的情況時會存在一定程度的漏檢,因此接下來將在這些方面做進一步研究和改進。