安鶴男, 馬 超, 管 聰, 鄧武才, 楊佳洲
(1 深圳大學電子與信息工程學院, 廣東 深圳 518060; 2 深圳大學微納光電子學研究院, 廣東 深圳 518060)
目標檢測是計算機視覺和數字圖像處理的一個熱門方向,不僅在監控安全、自動駕駛、工業檢測、無人機場景分析等諸多領域[1-2]取得可觀進展,目前也已嘗試應用在口罩佩戴檢測的項目及實踐中[3]。該研究利用計算機視覺技術,旨在檢測靜止圖像或視頻中感興趣的對象,對于降低人力資源成本具有重要的現實意義。 具體來說,就是要識別物體屬于哪個類別,更重要的是獲得物體在圖像中的具體位置,也可以理解為物體識別和物體定位的結合。 傳統的目標檢測算法分別進行特征提取和分類判斷,對特征選擇的要求就更加嚴格,在面對復雜場景的時候很難得到理想效果。 研究可知,時下最先進的物體檢測器利用深度學習網絡作為其骨干和檢測網絡,分別從輸入圖像或視頻中提取特征,進行分類和定位。 近幾年來,隨著卷積神經網絡(convolute?ion neural networks, CNN)的不斷發展,目標檢測算法取得了很大的突破。 目前主流的算法可以分為2類。 一類是Two-stage 網絡基于Region Proposal 的R-CNN 系列算法,如R-CNN、Fast R-CNN 和Faster R-CNN 等[4-5],這類檢測算法將檢測問題劃分為2個階段。 第一個階段首先產生候選區域,包含目標大概的位置信息,需要先運算產生目標候選框;在第二個階段對候選區域進行分類和位置精修。 Twostage 網絡識別準確率高,漏識率低,但速度較慢,不能滿足實時檢測。 針對這一問題,不久又研發出另一類方法,稱為One-stage,這類檢測算法不需要Region Proposal 階段,可以通過一個CNN 直接產生物體的類別概率和位置坐標值,已經提出的代表性算法有:YOLO、RetinaNet、SSD 等[6-7],均可到達實時性要求。 其中,RetinaNet 算法核心就是Focal Loss,并在精度上超過Two-stage 網絡的精度,在速度上超過One-stage 網絡的速度,首次實現單階段網絡對雙階段網絡的全面超越。 近年來,對于RetinaNet 網絡的研究不斷趨于深入,例如李成豪等學者{8}對小目標檢測提出的S-RetinaNet 算法,周迎峰等學者[9]提出了基于RetinaNet 改進的海洋魚類檢測算法,由此可見RetinaNet 算法在實際中已得到了廣泛應用,但并不適用于直接檢測公共場景下的口罩佩戴情況,仍然存在一些不足,亟待改進。
RetinaNet 網絡如圖1 所示。 本次研究深入分析了極度不平衡的正負樣本比例導致單階段檢測器精度低于雙階段檢測器,基于上述分析,提出了一種簡單、但是非常實用的交叉熵損失函數,骨干網絡為ResNet-50,特征金字塔模塊接收3 個特征圖,輸出5個特征圖,通道數都是256,步長為8、16、32、64、128,其中大步長用于檢測大物體,小步長用于檢測小物體。 檢測頭模塊包括分類和位置檢測兩個分支,每個分支都包括4 個卷積層,但是檢測頭模塊的這2 個分支之間參數不共享,分類輸出通道是類別數;檢測輸出通道是anchor 個數,雖然分類和回歸分支權重不共享,但是5 個輸出特征圖的檢測頭模塊權重是共享的。 目前存在的不足主要有以下2 點:
(1)網絡較低層級的特征層需要同時學習局部信息和高層全局信息,這種雙重學習任務加大了網絡訓練的復雜度,進而影響檢測精度。
(2)利用較低層級的檢測小目標的策略完成多種尺度的目標檢測,但一般情況下,深度學習神經網絡中的較低層特征圖能夠提取充分的細節特征,但語義信息卻不夠豐富,反之較深的特征圖包含較少的細節特征,卻會造成較差的檢測結果。
本文根據以上不足以及針對特征融合能力的優化做出以下改進, 基于ResNet - 50 骨干網絡(backbone network)引入空間金字塔池化(Spatial Pyramid Pooling, SPP)[10]結構,利用空間金字塔池化將網絡局部信息和高層信息兩種學習任務加以區分,從而實現高效的目標特征學習;結合原網絡多尺度特征融合想法,重新設計了PSA(Path Aggregation Strengthen Integration ANN Attention)模塊,整合鏈路結合多尺度特征加強融合模塊,先提取豐富的局部特征,再利用自上而下和自下而上的特征融合方式將局部特征和全局特征進行融合,進一步實現特征的充分利用;采用能力更強的GFocal Loss交叉熵損失函數;根據高斯誤差線性激活函數(Gaussian Error Linerar Units, GELUs)[11],重做預測模塊避免梯度爆炸,最終提出了針對人臉口罩識別的多特征融合注意力PSA-Retina 人臉口罩識別網絡,整體結構如圖2 所示。

