程靜,王榮杰,2,曾光淼,林安輝,2,王亦春,2
(1.集美大學(xué) 輪機(jī)工程學(xué)院,福建 廈門 361021;2.福建省船舶與海洋工程重點(diǎn)實(shí)驗(yàn)室,福建 廈門 361021)
隨著社會經(jīng)濟(jì)的發(fā)展,海上交通日益繁華,船舶識別對海洋監(jiān)視、海運(yùn)管理有重要的應(yīng)用價(jià)值[1]。在海洋監(jiān)視領(lǐng)域,船舶識別對海洋環(huán)境和不法船舶有強(qiáng)有力的監(jiān)督作用。在海運(yùn)管理上可以監(jiān)控和輔助管理海上交通,同時(shí)確保海岸和海上安全。船舶檢測和識別已成為熱門研究課題[2-3]。此外,隨著人工智能發(fā)展,自從新型深度卷積神經(jīng)網(wǎng)絡(luò)(convolu‐tional neural network,CNN)AlexNet[4]在2012 年 的ImageNet 圖像分類競賽中取得勝利以來,許多領(lǐng)域都提出了越來越多的基于深度學(xué)習(xí)的解決方法。例如,計(jì)算機(jī)視覺(圖像檢測、識別和分類)、語音識別、自然語言處理、音頻識別、生物信息和醫(yī)學(xué)學(xué)科等[5]。其中基于圖像的目標(biāo)檢測,已經(jīng)有許多著名的基于CNN的檢測方法,包括:1)一階段檢測器,如文獻(xiàn)[6]提出的you only look once(YOLO)、文獻(xiàn)[7]提出的單次多框檢測器(single shot multibox de‐tector,SSD)、文獻(xiàn)[8]提出的RetinaNet和文獻(xiàn)[9]提出的anchor-free CenterNet;2)兩階段檢測器,如文獻(xiàn)[10]提出的區(qū)域卷積神經(jīng)網(wǎng)絡(luò)(region convolu‐tional neural network,R-CNN)、文獻(xiàn)[11]對文獻(xiàn)[10]改進(jìn)的快速區(qū)域卷積神經(jīng)網(wǎng)絡(luò)(fast region con‐volutional neural network,F(xiàn)ast R-CNN)和文獻(xiàn)[12]的更快區(qū)域卷積神經(jīng)網(wǎng)絡(luò)(faster region convolution‐al neural network,F(xiàn)aster R-CNN)。
基于圖像的目標(biāo)檢測已經(jīng)廣泛應(yīng)用于路上目標(biāo)檢測和海上目標(biāo)檢測。在人工智能和自動駕駛技術(shù)的推動下,無人控制的智能船舶順勢而生。智能船舶自主航行或執(zhí)行的感知周圍環(huán)境,即識別海上船舶等其他目標(biāo)。目前主要通過圖像信息研究船舶識別,根據(jù)圖像產(chǎn)生的來源,基于圖像的船舶識別方法大致分為雷達(dá)圖像、遙感圖像和視覺圖像3 類[13]。基于雷達(dá)圖像的船舶檢測,文獻(xiàn)[14]通過Faster R-CNN 對檢測網(wǎng)絡(luò)中分類置信度較低的邊界框重新評估,提高對船舶的檢測性能。文獻(xiàn)[15]在Faster R-CNN 的感興趣區(qū)域(region of interest,RoI )添加上下文信息,生成不同深度的多層建議區(qū)域,實(shí)現(xiàn)了基于合成孔徑雷達(dá)(synthetic aperture radar,SAR)圖像的船舶端到端檢測。文獻(xiàn)[16]提出了一種基于密集注意金字塔網(wǎng)絡(luò)的SAR 圖像船舶檢測方法,提高了SAR 圖像的識別精度。文獻(xiàn)[17]采用特征重用策略來提高參數(shù)效率,并引入分支實(shí)現(xiàn)多尺度對象檢測。利用遙感圖像檢測船舶的研究,文獻(xiàn)[18]提出了一種從遙感圖像中自適應(yīng)學(xué)習(xí)特征的網(wǎng)絡(luò)用于船舶檢測。文獻(xiàn)[19]在基于R-CNN 的船舶監(jiān)測框架中引入場景掩模提取網(wǎng)絡(luò),用于輔助船舶檢測,有效抑制了非目標(biāo)區(qū)域的誤報(bào)。文獻(xiàn)[20]提出了一種融合多層特征交叉層次、旋轉(zhuǎn)區(qū)域建議網(wǎng)絡(luò)和雙向遞歸神經(jīng)網(wǎng)絡(luò)融合自注意機(jī)制的艦船檢測框架,解決了圖像船舶的多維、背景復(fù)雜的問題。視覺圖像指通過攝像機(jī)采集的視頻或圖像,海洋環(huán)境的復(fù)雜性增大了通過船載攝像機(jī)或岸域攝像機(jī)獲取多艘船舶的困難,且目前公開的船舶視覺圖像數(shù)據(jù)集也很少,因此,相較于基于雷達(dá)圖像和遙感圖像,基于視覺圖像的船舶識別研究較少,文獻(xiàn)[21]提出了一種兩階段分層特征選擇算法來區(qū)分3 種民用船舶類型。文獻(xiàn)[22]提出了一種基于Faster R-CNN 的船舶概率檢測與分類系統(tǒng),將分類器置信度視為概率,通過貝葉斯融合確定艦船類別。文獻(xiàn)[23]提出了一種從粗到精級聯(lián)卷積神經(jīng)網(wǎng)絡(luò),識別不同類型的船舶。這些是對船舶類型的檢測,不能識別同一類別的不同艘船舶。文獻(xiàn)[24]使用SSD 算法檢測內(nèi)河船舶,應(yīng)用樣本增強(qiáng)和遷徙學(xué)習(xí)緩解了訓(xùn)練中的過擬合問題。文獻(xiàn)[13]提出了一個(gè)顯著性感知的CNN框架用于船舶檢測,以獲得更準(zhǔn)確的船舶位置。文獻(xiàn)[25]提出了一個(gè)增強(qiáng)的卷積神經(jīng)網(wǎng)絡(luò),能夠精準(zhǔn)識別不同艘船舶,且提高了不同天氣條件下的船舶檢測精度。這是基于同一視角下的船舶圖像進(jìn)行的研究。由于海洋環(huán)境的特殊性和攝像機(jī)位置固定以及視角范圍局限性,獲取同一艘船舶在相同/不同時(shí)刻、相同/不同背景下的不同視角的圖像較為困難,因此多視角下的船舶識別領(lǐng)域缺乏能夠訓(xùn)練深度網(wǎng)絡(luò)模型的大規(guī)模數(shù)據(jù)集。同類船舶都是剛性同質(zhì)的,高度相似,難以區(qū)分其細(xì)微差別;且當(dāng)視角改變時(shí),大型船舶在外觀上有很大不同[26]。相比于人和車輛重識別,有關(guān)船舶多視角識別的研究很少。文獻(xiàn)[27]提出了基于合成孔徑雷達(dá)圖像的多視角船舶識別方法,文獻(xiàn)[26]提出了一個(gè)基于全局和局部融合的多視角特征學(xué)習(xí)的船舶識別框架,利用自制的多視角船舶數(shù)據(jù)集評估模型性能。目前還沒有找到其他基于視覺圖像的多視角船舶識別研究。
針對上述問題,本文自制多視角船舶數(shù)據(jù)集,以Faster R-CNN 為基準(zhǔn)網(wǎng)絡(luò),提取船舶在不同視角下的特征,進(jìn)而實(shí)現(xiàn)對多視角船舶的識別,并評估不同背景環(huán)境以及圖像分辨率對Faster R-CNN 識別多尺度船舶的性能影響。
Faster R-CNN 是對Fast R-CNN 的改進(jìn),使用區(qū)域建議網(wǎng)絡(luò)(region proposal network,RPN)替代Fast R-CNN 的選擇性搜索算法來確定候選區(qū)域。Faster R-CNN 主要由RPN 和Fast R-CNN 兩部分組成,其核心過程是利用主干特征提取網(wǎng)絡(luò)提取目標(biāo)特征,獲得共享特征圖(feature map),再通過RPN生成候選區(qū)域。Fast R-CNN 確定候選區(qū)域是否包含目標(biāo),并校正候選區(qū)域的位置和尺寸。最后,使用感興趣區(qū)域池化(region of interest pooling,RoI Pool‐ing)對候選區(qū)域進(jìn)行分類和邊界回歸。
Faster R-CNN先將任意尺寸的圖像調(diào)整至需要的尺寸,同時(shí)將調(diào)整比例和調(diào)整后圖像的寬高存儲到圖像信息im_info 中,再通過主干網(wǎng)絡(luò)提取特征,并將獲得的特征圖作為公共特征圖,被共享于RPN和全連接層。RPN 用于生成候選框,通過RoI Pool‐ing 利用候選框截取共享特征圖。最后通過全連接層進(jìn)行邊界回歸預(yù)測和分類,并使用邊界回歸預(yù)測調(diào)整建議框,得到精確預(yù)測框,如圖1所示。
Faster R-CNN 可以采用多種主干特征提取網(wǎng)絡(luò),雖然深度網(wǎng)絡(luò)能夠提取更深層次的特征信息,但隨著網(wǎng)絡(luò)的加深,參數(shù)也會隨之增加[28]。殘差網(wǎng)絡(luò)(ResNet)能夠有效解決梯度消失和梯度爆炸以及網(wǎng)絡(luò)退化的問題,且其殘差結(jié)構(gòu)使得梯度可以從淺層平滑地傳遞到深層,能夠訓(xùn)練深度的神經(jīng)網(wǎng)絡(luò)來提高特征提取能力。與VGG網(wǎng)絡(luò)模型相比,具有殘差機(jī)制的ResNet可以更好地保留淺層特征,并傳遞給深層參與訓(xùn)練[29]。因此,本文以殘差網(wǎng)絡(luò)(ResNet50)[30]作為Faster R-CNN 的主干特征提取網(wǎng)絡(luò)。ResNet50有5個(gè)模塊(模塊0~模塊4)組成,如圖2(a)所示,(3,224,224)分別表示圖像的輸入通道數(shù)、高度和寬度。模塊0是對輸入的預(yù)處理,模塊1~模塊4 結(jié)構(gòu)類似,都是由瓶頸層(bottleneck layer,BTNK)組成,分別包含3、4、6、3個(gè)BTNK。輸入輸出通道數(shù)相同的表示為BTNK1,如圖2(b)所示,用于加深網(wǎng)絡(luò);輸入輸出通道數(shù)不同的表示為BTNK2,如圖3(c)所示,用于改變網(wǎng)絡(luò)的通道。以ResNet50 的模塊3的輸出為共享特征層,如圖2(d)所示。
圖2 ResNet50網(wǎng)絡(luò)模型結(jié)構(gòu)Fig.2 Diagram of the ResNet50 network model
圖3 RPN網(wǎng)絡(luò)Fig.3 RPN Network
如圖3 所示,RPN 以主干特征提取網(wǎng)絡(luò)提取的特征圖為輸入,通過3×3 的滑動窗口將其映射到較低維度(以256 維為例)的隱藏層上,最后連接到2 個(gè)全連接層,一個(gè)用于目標(biāo)分類,另一個(gè)用于獲取目標(biāo)坐標(biāo)位置。每個(gè)滑動窗口在其映射位置同時(shí)生成k個(gè)錨框,為了適應(yīng)各種目標(biāo)尺寸和縱橫比,設(shè)置3×3=9 種組合,即特征圖上每個(gè)位置都有9 個(gè)不同尺寸的錨框。共享特征圖經(jīng)過向低維映射后進(jìn)行分支:1)分類層:經(jīng)過1×1×256×18的卷積核,得到1×1×18 的特征向量,分別表示9 個(gè)錨框的正標(biāo)簽前景概率和負(fù)標(biāo)簽背景概率(cls_score),通過邏輯回歸獲得目標(biāo)類別概率;2)回歸層:經(jīng)過1×1×256×36 的卷積核,得到1×1×36的特征向量,分別表示9 個(gè)錨框的位置坐標(biāo)(bbox_pre)。
按照以下標(biāo)定方法為錨框標(biāo)定正負(fù)標(biāo)簽:
1)與任意真實(shí)框(ground truth,GT)的重疊度(intersection over union,IoU)>0.7,標(biāo)定為正標(biāo)簽;
2)與某個(gè)GT 的IoU 有最大值的錨框標(biāo)定正標(biāo)簽;
3)與GT 的IoU<0.3,標(biāo)定為負(fù)標(biāo)簽;
4)上述條件都不滿足的既不是正標(biāo)簽也不是負(fù)標(biāo)簽,剔除。
由此確定前景錨框,使用邊界框回歸得到錨框與真實(shí)框之間的偏移值,即平移和伸縮參數(shù),從而得到粗略建議框。通過圖1 中的im_info 將粗略建議框映射回原圖,判斷粗略建議框是否超過邊界,剔除嚴(yán)重超出邊界的。按照邏輯回歸分?jǐn)?shù)進(jìn)行從大到小排序,取出前N個(gè)粗略建議框,使用非極大值抑制算法消除冗余,對剩下粗略建議框再次排序,選擇前M個(gè)粗略建議框,即為候選框。
RoI Pooling 將RPN 模塊獲得的候選框映射到共享特征圖的相應(yīng)位置,再將映射后的區(qū)域劃分為相同大小的區(qū)域,最后對每個(gè)區(qū)域進(jìn)行最大池化操作,完成從不同尺寸的候選框得到相同尺寸的特征圖,極大地提高了處理速度。
利用RPN 模塊中獲得的建議框截取公共特征層中存在目標(biāo)的區(qū)域,通過RoI Pooling 獲得相同尺寸局部特征層,通過全連接層和邏輯回歸計(jì)算每個(gè)建議框目標(biāo)的類別概率;同時(shí)再次利用邊界回歸獲得每個(gè)建議框的位置偏移量,即回歸預(yù)測bbox_pre,用于回歸更加精確的目標(biāo)檢測框,如圖4所示。
圖4 分類與回歸網(wǎng)絡(luò)Fig.4 Classification network and regression network
在RPN 模塊的分類過程中可能存在誤識別,而生成的候選框與真實(shí)框存在位置偏差,如圖5所示,因此將產(chǎn)生2 個(gè)損失:分類損失Lcls和回歸損失Lreg。候選框一般使用四維向量(x,y,w,h)表示,(x,y)表示框的中心點(diǎn)坐標(biāo),w和h分別表示框的寬和高。計(jì)算分類損失需要與錨框?qū)?yīng)標(biāo)定結(jié)果和預(yù)測結(jié)果;計(jì)算回歸損失需要:1)RPN 網(wǎng)絡(luò)生成的候選框的坐標(biāo)位置(x,y,w,h);2)錨框的坐標(biāo)位置(xa,ya,wa,ha);3)真實(shí)框的坐標(biāo)位置(x*,y*,w*,h*)。
圖5 真實(shí)框與檢測框示例Fig.5 Example of ground truth box and detect box
圖5 中實(shí)線框?yàn)榇暗腉T,虛線框?yàn)樘崛〉暮蜻x框,即使該候選框被分類器識別為目標(biāo)船舶,但相較于GT,位置存在偏差,仍相當(dāng)于沒有正確檢測出郵輪,因此需要對候選框微調(diào)至與GT 位置盡可能接近。則候選框與GT 之間的平移量(tx,ty)與尺度因子(tw,th)分別表示為:
損失函數(shù)定義為:
其中:
式中:i為錨框的序號;pi為第i個(gè)錨框?yàn)槟繕?biāo)的概率;p*i為GT 標(biāo)簽,當(dāng)?shù)趇個(gè)錨框?yàn)檎龢颖緯r(shí)p*i=1;第i個(gè)錨框?yàn)樨?fù)樣本,則為一個(gè)表示候選邊界框4 個(gè)坐標(biāo)位置參數(shù)的向量為與標(biāo)定為正標(biāo)簽的錨框相對應(yīng)的GT 框的坐標(biāo)位置向量;分類損失為2 個(gè)類別(目標(biāo)/非目標(biāo))的損失對數(shù);為回歸預(yù)測;R為魯棒損失函數(shù);分類層和回歸層的輸出分別由{p}i和{t}i組成。R計(jì)算為:
采用Faster R-CNN 對圖6 所示的不同角度的船舶進(jìn)行實(shí)驗(yàn),由于目前公開的多角度船舶數(shù)據(jù)集很少,本數(shù)據(jù)集為從https://www.marinetraffic.com/網(wǎng)站下載不同類型的多艘船舶的多視角圖片,使用la‐belImg 標(biāo)注工具對其進(jìn)行錨框標(biāo)記,其中訓(xùn)練集1 904 張,測試集235 張,驗(yàn)證集211 張。船舶的種類、每一類的數(shù)量(小類數(shù)量)和每艘船舶的數(shù)量(船舶數(shù)量)如表1 所示。Faster R-CNN 的訓(xùn)練分為預(yù)訓(xùn)練階段和訓(xùn)練階段2個(gè)部分,在預(yù)訓(xùn)練階段,使用在視覺對象類(visual object classes,VOC)數(shù)據(jù)集[31]上訓(xùn)練過的權(quán)重作為權(quán)重,且主干網(wǎng)絡(luò)被凍結(jié),不僅能夠提高訓(xùn)練速度,而且能夠在訓(xùn)練初期防止權(quán)重被破壞。批量大小設(shè)置為4,迭代50次,初始學(xué)習(xí)率設(shè)置為1×10-4。在訓(xùn)練階段,主干網(wǎng)絡(luò)參與訓(xùn)練,參數(shù)被調(diào)整,特征提取網(wǎng)絡(luò)發(fā)生變化,批量大小設(shè)置為2,迭代100 次,初始學(xué)習(xí)率設(shè)置為1×10-5,且根據(jù)迭代次數(shù)動態(tài)調(diào)整學(xué)習(xí)率。
表1 實(shí)驗(yàn)所用的船舶種類及數(shù)量Table 1 Type and number of ships used in the experiment
圖6 不同視角船舶Fig.6 Ships in different view
為了評估Faster R-CNN 對多視角船舶圖像中船舶的識別能力,采用平均F1分?jǐn)?shù)(meanF1score,mF1)、平均精度(mean average precision,mAP)和平均誤檢率(mean log-average miss rate,mMR)作為評價(jià)指標(biāo)。為了定量分析Faster R-CNN 對不同分別率、不同背景圖像的識別能力,以識別不同類型不同艘船舶的F1分?jǐn)?shù)(F1score,F(xiàn)1)和誤檢率(log-aver‐age miss rate,MR),以及各類型船舶的mAP 作為評價(jià)指標(biāo),F(xiàn)1表示為:
式中mF1為F1的均值。
式中:n為船舶的數(shù)量;T iP為IoU 大于閾值的邊界框數(shù)量;F iP為IoU 小于閾值的邊界框數(shù)量,或者檢測到同一個(gè)GT 的多余檢測框的數(shù)量;F iN為沒有檢測到的GT的數(shù)量。
其中:
MR表示為:
當(dāng)置信度設(shè)置為0.5時(shí),F(xiàn)aster R-CNN識別所有多視角船舶圖像的mF1=0.696 9,mAP=92.88%,mMR=8.34%,表明Faster R-CNN 能夠較精準(zhǔn)地識別多視角船舶圖像。
Faster R-CNN 識別21 種高速船舶、22 種運(yùn)輸船舶、24種軍艦和23種油船的F1和mAP分別如圖7和圖8所示,其中圖8(a)、圖8(b)、圖8(c)和圖8(d)分別表示檢測每一艘高速船舶、運(yùn)輸船舶、軍艦和油船的mAP。
圖7 Faster R-CNN檢測各類多艘船舶的F1 分?jǐn)?shù)Fig.7 F score of Faster R-CNN detects various ships
圖8 Faster R-CNN檢測不同類別船舶的mAPFig.8 The mAP of detecting various ships by Faster R-CNN
圖9表示存在誤檢的船舶,除圖9所示13種船舶外,其他所有船舶誤檢率均為0。結(jié)果顯示,運(yùn)輸船舶6、運(yùn)輸21、軍艦1、軍艦5、軍艦14、軍艦23、油輪8、油輪20的F1均為0,mAP均小于0.4,其中運(yùn)輸船舶6和軍艦23為有霧環(huán)境下的低分辨率圖像,運(yùn)輸船舶8、運(yùn)輸船舶21、軍艦5油船8和油船20的圖像均在昏暗環(huán)境下,而軍艦14背景與目標(biāo)極為相似,如圖10所示,表明Faster R-CNN對低分辨率圖像、背景與前景相似的圖像以及昏暗環(huán)境下的圖像檢測能力低。而運(yùn)輸船舶6、運(yùn)輸船舶8、運(yùn)輸船舶21、軍艦5、油船8和油船20的MR均為1,表明Faster R-CNN對有霧、背景昏暗等環(huán)境下的低分辨率船舶圖像識別能力更低。
圖9 Faster R-CNN誤檢船舶及其概率Fig.9 Ships of miss detection and their MR by Faster R-CNN
圖10 高誤檢率船舶圖像Fig.10 High MR of ship images
1)本文以Faster R-CNN 為基準(zhǔn)網(wǎng)絡(luò),多視角船舶圖片為數(shù)據(jù)集,研究Faster R-CNN 對不同視角下船舶的識別能力,以及不同背景環(huán)境和圖像分辨率對識別性能的影響;
2)實(shí)驗(yàn)結(jié)果表明,F(xiàn)aster R-CNN 能夠較為準(zhǔn)確地識別不同視角船舶,但是當(dāng)圖像背景與前景相似時(shí),F(xiàn)aster R-CNN識別能力下降,而當(dāng)圖像為有霧或昏暗背景下的低分辨率圖像時(shí),F(xiàn)aster R-CNN 對多視角船舶的識別能力下降明顯。