李舒婷,姜永峰,張 良+
(1.中國民航大學 電子信息與自動化學院,天津 300300;2.浙江省溫州市公安局 情報信息支隊,浙江 溫州 325000)
在機場安檢通道中,行李安檢儀輸出的圖像通常擁擠雜亂、不同層次的物品相互重疊,使得人工判圖耗時長且存在誤判風險,所以利用計算機視覺領(lǐng)域中的圖像檢測技術(shù)實現(xiàn)更高效的安檢X光圖像違禁品檢測。
在文獻[1]中,Samet Akcay等利用卷積神經(jīng)網(wǎng)絡(luò)解決X光圖像中違禁品的分類問題,將網(wǎng)絡(luò)中的特征提取與詞袋模型結(jié)合后,通過遷移學習微調(diào)實現(xiàn)圖像檢測。在文獻[2]中,Domingo Mery等使用近年來提出的多種目標檢測算法對圖像進行深度特征提取,對比得到的檢測準確率最高可達95%,但這種方法僅能判斷圖像中是否含有違禁品,不能準確判斷目標在X光圖像中的位置。在文獻[3]中利用Faster R-CNN[4]、R-FCN[5]、YOLOv2[6]等變型的多種檢測算法,驗證了這些算法可以更好地應(yīng)對擺放雜亂的安檢X光圖像中的檢測任務(wù),但導(dǎo)致部分檢測的分類質(zhì)量有所下降。
因此,本文以全卷積網(wǎng)絡(luò)為基礎(chǔ)框架,通過多尺度特征融合各層級的方式,實現(xiàn)對不同大小目標的特征分離,結(jié)合改進的損失函數(shù)優(yōu)化算法模型。所提方法在應(yīng)用于實際安檢X光圖像的過程中,驗證了算法的可行性,為智能安檢判圖提供思路。
X光射線在穿透行李內(nèi)不同密度的物品時會不同程度地衰減,最終在探測器上投影出大致的形狀,重疊物品表示為復(fù)合影像,并依據(jù)黃、綠、黑等顏色體現(xiàn)物品類別。
圖1左側(cè)是目前主流算法的檢測過程,通過將輸入X光圖像上的多個位置作為錨框參考,對目標邊界框進行回歸。但密集的預(yù)測錨框?qū)е铝舜罅康膿p失計算和內(nèi)存消耗,在訓練過程中使得正負樣本極不均衡。圖1右側(cè)為本文算法的檢測過程,通過直接在每個空間位置點上預(yù)測一個4D向量和一個類別,實現(xiàn)更加快捷的無錨框檢測。
圖1 X光圖像中違禁品的表示方法
假設(shè)某點 (x,y) 落在違禁品邊界框的區(qū)域內(nèi),則視為正樣本,得到一個4D實向量t*=(l*,t*,r*,b*) 作為回歸目標。否則為負樣本,則表示目標回歸的類標簽k的值為零,屬于背景類。若該點落在多個邊界框內(nèi),則被認為是模糊樣本,根據(jù)最小面積優(yōu)先選取邊界框作為回歸目標。
因為網(wǎng)絡(luò)得到了盡可能多的前景數(shù)據(jù)訓練回歸目標,所以優(yōu)于只能通過提高IoU閾值作為正樣本的基于錨框檢測方法。當點 (x,y) 對應(yīng)的回歸目標表示為B=(x0,y0,x1,y1,k) 時,回歸向量滿足
(1)
全卷積網(wǎng)絡(luò)(fully convolutional networks,F(xiàn)CN[7])首先輸入任意尺寸的圖像,類似于CNN的結(jié)構(gòu),將網(wǎng)絡(luò)中的全連接層替換成一個個卷積層,最后利用反卷積對特征圖進行上采樣,使它恢復(fù)到與輸入圖像相同的尺寸并逐像素檢測。如圖2所示,在上面一行CNN中,前5層是卷積層,第6、7層是長度為4096的一維向量,輸出的第8層是一個長度為1000的一維向量,分別對應(yīng)1000個類別的概率。而下面的一行是FCN,后面3層結(jié)構(gòu)為卷積層,輸出對應(yīng)的通道數(shù)、寬、高分別為(4096,7,7)、(4096,1,1)、(1000,1,1)。因為FCN中所有的特征層都是卷積層,故稱為全卷積網(wǎng)絡(luò)。
圖2 全卷積網(wǎng)絡(luò)實現(xiàn)的語義分割任務(wù)
FCN在場景深度估計的文獻[8,9]中和語義分割的文獻[10,11]中均取得了巨大的成功,目前的學術(shù)研究也正在嘗試將其用于目標檢測領(lǐng)域。如在文獻[12]中DenseBox利用FCN判斷像素是否在某個物體的中心點附近,并結(jié)合多任務(wù)學習和定位進一步提高目標檢測的準確性。在文獻[13]中UnitBox基于FCN進行圖像分割,提出一種新型框架進行人臉檢測。而在文獻[14,15]中CornerNet和CenterNet基于關(guān)鍵點進行目標檢測,通過獨立預(yù)測框左上角和右下角的位置將兩幅預(yù)測圖進行聯(lián)合嵌入,最終獲得邊界框。
但基于FCN的檢測方法目前主要還是用于特殊場景下,獲取全局信息的能力較弱且難以組聯(lián)同一檢測目標的關(guān)鍵點,在具有高度重疊目標的通用檢測任務(wù)上效果一般。因此,針對安檢通道中X光圖像的特點,使用FCN優(yōu)化網(wǎng)絡(luò)結(jié)構(gòu)提升違禁物品檢測的準確率。
圖3為本文提出的檢測算法,雙向FCN的整體網(wǎng)絡(luò)構(gòu)架。X光圖像輸入網(wǎng)絡(luò)后,首先將逐個像素進行特征提取。經(jīng)過多層卷積和池化后,自底向上產(chǎn)生C1、C2、C3、C4、C5卷積層。深層特征圖通過雙向特征金字塔進行特征融合后,產(chǎn)生P3L、P3R、P4L、P4R、P5L、P5R(Pi∈RH×W×K表示第i層特征圖)降低漏檢率,解決了重疊物體引發(fā)的歧義,P3~P7對應(yīng)的步長(相對于原圖的縮放比例)分別是8、16、32、64、128。之后P3~P7共享檢測頭,輸出端分別添加分類及回歸子網(wǎng)絡(luò)。
圖3 雙向FCN的網(wǎng)絡(luò)框架
(2)
2.2.1 特征金字塔網(wǎng)絡(luò)
通常的物體檢測算法,無論是單階段檢測還是雙階段檢測,通常都是在骨干網(wǎng)絡(luò)的最后一個層直接輸出檢測頭做模型訓練。若網(wǎng)絡(luò)最后一層的步長是32,則輸出特征圖的分辨率只有輸入的1/32。致使圖像模糊,不利于準確檢測,因此一般會去掉最后一層的最大池化層(Max Pooling)或者將卷積層步長改小。
這種檢測算法顯然無法同時有效表征各個尺度的物體,因此利用深度卷積神經(jīng)網(wǎng)絡(luò)搭建多層級的金字塔結(jié)構(gòu),使用一種自上而下的側(cè)邊連接在各個尺度構(gòu)建特征圖,這種結(jié)構(gòu)稱為特征金字塔網(wǎng)絡(luò)(feature parymid network,F(xiàn)PN)[16]。目前主流的物體檢測模型都是自上而下單向融合的FPN,如常見的Faster R-CNN、Mask R-CNN、RetinaNet和Cascade R-CNN[17]等。
PANet[18]是第一個提出從下向上的二次融合模型,證明了雙向融合的有效性。模型整體上可以看作是在Mask R-CNN上改進,充分利用網(wǎng)絡(luò)淺層特征融合得到更加精確的分割結(jié)果。而PANet的雙向融合較為簡單并不具有實際應(yīng)用價值。
因此本文在FPN的研究上更進一步,設(shè)計雙向并行的多尺度預(yù)測機制,將淺層特征和深層特征雙向融合搭建側(cè)金字塔,提高檢測精度。
2.2.2 左側(cè)特征金字塔
分開來說,圖4為左側(cè)FPN,把更抽象、語義更強的高層特征圖P(i+1)L通過最鄰近元法進行上采樣,生成粗粒度特征圖。對應(yīng)的低一級卷積層Ci通過1×1的卷積計算降低通道數(shù),但仍保持與第i層特征圖相同的尺寸。將其與P(i+1)L生成的上采樣圖像橫向連接,獲得更多細粒度信息的特征層PiL。
圖4 左側(cè)FPN的融合模塊
因此左側(cè)FPN提高了特征映射的分辨率,可以獲得更多關(guān)于小目標的圖像數(shù)據(jù)。C1、C2由于尺寸過大且語義信息不足,沒有放入特征融合中。由此可得左側(cè)FPN的表達式為
(3)
2.2.3 右側(cè)特征金字塔
如圖5所示,為右側(cè)FPN的具體結(jié)構(gòu),通過對特征增強細粒度表達提取高判別性能的特征,保存更多的淺層定位信息。結(jié)構(gòu)自下而上進行特征融合,淺層特征經(jīng)過骨干網(wǎng)絡(luò)的橫向連接通過1×1的卷積計算降低通道數(shù)。
圖5 右側(cè)FPN的融合模塊
低一級的特征圖P(i-1)R通過步長為2的下采樣傳遞到頂層,最后兩者融合后通過3×3的卷積層消除混疊效應(yīng)。因此最后生成的特征圖P3R、P4R、P5R, 對應(yīng)卷積層的空間尺寸大小也相同。值得注意的是,這里的P3L和P3R表示不同的特征圖,P5L和P5R也表示不同的特征圖。右側(cè)FPN的表達式為
(4)
雙向FPN模塊將尺寸不同的物體分配到對應(yīng)的層級上,P5L-P3L自頂向底將深層的信息傳遞到淺層,可以學到更多的語義信息。P3R-P5R自底向頂將淺層的信息傳遞到深層,通過更高的分辨率學到目標的細節(jié)信息。綜合局部信息和全局信息,使得不同尺度下的特征都有豐富的語義信息和位置信息,最終對8個特征圖逐像素回歸。
與基于錨框的檢測不同,雙向FPN直接對限制了邊界框回歸的范圍。設(shè)di表示第i層特征需要返回的最大距離,d2~d7的取值分別為0、64、128、256、512以及∞,則每層滿足
mi-1≤max(l*,t*,r*,b*)≤mi
(5)
若超出這個范圍則被設(shè)置為負樣本,不再需要返回邊界框。通過限定回歸最大距離分離不同特征層的回歸目標,可以確保對象始終完整地處于各特征層的接受域內(nèi),減少了負樣本參與回歸的計算量。刀和槍等多種違禁品時常發(fā)生遮掩,但通過特征金字塔的雙向逐級融合可以很大程度緩解目標重疊的問題,進一步降低了違禁品檢測的漏檢率。
如圖6所示,數(shù)據(jù)經(jīng)過雙向FPN預(yù)測后輸入共享檢測頭,連接4個卷積層,分別進行分類和回歸計算。分類分支預(yù)測目標在每個位置上個類別的概率,在回歸分支預(yù)測目標在每一個位置上的偏移量。但大量偏離目標邊框中心點很遠的那些預(yù)測框,會導(dǎo)致大量低效率的訓練和計算占用內(nèi)存。從IoU Loss函數(shù)的角度來說,當預(yù)測框和目標邊框在水平或垂直方向上相交時,IoU計算的值仍沒有比在其它方向上有明顯增加,導(dǎo)致對這兩個方向上的懲罰不夠。因此無法給出優(yōu)化方向,收斂速度減慢。在基于錨框檢測方法的損失計算中,DIoU Loss[19]通過合并預(yù)測邊框和目標邊框之間的標準化距離,可以使預(yù)測框的中心點更大程度接近目標邊框,避免產(chǎn)生過大的框體。
圖6 違禁品生成標注的過程
因此本文提出在回歸分支IoU Loss的基礎(chǔ)上,也引入一個懲罰項進行損失函數(shù)計算。這個懲罰項可以達到對于不同距離、方向和面積的預(yù)測框都做到高質(zhì)量回歸的效果。具體來說,用ΔT表示該像素點描繪的預(yù)測邊框的對角線交點,與距離該點負責的目標邊框的對角線交點的距離比值。該懲罰項ΔT通過抑制低質(zhì)量的邊界框來最小化損失函數(shù),使模型在訓練時達到快速收斂,回歸更加準確。經(jīng)實驗可得,在將ΔT參與衡量的損失函數(shù)TIoU引入到(non-maximum suppression,NMS)中,替換原本的IoU消除冗余,表明在目標遮擋的檢測情況下,也能顯著提高后抑制項的魯棒性。t=(l,t,r,b) 表示左、上、右、下4個邊界框與預(yù)測該邊框的像素點之間的距離,t*=(l*,t*,r*,b*) 表示該點負責的目標對象真值邊框與該像素點之間的距離,則ΔT的表達如式(6)所示
(6)
分類分支輸出一個W×H×K大小的特征圖訓練k個二值分類器,對應(yīng)真值是圖6中的可視區(qū)域。針對單階段檢測中正負樣本比例嚴重不平衡的問題,該分支使用Focal Loss[20]作為損失函數(shù),在交叉熵函數(shù)的前面增加前置因子γ降低大量簡單負樣本在訓練中所占的權(quán)重。通過更關(guān)注于困難的、錯分的樣本,使得整體的損失函數(shù)值變小。
預(yù)測推理時,將所有分支的Loss進行求和,選擇結(jié)果最小的特征層學習實例,訓練時根據(jù)學習的特征進行更新。給定輸入圖像進行前向推理時,通過網(wǎng)絡(luò)前向傳播得到特征圖Fi每一個位置上 (x,y) 的分類概率P以及回歸預(yù)測向量t。 如果P≥0.05, 則作為正樣本,然后通過式(1)獲得預(yù)測值。最合適的特征金字塔層會自然地輸出高置信分數(shù),因此不需要進行特征更新。令Npos表示每次訓練過程中正樣本的個數(shù),則在進行計算求和時,整體的損失函數(shù)滿足式(7)
(7)
本實驗數(shù)據(jù)集來源于民用航空機場中安檢通道采集的X光圖像,通過實驗室同組人員共同標注制作的安檢X光圖像數(shù)據(jù)集,共計8718張X光圖像。
如圖7所示,該數(shù)據(jù)集主要包含5類違禁品,分別為槍、刀、扳手、鑷子和剪刀等,并對每張圖像標注了違禁品的邊框位置和類別。先將手工標注的X光數(shù)據(jù)集改為coco數(shù)據(jù)集的存放格式,再根據(jù)image下的圖片和標注下面xml文件,把每個圖片的標簽重新整合成train和val的兩個json文件。
圖7 違禁品的種類分布
在消融實驗(ablation study)中,選擇該數(shù)據(jù)集的60%作為訓練集,40%作為驗證集。通過將本文方法與基于錨框的RetinaNet方法,以及各文獻進行對比,以此驗證本文方法的實用性。
如前文所述,針對X光圖像中違禁物品檢測的主要問題是盡量降低行李漏檢的概率和解決重疊物品的難識別障礙。為評估本實驗圖像的檢測結(jié)果,采用的評價指標為平均漏檢率和平均精度。
(8)
平均精度(average precision,AP)作為目標檢測另一重要的評價指標,表示每張圖片上的含有k個類別和所有TIoU閾值下的精度的平均值。檢測器預(yù)測的類別和位置效果越好,AP值越高。AP50、AP75分別指的是在TIoU的閾值在大于0.5、大于0.75時的平均精度。數(shù)值越高,越難達到檢測效果。則平均精度的計算公式為
(9)
實驗系統(tǒng)配置包括處理器Inter Xeon(R)Silver 4110CPU@2.10 GHz的工作站,兩塊NVIDIA GeForce GTX 1080Ti的GPU顯卡,在Ubuntu 16.04操作系統(tǒng)的平臺上,軟件環(huán)境為Pytorch深度學習框架和Python編程語言。
在消融實驗中,為了與基于錨框的檢測器同級平等比較,以驗證本文所提的方法可以作為一個強大而簡單的替代方案,所以實驗均設(shè)置與 RetinaNet相同的超參數(shù)。在用自制數(shù)據(jù)集訓練算法的初始階段時,使用更快更簡單的ResNet-50[21]作為骨干網(wǎng)絡(luò)。并設(shè)置batch_size=4,初始學習率為0.01,在迭代20 K和28 K時的學習率分別衰減為0.001和0.0001。
所有的消融實驗只訓練30 k迭代(epoch=20),是完整實驗迭代次數(shù)的1/3。在ImageNet上預(yù)先訓練的權(quán)值初始化主干網(wǎng)絡(luò),單張輸入X光圖像通過調(diào)整大小使得其短邊為800,長邊小于或等于1333,采用隨機梯度下降法(stochastic gradient descent,SGD)進行優(yōu)化。
3.3.1 有無錨框的消融實驗
如表1所示,在同樣網(wǎng)絡(luò)深度的無錨框檢測器雙向FCN中,實驗可以獲得56.2%的AP。而在搭建同樣參數(shù)的基于錨框的RetinaNet中,進行實驗后獲得只有55.3%的AP。可見基于本文提出的無錨框檢測方法遠遠優(yōu)于有錨框的檢測方法。在基于錨框檢測的卷積神經(jīng)網(wǎng)絡(luò)中,網(wǎng)絡(luò)過深(例如步長為32的特征層)導(dǎo)致了正負樣本比例嚴重失衡,致使準確率下降,只能通過降低IoU的閾值在一定程度上得到補償。
表1 基于錨框的RetinaNet和基于無錨框的雙向FCN
類似地,在將雙向FCN去掉一側(cè)FPN的情況下,即設(shè)置與RetinaNet相同的骨干網(wǎng)絡(luò)和特征融合方式后,本文所提方法依舊比基于錨框的檢測方法高出0.7%。雙向FCN因為沒有錨框,所以對比每個位置上的單個像素點,少了9倍的候選框數(shù)量,顯存占用也只有一半。本消融實驗驗證了雙向FCN實現(xiàn)的無錨框網(wǎng)絡(luò)的召回率比基于錨框的同類網(wǎng)絡(luò)更好。
3.3.2 有無多尺度預(yù)測的消融實驗
如表2所示,本組消融實驗通過控制網(wǎng)絡(luò)經(jīng)過不同程度的特征融合,驗證雙向特征金字塔的存在會帶來檢測性能的顯著提升。
表2 多尺度預(yù)測的不同方法對比
在基于FCN的檢測器中,目標邊框重疊會在訓練過程中難以判斷該點應(yīng)該回歸到重疊區(qū)域內(nèi)的哪個邊界框,導(dǎo)致檢測性能大幅下降。如表第二行所示是不使用多尺度預(yù)測的FCN網(wǎng)絡(luò),平均精度較低。
第三行消融實驗添加了單側(cè)特征金字塔,采用左側(cè)特征金字塔自頂至底融合,對淺層語義進行特征增強。在輸入大小為1024×800的圖像時,最小的檢測出目標大小為16×13,降低了微小目標的檢測難度,使得小目標的AP顯著提高。
第四行為添加了雙向特征金字塔的網(wǎng)絡(luò),因為絕大多數(shù)的重疊目標被分配到了不同的特征層進行檢測,使得AP不斷提高。相比于單側(cè)特征金字塔,MOR也有明顯降低,因此符合投入應(yīng)用安檢通道場景中的實際要求。
在計算檢測邊框來自于模糊位置的數(shù)量時發(fā)現(xiàn),只有2.3%的邊界框是由模糊位置產(chǎn)生的。同時考慮到不同類別之間的重疊數(shù)量,比例降低到1.5%。因此,本消融實驗進一步驗證了違禁品的遮擋問題一定程度上可以通過雙向FPN解決。
3.3.3 有無改進損失函數(shù)的消融實驗
如表3所示,通過控制網(wǎng)絡(luò)在不同的損失函數(shù)下計算,驗證了+TIoU的AP有了明顯的提升。除了檢測準確度外,+TIoU算法的另外一個重要性能指標,檢測速度的評價指標,也有小幅提高。
表3 回歸損失函數(shù)
從圖8可以看到,3個損失函數(shù)在迭代過程中的衰減曲線。GIoU仍然嚴重依賴IoU,因此很難收斂。TIoU直接最小化兩個目標框的距離明顯縮短推理時間,相比GIoU收斂快得多。
圖8 回歸損失函數(shù)的衰減曲線
表4展示了本文所提方法雙向FCN與目前雙階段和單階段的最前沿的檢測算法(state-of-the-art,SOTA)在X光數(shù)據(jù)集上的實驗結(jié)果對比。雙向FCN選擇訓練90 k迭代的完整實驗,學習率在60 K和80 K次迭代時減小10倍,對比同量級的雙階段檢測器Faster R-CNN,僅一個指標略低0.1%。同時保證了網(wǎng)絡(luò)檢測的實時性要求,每秒檢測圖片數(shù)量(frame per second,F(xiàn)PS)相比于雙階段的算法Faster R-CNN明顯提高。對比同級的單階段檢測器RetinaNet,本方法也在較快的檢測速度基礎(chǔ)上使AP提高了兩個百分點。
表4 雙向FCN與SOTA檢測方法比較
針對傳統(tǒng)CNN檢測違禁品準確度低的問題,本文提出了一階段檢測的雙向FCN算法。該算法基于FCN進行無錨框的逐像素檢測,節(jié)省了所有與錨框相關(guān)的計算,避免了基于錨框檢測帶來的弊端。在特征融合階段加入了雙向特征金字塔,一定程度上緩解了目標重疊的影響,同時降低了不同大小目標的漏檢率顯著提高了檢測的準確性。通過改進損失函數(shù)加快了網(wǎng)絡(luò)訓練模型,滿足檢測實時性要求。該算法大檢測的安檢圖像輸出結(jié)果如圖9所示,表示了違禁品的類別和位置。實驗結(jié)果表明,和目前流行檢測算法(包括Faster R-CNN、YOLO和RetinaNet)相比,所提設(shè)計結(jié)構(gòu)更加簡潔,充分驗證了雙向FCN在X光圖像違禁物品檢測中的實用性。
圖9 X光圖像違禁物品的檢測結(jié)果