程 林, 柏 楊, 都昌平,薛翔天,章品正,於文雪,王世杰,陳 陽,
(1.東南大學(xué) 財(cái)務(wù)處, 南京 210096;2.東南大學(xué) 網(wǎng)絡(luò)空間安全學(xué)院,南京 210096;3.東南大學(xué) 計(jì)算機(jī)科學(xué)與工程學(xué)院,南京 210096)
地鐵安檢[1]極大地影響著社會(huì)安全,智能安檢可以節(jié)省大量人力,提高效率。智能安檢屬于圖像領(lǐng)域中的目標(biāo)檢測[2]任務(wù),而目標(biāo)檢測可以看作分類與回歸兩個(gè)經(jīng)典問題。首先對位置進(jìn)行精確定位,然后對定位目標(biāo)分類。目前的目標(biāo)檢測分為傳統(tǒng)方法目標(biāo)檢測與深度學(xué)習(xí)[3]方法目標(biāo)檢測。而對于安檢任務(wù),由于場景復(fù)雜性更高及實(shí)時(shí)性要求更高,相對于普通檢測任務(wù)提出了更高的要求。
傳統(tǒng)目標(biāo)檢測方法主要分為滑動(dòng)窗口、特征提取和分類器分類三個(gè)步驟。給定一張圖像,首先使用滑動(dòng)窗口對圖像遍歷,篩選出候選框,再使用傳統(tǒng)計(jì)算機(jī)視覺方法如基于顏色、基于形狀、基于紋理的方法對候選框中信息進(jìn)行特征提取。最后使用已經(jīng)訓(xùn)練好的分類器對目標(biāo)進(jìn)行分類,在分類時(shí)若是單目標(biāo)分類只需判斷檢測框內(nèi)有無目標(biāo),若是多目標(biāo)分類則需進(jìn)一步判斷目標(biāo)所屬類別。若檢測目標(biāo)同時(shí)存在多個(gè)重疊檢測框,則需要使用算法進(jìn)行檢測框消除,留下一個(gè)最精確的檢測框。傳統(tǒng)的目標(biāo)檢測算法有兩大缺點(diǎn),首先使用滑動(dòng)窗口篩選候選框的過程非常耗時(shí),其次手工設(shè)計(jì)的特征只能用特征場景,魯棒性差。
隨著深度學(xué)習(xí)迅速發(fā)展,在計(jì)算機(jī)視覺方向的創(chuàng)新層出不窮,目標(biāo)檢測方向的發(fā)展也日新月異?;谏疃葘W(xué)習(xí)的目標(biāo)檢測方法主要分為一階段目標(biāo)檢測算法與二階段目標(biāo)檢測算法。二階段目標(biāo)檢測算法在第一階段生成候選框,第二階段對候選框內(nèi)目標(biāo)進(jìn)行分類與回歸。一階段目標(biāo)檢測算法則直接在特征圖上進(jìn)行檢測。2014年,Ross B.Girshick等[4]設(shè)計(jì)了R-CNN二階段目標(biāo)檢測框架,使用卷積神經(jīng)網(wǎng)絡(luò)提取特征代替?zhèn)鹘y(tǒng)目標(biāo)檢測中手工設(shè)計(jì)特征,將深度學(xué)習(xí)方法應(yīng)用到目標(biāo)檢測中;隨后,F(xiàn)ast R-CNN[5]框架被開發(fā)出來,相較于R-CNN,F(xiàn)ast R-CNN把邊框回歸融入了神經(jīng)網(wǎng)絡(luò)內(nèi)部,使得特征提取和分類回歸任務(wù)都由神經(jīng)網(wǎng)絡(luò)完成,但候選框生成依然使用傳統(tǒng)方法。因此,Faster R-CNN[6]應(yīng)運(yùn)而生,提出RPN網(wǎng)絡(luò),將生成候選框過程也交給神經(jīng)網(wǎng)絡(luò),使整個(gè)過程成為一個(gè)多任務(wù)模型,極大提高了檢測效率。雖然Faster R-CNN在檢測精度有一定優(yōu)勢,但并不能解決實(shí)時(shí)性問題。2016年,Joseph Redmon等[7]提出YOLO v1一階段目標(biāo)檢測框架,利用整張圖作為輸入,直接在圖像上輸出目標(biāo)類別及位置;接著,YOLO v2[8]更改了特征提取網(wǎng)絡(luò)并使用Anchor Box幫助檢測,在提升速度的前提下提升了精度;然后,YOLO v3[9]使用更先進(jìn)的特征提取網(wǎng)絡(luò)和引入多尺度特征融合結(jié)構(gòu),提高小目標(biāo)檢測精度。最近,YOLO v4[10]和YOLO v5[11]又相繼推出,在總結(jié)之前網(wǎng)絡(luò)的結(jié)構(gòu)特點(diǎn)的基礎(chǔ)上,又做了進(jìn)一步的改進(jìn)。由于地鐵安檢對實(shí)時(shí)性要求較高,本文使用檢測速度較高的一階段目標(biāo)檢測算法作為基本模型進(jìn)行研究。
YOLO系列算法直接對原圖像進(jìn)行特征提取,然后在特征圖上分類回歸。不使用區(qū)域生成算法生成候選框,因此減少了大量時(shí)間,使得檢測速度加快。如圖1所示,YOLO v5由特征提取網(wǎng)絡(luò)與特征圖檢測網(wǎng)絡(luò)兩大網(wǎng)絡(luò)構(gòu)成。其主要的Backbone結(jié)構(gòu)包括Focus結(jié)構(gòu)、CPS結(jié)構(gòu)、Neck結(jié)構(gòu)。其中Focus結(jié)構(gòu)通過添加切片操作,來提高特征提取的能力,CPS主要借鑒了YOLOv4中的CPSNet的設(shè)計(jì)思路,但與YOLOv4不同的是,這里采用了兩種CPS結(jié)構(gòu)分別用在不同的網(wǎng)絡(luò)位置中。
圖1 Yolo v5網(wǎng)絡(luò)結(jié)構(gòu)示意圖
YOLO v5的一個(gè)基本組成單位為res unit,每個(gè)res unit是由一個(gè)殘差結(jié)構(gòu)和兩個(gè)CBL模塊組成,每個(gè)CBL模塊則由一個(gè)卷積層(Convention layer)、一個(gè)批標(biāo)準(zhǔn)化層(Batch Normalization layer)和一個(gè)激活函數(shù)層(Activation layer)組成。網(wǎng)絡(luò)對于輸入416×416×3的圖像,經(jīng)過五次下采樣后的特征圖大小分別為208×208,104×104,52×52,26×26,13×13。在對圖像提取特征之后,第三、第四和第五層的特征圖會(huì)用來進(jìn)行檢測,每個(gè)特征圖會(huì)預(yù)測3個(gè)檢測框圖,則一共會(huì)產(chǎn)生(76×76+38×38+19×19)×3=21 774個(gè)檢測框。每個(gè)檢測框預(yù)測的是目標(biāo)類別及其置信度,檢測框的位置信息。為融合不同尺度特征信息,使用特征金字塔進(jìn)行多尺度預(yù)測。
注意力機(jī)制[10-11]的命名借鑒了人類視覺的選擇性注意力機(jī)制,人類在看見一張圖像時(shí),會(huì)快速掃描整張圖像,然后關(guān)注其感興趣的某一部分,也就是通常所指的注意力焦點(diǎn)。接著對這部分區(qū)域投入更多的注意力來提取更多的細(xì)節(jié)信息,抑制其他無用信息。
深度學(xué)習(xí)的注意力機(jī)制與人類的選擇性注意力機(jī)制類似,也是從眾多信息中提取對當(dāng)前任務(wù)更有幫助的信息,將不同的特征分配權(quán)值,然后關(guān)注權(quán)值較高的特征。按照注意力機(jī)制的形式分類,可以分為軟注意力機(jī)制和硬注意力機(jī)制。當(dāng)注意力機(jī)制用于圖像描述任務(wù)中時(shí),注意力機(jī)制模塊所要處理的信息包含明確的項(xiàng)序列S={S1,S2,…,St},硬注意力機(jī)制是選擇某些輸入信息,對其進(jìn)行進(jìn)一步處理,而軟注意力機(jī)制則是將輸入信息根據(jù)權(quán)值加權(quán)輸入到神經(jīng)網(wǎng)絡(luò)中。這樣可以分離出重要信息,并避免這些信息受到不重要信息的干擾,從而提高準(zhǔn)確性。隨著不同信息之間相互作用的復(fù)雜度的降低,學(xué)習(xí)就變得越有效。硬注意力機(jī)制有時(shí)會(huì)損失一些重要信息,因此,現(xiàn)在通常使用軟注意力機(jī)制。
在卷積神經(jīng)網(wǎng)絡(luò)中,核心計(jì)算是卷積算子,通過卷積核在特征圖中學(xué)習(xí)到新的特征。從根本上說,卷積操作是對空間上和通道間的局部信息進(jìn)行特征融合。對于卷積操作,很多改進(jìn)工作是提高感受野,融合更多的空間信息,而對于通道上的信息則默認(rèn)全部等量融合,使得很多無用的通道信息融入到特征圖中。Hu Jie等[14]提出的擠壓與激勵(lì)模型(Squeeze-and-Excitation Net, SENet)關(guān)注通道間的關(guān)系,學(xué)習(xí)通道間的相關(guān)性,計(jì)算通道的重要程度,這種算法是作用在通道上的軟注意力機(jī)制。Woo等[16]提出的通道與空間注意力模塊(Convolutional Block Attention Module, CBAM)則同時(shí)關(guān)注通道與空間,最后計(jì)算得到權(quán)重。
Focal Loss損失函數(shù)的提出是為了解決一階段目標(biāo)檢測算法中正負(fù)樣本和難易樣本不均衡的問題。在一張圖像上,目標(biāo)部分稱為正樣本,其余部分稱為負(fù)樣本;對于易于分類的樣本稱為易樣本,其余稱為難樣本。一張圖像的特點(diǎn)是負(fù)樣本和易樣本多,造成嚴(yán)重的不均衡。對于二階段目標(biāo)檢測任務(wù),可以在生成候選框階段,通過非最大值抑制過濾大部分負(fù)樣本和易樣本,而一階段目標(biāo)檢測任務(wù)沒有候選框生成階段,無法直接過濾。Focal Loss的主要作用就是通過降低負(fù)樣本和易樣本的權(quán)重并提高正樣本的權(quán)重來提升檢測精度。Focal Loss損失函數(shù)是在交叉熵?fù)p失函數(shù)基礎(chǔ)上做的修改,對于交叉熵?fù)p失函數(shù),以二分類為例:
(1)
式中,p′代表輸出,從公式中可以看出,對于普通的交叉熵?fù)p失函數(shù),負(fù)樣本輸出概率越小損失越小,在大量簡單樣本中訓(xùn)練更迭可能無法達(dá)到最優(yōu)解。
為解決正負(fù)樣本不平衡的問題,首先引入第一個(gè)平衡因子α,即:
(2)
加入平衡因子后,可以較好平衡正負(fù)樣本,但是對于難易樣本的平衡沒有幫助,此時(shí)引入第二個(gè)平衡因子γ,最終公式為:
(3)
在引入平衡因子α和平衡因子γ后,圖像中的負(fù)樣本和易樣本權(quán)重得到了降低,正負(fù)樣本和難易樣本同時(shí)得到了平衡。實(shí)驗(yàn)表明,α和γ分別取0.25和2時(shí)效果最好。
由于Yolo v5特殊的網(wǎng)絡(luò)結(jié)構(gòu),較小的卷積核及不需要生成候選區(qū)域(ROI),YOLO v5實(shí)時(shí)性檢測效率較高。為了在不增加整體網(wǎng)絡(luò)的深度的前提下提升檢測精度,只對原來網(wǎng)絡(luò)的殘差結(jié)構(gòu)進(jìn)行修改,在上層特征傳遞下來時(shí),通過對上層特征進(jìn)行篩選,使得融合之后的殘差信息降低訓(xùn)練損失,提升檢測精度。根據(jù)Hu等[12]提出的擠壓與激勵(lì)模型,通道注意力機(jī)制的計(jì)算量部分都在全連接層中,會(huì)對整體的檢測速度有些許影響。
一張圖片通常由(R, G, B)三個(gè)通道表示出來,經(jīng)過卷積的不同卷積核后,會(huì)生成一張新的通道特征圖(H,W,C),C即為新的通道值,在數(shù)值上等于卷積核的數(shù)值。經(jīng)過一系列卷積操作得到的特征圖,通常認(rèn)為每個(gè)通道都是同等重要的,但是每個(gè)通道的重要性不同,因此每個(gè)通道需要各自的重要性權(quán)值。重要性權(quán)值乘以通道原來的值,得到最終的特征圖。新的特征圖更關(guān)注目標(biāo)任務(wù)的區(qū)域,更容易檢測目標(biāo)物體。
全局平均池化由Chen Q[13]等提出,是一種特殊的池化層,對整張?zhí)卣鲌D進(jìn)行池化,最終得到一個(gè)值。通道注意力模塊通過對特征圖各個(gè)通道間的相關(guān)性進(jìn)行建模,以提高對重要特征的表達(dá)能力。首先,將上層特征經(jīng)過全局池化,得到通道級的全局特征;其次,使用兩個(gè)全連接層和Sigmoid激活函數(shù)對通道間的相關(guān)性進(jìn)行建模;最后,將原來通道信息與建模后得到的權(quán)重相乘得到最終特征圖。通道注意力模塊可以讓模型關(guān)注信息量大的通道特征,抑制不重要的通道特征。
圖2 基于殘差結(jié)構(gòu)的通道注意力機(jī)制示意圖
通道注意力機(jī)制在通道維度上對特征進(jìn)行了篩選加權(quán),提升了其檢測性能。根據(jù)Woo等[14]在CBAM中所提出的觀點(diǎn),除了全局平均池化外,全局最大池化同樣也能對特征的篩選起到幫助,因此引入的通道注意力機(jī)制需要同時(shí)考慮兩種池化操作。根據(jù) Zagoruyko等的研究發(fā)現(xiàn),沿著通道方向使用池化操作可以突出有效區(qū)域中的信息。除此之外,Woo 等認(rèn)為,特征在空間上的關(guān)系同樣可以用來進(jìn)行建模,用以補(bǔ)充通道注意力機(jī)制無法較好獲取的位置關(guān)系信息。在此基礎(chǔ)上,進(jìn)一步加入空間注意力機(jī)制,整個(gè)注意力模塊同時(shí)對通道以及空間的特征信息進(jìn)行篩選。為了達(dá)到最佳的篩選效果,并且為了獲得最佳的注意力模塊組合順序。不同的注意力機(jī)制模塊都能提升分類的準(zhǔn)確率,但性能最佳的組合順序是 CBAM 中通道注意力模塊直接連接空間注意力模塊的方法。首先,這是由于 CBAM 模型在通道注意力模塊中加入了全局最大池化操作,它能在一定程度上彌補(bǔ)全局平均池化所丟失的信息。其次,生成的二維空間注意力圖使用卷積核大小為7的卷積層進(jìn)行編碼,較大的卷積核對于保留重要空間區(qū)域有良好的幫助。
在經(jīng)過殘差網(wǎng)絡(luò)結(jié)構(gòu)的輸出之后,經(jīng)過全局平均池化和全局最大池化兩種操作之后,合并送入全連接層中;經(jīng)過特征加權(quán)和激活函數(shù)之后,送入空間注意力模塊中;繼續(xù)進(jìn)行全局平均池化和全局最大池化操作,把兩者的輸出疊加得到特征因子;然后經(jīng)過卷積層把特征編碼;最后對不同的特征加權(quán)。這樣的改動(dòng)不僅可以在分類網(wǎng)絡(luò)中提供幫助,還能在檢測網(wǎng)絡(luò)中使得網(wǎng)絡(luò)更快尋找到目標(biāo)所在位置。通道注意力與空間注意力機(jī)制模塊示意如圖3所示。
圖3 基于殘差結(jié)構(gòu)的通道注意力機(jī)制及空間注意力機(jī)制示意圖
實(shí)驗(yàn)所用數(shù)據(jù)為地鐵安檢機(jī)自采集數(shù)據(jù),經(jīng)由后續(xù)處理制作而成。將通過安檢機(jī)的影像投影在終端中并保存下來,然后使用傳統(tǒng)圖像處理方法將視頻處理為圖片,最后通過裁剪等操作把圖片處理為適合深度學(xué)習(xí)圖像。使用LabelImg軟件對圖片進(jìn)行標(biāo)注,對需要檢測的物品制作標(biāo)簽。數(shù)據(jù)集包含8種物品,其中包括3種危險(xiǎn)物品與5種生活中常見的非危險(xiǎn)物品。物品種類及包含數(shù)量如圖4所示。
圖4 數(shù)據(jù)集中每個(gè)類別目標(biāo)數(shù)統(tǒng)計(jì)
為了保證模型的魯棒性,需要對數(shù)據(jù)進(jìn)行一定的數(shù)據(jù)增強(qiáng)。對于檢測任務(wù)來說,不能直接對圖像進(jìn)行旋轉(zhuǎn)、平移、翻轉(zhuǎn)等傳統(tǒng)數(shù)據(jù)增強(qiáng)方法。因?yàn)?,在對圖像進(jìn)行操作時(shí),目標(biāo)的位置會(huì)進(jìn)行變動(dòng),即目標(biāo)的邊界框會(huì)發(fā)生改變。本實(shí)驗(yàn)在對圖像進(jìn)行數(shù)據(jù)增強(qiáng)時(shí),同時(shí)使用算法對目標(biāo)邊界進(jìn)行修改,使圖像在進(jìn)行旋轉(zhuǎn)、平移、反轉(zhuǎn)等操作時(shí),目標(biāo)一直保存在框中。具體設(shè)置如表1所示。
表1 訓(xùn)練時(shí)采用的數(shù)據(jù)增強(qiáng)
目標(biāo)檢測常用評價(jià)指標(biāo)為mAP(mean Average Precision)值,對于普通的二分類任務(wù),可以將預(yù)測分為四種情況:True Positive(TP):實(shí)際為正例且被分類器劃分為正例的實(shí)例數(shù);False Positive(FN):實(shí)際為負(fù)例但被分類器劃分為正例的實(shí)例數(shù);True Negative(TN):實(shí)際為負(fù)例且被分類器劃分為負(fù)例的實(shí)例數(shù);False Negative(FN):實(shí)際為正例但被劃分為負(fù)例的實(shí)例數(shù)。P為Precision代表準(zhǔn)確率,R為Recall代表召回率,
(4)
(5)
對于Precision和Recall,當(dāng)IoU(Intersection over Union)閾值選取不同值時(shí),會(huì)得到不同的Precision和Recall值,以Precision和Recall值為縱軸和橫軸可以得到一條R-P曲線,R-P曲線與兩條坐標(biāo)軸圍成的面積即為AP值,對于目標(biāo)檢測任務(wù),往往是多目標(biāo)檢測,將每一類AP值加一起取平均值即為最終的mAP值。
(6)
使用mAP評價(jià)指標(biāo)可以對整體模型進(jìn)行客觀評價(jià)。
本實(shí)驗(yàn)提出算法模型共三種,為方便統(tǒng)計(jì),Yolo-F為在原模型的基礎(chǔ)上結(jié)合Focal Loss的模型,Yolo-F-AS為在Yolo-F的基礎(chǔ)上添加通道注意力機(jī)制的模型,Yolo-F-AC為在Yolo-F的基礎(chǔ)上添加通道與空間注意力機(jī)制的模型。三種模型的具體指標(biāo)匯總?cè)绫?所示。
表2 三種模型的具體匯總
本實(shí)驗(yàn)不使用預(yù)訓(xùn)練模型,即所有模型從頭進(jìn)行訓(xùn)練。設(shè)置所有訓(xùn)練迭代輪數(shù)為2000輪,網(wǎng)絡(luò)的輸入尺寸固定為416×416,初始學(xué)習(xí)率設(shè)置為0.001,權(quán)重衰減設(shè)置為0.005,優(yōu)化方法為Adam。本實(shí)驗(yàn)使用顯卡為GTX 1080Ti,Batchsize設(shè)為16,當(dāng)模型的各項(xiàng)損失及mAP沒有顯著變化時(shí),停止訓(xùn)練并尋找性能最佳的訓(xùn)練輪數(shù)。預(yù)訓(xùn)練雖然能夠幫助加速模型收斂,但由于沒有適用加入注意力機(jī)制的預(yù)訓(xùn)練模型,所以本實(shí)驗(yàn)均不使用預(yù)訓(xùn)練模型以保證實(shí)驗(yàn)的公平性。同時(shí),為了使模型在不同分辨率下具有強(qiáng)魯棒性,采用多尺度訓(xùn)練方法,每經(jīng)過10次迭代以32為間隔從320~608這10個(gè)輸入大小選擇一個(gè)新的尺寸作為網(wǎng)絡(luò)的輸入進(jìn)行訓(xùn)練。實(shí)驗(yàn)結(jié)果表明,在加入Focal Loss損失函數(shù)和注意力機(jī)制之后,模型相較于之前都有了較大的提升。其中,同時(shí)加入通道注意力和空間注意力機(jī)制,比只加入通道注意力機(jī)制的效果要好,由于Focal Loss損失函數(shù)是在損失函數(shù)上做的改進(jìn),相較于改進(jìn)之前參數(shù)量并沒有增加,而添加注意力機(jī)制之后參數(shù)量增加有限,仍然是實(shí)時(shí)的目標(biāo)檢測算法。在提高檢測精度的前提下保證了檢測的實(shí)時(shí)性,達(dá)到了較好的平衡,因此,在對精度和實(shí)時(shí)性要求較高的安檢項(xiàng)目中得到了廣泛應(yīng)用。
表3 三種模型分別在驗(yàn)證集上的mAP值
從圖5可以看出,在改進(jìn)之前模型會(huì)將背包拉鏈錯(cuò)誤的檢測為其他物品,在加入通道注意力機(jī)制之后,沒有將拉鏈錯(cuò)誤檢測但是將拉扣錯(cuò)誤檢測為特征相似的剪刀,在加入通道與空間注意力機(jī)制之后,物品全部正確識別,沒有出現(xiàn)錯(cuò)誤檢測。
圖5 三種模型檢測效果圖
本文提出一種將注意力機(jī)制、Focal Loss與YOLO V5結(jié)合的地鐵安檢算法,以較小的速度損失換來檢測精度的提升。其主要思想是在保持一階段目標(biāo)檢測快速檢測的前提下,通過改進(jìn)特征提取網(wǎng)絡(luò)中殘差結(jié)構(gòu),提取更完善的特征信息,并傳遞到下面的網(wǎng)絡(luò)結(jié)構(gòu)中。同等條件下,精度比傳統(tǒng)的YOLO V4和YOLO V5算法有了改善。但是本實(shí)驗(yàn)只考慮了軟注意力機(jī)制,沒有對硬注意力機(jī)制過多關(guān)注,這是下一步工作準(zhǔn)備解決的問題。