孫 龍,張榮芬,劉宇紅,饒庭漓
(貴州大學(xué) 大數(shù)據(jù)與信息工程學(xué)院,貴陽 550025)
正確佩戴口罩可以有效阻絕新型冠狀病毒在人群中的傳播[1]。然而,疫情常態(tài)化的趨勢使得民眾逐漸放松了警惕,公共場所等高風(fēng)險區(qū)域不戴口罩或不規(guī)范佩戴口罩等現(xiàn)象頻發(fā),例如,據(jù)“深圳發(fā)布”2022 年10 月11 日消息,深圳新一輪疫情中一部分新增病例因不規(guī)范佩戴口罩而發(fā)生隔空感染。因此,在高風(fēng)險場所內(nèi)如何結(jié)合安防攝像頭對密集人群進(jìn)行口罩佩戴檢測,成為一個值得研究的問題。與此同時,隨著深度學(xué)習(xí)及計算機視覺的快速發(fā)展,目標(biāo)檢測這一計算機視覺下的子分支在安防監(jiān)控、自動駕駛、無人機場景分析等領(lǐng)域中得到廣泛應(yīng)用。目標(biāo)檢測是語義分割、實例分割等高級視覺任務(wù)的基礎(chǔ),可簡單定義為:給定輸入圖像,通過目標(biāo)檢測算法,在輸入圖像中檢測出指定物體類別及其對應(yīng)坐標(biāo)位置信息,并通過矩形框可視化標(biāo)注。
現(xiàn)有目標(biāo)檢測算法可根據(jù)階段數(shù)分為單階段與雙階段兩類。常見單階段目標(biāo)檢測算法包括YOLO[2]、SSD[3]、Retina-Net[4]等,常見雙 階段算 法包括Fast R-CNN[5]、Faster R-CNN[6]、Cascade R-CNN[7]等。單階段目標(biāo)檢測算法往往以檢測精度為代價從而具有較快的推理速度,而雙階段算法則與之相反。
本文研究的口罩佩戴情況包括正確佩戴、不規(guī)范佩戴、未佩戴等3 個類別。目前已有許多研究者將目標(biāo)檢測算法運用于口罩佩戴檢測這一任務(wù)中。春雨童等[8]提出新冠肺炎疫情背景下聚集性傳染風(fēng)險智能監(jiān)測模型,基于Cascade-Attention R-CNN目標(biāo)檢測算法,利用兩階段網(wǎng)絡(luò)精度高的優(yōu)點實現(xiàn)對聚集區(qū)域、行人和口罩佩戴情況的自動檢測,但仍然不可避免兩階段檢測網(wǎng)絡(luò)檢測效率的難題。HE 等[9]提出基于HSV+HOG 特征和SVM 的人臉口罩檢測算法,利用人臉關(guān)鍵點檢測人臉口罩佩戴情況。該算法雖然達(dá)到了一定的檢測精度,但時間復(fù)雜度較高,魯棒性較差。李雨陽等[10]提出基于改進(jìn)SSD 的口罩佩戴檢測算法,同時通過引入?yún)f(xié)調(diào)注意力機制、使用Quality Focal Loss 實現(xiàn)更優(yōu)的正負(fù)樣本分配策略。曹城碩等[11]提出利用YOLO-v3 算法進(jìn)行口罩佩戴檢測,但所構(gòu)建數(shù)據(jù)集樣本過少,且未針對特定場景做出優(yōu)化。白梅娟等[12]提出利用可見光與紅外圖像進(jìn)行聯(lián)合口罩佩戴檢測研究。此種方式雖然能提升模型算法的準(zhǔn)確率與召回率,但應(yīng)對復(fù)雜多變的外部環(huán)境時不具備普適性。
上述研究都一定程度上實現(xiàn)了性能優(yōu)異的口罩佩戴檢測算法,但作為目標(biāo)檢測子任務(wù)之一的口罩佩戴檢測同樣會遭遇目標(biāo)檢測中的幾大難題,如目標(biāo)樣本密集分布、遮擋、圖像畸變、小目標(biāo)檢測等,而在監(jiān)控視角下針對密集人群的口罩佩戴檢測也同樣會面臨以上問題。為此,本文提出基于YOLO-v5 改進(jìn)的針對監(jiān)控視角下密集人群的口罩佩戴檢測算法MDDC-YOLO,主要工作如下:改進(jìn)YOLO-v5 特征融合策略,選擇對小目標(biāo)檢測更為友好的C2 特征圖輸入特征路徑聚合網(wǎng)絡(luò)FPN+PANet中;受Trident-Net 啟發(fā),利用空洞卷積構(gòu)建用于增強感受野的多分支空洞卷積模塊MRF-C3,替換YOLO-v5 中用于構(gòu)建骨干網(wǎng)絡(luò)的C3 模塊,提高模型小目標(biāo)檢測能力;引入Repulsion Loss,采用基于樣本邊界框排斥吸引的原則,提高模型應(yīng)對目標(biāo)遮擋的魯棒性;引入ECA(Efficient Channel Attention)注意力機制,賦予模型進(jìn)行自適應(yīng)關(guān)注通道特征的能力;提出基于透視變化結(jié)合縮放拼接的離線數(shù)據(jù)擴充方法,增加監(jiān)控視角下小目標(biāo)、目標(biāo)不同透視角度的樣本數(shù)量,并使用能生成更多小目標(biāo)樣本的 Mosaic-9 數(shù)據(jù)增強結(jié)合隨機擦除的在線數(shù)據(jù)增強方法。
MDDC-YOLO 監(jiān)控視角密集人群口罩佩戴檢測算法改進(jìn)于通用目標(biāo)檢測算法YOLO-v5,為使其適用于本文所針對的應(yīng)用場景,相對YOLO-v5 做出以下改進(jìn):利用空洞卷積構(gòu)造多分支感受野模塊MRF-C3替換YOLO-v5 中常規(guī)C3模塊,解決密 集人群中小目標(biāo)占比大、普遍存在遮擋的現(xiàn)象;使用Repulsion Loss 基于樣本邊界框排斥吸引的原則,提高模型抗遮擋能力;引入ECA 注意力機制,賦予模型進(jìn)行特征通道最優(yōu)化選擇的能力。MDDC-YOLO網(wǎng)絡(luò)結(jié)構(gòu)如圖1 所示(彩色效果見《計算機工程》官網(wǎng)HTML 版,下同)。
圖1 MDDC-YOLO 網(wǎng)絡(luò)結(jié)構(gòu)Fig.1 Structure of MDDC-YOLO network
為提高網(wǎng)絡(luò)對多尺度目標(biāo)檢測的魯棒性,受Trident-Net[13]研究啟發(fā),本文在原三叉戟塊(Trident blocks)的基礎(chǔ)上,設(shè)計用于增強模型不同層次感受野的多分支感受野模塊MRF-C3,如圖2 所示,其中,圖2(a)為YOLO-v5 中原始C3模塊,圖2(b)為MRF-C3 模塊。
圖2 C3 與MRF-C3 模塊Fig.2 C3 and MRF-C3 modules
MRF-C3 模塊采用膨脹率分別為(1,2,3)的3 組空洞卷積與1 條來自于上層輸入的殘差連接構(gòu)成,并最終形成四分支并行的特征圖輸出模塊。值得注意的是,Trident-Net 的提出者認(rèn)為應(yīng)使模型學(xué)習(xí)到目標(biāo)不同尺寸的特征,而不是將被縮放至不同尺寸的同一物體視為毫無關(guān)聯(lián)的多個不同物體[13],因此,在3 條由空洞卷積構(gòu)成的分支中,將不同分支的空洞卷積設(shè)置為參數(shù)共享。本文將這樣的多分支感受野聚合模塊MRF-C3 嵌入YOLO-v5 骨干網(wǎng)絡(luò)CSPDarkNet53 中,以提升模型對目標(biāo)尺度變化的敏感性。
針對密集人群的口罩佩戴檢測常常會遇到目標(biāo)之間相互遮擋的問題,如圖3 所示。在訓(xùn)練階段,目標(biāo)間遮擋會導(dǎo)致本屬于目標(biāo)B 的預(yù)測框被與之重疊的目標(biāo)A 的真實框吸引,從而導(dǎo)致訓(xùn)練過程中正樣本丟失,影響訓(xùn)練精度;在預(yù)測階段,由于目標(biāo)檢測器預(yù)測時后處理中通常使用非極大值抑制(Non-Maximum Suppression,NMS)來抑制針對同一目標(biāo)產(chǎn)生的多個冗余框,而目標(biāo)間遮擋時會出現(xiàn)前文中所提及的交叉物體干擾的現(xiàn)象,導(dǎo)致經(jīng)NMS 后處理后出現(xiàn)交叉物體漏檢現(xiàn)象。
圖3 目標(biāo)遮擋示意圖Fig.3 Schematic diagram of target occlusion
為解決以上問題,本文采用WANG 等[14]基于預(yù)測框與真實框排斥吸引的Repulsion Loss 來解決密集人群口罩佩戴檢測中的目標(biāo)遮擋問題。Repulsion Loss 可定義為式(1):
其中:LAttr為吸引項,作用為使預(yù)測框與相匹配的真實框盡可能接近,具體可定義為式(2),式中,P+為圖像中正樣本集合,BP為預(yù)測框,GP,Attr為與該預(yù)測框?qū)?yīng)的真實框;LRepGT及LRepBox為排斥項,前者作用為排斥該預(yù)測框周圍的其余真實框,后者作用為排斥其余分別歸屬于不同真實框的預(yù)測框,兩者分別定義為式(3)、式(4),在式(3)中,IIoG(BP,GP,Attr)為該預(yù)測框與其對應(yīng)真實框之間重疊部分在真實框中的占比,在式(4)中,Ι[]為標(biāo)識函數(shù),ε為功能常數(shù),用于避免出現(xiàn)分母為0 的情況,SmoothLn具體定義如式(5)所示,平滑因子σ?)[0,1 ;α與β為平衡兩者損失的補償項。
注意力機制意在空間層面及通道層面對各組成部分進(jìn)行權(quán)重分配從而使得網(wǎng)絡(luò)性能獲得提升。近年來,大量與視覺相關(guān)的注意力研究相繼被提出,如關(guān)注通道間關(guān)系的SE[15]、同時關(guān)注空間與通道間特征關(guān)系的CBAM[16]以及對通道間關(guān)系關(guān)注更為高效的ECA[17],本文選擇ECA 注意力機制作為提升各層級特征表達(dá)的模塊,并將其插入FPN[18]與PANet[19]連接處,如圖4 中藍(lán)色虛線框中藍(lán)色箭頭所示。
圖4 ECA 注意力插入位置示意圖Fig.4 Schematic diagram of ECA attention insertion position
在ECA 注意力模塊中,首先將輸入特征進(jìn)行全局平均池化,并將其輸入至核大小為k的一維卷積中,然后通過Sigmoid 激活函數(shù)獲得各通道權(quán)重,最后對各通道特征進(jìn)行權(quán)重分配,從而獲得輸出特征。ECA 注意力模塊具體結(jié)構(gòu)如圖5所示。
圖5 ECA 注意力模塊結(jié)構(gòu)Fig.5 Structure of ECA module
考慮到真實監(jiān)控視角下口罩人臉存在透視畸變的問題,在離線數(shù)據(jù)增強中,本文引入透視變換進(jìn)行數(shù)據(jù)擴充從而獲得口罩人臉多角度樣本。為增強模型抗遮擋的魯棒性,在訓(xùn)練過程中引入圖像區(qū)域隨機擦除方法[20],為進(jìn)一步解決監(jiān)控視角下口罩人臉目標(biāo)小的問題,使用Mosaic-9 替代常規(guī)Mosaic[21]數(shù)據(jù)增強方法。
透視變換具有將圖像從一個視平面投影至新的視平面,使得一個平面圖像產(chǎn)生透視效果的能力,透視變換可表示如下:
其中:x、y、w為原始圖像坐標(biāo),對應(yīng)得到經(jīng)投影變換后的圖像坐標(biāo)x′、y′、w′;矩陣A為投影變換矩陣。
本文將透視變換結(jié)合縮放拼接的方式應(yīng)用于目標(biāo)數(shù)為1 圖像中,以此進(jìn)行數(shù)據(jù)集擴充,即通過設(shè)置不同的透視變換矩陣,獲得原始圖像不同透視角度的圖像,并結(jié)合原圖進(jìn)行縮放拼接。離線數(shù)據(jù)增強示意圖如圖6 所示。
Mosaic-9 與Mosaic 數(shù)據(jù)增強總體思路相同,都是使用多張圖像進(jìn)行縮放拼接處理,從而使樣本在訓(xùn)練過程中得到多尺度表達(dá),有助于增加數(shù)據(jù)集多尺度樣本、豐富檢測物體的背景以及在批歸一化計算時同時計算多張圖像數(shù)據(jù)。在原始YOLO-v5 中,隨機從數(shù)據(jù)集中選取4 張圖像進(jìn)行Mosaic 處理,但在本文所針對的應(yīng)用場景下,為盡可能多地提供小目標(biāo)樣本,采用9 張圖像作為Mosaic 數(shù)據(jù)增強的最小組合,如圖7 所示,處理流程如下:1)隨機抽取9 張圖像,保持原始圖像高寬比進(jìn)行整體隨機縮放;2)將9 張圖像分別放置于尺寸相同的初始圖像的9 個區(qū)域中;3)對每一張初始圖像按照圖中所示橙色分割線進(jìn)行分割,并將9 個分屬于不同圖像的分割結(jié)果拼接為一張圖像,原始圖像縮放比例及分割線位置都為隨機選取。在上述處理流程的基礎(chǔ)上,使用隨機擦除數(shù)據(jù)增強方法,并采用圖像均值進(jìn)行擦除區(qū)域填充。將上述針對數(shù)據(jù)處理策略統(tǒng)稱為DAFS。
圖7 Mosaic-9 數(shù)據(jù)增強示意圖Fig.7 Schematic diagram of Mosaic-9 data augmentation
硬件配置:CPU 為Intel?酷睿?i7-12700KF,GPU為GeForce RTX?3090,操作系統(tǒng)為Ubuntu 18.04 LTS。深度學(xué)習(xí)環(huán)境配置:深度學(xué)習(xí)框架PyTorch 版本為1.8.2 LTS,CUDA 版本為11.1,Python 版本為3.8。
本文利 用公開 數(shù)據(jù)集MaskedFace-Net[22]與PWMFD[23]組建實 驗數(shù)據(jù) 集。PWMFD 數(shù)據(jù)集中包含3 個類別的口罩佩戴類型,共計9 205 張圖像,但不規(guī)范佩戴口罩這一類別目標(biāo)數(shù)僅為366 個,類別極度不均衡,而MaskedFace-Net 提出名為MTFDM(Mask-to-Face Deformable Model)的模型,用于根據(jù)已有人臉數(shù)據(jù)集生成佩戴口罩人臉圖像,并基于FFHQ(Flickr-Faces-HQ)[24]構(gòu)建包 含3 個類別共計133 783 張圖像的人臉口罩?jǐn)?shù)據(jù)集。
本文算法通過人臉關(guān)鍵點與口罩關(guān)鍵點匹配,從而獲得包括正確佩戴口罩、未完全遮擋下巴、露出鼻子、露出嘴和鼻子等類別的數(shù)據(jù),各類別關(guān)鍵點匹配示意如圖8 所示。
圖8 各類別關(guān)鍵點匹配示意圖Fig.8 Schematic diagrams of matching each class of landmarks
為解決不規(guī)范佩戴口罩這一類別樣本嚴(yán)重缺乏的問題,選取8 585 張類別為不規(guī)范佩戴的圖像作為實驗數(shù)據(jù)補充,并采用本文提出的DAFS 方法進(jìn)行數(shù)據(jù)擴充,得到如表1 所示數(shù)據(jù)集。
表1 實驗數(shù)據(jù)集 Table 1 Experimental dataset
實驗中并未以圖片數(shù)量作為數(shù)據(jù)集劃分的最小單位,而是以樣本數(shù)量即圖像中的目標(biāo)數(shù)量作為依據(jù),按照8∶1∶1 的比例將數(shù)據(jù)集劃分為訓(xùn)練集、測試集、驗證集,具體如表2 所示。
表2 數(shù)據(jù)集劃分 Table 2 The partition of dataset
為驗證本文中所采用的各改進(jìn)策略的有效性,設(shè)計消融實驗進(jìn)行驗證研究,訓(xùn)練過程總共迭代300 個epoch,batch size 設(shè)置為32,使用SGD 優(yōu)化器,在開始的3 個epoch 中使用warm up 調(diào)整學(xué)習(xí)率,初始學(xué)習(xí)率設(shè)置為0.001,momentum 設(shè)為0.937,MDDC-YOLO 訓(xùn)練結(jié)果如圖9 所示,消融實驗結(jié)果如表3 所示。
表3 消融實驗結(jié)果 Table 3 The result of ablation experiment
圖9 訓(xùn)練結(jié)果Fig.9 Train results
與YOLO-v5(baseline)相比,在骨干網(wǎng)絡(luò)CSPDark Net53中嵌入多分支感受野模塊MRF-C3 后,模型以犧牲幀率為代價獲得1.6 個百分點mAP 的提升,通過替換邊界框損失函數(shù)為Repulsion Loss 后模型獲得1.9 個百分點mAP 的提升,這來源于目標(biāo)密集分布場景下,該損失函數(shù)使得訓(xùn)練過程中遮擋正樣本得到充分利用。引入ECA 注意力機制后可使特征通道權(quán)重化,模型能夠快速準(zhǔn)確提取不同重要性的特征信息,最后使用透視變換、隨機擦除等離線數(shù)據(jù)增強策略,增加了目標(biāo)多角度樣本,并在Mosaic-9 及隨機擦除的增強下,獲得0.7 個百分點mAP 的提升,并最終將幀率保持在32 幀/s,從而滿足算法實時性應(yīng)用的需求。
為比較MDDC-YOLO 算法與目標(biāo)檢測領(lǐng)域常見算法在監(jiān)控視角下密集人群口罩佩戴檢測這一任務(wù)上的優(yōu)劣,本文進(jìn)一步設(shè)計對比實驗進(jìn)行研究,實驗結(jié)果如表4和表5所示,其中加粗?jǐn)?shù)據(jù)為最優(yōu)數(shù)據(jù)。
表4 對比實驗結(jié)果 Table 4 The result of comparative experiment
表5 與其他YOLO-v5 改進(jìn)模型對比實驗結(jié)果 Table 5 The result of comparative experiment with others model improved base YOLO-v5
表4 數(shù)據(jù)表明,本文提出的MDDC-YOLO 算法達(dá)到了98.1%的mAP,相比本文所選擇的基礎(chǔ)算法YOLO-v5,mAP 獲得6.5 個百分點的提升,同時僅使幀率由42 幀/s 下降至32 幀/s,而目標(biāo)檢測領(lǐng)域中將檢測器檢測幀率是否大于30 幀/s 作為判斷檢測器實時與否的標(biāo)準(zhǔn),故本文所提出算法仍屬于實時檢測器的范疇;表5 對比中以YOLO-v5 為基礎(chǔ)改進(jìn)的幾個模型,雖能夠在通用目標(biāo)檢測上取得優(yōu)異的性能表現(xiàn),但面對本文所針對監(jiān)控視角下人群密集分布場景時,均出現(xiàn)一定程度的精度丟失,無法滿足密集人群高風(fēng)險公共場所視頻監(jiān)控這一應(yīng)用場景的要求。
為直觀展示檢測效果,實驗最后給出可視化檢測效果,如圖10、圖11 所示,其中邊界框顏色藍(lán)、黃、紅分別對應(yīng)正確佩戴口罩、不規(guī)范佩戴口罩、未佩戴 口罩等3 個類別,圖10(a)、圖10(c)和圖11(a)為監(jiān)控視角下密集人群圖像原始圖像??梢钥闯?,針對正確佩戴口罩、不正確佩戴口罩、未佩戴口罩這3 個類別,面對透視畸變、側(cè)臉、遮擋以及模糊等監(jiān)控視角下的諸多問題,本文算法均能得到較好的檢測效果。
圖10 MDDC-YOLO 檢測效果1Fig.10 Detection effect 1 of MDDC-YOLO
圖11 MDDC-YOLO 檢測效果2Fig.11 Detection effect 2 of MDDC-YOLO
基于改進(jìn)YOLO-v5[29]通用目標(biāo)檢測算法,本文提出一種監(jiān)控視角下密集人群口罩佩戴檢測算法MDDC-YOLO。為應(yīng)對監(jiān)控視角下小目標(biāo)檢測的難點,提出基于空洞卷積的多分支感受野模塊MRF-C3,并將其嵌入YOLO-v5 骨干網(wǎng)絡(luò)中,然后采用Repulsion Loss 提升目標(biāo)密集分布情況下模型的抗遮擋能力。在此基礎(chǔ)上,在YOLO-v5 特征聚合部分插入ECA 注意力模塊,使得各通道間特征得到最優(yōu)化選擇,以提升模型檢測精度。最后,提出采用透視變換及Mosaic-9 等數(shù)據(jù)增強策略,提升適用于監(jiān)控視角密集人群口罩佩戴檢測的樣本數(shù)量。在一系列改進(jìn)策略的支撐下,MDDC-YOLO 相較于YOLO-v5取得6.5 個百分點mAP 的提升,并最終使模型幀率保持在32 幀/s,相較于其他通用目標(biāo)檢測模型,體現(xiàn)出推理速度更快、檢測精度更高的性能優(yōu)勢。本文在解決透視畸變時除采用離線數(shù)據(jù)增強之外,并未進(jìn)行更多處理,所以透視角度過大時,存在口罩佩戴檢測失準(zhǔn)的情況。后續(xù)可進(jìn)一步考慮引入小微型神經(jīng)網(wǎng)絡(luò)嵌入主模塊中,針對透視變換矩陣進(jìn)行學(xué)習(xí),從而進(jìn)行自適應(yīng)的透視畸變矯正,以對抗真實應(yīng)用場景中復(fù)雜的外部條件。