洪叁亮
深圳平安綜合金融服務有限公司,廣東 深圳 518000
借助視覺算法智能識別群眾是否戴口罩,具備良好的應用價值,如銀行、保險、微信和支付寶等金融業務人臉核驗場景、機場和火車站閘機人臉核驗場景、居民樓刷臉進樓等。判斷群眾是否佩戴口罩,拒絕佩戴口罩人群,提高人臉識別準確率,從而進一步提高了金融安防等場景的人臉識別的安全性。
傳統的目標檢測方法通常是基于手工設計的特征,如方向梯度直方圖(histogram of oriented gradient,HOG)[1]檢測算法;基于滑窗搜索,如Viola Jones 檢測算法[2]。傳統的目標檢測算法對環境要求比較嚴格,往往需要在理想環境下進行,特征提取需要人工設計,不僅工作量大、還存在滑窗搜索性能低等缺點。
隨著深度學習在計算機視覺的廣泛應用,卷積神經網絡(convolution neural network,CNN)也廣泛應用于目標檢測、圖像分類和圖像分割等領域。基于深度學習的目標檢測主要有3類:第1類是基于二階段(Two-stage)算法;第2類是基于一階段(One-stage)算法;第3類是基于無錨點的檢測(anchor free)。Two-stage 主要是借助啟迪式算法或者區域候選網絡(region proposal network,RPN)[3]來生成候選框, 對候選框再進一步進行分類和回歸達到目標檢測的目的,如空間金字塔池化網絡(spatial pyramid pooling network,SPPNet)[4]和Fast R-CNN[5], 此類方法檢測準確率高,但存在檢測速度慢的缺點。One-stage 則是借助CNN 來預測目標的矩形框(即所在位置)和所屬類別,同時使用錨框加速邊框回歸,網絡輸出再經過非極大值抑制(non-maximum suppression,NMS)得到最終結果。如單次多盒檢測器(single shot multibox detector,SSD)[6]和你只看一次(you only look once,YOLO)[7], 此類方法檢測速度快,適合做實時檢測任務。anchor free 通常借助heatmap 預測目標中心點并回歸相應目標的高度和寬度等,如CenterNet[8],該方法召回率高、誤檢少。本文人臉檢測器選擇精度和速度均較優的AIZOO 開源算法FaceMaskDetection[9]。該方法是基于單次多盒檢測器(single shot multibox detector,SSD)的人臉口罩檢測,適合做實時檢測任務。本文方法旨在自然環境復雜場景下實現實時的人臉口罩檢測,并可部署應用在計算量小的終端設備上。
目前,有不少學者致力于人臉口罩檢測的研究。鄧黃瀟[10]基于RetinaNet 遷移學習來實現人臉口罩檢測;肖俊杰[11]基于 YOLO 和YCrCb 人臉膚色模型來實現人臉口罩檢測;牛作東等[12]基于RetinaFace 和注意力機制(attention)來實現人臉口罩檢測。上述算法在計算資源不足的移動設備實時檢測任務中,存在實效性和準確率有待提高和在復雜環境下算法的魯棒性有待提高等不足。
綜上所述,設計一個復雜場景下的實時人臉口罩檢測器是很有必要的,本文在AIZOO 開源算法FaceMaskDetection 的基礎上設計一個高精度輕量級人臉口罩分類器,旨在進一步提高人臉口罩檢測的整體精度。本文設計的高精度輕量級人臉口罩分類模型,僅犧牲少量計算資源就能大大提高人臉口罩檢測的整體精準度。本文提出了快速特征提取模塊FastBlock 和基于多層級特征融合的輕量級人臉口罩分類網絡(Light MaskNet),實驗結果表明,該人臉口罩分類模型精度可達98.852%, ,CPU 推理時間僅為9.8 ms,GPU 可實現亞毫秒級的運算,可滿足計算資源較少的邊緣設備、移動端等應用的需求。
本文在AIZOO 開源算法FaceMaskDetection的基礎上設計一個高精度輕量級人臉口罩分類器,提出了快速特征提取模塊FastBlock 和基于多層級特征融合的輕量級人臉口罩分類網絡。
人臉檢測采用AIZOO 開源算法FaceMask-Detection,該人臉檢測模型輸出人臉框的同時也輸出人臉是否戴口罩的類別,可以在環境光線不理想、人臉姿態多樣等不利條件下較好地召回人臉。
由于FaceMaskDetection 即使能盡可能多召回人臉,但是在人臉口罩的分類精度上還存在較大的缺陷,因此,本文設計了基于多層級特征融合的輕量級人臉口罩分類網絡Light MaskNet 來彌補FaceMaskDetection 的精度缺陷。
1.2.1 快速特征提取模塊FastBlock
MobileNetV2[13]的Bottlneck 包含由非線性分離的后續深度增加擴展( depth-increasing expansion) 和深度減少投影( depth-decreasing projection)逐點卷積(pointwise convolutions)。本文做了創新,交換深度可分離(Depthwise, DW)卷積和1×1 卷積的執行順序,達到減少DW 卷積和1×1 卷積中間張量的通道數量,進一步降低計算成本的目的,從而提高了特征提取速度。FastBlock 如圖1 所示。

