王爍宇,崔慶森
(西藏大學信息科學技術學院 西藏 拉薩 850000)
疫情防控的背景下,商場、車站等公共場所均要求人員佩戴口罩[1]。當前針對人員是否佩戴口罩采用的方法主要是人工檢查,這種方法存在效率較低、容易漏檢的問題,有較大的安全隱患,一個可靠的口罩佩戴實時檢測系統可以較好地解決這些問題。
口罩佩戴檢測可以歸為目標檢測問題,基于深度學習的目標檢測是當下較為主流的目標檢測方案[2],主要可分為兩類,第一類是以R-CNN[3]系列為代表的基于候選區域的目標檢測算法,其檢測過程可分為候選區域分類及其坐標修正兩個階段,因而被稱為雙階段目標檢測算法,優點是檢測準確率較高,缺點是檢測速度較慢。第二類是以YOLO[4]系列為代表的基于回歸分析的目標檢測算法,其檢測只有一次回歸分析的過程,因而被稱為單階段目標檢測算法[5],其優點是檢測速度快,缺點是檢測精度偏低。
對YOLO系列算法、SSD[6]算法和R-CNN系列算法在VOC2007、VOC2012和COCO數據集上的測試結果進行對比,如表1所示,mAP指平均精度均值,是橫量模型效果的綜合指標,“-”表示沒有相關數據。相較于其他網絡模型,YOLOv5在檢測速度與精度上均有一定的優勢。

表1 算法性能對比
YOLOv5網絡模型由Glenn Jocher于2020年5 月份提出,YOLOv5s是YOLOv5系列模型中體積最小的一個模型,YOLO系列算法以其便于部署、實時檢測性能好等優點被廣泛地應用于各種目標檢測場景,本文選擇YOLOv5s作為系統檢測的網絡模型。
YOLOv5網絡模型沿用了YOLOv3和v4的結構,可分為input(輸入端)、Backbone(骨干網絡)、Neck(特征聚合端)、Prediction(預測端)四個部分。模型工作時,輸入端對輸入的圖像進行數據增強、自適應圖片縮放和錨框計算等處理,處理的結果輸入到骨干網絡中,骨干網絡主要完成特征提取的工作,特征聚合端將提取到的特征進行融合,預測端可根據不同尺度下的特征生成相應的目標框并計算出最優的目標框[10],其網絡結構如圖1所示。
實驗從WIDER Face、MAFA和VOC等公開數據集和網絡資源中篩選出2910張圖片用以制作訓練集和測試集。數據集包括3種類別,分別為mask、incorrect_mask和face,表示人員已佩戴口罩、人員錯誤佩戴口罩和未佩戴口罩三種情況,對數據集的劃分如表2所示。

表2 數據集的劃分
數據集采用YOLO格式,使用Labelimg進行目標的標注,標注后產生的文件名與圖片名稱一致,以txt作為后綴,文件每一行的第一個參數表示目標的類型,第三、四個參數分別表示經過歸一化后目標的中心點坐標,第五、六個參數分別表示目標框的寬和高,參數之間用空格隔開。
實驗使用Ubuntu 18.04操作系統,選用PyTorch框架,使用NVIDIA GeForce RTX 3090顯卡進行運算,具體實驗配置如表3所示。

表3 實驗環境配置
模型訓練過程中,將圖片的迭代批量大小設置為32,總迭代次數設置為200次,學習率設置為0.01,各參數隨迭代次數的變化如圖2、圖3和圖4所示。
cls_loss、box_loss和obj_loss是在三個方面衡量模型訓練效果的損失函數,其中cls_loss表示置信度的損失函數,box_loss 表示預測框位置的損失函數,obj_loss表示檢測目標的損失函數[11],隨著迭代次數的增加,各種損失函數也在減小。
recall,召回率,也叫查全率,即樣本中正類被模型正確判斷的概率,其計算如公式1所示,其中TP表示被模型判斷為正類的正樣本數,FN表示被模型判斷為負類的正樣本數[12]。在模型迭代到75次時接近0.8。
precision, 精確度,也叫查準率,即模型判斷正確的正類占所有正樣本的比例,其計算如公式2所示,其中FP表示被模型判斷為正類的負樣本數。在模型迭代到100次時,數值穩定在0.8左右。
mAP即平均精度均值,是衡量模型訓練效果的一個綜合指標。圖中的mAP_0.5指的是當損失函數IoU[13]取0.5時的mAP,mAP_0.5:0.95指的是當IoU分別取0.5~0.95時(步進0.05)mAP的平均值,其計算如公式3、4所示,其中mAP_0.5在模型迭代到100次時穩定在0.8左右。
模型訓練完畢,利用測試集對模型進行測試,mask、face和incorrect_mask分別表示正確佩戴口罩、未佩戴口罩和口罩佩戴不規范的情況,圖5中目標框上的數值為各類別標簽的置信度,在不同場景下的檢測效果如圖5所示,訓練出的模型在多目標的情況下也可以實現較為精準的檢測。
本系統擬實現對實時視頻和視頻文件的檢測,因此要具備視頻文件檢測和攝像頭檢測兩個功能,同時也應能夠隨時停止檢測,因此利用PyQt5初步設計出系統的界面如圖6所示。
信號和槽機制讓QT框架明顯區別于其他框架,通常用于對象之間的通信,當一個窗口部件發生了變化,利用信號和槽機制,在某一窗口內做出特定的操作,在另一個窗口或者本窗口上就會做出相應的反應[14]。利用該機制與相應的函數實現系統的功能,系統實現的攝像頭檢測和視頻文件檢測的效果如圖7所示。
本文基于YOLOv5s網絡模型,利用公開數據集和網絡資源收集了相關數據并對模型進行訓練與評估,訓練效果較理想,模型的檢測精度與速度較為均衡,靈活性較強,滿足實時檢測的要求,使用PyQt5框架開發了圖形化界面并實現了相關的功能,系統設計較為完善,兼容性較好,具有一定的實用價值。