蘇海濤 張守棋
關(guān)鍵詞: DynaNet-SSD;SE注意力機制;小目標檢測;人臉檢測;Focal Loss;Mosaic
0 引言
新冠疫情感染期間,佩戴口罩成了一種常態(tài)化的現(xiàn)象。口罩成為預防呼吸道傳染病的一道防線,可以降低新型冠狀病毒感染風險。因此,采用神經(jīng)網(wǎng)絡的方法對人是否佩戴口罩的檢測[1]具有重要的研究應用價值。
目標檢測是計算機視覺和圖像處理中一個重要的研究領(lǐng)域。隨著大數(shù)據(jù)時代的到來,基于深度學習的目標檢測方法成了研究熱點,雖然檢測精度遠超過傳統(tǒng)的方法,但是仍然無法同時滿足對于實時性和準確性的要求。
而戴口罩人臉檢測實際上屬于人臉檢測與圖像分類[2]問題,即使用目標檢測網(wǎng)絡配合圖像分類網(wǎng)絡,首先確定人的面部位置,然后將圖像分類為未佩戴口罩、已佩戴口罩兩種情況。同時,口罩數(shù)據(jù)集較少、佩戴口罩的場景多樣化、對模型運行速度的要求等情況,也成為口罩人臉檢測中必須考慮的問題。
1 相關(guān)工作
隨著大數(shù)據(jù)的出現(xiàn),計算機硬件性能穩(wěn)步增強,人們對于目標檢測算法的實時性和準確性有了更高的要求,對應的,逐漸加深網(wǎng)絡的深度,加大網(wǎng)絡的寬度,模型復雜度也隨之增高,人們對于計算能力的要求越來越高,加大了訓練的難度和時間的消耗。保證網(wǎng)絡性能的前提下減少網(wǎng)絡參數(shù),壓縮網(wǎng)絡模型也成了目標檢測任務中的一個方向。
MobileNet-SSD[3]算法是將SSD算法中的VGG16[4]特征提取網(wǎng)絡替換為MobileNet特征提取網(wǎng)絡而建立的算法。在沒有減少準確率的情況下,適當減少了網(wǎng)絡參數(shù),綜合了準確率與速度兩個指標。
目前,基于MobileNet-SSD目標檢測模型相關(guān)文獻多是針對特定領(lǐng)域當中的單個類別中單一目標提升檢測性能和識別效果,在復雜度較高的圖片中對于多類別多目標的檢測研究相對較少,特別是針對小目標的檢測[5]仍然具有一定的研究價值。
為了平衡網(wǎng)絡模型的大小和檢測速度,輕量級網(wǎng)絡MobileNet 結(jié)合SSD 框架可以實現(xiàn)快速的目標檢測,MobileNet-SSD能夠有效地對網(wǎng)絡模型的大小進行壓縮,并提高檢測速度。但其在戴口罩人臉檢測上存在以下問題:
1) 小目標戴口罩圖片中,戴口罩人臉檢測不全,即召回率偏低。
2) 小目標戴口罩圖片中,個別人臉模糊不清,導致準確率偏低。
本文修改MobileNet-SSD的基礎網(wǎng)絡模型,添加參數(shù)計算量小的注意力機制模塊,使用Mosaic數(shù)據(jù)增強算法擴充小目標數(shù)據(jù),使用Focal Loss[6]替換Soft? max Loss損失函數(shù),在沒有犧牲檢測時間的前提下,提高了戴口罩人臉檢測效率和識別準確率。
2 戴口罩人臉檢測相關(guān)技術(shù)分析
2.1 SSD 網(wǎng)絡簡介
SSD算法[7]屬于區(qū)別于R-CNN的[8]one-stage(訓練單個網(wǎng)絡)多框預測方法。取決于SSD多尺度特征映射特點,SSD 算法采取了不同尺度的特征圖進行檢測,并設置了不同尺度以及不同寬高比的先驗框(an? fcahuelrt bbooxx))[。9]對然其后進將行這預測些,候得選到框多通個過不同非的極候大選值框抑(d制e?(NMS)[10]方法,得到最終類別和最終位置。
相比于Faster R-CNN[11]和YOLO[12]等目標檢測模型,SSD結(jié)合了YOLO算法的回歸思想,并將全連接層以金字塔網(wǎng)絡進行替代,從而提取到更多特征,同時又借鑒了FasterR-CNN中的anchor機制,設置了不同長寬比的先驗框, 在復雜場景下多目標的情況下,多數(shù)修改基礎網(wǎng)絡形成新SSD算法,小目標檢測性能優(yōu)于YOLOv3[13]和FasterR-CNN,又基于MobileNet 網(wǎng)絡參數(shù)小的特點,在檢測時間方面檢測速度相比于Reti? naNet[14]和YOLO V5[15]更快。
2.2 SSD 多尺度映射
SSD采用特征金字塔結(jié)構(gòu)[16],具有多尺度特征映射的特點,對任意的一幅圖片均通過卷積,生成不同尺度的特征圖層進行預測,如圖1:
(a)只對最后特征圖層輸出的特征信息進行預測,圖(b)對不同尺度的特征圖層進行預測。
2.3 MobileNet-SSD
MobileNet-SSD[17]是在SSD網(wǎng)絡基礎上,使用輕量級卷積神經(jīng)網(wǎng)絡MobileNet 替換SSD 中的VGG16 網(wǎng)絡。
MobileNet-SSD的工作過程如下:采用特征金字塔思想獲取6個卷積層的特征信息,用來進行多尺度多目標的目標檢測,最后進行目標分類和候選框回歸。
事實上,MobileNet-SSD 網(wǎng)絡模型用來做目標檢測的6層特征圖分別為:Conv11(F-map1) 、Conv13(F- map2) 、Conv14_2(F-map3) 、Conv15_2(F-map4) 、Conv16_2(F-map5) 、Conv17_2(F-map6) 。對應大小分別為19×19×512、10×10×1024、5×5×512、3×3×256、2× 2×256和1×1×128(用F-map來表示某一特征圖)。
在MobileNet-SSD網(wǎng)絡中,小物體只有在低位特征圖層中特征相對明顯,在高位特征圖層中經(jīng)過卷積,特征信息相比低位特征圖層少,因此對于小目標檢測效果較差。
3 DynaNet-SSD 算法的設計及實現(xiàn)
MobileNet-SSD算法的基礎上修改,在數(shù)據(jù)集方面,通過添加Mosaic數(shù)據(jù)增強算法[18]擴充數(shù)據(jù),使數(shù)據(jù)集中包含更多小目標戴口罩人臉圖片。
網(wǎng)絡結(jié)構(gòu)方面,在保留MobileNet的深度可分離卷積的前提下通過修改Conv5和 Conv12為1×1的卷積核,整體修改MobileNet網(wǎng)絡結(jié)構(gòu),形成新網(wǎng)絡Dy? naNet,DynaNet包含更多感受野小的特征圖層,以及相比于MobileNet更少的參數(shù),并通過感受野小的特征圖層進行預測。
同時在Conv5層之后添加一個通道注意力模塊,即SE模塊,SE模塊使用全連接層計算量相比于增加一個卷積層更小,同時SE模塊添加在已有的網(wǎng)絡上并不會打亂網(wǎng)絡原有的主體結(jié)構(gòu)。
在損失函數(shù)方面,本文選取Focal Loss二分類類別損失函數(shù)代替原網(wǎng)絡中Softmax千分類損失函數(shù),通過減少負樣本的權(quán)重,將損失函數(shù)聚焦于正樣本中難分辨的類別。最后形成新的DynaNet-SSD算法。
3.1 Mosaic 數(shù)據(jù)增強算法
Mosaic數(shù)據(jù)增強算法,是一種針對于小物體檢測的數(shù)據(jù)增強算法。Mosaic數(shù)據(jù)增強參考了CutMix數(shù)據(jù)增強方式[19],理論上具有一定的相似性。CutMix數(shù)據(jù)增強方式利用兩張圖片進行拼接,但是Mosaic利用了4張圖片,極大地豐富了檢測物體的背景。
實現(xiàn)思路:先選取4張圖片,分別對4張圖片進行隨機翻轉(zhuǎn)、縮放等,最后按照4個方向拼接到一起。Mosaic流程可視化圖如圖2所示:
通過Mosaic數(shù)據(jù)增強算法拼接圖片增強了數(shù)據(jù)集,也把原來大型和較大型的物體縮放縮小組合,使得數(shù)據(jù)集中的小物體增多,提高了算法檢測小物體的精度,如圖3所示:
3.2 DynaNet-SSD 特征提取網(wǎng)絡
考慮戴口罩人臉檢測場景,圖片中的人臉相距較遠,人臉占比例較小,屬于小目標戴口罩圖片(人臉占比小于15%)。本文提出的DynaNet-SSD為了能夠提高小目標戴口罩人臉準確率和召回率,選取特征信息更多和感受野更小的特征圖層進行候選框的預測,并對候選框中的圖像進行分類,即是否佩戴口罩的分類。
MobileNet-SSD網(wǎng)絡結(jié)構(gòu)算法提取的特征圖層是F-map1、F-map2、F-map3、F-map4、F-map5、F-map6。檢測小目標的特征圖層是F-map1特征圖層。
鑒于38×38(F-map1的前一層)的特征圖在進一步的卷積過程中會丟失局部特征信息,所以在設計DynaNet-SSD網(wǎng)絡結(jié)構(gòu)時,提取38×38的特征圖層作為第一特征圖。
DynaNet-SSD 沿用了MobileNet-SSD 的Conv1、Conv2、Conv3、Conv4圖層,在Conv4的基礎上修改卷積核的通道數(shù),卷積之后成為新的Conv5,即DynaNet- SSD將Conv5(38×38×512的特征圖層)作為其第一特征圖層(DF-map1即DynaNet的第一特征圖,以下均用DF-map表示DynaNet選取的特征圖),具體流程如圖5所示:
DynaNet-SSD在Conv11層修改卷積核通道數(shù),卷積之后形成Conv12(19×19×1 024的特征圖層),作為Dmyanpa2N) 。et-SSD 網(wǎng)絡提取的第二個特征圖層(DF-在Conv12之后的特征圖層中,用3×3的卷積核和(1D×F1-的ma卷p3積) 核、進Co行nv標15_準2(卷DF積-m,a選p4?。?其、中Co的nv1C6o_n2v(1D4F_-2 map5) 這三層作為特征提取層,特征圖層的大小分別為10×10×512、5×5×256、3×3×256。DynaNet-SSD提取的特征圖層相比于MobileNet-SSD提取的特征圖層,包含更多小比例人臉特征信息。
SSD算法提取大物體特征明顯,在最高位特征圖層中檢測效果較好,在實際的應用中幾乎不會出現(xiàn)大物體漏檢錯檢的情況。所以DynaNet-SSD網(wǎng)絡選取Conv17-2(1×1的特征圖層,即DF-map6) 作為最后一個特征圖。
3.3 添加SE 注意力機制
在第一特征圖層后,即 Conv5 層之后添加 SE (squeeze-and-excatation) 模塊,由于第一特征圖層存在小目標信息較多,通過SE模塊更好地提取小目標人臉邊界信息,防止卷積過程中有效信息的丟失,同時SE 模塊參數(shù)量相較于其他注意力機制更少,在不損害檢測時間的情況下,提高小目標人臉的檢測準確率。
最后是scale操作,在得到1×1×C向量之后,就可以對原來的特征圖進行scale操作了。很簡單,就是通道權(quán)重相乘,原有特征向量為W×H×C,將SE模塊計算出來的各通道權(quán)重值分別和原特征圖對應通道的二維矩陣相乘,得出的結(jié)果輸出。
總體來說,SE模塊會增加網(wǎng)絡的總參數(shù)量、總計算量,因為使用的是全連接層計算量相比卷積層更小,但是總參數(shù)量會有所上升。
3.4 MobileNet-SSD 和DynaNet-SSD 網(wǎng)絡結(jié)構(gòu)比較
DynaNet-SSD 整體結(jié)構(gòu)對比圖如圖6 和圖7 所示:其中,Conv14 層之前都進行深度可分離卷積,Conv14層之后進行標準卷積。
38×5D12y,na相N比et-于SSDMo選bi取leN的et第-S一SD特的征第圖一層特C征onv圖5層是1398×× 19×512包含更多的特征信息;第二特征圖層Conv12 是19×19×1 024相比于MobileNet-SSD的第二特征圖層10×10×1 024包含更多特征信息;第三特征圖層至第六特征圖層都是大感受野圖層,在小物體方面并沒有很大的提升。
以上闡述了相對于MobileNet-SSD的改進思路,為了更直觀地分析兩種算法的結(jié)構(gòu),制作了兩種不同算法的網(wǎng)絡架構(gòu)圖。
3.5 Focal Loss 損失
目標檢測損失函數(shù)包含兩方面損失,分別是位置信息損失與類別信息損失(戴口罩或不戴口罩兩類)。
MobileNet-SSD 的位置損失采用L1 距離度量的Smooth Ll Loss策略[20],見公式(4) ,其中,xp ij log2 (c?pi)是預測框i 與真實框j 關(guān)于類別p 是否匹配,若p 的概率預測越高,損失越小,類別的概率公式具體參考公式(1)。
類別置信度(即機器得到不同類別的分數(shù))采用Softmax Loss損失函數(shù)[21],見公式(3) ,MobileNet總體置信度按照1:α 的加權(quán)求得,見公式(2),α 默認值為1,x作為自變量傳入函數(shù),c 代表置信度,l 代表預測框,g代表真實框,α 表示權(quán)重,表示匹配候選框數(shù)量為N,lmi和g?mj分別表示預測框和真實框。損失值計算包含以下三部分:
但類別損失方面,由于添加Mosaic數(shù)據(jù)增強算法,數(shù)據(jù)集擴充了小目標戴口罩人臉圖片,但是也擴充了大量的圖片背景(即負樣本),當處理大量負樣本、少量正樣本的情況時,即使把負樣本的權(quán)重設置得很低,但是因為負樣本的數(shù)量太多,負樣本的損失函數(shù)也會主導損失函數(shù),因此本文選取Focal Loss[22]公式(7)代替Softmax Loss損失函數(shù),以戴不戴口罩二分類為主。
Focal Loss不僅可以作用于正負樣本問題,同樣也可作用于難以分辨樣本問題,當> 0時, focal loss的損失小于標準交叉熵損失。pt 在趨向于0.5時,損失函數(shù)最大,在趨向于0或1時,損失函數(shù)最小,進而更容易分辨難分辨樣本(置信度在0.5左右的樣本)。
4 實驗與結(jié)果分析
模型訓練環(huán)境為Window10,CPU R5 3600X,GPU NVIDIA GTX1660s,16G RAM,1T SSD ROM。
按照8:2的比例劃分為訓練集和驗證集,訓練模型輸入300×300像素的圖片7 952張,最大迭代次數(shù)為150次。學習率分階段遞減,初始學習率為1× 10^-4。
訓練過程LOSS 函數(shù)損失圖如圖8 所示,SMSoDbi用leN實e線t-S代SD替(用圖虛標線中代k替er(as圖) 。標中essay
4.1 結(jié)果分析
評價目標檢測的指標好壞為精確率(Precision)、召回 率 (Recall)、平 均 精 度 (Average-Precision,AP) 與 mean Average Precision(mAP)。
精確率又涉及TP(true positive)、TN(true negative)、FP(false positive)、FN (false negative),其中positive 和tnievgea,t預ive測表為示負預類測則得為到ne的ga結(jié)tiv果e; ,tr預ue測和為fal正se類表則示為預測po的si?結(jié)果和真實結(jié)果是否相同,相同則是true,不同則為false。在本文中,TP是預測出的人臉中戴口罩的人臉個數(shù),F(xiàn)P對應著不戴口罩的人臉個數(shù);FN為沒有預測到但實際有標注的人臉中戴口罩的人臉個數(shù),F(xiàn)N就是沒有預測到但實際有標注的人臉中不戴口罩的人臉個數(shù),如表1所示:
(1) 精確度(Precision)。即查準率,是模型判為正類且真實類別也是正類的概率,衡量一個分類器分出來的正確類的是正類的概率,計算公式:
(2)召回率(Recall)。即查全率,是指模型判為正類且真實類別也是正類的圖像數(shù)量在真實類別是正類的圖像數(shù)量中的比率,衡量的是一個分類器能把所有的正類都找出來的能力,計算公式為:
使用與訓練集不相關(guān)的驗證集,將DynaNet-SSD 算法與MobileNet-SSD網(wǎng)絡進行對比。驗證集包含1 223張圖片,是經(jīng)過特意挑選人臉占比小的圖片,個別圖片實例如圖9所示。
對比MobileNet-SSD和DynaNet-SSD算法mAP值如圖10 所示,其中MobileNet-SSD 的mAP 值僅有40.48%,而DynaNet-SSD達到47.30%,mAP值提高了6.82%。
在驗證集上,檢測不戴口罩人臉識別準確率和召回率如圖11所示,其中,MobileNet-SSD算法在不戴口罩人臉識別準確率和召回率分別是80.9%和35.7%,而DynaNet-SSD算法在不戴口罩人臉識別準確率和召回率分別是91.2%和36.4%,準確率提高了10.3%,召回率提高了0.7%。
在驗證集上,檢測戴口罩人臉識別準確率和召回率如圖12所示,其中,MobileNet-SSD算法在戴口罩人臉識別準確率和召回率分別是84.8% 和34.8%,而DynaNet-SSD算法在戴口罩人臉識別準確率和召回率分別是91.7%和39.1%,準確率提高了6.9%,召回率提高了4.3%。
從驗證結(jié)果圖片可以看出,DynaNet-SSD算法在小目標多目標的檢測效率和識別效率強于MobileNe- SSD算法。
在驗證集上,檢測不戴口罩人臉AP值對比圖和戴口罩人臉AP 值對比圖如圖13 所示,其中,MobileNet-SSD算法在不戴口罩人臉AP值為42.7%,DynaNet-SSD 在不戴口罩人臉AP 值為49.4%,AP 值
經(jīng)過在驗證集上測試,DynaNet-SSD網(wǎng)絡在人臉占比小的圖片中,不論是戴口罩還是不戴口罩的檢測效果都要優(yōu)于MobileNet-SSD網(wǎng)絡,更多實例結(jié)果如圖14所示。
左側(cè)為MobileNet-SSD算法在圖片中的效果,右側(cè)為DynaNet-SSD算法在圖片中的效果。
5 總結(jié)
本文提出了DynaNet-SSD結(jié)構(gòu),針對在戴口罩人臉占比小的圖片中對小比例戴口罩人臉檢測效率不高,和小比例戴口罩人臉識別召回率偏低等問題做出了改進,在不影響檢測速度的前提下,提高了召回率和準確率。
DynaNet-SSD 通過采用Mosaic 數(shù)據(jù)增強數(shù)據(jù)集中小比例戴口罩人臉的數(shù)量,選取不同的特征圖層,并修改卷積核改變了通道數(shù),同時增加了SE卷積注意力機制,修改使用Focal Loss 損失函數(shù),與MobileNet-SSD網(wǎng)絡結(jié)構(gòu)對比,在開源數(shù)據(jù)集上測試,分別從準確率、召回率、AP、mAP值上作比較。實驗證明,DynaNet相對于MobileNet-SSD,針對小目標戴口罩人臉,檢測準確率提高了6.9%、召回率提高了4.3%、AP值提高了7%、mAP值提高了6.82%。