崔 巍, 楊亮亮, 夏 榮, 牟向偉, 樊曉偉,2, 楊海峰,2
(1.大連海事大學(xué) 航運(yùn)經(jīng)濟(jì)與管理學(xué)院,遼寧 大連 116026; 2.重慶市電力公司 發(fā)展策劃部,重慶 400141)
從衛(wèi)星圖像中檢測(cè)出船舶圖像,提取大量的有用信息,對(duì)港口監(jiān)測(cè)、海洋運(yùn)輸、捕魚(yú)監(jiān)管以及軍事戰(zhàn)爭(zhēng)等有著重要意義。合成孔徑雷達(dá)(synthetic-aperture radar,SAR)系統(tǒng)在識(shí)別船舶領(lǐng)域具有獨(dú)特的優(yōu)勢(shì)[1-3],受到世界各國(guó)的青睞和重視[4]。然而,SAR圖像的分辨率低,目標(biāo)缺乏紋理和顏色特征,難以對(duì)多目標(biāo)進(jìn)行檢測(cè)。
隨著計(jì)算機(jī)技術(shù)的發(fā)展,深度學(xué)習(xí)算法已經(jīng)被廣泛學(xué)習(xí)與使用,并取得矚目的成效。近年來(lái),卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural network, CNN)在物體分類(lèi)和檢測(cè)方面表現(xiàn)出色。CNN的結(jié)構(gòu)首先由文獻(xiàn)[5]提出,為一種功能學(xué)習(xí)體系結(jié)構(gòu),包含卷積層和最大池化層。 CNN的每個(gè)卷積層使用幾個(gè)不同的卷積核在來(lái)自前一層的局部感受視野上生成特征映射,其輸出層結(jié)合提取的特征進(jìn)行分類(lèi),通過(guò)池化層減少特征映射的大小,提取的特征變得更加全局和復(fù)雜。文獻(xiàn)[6-8]研究表明,CNN可以在物體檢測(cè)和分類(lèi)中取得有效的結(jié)果。然而,直接將CNN與滑動(dòng)窗口策略相結(jié)合難以精確定位對(duì)象[9]。為了解決上述問(wèn)題,研究者用基于區(qū)域的CNN(region-based convolutional neural network,R-CNN)[10]、空間金字塔池化網(wǎng)絡(luò)(spatial pyramid pooling networks,SPP-Net)[11]及快速區(qū)域卷積神經(jīng)網(wǎng)絡(luò)(fast region-based convolutional neural network,Fast R-CNN)[12]來(lái)改善對(duì)象檢測(cè)性能,但區(qū)域提議生成步驟所消耗的計(jì)算時(shí)間太多。文獻(xiàn)[13]進(jìn)一步改進(jìn)了Fast R-CNN,并開(kāi)發(fā)了更快速的區(qū)域卷積神經(jīng)網(wǎng)絡(luò)(faster region-based convolutional neural network,Faster R-CNN),實(shí)現(xiàn)了對(duì)物體進(jìn)行高精度實(shí)時(shí)檢測(cè)。
目前,將Faster R-CNN用于衛(wèi)星圖像船舶檢測(cè)的研究報(bào)道很少。本文使用該算法進(jìn)行船舶檢測(cè)識(shí)別。實(shí)驗(yàn)結(jié)果表明,Faster R-CNN能夠精確識(shí)別船舶,準(zhǔn)確率高達(dá)0.967,并且具有精確識(shí)別多目標(biāo)、算法花費(fèi)時(shí)間少、收斂速度快等優(yōu)點(diǎn)。與傳統(tǒng)尺度不變特征轉(zhuǎn)換(scale-invariant feature transform,SIFT)[14]算法、Fast R-CNN算法相比,Faster R-CNN在精確程度和收斂速度上都更優(yōu),在船舶識(shí)別方面具有很大的潛力。本文旨在研究應(yīng)用Faster R-CNN從衛(wèi)星圖像中識(shí)別船舶,豐富船舶識(shí)別方法。
Faster R-CNN已經(jīng)在許多領(lǐng)域?qū)崿F(xiàn)了多類(lèi)別對(duì)象檢測(cè)的最新性能,例如, SPP-Net在深度卷積網(wǎng)絡(luò)中的視覺(jué)識(shí)別[11]。Faster R-CNN的艦船識(shí)別框架如圖1所示。
圖1 基于Faster R-CNN的艦船識(shí)別框架
Faster R-CNN體系結(jié)構(gòu)[12-13]如圖2所示。
Faster R-CNN是用于對(duì)象檢測(cè)的單一統(tǒng)一網(wǎng)絡(luò),由2個(gè)模塊組成:模塊1,區(qū)域提議網(wǎng)絡(luò)(region proposal networks, RPN);模塊2,Fast R-CNN探測(cè)器。RPN是一個(gè)完全卷積網(wǎng)絡(luò),屬于模塊1,可同時(shí)預(yù)測(cè)每個(gè)位置的對(duì)象邊界和對(duì)象分?jǐn)?shù),即每個(gè)區(qū)域提議都由該區(qū)域的分?jǐn)?shù)和邊界框坐標(biāo)2個(gè)部分組成,這些提議將被輸入模塊2中。Fast R-CNN探測(cè)器用于區(qū)域提議分類(lèi)與計(jì)算得分。Faster R-CNN將RPN和Fast R-CNN通過(guò)共享其卷積特征進(jìn)一步合并為1個(gè)網(wǎng)絡(luò),并且允許它們進(jìn)行聯(lián)合訓(xùn)練。由于共享卷積層,有可能使用非常深的網(wǎng)絡(luò),例如VGG-16模型[15],來(lái)生成高質(zhì)量的對(duì)象提議。
圖2 Faster R-CNN的體系結(jié)構(gòu)
Fast R-CNN檢測(cè)器將多個(gè)感興趣區(qū)域(region of interest, ROI)作為輸入。每個(gè)ROI(參見(jiàn)圖2)都由1個(gè)四元組(r,c,h,w)表示,其中(r,c)表示左上角,而(h,w)則代表高度和寬度。ROI 池化層使用最大池化(max pooling)將ROI區(qū)域轉(zhuǎn)化成固定大小為H×W的特征圖(H、W為特定ROI層的超參數(shù))。ROI 池化層從卷積層提取1個(gè)固定長(zhǎng)度的特征向量,每個(gè)特征向量被送到全連接層的序列中。檢測(cè)器通過(guò)softmax層和邊界框回歸層的最終輸出為:① 估計(jì)超過(guò)k個(gè)對(duì)象類(lèi)與“背景”類(lèi);② 相關(guān)邊界框值的softmax概率。 本文k取1,即對(duì)象類(lèi)只包含客體“船舶”與“背景”類(lèi)。
當(dāng)使用RPN從衛(wèi)星圖像預(yù)測(cè)船舶建議時(shí),RPN以衛(wèi)星圖像作為輸入,并輸出1組矩形區(qū)域提議(即邊界框),每個(gè)提議均具有無(wú)目標(biāo)得分。本文中,具有13個(gè)可共享卷積層的VGG-16模型被用作Faster R-CNN卷積后端。
RPN利用最后共享卷積層輸出的卷積特征映射上的滑動(dòng)窗口為每個(gè)位置生成矩形區(qū)域提議[13],如圖3所示。
圖3 區(qū)域提議網(wǎng)絡(luò)
將n×n個(gè)空間窗口(濾波器)與輸入卷積特征映射進(jìn)行卷積,每個(gè)滑動(dòng)窗口投影到1個(gè)較低維度的特征(對(duì)于VGG-16,為512維)。對(duì)于1個(gè)邊界框回歸層(reg-layer)和1個(gè)邊界框分類(lèi)層(cls-layer),分別用2個(gè)1×1濾波器進(jìn)行卷積,其中回歸層用于預(yù)測(cè)提議區(qū)域的中心錨點(diǎn)對(duì)應(yīng)的坐標(biāo)(x,y)和寬高(w,h),分類(lèi)層用于判定該提議區(qū)域是前景還是背景。對(duì)于每個(gè)滑動(dòng)窗口位置,在分類(lèi)層中生成k個(gè)可能的提議(即文獻(xiàn)[15]中的錨點(diǎn)),而且在每個(gè)滑動(dòng)窗口的位置上,RPN 都可以根據(jù)k個(gè)固定比例的錨點(diǎn)框生成多個(gè)可能的區(qū)域。分類(lèi)層輸出2k個(gè)對(duì)象得分,用于估計(jì)每個(gè)提議包含船舶或非船舶對(duì)象的概率;同時(shí)在回歸層生成4k個(gè)輸出,用于編碼k個(gè)邊界框的坐標(biāo)。
由于許多提議高度重疊,采用非最大抑制(non-maximum suppression,NMS)合并具有較高交集的提議。交并比(Intersection over Union,IoU)定義了2個(gè)框的重疊度,如圖4所示。
圖4 矩形框演示
矩形框A、B的重合度IoU設(shè)為M,其計(jì)算公式為:
(1)
為了訓(xùn)練RPN,每個(gè)提議被分配一個(gè)二進(jìn)制類(lèi)別標(biāo)簽,該標(biāo)簽判斷該提議是對(duì)象(即船舶)還是背景。若提議與目標(biāo)窗口(ground truth, GT)的IoU值超過(guò)預(yù)定義閾值(文獻(xiàn)[13]中取0.7),則判斷為前景(即有船舶目標(biāo));若提議與GT的IoU值不大于預(yù)定義閾值0.7,則對(duì)IoU進(jìn)行排序,選取最大值所對(duì)應(yīng)的提議,將其判斷為前景;若提議與所有標(biāo)注框的最大IoU值都低于預(yù)定義的閾值(文獻(xiàn)[13]中取0.3),則判斷為背景。在Fast R-CNN中多任務(wù)丟失后,RPN通過(guò)多任務(wù)損失(multi-loss,mloss)函數(shù)進(jìn)行訓(xùn)練,其定義為:
(2)
(3)
(4)
其中,R為魯棒損失函數(shù)smoothL1,其定義為:
(5)
邊界框回歸就是找到最接近GT的錨箱(anchor box)。錨的4個(gè)坐標(biāo)參數(shù)化描述如下:
tx=(x-xa)/wa;ty=(y-ya)/ha;
tw=log(w/wa);th=log(h/ha);
其中,(x,y)、w、h分別為邊界框的中心坐標(biāo)、寬度及高度;x、xa、x*分別代表預(yù)測(cè)框、錨點(diǎn)框及GT框的x值。類(lèi)似的定義適用于y、w、h。
邊界框回歸是通過(guò)在特征圖上使用具有相同空間大小的特征來(lái)實(shí)現(xiàn)的。訓(xùn)練1組邊界框回歸器以適應(yīng)不同圖片的大小。
由于RPN和Fast R-CNN檢測(cè)器可以共享相同的卷積層,因此可以通過(guò)聯(lián)合訓(xùn)練來(lái)學(xué)習(xí)統(tǒng)一網(wǎng)絡(luò),步驟如下:① 訓(xùn)練RPN;② 使用RPN產(chǎn)生的建議來(lái)訓(xùn)練檢測(cè)器網(wǎng)絡(luò);③ 由檢測(cè)器網(wǎng)絡(luò)初始化RPN訓(xùn)練,但僅訓(xùn)練RPN特定層;④ 使用新RPN的建議來(lái)訓(xùn)練檢測(cè)器網(wǎng)絡(luò)。
實(shí)驗(yàn)所用1 000張?jiān)紙D片來(lái)自谷歌衛(wèi)星地圖和百度衛(wèi)星地圖,每張圖片的尺寸在400×400像素點(diǎn)到600×600像素點(diǎn)之間,主要的背景為不同的海域以及船舶??康拇a頭沿岸。為了防止過(guò)擬合,需確保數(shù)據(jù)集包含以下類(lèi)型的數(shù)據(jù):① 來(lái)自不同海域;② 只包含1艘船舶;③ 包含多艘船舶。實(shí)驗(yàn)使用VOTT軟件進(jìn)行圖片標(biāo)注,部分船舶樣本與標(biāo)注樣本如圖5所示。
圖5 數(shù)據(jù)集示例
為了有效訓(xùn)練Faster R-CNN模型,使用30個(gè)RPN,L2正規(guī)化權(quán)重設(shè)置為0.000 5;將每個(gè)minibatch學(xué)習(xí)的momentum設(shè)置為0.9, momentum為梯度下降法中常用的加速技術(shù);用于丟棄重疊預(yù)測(cè)邊界框的NMS閾值設(shè)置為0.8,NMS閾值越高,刪除的預(yù)測(cè)邊界框越多,因此最終輸出的邊界框越少;通過(guò)翻轉(zhuǎn)每個(gè)其他時(shí)期的所有圖像來(lái)增加訓(xùn)練數(shù)據(jù),即第1個(gè)時(shí)期包括所有常規(guī)圖像,第2個(gè)時(shí)期包括所有圖像翻轉(zhuǎn),等等;確定從輸入到卷積特征映射的卷積層被訓(xùn)練或固定;訓(xùn)練期間使用的中央處理單元(central processing unit,CPU)處理器為i7四代處理器,圖像處理單元(graphics processing unit,GPU)處理器為Nvidia GTX 960;訓(xùn)練輪次為55。
實(shí)驗(yàn)分為如下2個(gè)部分:① RPN使用CNN生成提議,其本質(zhì)是使用滑動(dòng)窗口,RPN針對(duì)提議端到端訓(xùn)練,并能夠同時(shí)預(yù)測(cè)對(duì)象的邊界和分?jǐn)?shù);② Fast R-CNN檢測(cè)器通過(guò)softmax層和邊界框回歸層得到最終輸出。
mloss函數(shù)曲線如圖6所示,部分圖片測(cè)試結(jié)果如圖7所示,船舶識(shí)別準(zhǔn)確率為0.967。
由圖6可知,隨著訓(xùn)練輪次加大,mloss函數(shù)值逐漸減少,在12輪訓(xùn)練后在0.18上下振動(dòng),達(dá)到收斂。
圖6 Faster R-CNN多任務(wù)損失函數(shù)曲線
圖7 由Faster R-CNN得到的部分圖片測(cè)試結(jié)果
從圖7可以看出,采用Faster R-CNN算法識(shí)別不同狀態(tài)、不同海域的船舶時(shí),精度非常高,多目標(biāo)檢測(cè)效果好,絕大部分的檢測(cè)概率在90%以上。
(1) 與SIFT算法的對(duì)比。SIFT是一種基于電腦視覺(jué)算法來(lái)偵測(cè)與描述影像中局部特征的傳統(tǒng)算法,它通過(guò)在空間尺度中尋找極值點(diǎn),提取其位置、尺度及旋轉(zhuǎn)不變量,應(yīng)用范圍包括物體辨識(shí)、影像縫合、手勢(shì)辨別等。
由SIFT得到的部分圖片測(cè)試結(jié)果如圖8所示。從圖8可以看出檢測(cè)結(jié)果較差,在干擾物相對(duì)較多或圖片相對(duì)模糊時(shí),出現(xiàn)錯(cuò)誤檢測(cè)、未發(fā)現(xiàn)等情況。
(2) 與Fast R-CNN算法的對(duì)比。采用與Faster R-CNN算法相同的參數(shù)集和數(shù)據(jù)集進(jìn)行模型訓(xùn)練,實(shí)驗(yàn)得到mloss函數(shù)曲線如圖9所示,識(shí)別準(zhǔn)確率為0.546。從圖9可以看出,在15輪訓(xùn)練后,mloss函數(shù)值達(dá)到收斂。對(duì)比分析圖6、圖9可知,與Fast R-CNN算法相比,Faster R-CNN算法有更快的收斂速度;對(duì)比2種算法識(shí)別準(zhǔn)確率可知,Faster R-CNN有更好的識(shí)別精度。
從實(shí)驗(yàn)結(jié)果分析可知,與傳統(tǒng)SIFT算法相比,Faster R-CNN算法識(shí)別精度更高;與 Fast R-CNN算法相比,無(wú)論是收斂速度還是識(shí)別精度,Faster R-CNN算法更加高效。
圖8 由SIFT得到的部分圖片測(cè)試結(jié)果
圖9 Fast R-CNN實(shí)驗(yàn)mloss函數(shù)曲線
本文使用Faster R-CNN算法進(jìn)行船舶檢測(cè)識(shí)別,并與傳統(tǒng)SIFT算法和Fast R-CNN算法進(jìn)行對(duì)比。研究結(jié)果表明,Faster R-CNN算法可以實(shí)現(xiàn)更高效的船舶識(shí)別,在船舶識(shí)別方面具有很大的潛力。
另外,研究中發(fā)現(xiàn),由于夜晚或下雨天衛(wèi)星圖像中海上環(huán)境和船舶的顏色相似,Faster R-CNN算法對(duì)此類(lèi)圖像識(shí)別精度不高。后續(xù)的研究需進(jìn)一步改進(jìn)Faster R-CNN算法,將其與跟蹤算法相結(jié)合,對(duì)模糊環(huán)境下衛(wèi)星圖像中的船舶進(jìn)行檢測(cè)。