圖2 PSA-Retina 口罩檢測網絡整體結構圖Fig. 2 The overall structure of the PSA-Retina mask detection network
PSA 多尺度特征融合模塊主要分為2 個子模塊:整合鏈路模塊和注意力融合模塊。
整合鏈路模塊首先要把4 層特征的尺寸調整,P3直接作為M3,再通過2 倍下采樣操作與P4相加,通過核為3 的卷積后得到M4,M5同理為M4和P5計算得到,M6則為P6直接輸出,得到256 通道的特征圖。 因為底層特征分辨率較高,所以專注于細節特征的學習,頂層特征分辨率較低,總是專注于語義特征的學習。 為了平衡該特性,并對特征做進一步融合,采用求和均值來計算,就是先將4 層特征中的M3進行下采樣,M5、M6進行上采樣,保持與中間層次M4特征圖的尺寸相一致,再進行融合處理,綜上方法的數學公式見如下:
其中,L表示特征層的層數。
注意力模塊將進一步處理融合后的特征圖,使得特征更加有辨別力,引入Asymmetric Non-local 注意力機制公式見如下:
其中,N,M特征圖尺寸一致;i為輸入特征圖內某個元素的方位信息;j為所有可能方位信息的索引;g為信息變換函數;卷積核為1;通過f函數計算第i例方位信息和其余全部方位信息的匹配性,是注意力匹配函數。 用匹配計算融合后的特征圖直接輸出為N4,融合后的特征圖再通過上采樣的方法算出N3,融合后的特征圖再通過下采樣的方法算出N5和N6。 共輸出4 層特征N3、N4、N5、N6,最終與M層特征圖來計算求和,如圖3 所示,不同階段的多尺度特征信息經過整合鏈路模塊進行了有效的增強融合。

圖3 PSA 多尺度特征融合注意力模塊Fig. 3 PSA multi-scale feature fusion attention module
骨干網絡負責計算獲得特征圖,在ResNet-50網絡第一個預測特征層中引入空間金字塔池化(Spatial Pyramid Pooling, SPP)結構如圖4、圖5 所示,得到表達力更強、包含多尺度目標區域信息的卷積特征圖。 首先,使用卷積操作將輸入進來的特征處理3 次;隨后,在池化層中,對于5、9、13 三種不同尺寸的池化核、步距為1,分別進行最大池化下采樣操作。 將處理得到的特征圖通過SPP 進行拼接后,接下來將經過3 次卷積操作,就可得到不同尺度的特征融合的輸出特征圖。

圖4 骨干網絡結構圖Fig. 4 Backbone network structure diagram

圖5 空間金字塔池化網絡結構圖Fig. 5 Spatial pyramid pooling network structure diagram
改進預測器結構如圖6 所示。 考慮通過加入正則化來提高泛化能力而避免過擬合,但是仍然存在梯度爆炸問題。 為解決這一問題引入GELUs函數,其依據中心極限定理,大量獨立隨機變量的總體是服從近似正態分布的,現實中有很多復雜人臉口罩情況可以被建模成近似正態分布,使用類正態分布函數作為激活函數就更加合理,而且在具有相同方差的所有可能的分布中,正態分布具有最大不確定性、即熵最大。 本文中,將Class Subnet 和Box Subnet 中的8 個3×3 的卷積層后的加入GELUs函數。

