史國川 拓浩男 曹宇劍 王 民 丁 健
(1.陸軍炮兵防空兵學(xué)院 合肥 230031)(2.合肥學(xué)院 合肥 230601)
2005年Navneet Dalal將方向梯度直方圖(HOG)方法用于行人檢測以來,有關(guān)目標(biāo)檢測和識(shí)別方面的理論和應(yīng)用研究越來越深入和廣泛,取得了一定的檢測和識(shí)別效果,但檢測的準(zhǔn)確度還不是很理想。2010年Felzenszwalb在HOG算法的基礎(chǔ)上進(jìn)行了改進(jìn),提出了可變形組建模型(DPM),與HOG算法相比檢測效果有一定的提升。隨著深度學(xué)習(xí)理論的推廣和應(yīng)用,2012年Krizhevsky等提出了深度學(xué)習(xí)目標(biāo)檢測方法,運(yùn)用深度CNN較好地解決了大規(guī)模圖像分類問題,與DPM算法相比,檢測的準(zhǔn)確度的有顯著的提高。本文選用Faster R-CNN模型作為無人機(jī)偵察目標(biāo)檢測方法,來提高無人機(jī)偵察目標(biāo)檢測和識(shí)別的準(zhǔn)確率,具有很高的實(shí)用價(jià)值[1~7]。
Faster R-CNN模型由RPN(region proposal net?work)和Fast-R-CNN兩個(gè)模塊組成。提取候選框由RPN負(fù)責(zé),目標(biāo)檢測和識(shí)別由Fast-R-CNN檢測模塊來完成。Faster R-CNN模型的目標(biāo)檢測過程如圖1所示,其檢測過程分為四步:
第一步:生成RP;
第二步:提取特征;
第三步:目標(biāo)分類;
第四步:優(yōu)化邊界框。
為了能夠滿足實(shí)時(shí)檢測的需要,計(jì)算在GPU中實(shí)現(xiàn),并將上述四步融合到一個(gè)深度網(wǎng)絡(luò)框架之中,從而大大提高了運(yùn)行速度[8~12]。
圖1 Faster R-CNN模型的目標(biāo)檢測過程
SPP-Net和Fast-R-CNN模型在一定程度上能縮短目標(biāo)檢測運(yùn)行時(shí)間,不足之處在于計(jì)算RP時(shí)間過長。為了解決上述問題,快速提取目標(biāo)檢測區(qū)域,采用RPN來替代Fast-R-CNN選擇性搜索方法,使用CNN直接來產(chǎn)生RP,通過滑動(dòng)窗口來實(shí)現(xiàn)。與傳統(tǒng)的方法相比,該方法只要在最后的卷積層上滑動(dòng)一遍即可。另外,在CNN框架上再增加類別層(cls-layer)和回歸層(reg-layer)兩個(gè)全卷積層,針對(duì)生成檢測建議框的任務(wù),可以實(shí)現(xiàn)端到端的訓(xùn)練,能夠較好地預(yù)測出目標(biāo)的類別和邊界。
為了進(jìn)一步理解RPN,假設(shè)給定目標(biāo)圖像的分辨率為600×1000,首先對(duì)輸入的圖像進(jìn)行卷積運(yùn)算和處理,得到最后一層的卷積特征圖大小為40×60。再使用n×n(這里n=3)的卷積核(滑動(dòng)窗口)與特征圖進(jìn)行卷積處理操作,得到最后一層卷積層共有m個(gè)特征圖(這里為256)。這樣n×n的區(qū)域進(jìn)行卷積處理操作后可以得到一個(gè)m維的特征向量。在CNN框架上增加的類別層和回歸層分別用于分類和邊框回歸。類別層由判別目標(biāo)和非目標(biāo)的估計(jì)概率兩個(gè)元素組成。回歸層用來確定目標(biāo)位置,由4個(gè)坐標(biāo)元素(x,y,w,h)組成。運(yùn)用anchor的映射機(jī)制來實(shí)現(xiàn)RPN平移的不變性。這是n×n滑動(dòng)窗口對(duì)應(yīng)的每個(gè)特征區(qū)域可以同時(shí)預(yù)測輸入圖像為128、256和512 三種尺度以及1:1、1:2和2:13三種長寬比。對(duì)于40×60的特征圖,RP共有9種選擇,有21600(40×60×9)個(gè)anchor,可以預(yù)測21600個(gè)RP。
RPN多任務(wù)損失函數(shù)主要由分類損失函數(shù)和回歸損失函數(shù)組成,其中分類損失函數(shù)用于目標(biāo)分類,回歸損失函數(shù)用于目標(biāo)邊界框回歸。對(duì)一幅圖像的損失函數(shù)定義式如下:
上式中的pi為第i個(gè)anchor目標(biāo)的預(yù)測概率,為與第i個(gè)anchor對(duì)應(yīng)的實(shí)際邊界框(GT,Ground Truth)的預(yù)測概率。
如果第i個(gè)anchor邊框與GT間的召回率IoU>0.7(此時(shí)),認(rèn)為該anchor是目標(biāo)。如果0.3 ti是一個(gè)向量,表示為ti{tx,ty,tw,th},對(duì)應(yīng)預(yù)測邊界框的4個(gè)參數(shù)化坐標(biāo),tx,ty對(duì)應(yīng)邊界框中心坐標(biāo),tw,th對(duì)應(yīng)邊界框的寬和高。是與anchor對(duì)應(yīng)GT的坐標(biāo)向量。 分類損失為目標(biāo)類和非目標(biāo)類的對(duì)數(shù)損失,計(jì)算公式如下: 回歸損失計(jì)算公式如下: 式中,R是定義的魯棒損失函數(shù)(smooth L1)。 對(duì)于顯示窗口使用四維向量(x,y,w,h),分別表示窗口的中心點(diǎn)坐標(biāo)和寬與高。 通過邊界框的回歸學(xué)習(xí),找到一種關(guān)系映射,使得輸入原始的anchor A通過映射的方法,能得到一個(gè)跟真實(shí)窗口G更接近的回歸窗口G',即: 給定A=(Ax,Ay,Aw,Ah),尋找一種關(guān)系映射f,使 得,其 中。 下面通過平移變換和縮放變換兩個(gè)方法來具體的實(shí)現(xiàn)anchor到近似GT的過渡。 平移變換計(jì)算公式: 縮放變換計(jì)算公式: 其中x,y表示預(yù)測邊界框中心的x坐標(biāo)和y坐標(biāo),w,h表示邊界框的寬度和高度。anchor邊界框的坐標(biāo)參數(shù)分別表示為xa、ya、wa、ha,GT邊界框的坐標(biāo)參數(shù)分別表示為x*、y*、w*、h*。 上述計(jì)算公式可以理解為通過邊界框的回歸學(xué)習(xí),就是從anchor邊界框到附近的GT邊界框的回歸,得到一個(gè)更接近于實(shí)際窗口G的回歸窗口G'的邊界框。 在Faster R-CNN模型中,RPN和Fast-R-CNN訓(xùn)練都是獨(dú)立,需要采用不同的方法來改變RPN和Fast-R-CNN的卷積層。本文采取五步訓(xùn)練方法,通過交替優(yōu)化來學(xué)習(xí)共享特征,具體的方法步驟如下: 1)通過ImageNet預(yù)訓(xùn)練模型來初始化網(wǎng)絡(luò)參數(shù)。 2)對(duì)RPN網(wǎng)絡(luò)進(jìn)行微調(diào)。 3)通過提取RP來訓(xùn)練Fast-R-CNN網(wǎng)絡(luò)。 4)重新初始化RPN,并固定卷積層,對(duì)RPN網(wǎng)絡(luò)進(jìn)行微調(diào)。 5)固定步驟3)中Fast-R-CNN的卷積層,使用步驟4)中RPN提取的RP來微調(diào)網(wǎng)絡(luò)。 Faster R-CNN模型中的RPN和Fast-R-CNN兩個(gè)核心模塊通過共享卷積特征,實(shí)現(xiàn)了共享相同的卷積層,整合了一個(gè)統(tǒng)一的網(wǎng)絡(luò),從而大大提高了目標(biāo)檢測的準(zhǔn)確度。 本文采用ZFNet模型作為預(yù)訓(xùn)練模型,并進(jìn)行特征提取。目標(biāo)檢測算法由網(wǎng)絡(luò)訓(xùn)練和目標(biāo)檢測兩個(gè)部分組成。ZFNet模型共有7層,其中5層為共享卷積層,大約有6240萬參數(shù)。采用一塊GPU的稠密的連接結(jié)構(gòu),考慮到AlexNet第一層中的中間頻率信息很少,大量的高頻信息和低頻信息又混合在一起,同時(shí)第一層卷積使用的步長較大,導(dǎo)致第二層中也有非常多的混疊等現(xiàn)象,需要對(duì)AlexNet進(jìn)行改進(jìn)。為此對(duì)第一層卷積使用的步長進(jìn)行調(diào)小,步長由4改為2,同時(shí)將第一層濾波器的大小范圍進(jìn)行調(diào)整,由原來11×11改成7×7,從而保留了更多的原始像素的信息??紤]到循環(huán)次數(shù)對(duì)訓(xùn)練參數(shù)也有一定的影響,將循環(huán)次數(shù)設(shè)定為2次。 基于Faster R-CNN模型訓(xùn)練算法和目標(biāo)檢測算法描述如下: 1)Faster R-CNN模型訓(xùn)練算法 步驟1:將已經(jīng)訓(xùn)練好的模型進(jìn)行參數(shù)初始化; 步驟2:第一次訓(xùn)練RPN網(wǎng)絡(luò); 步驟3:獲得感興趣的RP; 步驟4:第一次訓(xùn)練Fast-R-CNN網(wǎng)絡(luò); 步驟5:第二次訓(xùn)練RPN網(wǎng)絡(luò); 步驟6:第三次訓(xùn)練RPN網(wǎng)絡(luò); 步驟7:第二次訓(xùn)練Fast-R-CNN網(wǎng)絡(luò)。 2)Faster R-CNN目標(biāo)檢測算法 步驟1:輸入無人機(jī)偵察目標(biāo)圖像。 步驟2:提取無人機(jī)偵察目標(biāo)圖像的特征圖; 步驟3:通過RPN網(wǎng)絡(luò)生成RP集; 步驟4:結(jié)合步驟2提取的特征圖和步驟3生成的RP集對(duì)特征圖進(jìn)行RoI池化操作,修正提取建議特征圖; 步驟5:判定目標(biāo)類別; 步驟6:通過邊界框回歸,計(jì)算目標(biāo)邊界框的位置; 步驟7:在輸出圖像上顯示無人機(jī)偵察目標(biāo)圖像檢測結(jié)果。 對(duì)每類目標(biāo)選取訓(xùn)練好的模型進(jìn)行測試,在檢測過程中,一般會(huì)出現(xiàn)一些錯(cuò)誤的或多余的目標(biāo)框,例如在非目標(biāo)區(qū)域出現(xiàn)了錯(cuò)誤的目標(biāo)框,在同一個(gè)目標(biāo)上出現(xiàn)多個(gè)目標(biāo)框,這是由于模型對(duì)所提取的區(qū)域特征進(jìn)行判別時(shí)與設(shè)定的閾值有關(guān)。為了解決上述問題,要設(shè)置好閾值。通過提高閾值,僅保留得分情況較高的且符合設(shè)定的閾值要求的目標(biāo)框,就可以有效地降低錯(cuò)誤或多余的目標(biāo)框顯示。如果判別得分符合設(shè)定的閾值要求(本次實(shí)驗(yàn)設(shè)定的閾值為0.3),就被顯示在圖像上。 表1 四類目標(biāo)的檢測結(jié)果 選取油庫、艦艇、立交橋、飛機(jī)等四種典型目標(biāo)進(jìn)行檢測,四類目標(biāo)的檢測結(jié)果如表1所示。從表1中可以看出,油庫、艦艇、立交橋、飛機(jī)四種目標(biāo)的檢測準(zhǔn)確率分別為91.12%、90.10%、87.27%和86.48%,低的也在86.48%,高的達(dá)91.12%,平均檢測準(zhǔn)確率為89.47%,實(shí)驗(yàn)結(jié)果表明該檢測方法具有較高的準(zhǔn)確率。 目標(biāo)檢測的準(zhǔn)確率是評(píng)估偵察目標(biāo)性能的重要指標(biāo)之一,本文以Faster R-CNN作為基準(zhǔn)模型,對(duì)模型的RPN模塊、多任務(wù)損失函數(shù)、卷積特征共享等進(jìn)行了分析和研究,設(shè)計(jì)了無人機(jī)偵察目標(biāo)檢測算法,對(duì)油庫、艦艇、立交橋、飛機(jī)等四種典型目標(biāo)進(jìn)行了檢測,驗(yàn)證了Faster R-CNN模型用于無人機(jī)目標(biāo)檢測的有效性和準(zhǔn)確性。2.3 卷積特征共享
3 目標(biāo)檢測算法
4 實(shí)驗(yàn)與結(jié)果分析
5 結(jié)語