圖1 快速特征提取模塊FastBlock
1.2.2 特征提取器
特征提取器采用128×128 像素的RGB 輸入,由3 個2D 卷積、11 個FastBlock 組成(完整布局見表1 特征提取器)。最高張量深度(通道分辨率)為96,而最低空間分辨率為8×8。

表1 特征提取器
1.2.3 網絡結構
Light MaskNet 由特征提取器和1 個全連接層組成,其中特征提取器采取多層級特征融合方式進行特征提取,不同層級之間的特征融合可以增大模型的廣度,提高模型的魯棒性。全連接層的輸入為896 個神經單元,輸出為2 個分類神經單元(即戴口罩與沒戴口罩),Light MaskNet 如圖2。

圖2 Light MaskNet
實驗在Linux 系統下搭建的Pytorch 環境下進行,CPU 為Intel?Core?i7-8750H2.21 GHz,內存32 GB,顯卡為GeForceRTX 2080Ti。
實驗數據一部分為公開人臉數據集(MAsked FAces,MAFA)和AIZOO 提供的公開人臉數據集,訓練集部分(AIZOO 數據集由Widerface 數據集標注而成,場景種類繁多且復雜);另一部分為網上爬蟲人臉樣本及相機拍攝人臉樣本。經整理數據集共計10 000 張圖片(戴口罩人臉與沒戴口罩人臉),其中訓練集8 000 張圖片,測試集2000張圖片。
訓練圖像進行預處理,所述預處理包括數據擴增和數據歸一化處理,數據擴增包括隨機裁剪和補邊、隨機顏色抖動。訓練圖像大小為128×128。
損失函數選用交叉熵損失公式為
式中:y為真實標簽,y′為預測值。
訓練優化器Adam;超參數 β1和 β2分別為0.9 和0.999;學習率為0.001;batch size 設置為64,epoch 設置為20;訓練時超過5 個 epoch 準確率沒有升高則采取early stopping 策略停止訓練。
本文為了驗證Light MaskNet 算法的有效性,在相同訓練集上另外進行了4 組遷移學習訓練人臉口罩分類器,分別是基于MobileNetV2、ShuffleNetV2(x1.0)[14]、ShuffleNetV2(x0.5)和Mobile-ViT(xxs)[15]進行遷移學習訓練分類器,這4 個網絡分別去掉最后的分類層和倒數第1 個全連接層,然后接入自定義的全連接層,輸出都為2 個神經元(分別代表戴口罩與沒戴口罩),訓練圖像大小均為224×224,數據預處理方式和損失函數均與Light MaskNet 一致。不同算法在測試集上的測試結果如表2 所示。

表2 不同算法測試結果
實驗數據表明,本文提出的Light MaskNet 準確率較其他4 個模型略輸,但差距并不大,但在CPU 推理時間、參數量(Params)和乘加累積操作數(MAdds)均優于其他4 個模型,所以結合不同的應用需求可以選擇對應的模型,如移動端等計算資源有限的邊緣設備優先考慮選擇本文提出的Light MaskNet。
人臉口罩檢測方案由FaceMaskDetection 和本文方法級聯而成。復雜場景下待檢測圖像先用FaceMaskDetection 進行人臉口罩檢測,將類別為No Mask(算法判斷為沒戴口罩)的人臉區域從原圖裁剪后送入本文方法Light MaskNet 進行進一步的人臉口罩分類。
為了進一步驗證本文算法的有效性,本文與FaceMaskDetection 的人臉口罩分類準確率做了比較,驗證集為AIZOO 數據集測試集,該數據集場景種類多而復雜,有利于驗證算法在復雜場景下的魯棒性。根據AIZOO 數據標注,從測試集裁出人臉圖片(包括戴口罩與不戴口罩)1 840 張。Light MaskNet 和FaceMaskDetection 在測試集上的測試結果如表3 所示。

表3 Light MaskNet 和FaceMaskDetection 測試結果
實際復雜場景下人臉口罩檢測對比效果如圖3 和圖4 所示。其中,圖3 (a)為FaceMaskDetection的檢測結果,圖3 (b)為FaceMaskDetection 和本文方法Light MaskNet 級聯檢測結果。

圖3 人臉口罩檢測對比效果1
針對FaceMaskDetection 即使能盡可能多召回人臉,但是在人臉口罩的分類精度上還存在較大的缺陷,本文設計了基于多層級特征融合的輕量級人臉口罩分類網絡Light MaskNet,并提出快速特征提取模塊FastBlock。并設計4 套遷移學習方案與Light MaskNet 做性能、準確率等綜合比較,以及基于AIZOO 測試集分析比較Light MaskNet和FaceMaskDetection 的人臉口罩分類準確率,實驗數據表明本文方法能彌補FaceMaskDetection 精度低的缺陷,本文方法精度優異,計算量極小,CPU 推理時間僅9.8 ms,GPU 可實現亞毫秒級推理,可很好地滿足計算資源有限的移動端和邊緣設備的應用需求。