王 赫,王 剛,李芊諾,祝首安
(1.黑龍江科技大學(xué) 電子與信息工程學(xué)院,哈爾濱 150022; 2.黑龍江省科學(xué)院智能制造研究所,哈爾濱 150090)
人工督促檢查是否佩戴口罩存在一定的局限性,效率較低,因此對佩戴口罩進行自動實時識別是解決問題的根本。結(jié)合計算機視覺和圖像處理的目標(biāo)檢測技術(shù)已廣泛應(yīng)用于各種圖像及視頻場景,用于檢測單個或多種目標(biāo),如汽車、垃圾、手勢、行人等,其在視頻安防、自動駕駛、交通監(jiān)控、無人機場景分析和機器人視覺等領(lǐng)域中有著廣泛的應(yīng)用[1-2]。隨著卷積神經(jīng)網(wǎng)絡(luò)的不斷發(fā)展,基于深度學(xué)習(xí)的目標(biāo)檢測技術(shù)取得了突破,可分為單階段和雙階段網(wǎng)絡(luò)。關(guān)于傳統(tǒng)的目標(biāo)檢測算法,Papageorgiou等提出了可直接從樣本學(xué)習(xí)特征的目標(biāo)檢測框架[3];Lowe等提出了SIFT尺寸不變特征的運動目標(biāo)檢測技術(shù)[4];Viola等提出了級聯(lián)分類器,即目標(biāo)魯棒實時檢測技術(shù)[5]。此外還有光流法、幀差法、背景差法等[6],采用的分類器主要有Bagging[7]、AdaBoost[8]及支持向量機SVM[9]等。
基于深度學(xué)習(xí)的目標(biāo)檢測算法根據(jù)識別和分類兩個過程,確定目標(biāo)位置和類別方式,可分為以YOLO系列為代表的單階段及以Faster RCNN為代表的雙階段。雙階段過程主要將檢測分為生成候選框和檢測識別兩個過程,對生成的候選框進行信息提取,利用卷積神經(jīng)網(wǎng)絡(luò)完成目標(biāo)檢測和識別。典型的網(wǎng)絡(luò)模型有SPPNet[10]、Fast RCNN[11]、Faster RCNN[12]、R-FCN[13]等。而單階段過程是將整個過程進行統(tǒng)一,利用CNN同時進行特征提取和回歸,具有結(jié)構(gòu)簡單、計算效果高等優(yōu)勢。典型的網(wǎng)絡(luò)模型有YOLO[14]、SSD[15]、DSSD[16]、CornerNet[17]等。
目前,單階段和雙階段的許多目標(biāo)檢測網(wǎng)絡(luò)都可以用于對人臉是否佩戴口罩任務(wù)的檢測,但這些網(wǎng)絡(luò)還需要解決一些難點,如在人流量密集的復(fù)雜場景的遮擋問題,口罩款式和顏色的多樣性問題。YOLOv5模型可完成實時目標(biāo)檢測任務(wù),對人臉佩戴口罩情況進行識別檢測,提升了口罩識別效果。
基于YOLOv5單階段目標(biāo)檢測算法,實現(xiàn)對人臉是否佩戴口罩的目標(biāo)檢測,通過改進主干網(wǎng)絡(luò)的CSP模塊,加入CA注意力機制,引入α-EIoU損失函數(shù),提升了模型精度,解決了在分辨率低、背景雜亂、遮擋情況下識別效果不佳的問題。
YOLOv4算法中的主干特征提取CSPDarknet 53網(wǎng)絡(luò)是在YOLOv3主干網(wǎng)絡(luò)Darknet 53的基礎(chǔ)上,借鑒CSPNet算法,引入了5個CSP模塊。DarkNet-53網(wǎng)絡(luò)引入了殘差結(jié)構(gòu)(Residual)及全卷積方式,大大降低了網(wǎng)絡(luò)訓(xùn)練的難度。整個主干網(wǎng)DarkNet-53共包含53個卷積層(Convolutional Layer),采用尺寸大小為 1×1和3×3的卷積核。
DarkNet-53框架中的卷積層基本單元(DBL)使用卷積+BN層+Leaky ReLU激活函數(shù),替代并去除了全連接層與最大池化層。為解決過深的網(wǎng)絡(luò)而出現(xiàn)的梯度消失及過擬合等網(wǎng)絡(luò)退化問題,引入了Residual殘差模塊。其基本思路是借鑒ResNet網(wǎng)絡(luò)中的殘差結(jié)構(gòu)思路,使用1×1和3×3的卷積核對不同層次的特征進行張量連接,引入短接的支路方式,將本層卷積層與上一層卷積層輸入相加結(jié)果,作為下一層卷積層的輸入特征圖。
CSP模塊的整體結(jié)構(gòu)分為兩個基礎(chǔ)層部分,利用跨階段層次結(jié)構(gòu)將它們連接在一起,這種模塊結(jié)構(gòu)的優(yōu)勢是降低了計算量,提升了檢測速度,增強了CNN網(wǎng)絡(luò)的學(xué)習(xí)能力,降低了網(wǎng)絡(luò)模型的計算瓶頸和算法的內(nèi)存成本。
YOLOv5相比于YOLOv4,同樣沿用了CSP模塊這種方式,不同之處是設(shè)計了兩種結(jié)構(gòu)類型的CSP結(jié)構(gòu)(CSP1_X和CSP2_X)。為解決層數(shù)增多而導(dǎo)致的梯度消失問題,主干網(wǎng)絡(luò)利用CSP1_X結(jié)構(gòu),增加了殘差結(jié)構(gòu),加大了層間的反向傳播的梯度值,得到了更為細粒度的特征,避免了網(wǎng)絡(luò)退化問題。為保留豐富的特征信息,在Neck網(wǎng)絡(luò)中引入了CSP2_X結(jié)構(gòu),相比于CSP1_X,將Resunit替換成了2*X個CBL,進而將骨干網(wǎng)絡(luò)分成兩個輸出,再利用concat得到更強融合能力的網(wǎng)絡(luò)結(jié)構(gòu)。殘差結(jié)構(gòu)可以得到更為細粒度的特征,因此在YOLOv5s的骨干網(wǎng)絡(luò)中,CSP1_X的結(jié)構(gòu)并聯(lián)了殘差結(jié)構(gòu),獲得了更好效果的網(wǎng)絡(luò)模型。圖1為改進的CSP1_X結(jié)構(gòu)。
圖1 改進的CSP1_X結(jié)構(gòu)Fig.1 Improve CSP1_X structure
為提高目標(biāo)檢測的檢測速度,在YOLOv5框架中引入了CA(Coordinate Attention)注意力機制模塊。相比于通道注意力機制,其特征張量利用二維全局池化的方式轉(zhuǎn)換成單個特征向量,將通道注意力機制分為兩個過程完成,通過兩個一維特征編碼沿著兩個空間方向進行特征的聚合,可使整體向一個空間方向上進行遠程依賴的捕獲,向另一個方向保留更為精確的位置信息。將生成的特征圖進行編碼,得到一對方向感知和位置敏感的特征圖,互補地應(yīng)用于輸入特征圖,在一定程度上增強了關(guān)注對象的目標(biāo)表示。
YOLOv5利用預(yù)測框與真實值之間的差值的損失函數(shù),實現(xiàn)整體模型的梯度下降,利用規(guī)定范圍內(nèi)的迭代次數(shù),不斷更新網(wǎng)絡(luò)的權(quán)重和偏置矩陣,得到對應(yīng)損失值最小情況下對應(yīng)的每個錨框的坐標(biāo)位置偏移量和類別分數(shù),為進一步接近真實框,不斷微調(diào)先驗框得到預(yù)測框。模型使用的總體損失由置信度損失、分類損失及邊界框損失組成。采用二進制交叉熵損失函數(shù),實現(xiàn)置信度和分類損失,公式如式(1)。本研究采用α-EIoU損失函數(shù)進行邊界框定位。
(1)
其中,BCELoss表示BCE損失函數(shù),P′代表樣本預(yù)測值,y代表樣本真是類別。
在IOU的基礎(chǔ)上,將重疊區(qū)域、中心點距離和縱橫比的問題考慮進去,提出了CIOU版本,得到了更好的收斂效果,并有效地執(zhí)行邊界框回歸。CloU損失函數(shù)如式(2)所示。
(2)
CIOU損失函數(shù)通過增加衡量預(yù)測框和GT框縱橫比的方式,在一定程度上提升了預(yù)測框的檢測速度,但仍存在以下幾種問題:預(yù)測框進行回歸時,若預(yù)測框與GT框的縱橫比成線性關(guān)系,CIOU增加的懲罰因子則不能起作用;根據(jù)預(yù)測框的寬度和高度的梯度公式可知,當(dāng)w和h有一方增加時,另一個值必減小,二者不能保持同增同減的狀態(tài)。提出EIOU來解決以上問題,EIOU損失函數(shù)如式(3)所示。
LEIOU=LIOU+Ldis+Lasp=
(3)
采用α-EIoU損失函數(shù),是因為IOU損失函數(shù)對bbox尺度不變,可以訓(xùn)練出效果更好的網(wǎng)絡(luò)模型,這種方式是對所有的IOU損失函數(shù)統(tǒng)一加上一個冪值α,因此所有的損失函數(shù)變?yōu)榱耸?4)。
(4)
通過更改主干網(wǎng)絡(luò)中的CSP模塊結(jié)構(gòu),引入了CA注意力機制和α-EIoU損失函數(shù),提升了整體網(wǎng)絡(luò)模型的檢測精度。
文中使用的環(huán)境是:anaconda+keras2.24+Pytorch1.7.1+cuda9.2,顯卡是NVDIA GTX2080。
使用的實驗數(shù)據(jù)集MaskData,是一個網(wǎng)上的多個開源數(shù)據(jù)集拼合合成的。實驗數(shù)據(jù)集MaskData共包含5 300張人臉佩戴口罩和未佩戴口罩的圖片,是在不同背景和不同光照條件下采集的人臉口罩圖片。其中,該數(shù)據(jù)集包含多種場景下的人臉口罩圖片,如在辦公室和會議等場景下的多人交流可能出現(xiàn)的各種表情的帶口罩和未戴口罩的情況,并使用LabelImage對數(shù)據(jù)集MaskData進行人工標(biāo)注。將數(shù)據(jù)集劃分為訓(xùn)練集、驗證集、測試集3部分用于模型的訓(xùn)練,按訓(xùn)練集占比80%、測試集占比10%、驗證集占比10%進行劃分。訓(xùn)練完成后使用驗證集的效果對模型進行反饋,通過更改超參之后再訓(xùn)練,得到最終效果最優(yōu)的模型。
采用多項式衰減學(xué)習(xí)率調(diào)度策略,設(shè)置初始的學(xué)習(xí)率為0.001,批量大小為128,最小批量大小為32,動量取0.9,衰減系數(shù)為0.005。100批次后調(diào)整學(xué)習(xí)率為0.000 1。模型訓(xùn)練完成之后在測試集完成測試,使用模型精度(Precision)、模型召回率(Recall)和均值平均精度(mAP)作為模型最終評價指標(biāo),結(jié)果如表1所示。
表1 YOLOv5模型對比實驗結(jié)果Tab.1 Comparison of experiment results of YOLOv5 model
由表1可知,改進的YOLOv4使用了在骨干網(wǎng)絡(luò)中改進的CSP模塊,并引入注意力機制及損失函數(shù),在一定程度上提升了網(wǎng)絡(luò)模型檢測精度和平均準(zhǔn)確率。
對于口罩的自動識別屬于計算機視覺任務(wù)。目前,人臉口罩識別方法存在分辨率低、在背景雜亂及遮擋情況下識別效果不佳等問題。為了實現(xiàn)對人臉口罩的快速有效識別,提出一種基于YOLOv5的改進算法,使用更改主干網(wǎng)絡(luò)中的CSP1_X模塊并聯(lián)殘差結(jié)構(gòu),用于提高模型的檢測速度。加入CA注意力機制模型,引入α-EIoU損失函數(shù)替換GIOU損失函數(shù),更快速精準(zhǔn)地獲取特征。通過實驗對比和可視化結(jié)果表明,在多種復(fù)雜環(huán)境下仍有良好的檢測效果,改進后的網(wǎng)絡(luò)模型在檢測精度和準(zhǔn)確率上有所提升。