安鶴男, 馬 超, 管 聰, 鄧武才, 楊佳洲
(1 深圳大學電子與信息工程學院, 廣東 深圳 518060; 2 深圳大學微納光電子學研究院, 廣東 深圳 518060)
目標檢測是計算機視覺和數(shù)字圖像處理的一個熱門方向,不僅在監(jiān)控安全、自動駕駛、工業(yè)檢測、無人機場景分析等諸多領(lǐng)域[1-2]取得可觀進展,目前也已嘗試應用在口罩佩戴檢測的項目及實踐中[3]。該研究利用計算機視覺技術(shù),旨在檢測靜止圖像或視頻中感興趣的對象,對于降低人力資源成本具有重要的現(xiàn)實意義。 具體來說,就是要識別物體屬于哪個類別,更重要的是獲得物體在圖像中的具體位置,也可以理解為物體識別和物體定位的結(jié)合。 傳統(tǒng)的目標檢測算法分別進行特征提取和分類判斷,對特征選擇的要求就更加嚴格,在面對復雜場景的時候很難得到理想效果。 研究可知,時下最先進的物體檢測器利用深度學習網(wǎng)絡(luò)作為其骨干和檢測網(wǎng)絡(luò),分別從輸入圖像或視頻中提取特征,進行分類和定位。 近幾年來,隨著卷積神經(jīng)網(wǎng)絡(luò)(convolute?ion neural networks, CNN)的不斷發(fā)展,目標檢測算法取得了很大的突破。 目前主流的算法可以分為2類。 一類是Two-stage 網(wǎng)絡(luò)基于Region Proposal 的R-CNN 系列算法,如R-CNN、Fast R-CNN 和Faster R-CNN 等[4-5],這類檢測算法將檢測問題劃分為2個階段。 第一個階段首先產(chǎn)生候選區(qū)域,包含目標大概的位置信息,需要先運算產(chǎn)生目標候選框;在第二個階段對候選區(qū)域進行分類和位置精修。 Twostage 網(wǎng)絡(luò)識別準確率高,漏識率低,但速度較慢,不能滿足實時檢測。 針對這一問題,不久又研發(fā)出另一類方法,稱為One-stage,這類檢測算法不需要Region Proposal 階段,可以通過一個CNN 直接產(chǎn)生物體的類別概率和位置坐標值,已經(jīng)提出的代表性算法有:YOLO、RetinaNet、SSD 等[6-7],均可到達實時性要求。 其中,RetinaNet 算法核心就是Focal Loss,并在精度上超過Two-stage 網(wǎng)絡(luò)的精度,在速度上超過One-stage 網(wǎng)絡(luò)的速度,首次實現(xiàn)單階段網(wǎng)絡(luò)對雙階段網(wǎng)絡(luò)的全面超越。 近年來,對于RetinaNet 網(wǎng)絡(luò)的研究不斷趨于深入,例如李成豪等學者{8}對小目標檢測提出的S-RetinaNet 算法,周迎峰等學者[9]提出了基于RetinaNet 改進的海洋魚類檢測算法,由此可見RetinaNet 算法在實際中已得到了廣泛應用,但并不適用于直接檢測公共場景下的口罩佩戴情況,仍然存在一些不足,亟待改進。
RetinaNet 網(wǎng)絡(luò)如圖1 所示。 本次研究深入分析了極度不平衡的正負樣本比例導致單階段檢測器精度低于雙階段檢測器,基于上述分析,提出了一種簡單、但是非常實用的交叉熵損失函數(shù),骨干網(wǎng)絡(luò)為ResNet-50,特征金字塔模塊接收3 個特征圖,輸出5個特征圖,通道數(shù)都是256,步長為8、16、32、64、128,其中大步長用于檢測大物體,小步長用于檢測小物體。 檢測頭模塊包括分類和位置檢測兩個分支,每個分支都包括4 個卷積層,但是檢測頭模塊的這2 個分支之間參數(shù)不共享,分類輸出通道是類別數(shù);檢測輸出通道是anchor 個數(shù),雖然分類和回歸分支權(quán)重不共享,但是5 個輸出特征圖的檢測頭模塊權(quán)重是共享的。 目前存在的不足主要有以下2 點:
(1)網(wǎng)絡(luò)較低層級的特征層需要同時學習局部信息和高層全局信息,這種雙重學習任務(wù)加大了網(wǎng)絡(luò)訓練的復雜度,進而影響檢測精度。
(2)利用較低層級的檢測小目標的策略完成多種尺度的目標檢測,但一般情況下,深度學習神經(jīng)網(wǎng)絡(luò)中的較低層特征圖能夠提取充分的細節(jié)特征,但語義信息卻不夠豐富,反之較深的特征圖包含較少的細節(jié)特征,卻會造成較差的檢測結(jié)果。
本文根據(jù)以上不足以及針對特征融合能力的優(yōu)化做出以下改進, 基于ResNet - 50 骨干網(wǎng)絡(luò)(backbone network)引入空間金字塔池化(Spatial Pyramid Pooling, SPP)[10]結(jié)構(gòu),利用空間金字塔池化將網(wǎng)絡(luò)局部信息和高層信息兩種學習任務(wù)加以區(qū)分,從而實現(xiàn)高效的目標特征學習;結(jié)合原網(wǎng)絡(luò)多尺度特征融合想法,重新設(shè)計了PSA(Path Aggregation Strengthen Integration ANN Attention)模塊,整合鏈路結(jié)合多尺度特征加強融合模塊,先提取豐富的局部特征,再利用自上而下和自下而上的特征融合方式將局部特征和全局特征進行融合,進一步實現(xiàn)特征的充分利用;采用能力更強的GFocal Loss交叉熵損失函數(shù);根據(jù)高斯誤差線性激活函數(shù)(Gaussian Error Linerar Units, GELUs)[11],重做預測模塊避免梯度爆炸,最終提出了針對人臉口罩識別的多特征融合注意力PSA-Retina 人臉口罩識別網(wǎng)絡(luò),整體結(jié)構(gòu)如圖2 所示。
圖2 PSA-Retina 口罩檢測網(wǎng)絡(luò)整體結(jié)構(gòu)圖Fig. 2 The overall structure of the PSA-Retina mask detection network
PSA 多尺度特征融合模塊主要分為2 個子模塊:整合鏈路模塊和注意力融合模塊。
整合鏈路模塊首先要把4 層特征的尺寸調(diào)整,P3直接作為M3,再通過2 倍下采樣操作與P4相加,通過核為3 的卷積后得到M4,M5同理為M4和P5計算得到,M6則為P6直接輸出,得到256 通道的特征圖。 因為底層特征分辨率較高,所以專注于細節(jié)特征的學習,頂層特征分辨率較低,總是專注于語義特征的學習。 為了平衡該特性,并對特征做進一步融合,采用求和均值來計算,就是先將4 層特征中的M3進行下采樣,M5、M6進行上采樣,保持與中間層次M4特征圖的尺寸相一致,再進行融合處理,綜上方法的數(shù)學公式見如下:
其中,L表示特征層的層數(shù)。
注意力模塊將進一步處理融合后的特征圖,使得特征更加有辨別力,引入Asymmetric Non-local 注意力機制公式見如下:
其中,N,M特征圖尺寸一致;i為輸入特征圖內(nèi)某個元素的方位信息;j為所有可能方位信息的索引;g為信息變換函數(shù);卷積核為1;通過f函數(shù)計算第i例方位信息和其余全部方位信息的匹配性,是注意力匹配函數(shù)。 用匹配計算融合后的特征圖直接輸出為N4,融合后的特征圖再通過上采樣的方法算出N3,融合后的特征圖再通過下采樣的方法算出N5和N6。 共輸出4 層特征N3、N4、N5、N6,最終與M層特征圖來計算求和,如圖3 所示,不同階段的多尺度特征信息經(jīng)過整合鏈路模塊進行了有效的增強融合。
圖3 PSA 多尺度特征融合注意力模塊Fig. 3 PSA multi-scale feature fusion attention module
骨干網(wǎng)絡(luò)負責計算獲得特征圖,在ResNet-50網(wǎng)絡(luò)第一個預測特征層中引入空間金字塔池化(Spatial Pyramid Pooling, SPP)結(jié)構(gòu)如圖4、圖5 所示,得到表達力更強、包含多尺度目標區(qū)域信息的卷積特征圖。 首先,使用卷積操作將輸入進來的特征處理3 次;隨后,在池化層中,對于5、9、13 三種不同尺寸的池化核、步距為1,分別進行最大池化下采樣操作。 將處理得到的特征圖通過SPP 進行拼接后,接下來將經(jīng)過3 次卷積操作,就可得到不同尺度的特征融合的輸出特征圖。
圖4 骨干網(wǎng)絡(luò)結(jié)構(gòu)圖Fig. 4 Backbone network structure diagram
圖5 空間金字塔池化網(wǎng)絡(luò)結(jié)構(gòu)圖Fig. 5 Spatial pyramid pooling network structure diagram
改進預測器結(jié)構(gòu)如圖6 所示。 考慮通過加入正則化來提高泛化能力而避免過擬合,但是仍然存在梯度爆炸問題。 為解決這一問題引入GELUs函數(shù),其依據(jù)中心極限定理,大量獨立隨機變量的總體是服從近似正態(tài)分布的,現(xiàn)實中有很多復雜人臉口罩情況可以被建模成近似正態(tài)分布,使用類正態(tài)分布函數(shù)作為激活函數(shù)就更加合理,而且在具有相同方差的所有可能的分布中,正態(tài)分布具有最大不確定性、即熵最大。 本文中,將Class Subnet 和Box Subnet 中的8 個3×3 的卷積層后的加入GELUs函數(shù)。
圖6 改進預測器結(jié)構(gòu)圖Fig. 6 Structure of the improved predictor
GFocal Loss交叉熵損失函數(shù)能夠有效判斷真實檢測框與預測檢測框之間的重合度,解決了正負樣本不匹配問題,進行梯度回傳。 為了保證訓練和測試一致,同時還能夠兼顧分類分數(shù)和質(zhì)量預測分數(shù)都能夠訓練到所有的正負樣本。GFocal Loss將兩者的表示進行聯(lián)合,保留分類的向量,對應類別位置的置信度改為質(zhì)量預測的分數(shù),用離散化的方式直接回歸一個任意分布來做建??虻谋硎?,這里涉及到的數(shù)學公式為:
其中,y為標簽,β為超參。 從物理上來講,依然還是保留分類的向量,但是對應類別位置的置信度的物理含義不再是分類的分數(shù),而是改為質(zhì)量預測的分數(shù)。 由δ分布轉(zhuǎn)為通用分布的形式:
離散化后,可得:
為了盡快擬合到真實分布,使用DFL。 研究推得的數(shù)學公式如下:
其中,y0到y(tǒng)n為積分區(qū)域;y為標簽點;Si為激活函數(shù)后的結(jié)果;yi以及yi+1為靠近真實位置的左右鄰近。 在此基礎(chǔ)上,研究推得:
QFL和DFL的作用是正交的,兩者的增益互不影響,可以統(tǒng)一地表示為GFL。 式(7)中,y為0~1的質(zhì)量標簽;QFL的全局最小解即是δ=y(tǒng),實驗中發(fā)現(xiàn)一般取β=2 為最優(yōu)。
訓練所使用的服務(wù)器配置見表1。 本文使用SSD、RetinaNet、YOLOv3 和PSA-Retina 網(wǎng)絡(luò)在同一數(shù)據(jù)集上歷經(jīng)相同參數(shù)的訓練后進行比較,評價指標為平均精度(Average Precision,AP)、平均精度均值(mean Average Precision,mAP) 和每秒傳輸幀數(shù)(Frames Per Second,F(xiàn)PS)。
表1 服務(wù)器環(huán)境和參數(shù)Tab. 1 Server configuration and environment
武漢大學國家多媒體軟件工程技術(shù)研究中心制作的RMFD 數(shù)據(jù)集結(jié)合本次研究中經(jīng)網(wǎng)絡(luò)下載整理清洗和標注處理的真實口罩人臉識別數(shù)據(jù)集,該數(shù)據(jù)集包含6 000 張口罩人臉和91 000 張不戴口罩人臉,挑選其中5 000 張戴口罩,5 000 張不戴口罩、總共10 000 張圖片,并將該數(shù)據(jù)集的60%用作訓練集,40%用作測試集。 基于平均檢測精度、平均精度均值及運行幀率評價指標,將提出的PSA-Retina 網(wǎng)絡(luò)進行實驗和評估,設(shè)置IoU為0.4,所有模型訓練批尺寸設(shè)置為8,初始學習率設(shè)置為0.000 1,訓練200 個周期。
不同網(wǎng)絡(luò)實驗結(jié)果見表2。 基于多特征融合的PSA-Retina 網(wǎng)絡(luò)對戴口罩的AP值達到87.21%,對未佩戴口罩的AP值達到83.05%,檢測器的mAP值達到85.13%,F(xiàn)PS值達到33.7 f/s。 本文提出的網(wǎng)絡(luò)要比SSD、RetinaNet、YOLOv3 網(wǎng)絡(luò)的檢測精度均高出3%以上,且檢測速度也表現(xiàn)最優(yōu),說明本網(wǎng)絡(luò)結(jié)構(gòu)更適用于口罩的識別檢測。
將訓練后的網(wǎng)絡(luò)在測試集上進行測試,獲得了召回率-精確度(P -R) 曲線如圖7 所示。 圖7 中,曲線下圍成的面積即為平均檢測精度AP。
圖7 檢測召回率-精度曲線圖Fig. 7 Detection Recall-Precision plot
為更加直觀地感受PSA-Retina 網(wǎng)絡(luò)對口罩識別的有效性,圖8 展示了SSD 網(wǎng)絡(luò)、RetinaNet 原網(wǎng)絡(luò)、YOLOv3 網(wǎng)絡(luò)、改進的PSA-Retina 網(wǎng)絡(luò)在人臉口罩數(shù)據(jù)集的檢測效果對比結(jié)果,其中置信度閾值設(shè)置為0.4,非極大值抑制NMS閾值設(shè)為0.45。 由對比結(jié)果可以看出,SSD 網(wǎng)絡(luò)對小目標的檢測效果并不好;RetinaNet 網(wǎng)絡(luò)相比SSD 略有提升,但是容易漏檢,有些很明顯的目標反而沒有被檢測到;YOLOv3 網(wǎng)絡(luò)效果較好,但仍然有漏框出現(xiàn);本文提出的算法對小目標和遮擋都表現(xiàn)出良好的效果,絕大部分漏檢、錯檢情況都被修復,更加適合實際應用中高檢測精度的需求。
圖8 不同網(wǎng)絡(luò)檢測效果對比圖Fig. 8 Comparison chart of different network detection effects
本文根據(jù)ResNet-50和SPP 空間金字塔結(jié)構(gòu)的優(yōu)缺點,基于整合鏈路網(wǎng)絡(luò)和注意力融合網(wǎng)絡(luò)的特性改進得到了PSA 模塊,并將其融入到RetinaNet中,同時改進預測器的GELUs激活函數(shù)以避免梯度爆炸,進一步結(jié)合GFocal Loss損失函數(shù),最終提出了一個全新的適用于口罩識別的PSA-Retina 檢測網(wǎng)絡(luò)。 實驗結(jié)果表明,PSA-Retina 網(wǎng)絡(luò)能夠有效檢測人臉戴口罩和未戴口罩情況,平均檢測精度達到85.13%,運行幀率為33.7 f/s,且非口罩物體遮擋嘴部情況下,該網(wǎng)絡(luò)對于檢測人臉未戴口罩情形也能同樣進行高效識別,在公共場景下的口罩檢測也取得了顯著效果,證明了該網(wǎng)絡(luò)在檢測口罩上的有效性和優(yōu)越性。