陳 飛,章東平
(中國計(jì)量大學(xué) 信息工程學(xué)院,浙江 杭州 310018)
目標(biāo)檢測作為計(jì)算機(jī)領(lǐng)域的一個(gè)重要分支,在自動(dòng)駕駛、智能視頻監(jiān)控、安防領(lǐng)域都有廣泛的應(yīng)用.目標(biāo)檢測主要解決的是圖片或視頻幀中目標(biāo)的what與where問題,即是否存在目標(biāo),并對已判斷出的目標(biāo)給定對應(yīng)的邊界框.目標(biāo)檢測對人類來說并不困難,人眼對圖片的不同目標(biāo)的顏色模塊,人眼能很容易的進(jìn)行定位并給出相應(yīng)類別.但對于計(jì)算機(jī)而言,由于圖片的目標(biāo)物體都是RGB像素矩陣,很難直接得到目標(biāo)物體的確切位置,再加上有時(shí)是多個(gè)物體的混疊以及一些背景信息的干擾,以致增大了目標(biāo)檢測難度.傳統(tǒng)機(jī)器學(xué)習(xí)通過對目標(biāo)提取人工選擇特征.如HOG[1](histogram of oriented gradient)、SIFT[2](scale invariant feature transform)等方法,然后將提取特征輸入到分類器,如SVM[3](support vector machine)、AdaBoost[4]等進(jìn)行分類識別[5].人工特征構(gòu)造復(fù)雜且泛化性差而滑動(dòng)窗口又有檢測速度慢等缺點(diǎn).近年來卷積神經(jīng)網(wǎng)絡(luò)在圖像識別目標(biāo)檢測等領(lǐng)域取得了突破性進(jìn)展,掀起了新的研究熱潮[6].
物體結(jié)構(gòu)能很好的反映出目標(biāo)信息,因此,將目標(biāo)結(jié)構(gòu)作為目標(biāo)特征用于檢測,可以較為準(zhǔn)確的實(shí)現(xiàn)目標(biāo)檢測目的.TRIGGS和DALAR[7]采用梯度方向直方圖HOG特征描述算子在行人檢測目標(biāo)任務(wù)中取得了較好的結(jié)果,FELZENSZWALB[8]等人在目標(biāo)識別中使用了part-based模型來表示目標(biāo),并在TRIGGS和DALAR等人基礎(chǔ)上采用了混合多模板模型,每個(gè)模板含有可移動(dòng)變形部分,并結(jié)合Latent SVM分類器進(jìn)行訓(xùn)練.實(shí)驗(yàn)證明該模板比單一模板具有更好效果.但由于基于滑動(dòng)模板的目標(biāo)檢測大多采用密集采用方法,這種方法嚴(yán)重影響了目標(biāo)檢測速度.Dollar[9]等人在2014年提出了一種新的快速特征金字塔計(jì)算方法,首先對原始圖像進(jìn)行稀疏采用,然后給出特征金字塔相鄰層間的冪指運(yùn)算,并使用統(tǒng)計(jì)方法進(jìn)行運(yùn)算.
隨著計(jì)算機(jī)硬件技術(shù)的快速發(fā)展,特別是GPU計(jì)算性能的開發(fā)和提升以及數(shù)據(jù)量的幾何式增長,促進(jìn)了深度學(xué)習(xí)領(lǐng)域的蓬勃發(fā)展.2014年Ross Girshick[10]首先把深度學(xué)習(xí)方法RCNN(區(qū)域卷積神經(jīng)網(wǎng)絡(luò))應(yīng)用于目標(biāo)檢測,由于采用了Selective Search(選擇性搜索方法),直接對原圖像提出2 000多個(gè)候選框,并直接對2 000個(gè)候選框輸入CNN(卷積神經(jīng)網(wǎng)絡(luò))提取相應(yīng)的特征,然后通過SVM(支持向量機(jī))對目標(biāo)進(jìn)行分類,并采用邊框回歸(Bounding Box Regression)確定和校準(zhǔn)目標(biāo)位置.由于每張圖片要做2 000多次的前向傳播,導(dǎo)致檢測速度過慢.鑒于此,Ross Girshick 團(tuán)隊(duì)提出了其改進(jìn)版Fast-RCNN,Fast-RCNN采用了直接對整張圖片做CNN特征提取,并采用了深度學(xué)習(xí)常見的Soft-max分類器來替代SVM分類器,以提升其檢測速度.由于Fast-RCNN仍舊采用Selective Search方法來提取候選框,影響了檢測速度.所以在Fast-RCNN改進(jìn)版Faster-RCNN提出了RPN(區(qū)域提議網(wǎng)絡(luò)),改進(jìn)了之前的Selective Search方法,通過在RPN生成候選框,并在RPN中對相關(guān)邊框做出是背景還是目標(biāo)的初步過濾處理,從而改進(jìn)了原始Selective Search生成提議窗口過慢的缺點(diǎn).
YOLO[11]算法的解決辦法是通過把目標(biāo)檢測問題轉(zhuǎn)化為回歸問題求解,采用一個(gè)卷積神經(jīng)網(wǎng)絡(luò)來直接獲得要預(yù)測的bounding box及對應(yīng)的類別概率.算法首先把輸入圖像均等劃分為S×S個(gè)grid cell(框格),然后對劃分的每個(gè)框格預(yù)測N個(gè)bounding box,而預(yù)測取得的每個(gè)bounding box將包含5個(gè)預(yù)測值:x、y、w、h以及confidence(置信度分?jǐn)?shù)).其中x、y是bounding box的中心坐標(biāo)點(diǎn),而w、h指的是bounding box的寬高值.每個(gè)bounding box對應(yīng)一個(gè)置信度分?jǐn)?shù),若檢測到的框格中沒有待檢目標(biāo)物體,其置信度值設(shè)為0,若有,其值就是預(yù)測bounding box與ground truth的IOU(交并比)值.至于判斷框格是否有目標(biāo)物體,若一個(gè)物體的ground truth的中心點(diǎn)坐標(biāo)在一個(gè)框格中,那么由該框格負(fù)責(zé)這個(gè)目標(biāo)檢測.
SSD[12]方法為了避免利用太低層特征,SSD從后的conv4_3開始,又往后增加了幾層,分別抽取每層特征,并在每層特征上分別使用了Soft-max做背景和目標(biāo)類別分類處理,并采用邊框回歸對目標(biāo)進(jìn)行定位.由于SSD對高分辨率的底層特征沒有再利用,可是這些底層特征對小目標(biāo)的檢測具有重要作用.
FPN利用CNN的金字塔層次結(jié)構(gòu)性質(zhì)(從低到高的語義特征)構(gòu)建從低到高的語義特征金字塔.CNN前饋計(jì)算是從下到上的,特征圖通過CNN,一般特征圖是越來越小的,也存在同樣大小的,此時(shí)稱為相同網(wǎng)絡(luò)階段(same network stage).在FPN中,每個(gè)階段定義一個(gè)金字塔級別,由于每個(gè)階段最深層具有最強(qiáng)的表示特征,所以選擇每個(gè)階段的最后一個(gè)輸出層作為參考層.并實(shí)現(xiàn)特征融合效果.
本文針對原FPN(圖1)的特征提取融合結(jié)構(gòu)上進(jìn)行改進(jìn)(圖2),原有特征結(jié)構(gòu)進(jìn)行增加,以實(shí)現(xiàn)豐富語義特征的融合.特征融合的路徑自下向上,通過卷積核運(yùn)算,對每一次卷積核的輸出構(gòu)成一個(gè)特征金字塔.并對每一特征金字塔同一網(wǎng)絡(luò)階段做特征激活輸出,確保獲得每個(gè)階段的最強(qiáng)特征.對相關(guān)模塊分別作相對原圖像大小的2,4,8,16像素步長.對自上至下路徑,則將原本獲得的特征輸出做1×1的卷積操作實(shí)現(xiàn)橫向連接.相鄰網(wǎng)絡(luò)特征層的特征大小成2倍比例.
圖1 特征金字塔結(jié)構(gòu)Figure 1 Feature pyramid architecture
本文提出的多特征融合目標(biāo)檢測算法在原有檢測算法中增加了FPN層,實(shí)現(xiàn)多層特征融合,充分利用各個(gè)卷積層的特征圖取得的不同特性.低卷積層的高分辨率有利于檢測小物體目標(biāo),而高卷積層擁有較大感受野,可以用來檢測大目標(biāo)物體.本文主網(wǎng)絡(luò)結(jié)構(gòu)采用Faster-RCNN,Faster-RCNN在原Fast-RCNN目標(biāo)檢測方法上增加了RPN,對每個(gè)像素點(diǎn)生成錨框,并對每個(gè)錨框做出背景與目標(biāo)的判斷,過濾掉背景錨框,并對錨框做邊框回歸處理,然后再把選擇有目標(biāo)錨框輸入到ROI Pooling層以減小物體檢測的區(qū)域敏感性.其中錨框的生成大小滿足以下要求:{(w×h),(αw×αh),(wγ,h/γ)}.(其中錨框的大小w,h表示初始邊框的寬高,α,γ表示邊框縮放比例,且α∈(0,1],γ>0,當(dāng)生成n個(gè)大小,m個(gè)比例時(shí),則共產(chǎn)生有m×n個(gè)錨框).由特征融合的網(wǎng)絡(luò)結(jié)構(gòu)圖描述,將輸入的RGB三通道彩色圖片做四次卷積運(yùn)算,構(gòu)成自下到上的特征金字塔結(jié)構(gòu)Conv1_1至Conv4_1,然后從Conv4_2至Conv1_2構(gòu)成自上到下的特征金字塔結(jié)構(gòu).按特征金字塔結(jié)構(gòu)圖描述,由原來的自下到上的同一網(wǎng)絡(luò)階段做1×1卷積核操作實(shí)現(xiàn)特征融合,并對同一網(wǎng)絡(luò)階段的融合特征在做2×2卷積核操作以解決上采樣造成的混疊效應(yīng).Conv4_2,Conv3_2,Conv2_2,Conv1_2的輸出結(jié)果分別輸入到RPN.雖然看上去較為復(fù)雜,但由于RPN思想更為直觀.首先提議預(yù)先配置好的一些區(qū)域.然后通過神經(jīng)網(wǎng)絡(luò)來判斷這些提議區(qū)域是否是感興趣的,是的話,則在最后輸出時(shí)再進(jìn)行預(yù)測,得到一個(gè)更加準(zhǔn)確的邊框,這樣我們能有效降低搜索邊框的代價(jià).
圖2 特征融合網(wǎng)絡(luò)結(jié)構(gòu)圖Figure 2 Feature merged network architecture
Losscls=-γ(1-pi)λlog(pi)
(1)
常見邊框回歸損失函數(shù)一般使用平方損失函數(shù)Loss=x2.但該損失函數(shù)對較大的誤差懲罰過高,可以通過采用絕對損失函數(shù)來降低懲罰Loss=|x|.由于零點(diǎn)處左右導(dǎo)數(shù)不相等[15].通過增加平方項(xiàng)使其變得更為平滑.
(2)
本文相關(guān)實(shí)驗(yàn)采用的服務(wù)器CPU配置為Intel(R) Xeon(R) CPU E5-2630 v4 @ 2.20 GHz,GPU配置為NVIDIA TITAN X所采用深度學(xué)習(xí)框架為mxnet.訓(xùn)練使用的KITTI數(shù)據(jù)集共有7 481張訓(xùn)練圖片,7 581張測試圖片,采用分離驗(yàn)證方法,將數(shù)據(jù)分成訓(xùn)練集7 481張,驗(yàn)證集3 800張和測試集3 781張圖片.首先用訓(xùn)練集獲得訓(xùn)練模型,再用驗(yàn)證集評估模型性能,如圖3、圖4,并用測試集獲得目標(biāo)檢測的測試性能,如表1[16].
圖3 基于特征融合的Faster-RCNN檢測效果實(shí)例Figure 3 Detection performance based on merged feature Faster-RCNN
圖4 基于Faster-RCNN的檢測效果實(shí)例Figure 4 Detection performance based on original Faster-RCNN architecture
表1 不同網(wǎng)絡(luò)結(jié)構(gòu)對分類性能對比Table 1 Comparation of various network structures on classification performance
觀察上述實(shí)驗(yàn)驗(yàn)證結(jié)果,當(dāng)增加卷積特征層層數(shù),Faster-RCNN的檢測結(jié)果有相應(yīng)的提高,當(dāng)特征層選擇為5時(shí),在此次實(shí)驗(yàn)中能取到較好的結(jié)果.在卷積特征層的的特征融合部分增強(qiáng)了局部和全局的特征信息,獲得檢測目標(biāo)更為豐富的語義信息,從而提升了檢測精度.但更多的特征融合層可能會增加過擬合風(fēng)險(xiǎn),導(dǎo)致后續(xù)的結(jié)果檢測率下降.而從最終的檢測效果可以看到,改進(jìn)的算法能檢測到較小的目標(biāo)物體,更具有實(shí)用性.
本文提出了一種基于特征融合的神經(jīng)網(wǎng)絡(luò)目標(biāo)檢測方法,根據(jù)在原Faster-RCNN的結(jié)構(gòu)基礎(chǔ)上結(jié)合能實(shí)現(xiàn)豐富語義特征的特征金字塔網(wǎng)絡(luò)結(jié)構(gòu).在公開KITTI數(shù)據(jù)集上的對比實(shí)驗(yàn)結(jié)果表明增加特征金字塔后對目標(biāo)檢測率能有一定程度的提高,特別是對小目標(biāo)物體的檢測效果有一定的提升.同時(shí),采用關(guān)注損失函數(shù)替代之前的深度學(xué)習(xí)的交叉熵?fù)p失函數(shù).最后的實(shí)驗(yàn)結(jié)果表明對原有的Faster-RCNN對比效果有一定的提升.由于對遮蔽面積較大的目標(biāo)車輛檢測效果還不明顯.后續(xù)工作還需要對上述的算法缺陷進(jìn)行針對性的改進(jìn)和優(yōu)化.