圖6 改進預測器結構圖Fig. 6 Structure of the improved predictor
GFocal Loss交叉熵損失函數能夠有效判斷真實檢測框與預測檢測框之間的重合度,解決了正負樣本不匹配問題,進行梯度回傳。 為了保證訓練和測試一致,同時還能夠兼顧分類分數和質量預測分數都能夠訓練到所有的正負樣本。GFocal Loss將兩者的表示進行聯合,保留分類的向量,對應類別位置的置信度改為質量預測的分數,用離散化的方式直接回歸一個任意分布來做建??虻谋硎荆@里涉及到的數學公式為:
其中,y為標簽,β為超參。 從物理上來講,依然還是保留分類的向量,但是對應類別位置的置信度的物理含義不再是分類的分數,而是改為質量預測的分數。 由δ分布轉為通用分布的形式:
離散化后,可得:
為了盡快擬合到真實分布,使用DFL。 研究推得的數學公式如下:
其中,y0到yn為積分區域;y為標簽點;Si為激活函數后的結果;yi以及yi+1為靠近真實位置的左右鄰近。 在此基礎上,研究推得:
QFL和DFL的作用是正交的,兩者的增益互不影響,可以統一地表示為GFL。 式(7)中,y為0~1的質量標簽;QFL的全局最小解即是δ=y,實驗中發現一般取β=2 為最優。
訓練所使用的服務器配置見表1。 本文使用SSD、RetinaNet、YOLOv3 和PSA-Retina 網絡在同一數據集上歷經相同參數的訓練后進行比較,評價指標為平均精度(Average Precision,AP)、平均精度均值(mean Average Precision,mAP) 和每秒傳輸幀數(Frames Per Second,FPS)。

表1 服務器環境和參數Tab. 1 Server configuration and environment
武漢大學國家多媒體軟件工程技術研究中心制作的RMFD 數據集結合本次研究中經網絡下載整理清洗和標注處理的真實口罩人臉識別數據集,該數據集包含6 000 張口罩人臉和91 000 張不戴口罩人臉,挑選其中5 000 張戴口罩,5 000 張不戴口罩、總共10 000 張圖片,并將該數據集的60%用作訓練集,40%用作測試集。 基于平均檢測精度、平均精度均值及運行幀率評價指標,將提出的PSA-Retina 網絡進行實驗和評估,設置IoU為0.4,所有模型訓練批尺寸設置為8,初始學習率設置為0.000 1,訓練200 個周期。
不同網絡實驗結果見表2。 基于多特征融合的PSA-Retina 網絡對戴口罩的AP值達到87.21%,對未佩戴口罩的AP值達到83.05%,檢測器的mAP值達到85.13%,FPS值達到33.7 f/s。 本文提出的網絡要比SSD、RetinaNet、YOLOv3 網絡的檢測精度均高出3%以上,且檢測速度也表現最優,說明本網絡結構更適用于口罩的識別檢測。
將訓練后的網絡在測試集上進行測試,獲得了召回率-精確度(P -R) 曲線如圖7 所示。 圖7 中,曲線下圍成的面積即為平均檢測精度AP。

圖7 檢測召回率-精度曲線圖Fig. 7 Detection Recall-Precision plot
為更加直觀地感受PSA-Retina 網絡對口罩識別的有效性,圖8 展示了SSD 網絡、RetinaNet 原網絡、YOLOv3 網絡、改進的PSA-Retina 網絡在人臉口罩數據集的檢測效果對比結果,其中置信度閾值設置為0.4,非極大值抑制NMS閾值設為0.45。 由對比結果可以看出,SSD 網絡對小目標的檢測效果并不好;RetinaNet 網絡相比SSD 略有提升,但是容易漏檢,有些很明顯的目標反而沒有被檢測到;YOLOv3 網絡效果較好,但仍然有漏框出現;本文提出的算法對小目標和遮擋都表現出良好的效果,絕大部分漏檢、錯檢情況都被修復,更加適合實際應用中高檢測精度的需求。

圖8 不同網絡檢測效果對比圖Fig. 8 Comparison chart of different network detection effects
本文根據ResNet-50和SPP 空間金字塔結構的優缺點,基于整合鏈路網絡和注意力融合網絡的特性改進得到了PSA 模塊,并將其融入到RetinaNet中,同時改進預測器的GELUs激活函數以避免梯度爆炸,進一步結合GFocal Loss損失函數,最終提出了一個全新的適用于口罩識別的PSA-Retina 檢測網絡。 實驗結果表明,PSA-Retina 網絡能夠有效檢測人臉戴口罩和未戴口罩情況,平均檢測精度達到85.13%,運行幀率為33.7 f/s,且非口罩物體遮擋嘴部情況下,該網絡對于檢測人臉未戴口罩情形也能同樣進行高效識別,在公共場景下的口罩檢測也取得了顯著效果,證明了該網絡在檢測口罩上的有效性和優越性。