徐志京,孫久武,霍煜豪
上海海事大學 信息工程學院,上海 201306
隨著航運業(yè)的發(fā)展,水運環(huán)境日益復雜,水路交通事故也在頻繁發(fā)生。因此,基于計算機視覺的船舶目標檢測已經應用到現代化的船舶監(jiān)管系統(tǒng)。2017年,張雷等[1]提出了一種適用于高分辨率光學遙感圖像的艦船檢測方法,通過實現海陸分離并引入顯著性模型,達到了較高的檢測率。但有時只對船舶檢測不符合船舶監(jiān)管要求,還需要對目標進一步分類識別。
傳統(tǒng)的船舶識別方法主要基于船舶的形狀或船舶噪聲等特征。張仲瑜等[2]針對紅外艦船圖像分別提取邊緣信息特征、經過多級濾波處理后的特征以及局部灰度最大值特征,分別給它們賦予不同的權值,得出最終的特征融合圖。劉許等[3]將圖像RST不變性特征與船舶噪聲的MFCC系數融合,實現船舶目標分類。傳統(tǒng)的識別方法往往需要人工提取特征,并且計算復雜,識別率不高。隨著深度學習的發(fā)展,利用卷積神經網絡(convolutional neural network,CNN)進行目標識別成為研究的重點。2016年,趙亮等[4]利用卷積神經網絡對船舶圖像進行特征提取,取得了較高的識別準確率。2018年,趙春暉等[5]通過改進Faster-RCNN網絡,使得識別率和識別速度有了很大的提高。2018年,Cho等[6]針對SAR圖像提出了基于多個特征的卷積神經網絡(multiple feature-based convolutional neural networks,MFCNNs),將多特征聚合后送到分類器識別,識別率有了明顯的提升。2020年,喬丹等[7]采用卷積神經網絡InceptionV3對船舶樣本進行分類識別并引入遷移學習的思想避免網絡過擬合,驗證了該方法具有較強的泛化能力。
綜上所述,利用深度學習的方式對船舶進行識別已經取得了不錯的效果。但當前船舶種類繁多,同一類別又派生出許多不同的子類,使得船舶之間的差別微乎其微,對船舶進行更細致的識別成為一個重要的研究方向。近年來,國內外學者將細粒度圖像分類[8]應用于目標識別領域。熊昌鎮(zhèn)等[9]使用Faster-RCNN進行多尺度區(qū)域定位,然后將提取的多個尺度的特征進行組合并用SVM訓練細粒度分類器,通過多個數據集驗證了該方法的有效性。Zhang等[10]基于改進的RCNN進行細粒度檢測,取得了良好的結果。胡志偉等[11]基于注意力機制與殘差機制構建ARNet模型對番茄病害進行細粒度識別,通過多個測試驗證了該模型的實用性。Fu等[12]提出了
RA-CNN(recurrent attention convolutional neural network)用于解決細粒度圖像分類問題,并在多個細粒度數據集得到了較高的識別準確率。但是在船舶識別中,關于細粒度圖像分類的研究較少,目前尚處于初級階段。2019年,霍煜豪等[13]提出了一種改進的RA-CNN模型,將目標分類網絡修改后,同時在定位網絡APN(attention proposal network)對同一特征使用不同的先驗矩形框來框取,形成一種單特征區(qū)域的船舶識別方法,最終在光電船舶圖像集中取得了可觀的效果。當前的細粒度方法大多只提取目標的單一特征,模型無法很好地利用全局信息,因此關于細粒度船舶圖像識別的問題還有待研究。本文創(chuàng)新性地提出一種多特征區(qū)域與細粒度圖像結合的船舶識別方法。即在RA-CNN的框架下,VGG-19[14]分類網絡中引入SDP(scale-dependent pooling)[15]算法用于更好地提取特征信息,采用聯(lián)合聚類(joint clustering)的方法生成一種多特征區(qū)域的定位網絡(JCMR-APN)用于輸出特征區(qū)域,同時在定位網絡中引入特征區(qū)域優(yōu)化,避免出現區(qū)域重疊率過高的現象。最后針對新的模型重新定義損失函數,從而提高模型的魯棒性。
傳統(tǒng)的RA-CNN網絡主要由3個尺度層構成,每個尺度層中都包含兩種不同的網絡,分別為分類網絡VGG-19和定位網絡APN,每個尺度層的參數也不同。輸入圖像經過分類網絡提取特征并進行分類,APN網絡利用提取到的特征進行訓練得到特征區(qū)域信息,然后將特征區(qū)域信息裁剪放大作為第二個尺度層的輸入,如此反復3次就能得到3個尺度層的輸出結果,通過融合不同尺度網絡的結果判斷細粒度圖像的類別[16]。圖1為傳統(tǒng)RA-CNN網絡船舶識別結構圖。
圖1 傳統(tǒng)RA-CNN網絡船舶識別結構圖Fig.1 Traditional RA-CNN network ship recognition structure diagram
隨著尺度層的變深,提取的單一特征會使得原來的網絡無法很好地利用全局信息,從而導致識別率下降。針對這一問題,本文設計了RA-CNN網絡與多特征區(qū)域融合的船舶目標識別新型網絡。新型RA-CNN網絡仍然保持原來的3個尺度層,但每個尺度層中的分類網絡由VGG-19變成VGG-SDP網絡,第一尺度層的定位網絡APN變成JCMR-APN網絡。圖2為新型RA-CNN網絡船舶識別結構圖。
圖2 新型RA-CNN網絡船舶目標識別結構圖Fig.2 New RA-CNN network ship target recognition structure diagram
在構建了新型RA-CNN網絡之后,基于該網絡的多特征船舶目標識別系統(tǒng)框圖如圖3所示。整個系統(tǒng)主要包含船舶圖像數據集、預處理、新型RA-CNN網絡三大部分,其中新型RA-CNN網絡每個尺度均由VGG-SDP網絡和相應的定位網絡構成。船舶圖像數據集經過預處理,將圖像輸送到訓練好的新型RA-CNN網絡,經過兩部分網絡的交叉訓練,最后判斷船舶的類別。
圖3 多特征船舶目標識別系統(tǒng)框圖Fig.3 Block diagram of multi-feature ship target recognition system
船舶圖像預處理首先將輸入船舶圖像統(tǒng)一轉換成224×224分辨率的船舶圖像,然后根據式(1)將圖像的每個像素值從[0,255]歸一映射到[-1,1]之間。
新型RA-CNN網絡的工作步驟如下:
(1)在第一尺度層,輸入圖像先經VGG-SDP網絡v1提取特征,第5個池化層的輸出P5將作為JCMR-APN網絡的輸入。
(2)JCMR-APN網絡m1將根據P5生成的多個通道進行聚類,并選擇合適的部分生成多個獨立特征區(qū)域。
(3)v1網絡選擇多個特征區(qū)域中最小特征區(qū)域的像素個數N作為自適應池化準則的輸入,挑選合適的池化層生成第一尺度的分類置信向量Y()1。
(4)評估多個特征區(qū)域之間的覆蓋率,對區(qū)域進行調整。
(5)將調整好的特征區(qū)域截取并放大作為下一尺度層的輸入。
(6)將第(5)步的特征輸入到第二尺度層的VGGSDP網絡v2進行特征提取,重復步驟(2)、(3),生成第二尺度的分類置信向量Y(2)。與第一層不同的是,第二層的定位網絡m2采用與RA-CNN一致的APN網絡,截取每個輸入特征區(qū)域并放大,輸入到第三尺度層。
(7)在第三尺度層中重復步驟(6)生成第三尺度層的分類置信向量Y(3)。本層中的APN網絡m3只生成對應的特征區(qū)域,不再進行截取,最終的定位將依據第一尺度層生成的各個特征區(qū)域決定。
RA-CNN中的分類網絡VGG-19是由谷歌Deep-Mind實驗室在2015年提出的卷積神經網絡,具有穩(wěn)定的網絡結構和良好的特征提取能力,VGG-19在進行最終的全連接層運算時,全連接層的輸入始終是第五個池化層P5的輸出。圖4為VGG-19網絡結構圖。在RA-CNN網絡中,當APN網絡輸出的特征區(qū)域較小時,往往是因為圖像尺寸較小并經過層層卷積和池化,第五個池化層輸出的特征區(qū)域已經不能很好地反映目標的特征信息。針對小尺寸目標的過度池化問題,本文在VGG-19網絡中加入尺度依賴池化(SDP)方法,轉換成VGG-SDP網絡,使網絡智能地選擇合適的卷積塊輸出進行分類,從而提高網絡對小型船舶的識別率。VGG-SDP網絡結構圖如圖5所示。
圖4 VGG-19網絡結構圖Fig.4 VGG-19 network structure diagram
當VGG-SDP輸入圖像I時,圖像先經過5個卷積塊進行特征提取并將第五個池化層P5的輸出送入JCMRAPN網絡。JCMR-APN網絡根據多個特征區(qū)域統(tǒng)計區(qū)域的大小N,VGG-SDP網絡將根據N的大小在后3個池化層中選擇合適的特征圖輸入到全連接層進行分類。這里VGG-SDP網絡將選擇多個獨立特征區(qū)域中最小特征區(qū)域的像素個數N。自適應池化選擇標準如下:
式(2)中,P3(I)和P4(I)分別代表第三、第四池化層的輸出;M(I)函數根據N的大小選擇合適的池化層輸出。當特征區(qū)域N過大時,網絡會選擇第五個池化層P5來表示目標的特征;當N過小時,網絡則會選擇經歷更少卷積池化的第三池化層P3來描述特征,以保留更多的信息。網絡前兩個卷積塊提取效果較P3來說較差,因此不使用第一和第二池化層的輸出。N的分段點使用2的冪次方數,更助于網絡的優(yōu)化。
船舶圖像經過卷積池化生成的特征圖具有多個通道,APN網絡將第五個池化層形成的512個通道映射成一個3×1的區(qū)域參數向量,對應一個特征區(qū)域。為了提高整個網絡利用全局信息的能力,考慮將多個通道劃分為多個部分,每部分對應一個特征區(qū)域。
1.3.1 聯(lián)合聚類
本文采用聯(lián)合聚類(joint clustering)算法生成多個特征區(qū)域的定位網絡JCMR-APN。聯(lián)合聚類算法流程圖如圖6所示。
圖6 聯(lián)合聚類算法流程圖Fig.6 Flowchart of joint clustering algorithm
聯(lián)合聚類的大致思想為:利用譜聚類解析特征圖通道樣本集S的拉普拉斯矩陣并對組成的矩陣特征向量使用K-means聚類[17]最終生成多個特征區(qū)域。譜聚類[18]是基于圖論的一種聚類方式,擅長將高維樣本映射到低維。
設定特征圖通道樣本集S={s1,s2,…,s k}中的樣本均為方陣,樣本間若存在相互關系則會相互連接。定義相互連接的樣本之間的權重為ωij,樣本s i和s j之間的權重ωij計算公式見式(3):
根據樣本集S構造鄰接矩陣W(樣本間權重的矩陣)、度矩陣D(每個樣本與其所有相連接樣本權重之和),本文方法步驟如下:
(1)由W、D得拉普拉斯矩陣L=D-W。
(3)將Lnorm的特征值從大到小排列,取前K個特征值計算其特征向量。
(4)標準化每個特征向量并組成特征向量矩陣L f。
(5)取L f中每個行向量生成新的樣本集S′,對S′進行K-means聚類生成K個簇,對應K個船舶圖像的特征區(qū)域。
這里K-means聚類選取歐氏距離[19]作為距離衡量標準,其公式見式(4):
1.3.2 特征區(qū)域優(yōu)化
JCMR-APN網絡在訓練過程中,容易出現過擬合的情況,表現為訓練收斂于局部最優(yōu),多個特征區(qū)域重疊率過高等情況。針對這個問題,需要對網絡生成特征區(qū)域組的區(qū)域坐標進行干預。圖7為JCMR-APN網絡過擬合示意圖。
圖7 JCMR-APN網絡過擬合示意圖Fig.7 JCMR-APN network overfitting diagram
根據式(5),兩個特征區(qū)域重疊像素部分Nol的計算公式為:
特征區(qū)域優(yōu)化算法步驟如下:
(1)從坐標參數序列中計算每個特征區(qū)域像素值大小,并將最大特征區(qū)域的位置作為基準區(qū)域,將該區(qū)域計入固定區(qū)域序列。
(2)將第二個特征區(qū)域按式(5)、(6)計算與基準區(qū)域的重疊面積Nol。
(3)當重疊面積與自身的比值大于一定閾值時,對特征區(qū)域進行調整,直到比值低于閾值。
(4)第二個特征區(qū)域調整后計入固定區(qū)域序列,后續(xù)特征區(qū)域將從固定區(qū)域序列中由大到小依次選取對比區(qū)域進行步驟(2)、(3)操作。
由于JCMR部分采用了譜聚類方法,網絡損失函數僅有尺度內損失和尺度間損失會使聚類優(yōu)化優(yōu)勢變得不明顯,因此定義新的網絡損失函數見式(7):
式(8)中,i、j代表不同特征圖的序號;β代表間隔系數,可以提升圖像對于噪聲的魯棒性,這里設置為0.5。加入信道損失后,通過交叉訓練的方式使VGG-19和APN相互學習,從而加快損失收斂的速度;同時優(yōu)化了通道聚類的情況,使得網絡模型更好地利用全局信息,從而提高船舶識別的準確率。
本文采用文獻[13]的數據集,包括了集裝箱船、帆船、拖船、客輪、油輪、海監(jiān)船、航空母艦和驅逐艦8種常見的船種。數據集共2 635個樣本,訓練樣本和測試樣本比值約為4∶1,具體的數量分布如表1所示。每個類別包含了該類別的前視圖、后視圖、側視圖和俯視圖,樣圖如圖8所示。實驗環(huán)境主要硬件配置及軟件版本如表2所示。
表2 實驗環(huán)境主要配件及軟件版本Table 2 Main hardware configuration and software
圖8 不同子類視圖Fig.8 Different views of subclasses
表1 細粒度船舶數據集樣本分布表Table 1 Sample distribution table of fine-grained ship datasets
2.2.1 實驗1不同參數對于網絡準確率的影響
新型RA-CNN網絡在使用細粒度船舶數據集訓練前,先在ImageNet數據集上訓練10輪,方便加速后續(xù)的訓練速度。網絡的dropout率設置為0.2,初始學習率為0.1并每迭代1萬次縮減為原來的1 10。
本文采用準確率衡量分類性能。定義準確率為r,計算公式見式(9):
式(9)中,NTP表示預測正確的正樣本的個數,NTN表示預測正確的負樣本的個數,NFP表示將負樣本預測成正樣本即誤測的個數,NFN表示將正樣本預測成負樣本即漏測的個數。
由于JCMR網絡部分中有很多參數,在本實驗中將測試不同參數對于網絡最終準確率的影響。在前面式(3)中,帶寬σ影響了樣本分布,根據式(10)定義表3中γ的參數。
從表3中可以看出,在特征區(qū)域K相同的情況下,γ影響準確率的大?。辉谕沪玫那闆r下,特征區(qū)域數量越多,準確率越高,說明網絡通過大量的特征區(qū)域學習到了更多的特征信息。但是考慮到計算量的限制,選擇γ=0.05,K=4的情況。
表3 不同參數下的網絡準確率Table 3 Network accuracy under different parameters
2.2.2 實驗2不同模型的準確率與性能
本實驗主要驗證SDP算法的有效性以及對比文獻[13]在整個網絡和不同尺度層的識別準確率,實驗結果如圖9所示。
圖9 不同基類網絡下的準確率Fig.9 Accuracy under different base class networks
從圖9中可以看出,傳統(tǒng)的VGG-19和RA-CNN識別率相對較低,在加上SDP算法后分別提高了0.7個百分點和0.5個百分點;本文方法比傳統(tǒng)RA-CNN網絡在識別準確率上提高了6.0個百分點,較文獻[13]的方法也提高了3.5個百分點,在各個尺度層的準確率也是全面領先。當只使用第一和第二尺度層時,準確率為89.1%,在加上第三尺度層后,準確率達到了90.2%,說明在更深的尺度層網絡也能挖掘有效信息。圖10展示了不同模型的計算量和處理單幀圖像的時間。
從圖10可以看出,相對于VGG-19,RA-CNN模型多尺度層的結構也意味著計算量成倍增加,處理單幀圖像的時間也在略微上升;從幾個模型的對比可以看出,SDP算法幾乎不增加計算量和計算時間。本文方法處理單幀圖像的時間約為1.75 s,可以用于單幀圖像的實時識別。
圖10 算法性能圖Fig.10 Algorithm performance graph
2.2.3 實驗3特征關注區(qū)域的變化
在JCMR部分會產生多個網絡關注的區(qū)域,本實驗展示了不同訓練輪次第一尺度層輸出的特征區(qū)域。這里選擇K=4,分別在1 000、20 000和80 000輪次的不同類別樣本的關注區(qū)域,結果如圖11所示。
圖11 不同船舶特征區(qū)域的變化Fig.11 Changes in characteristics regions of different ships
從圖11中可以看出在訓練初期,網絡的關注區(qū)域比較混亂,有時會定在背景等無關區(qū)域且重疊率較高;在20 000輪時已經向目標真正的特征區(qū)域靠近,區(qū)域間基本無重疊,說明區(qū)域優(yōu)化算法避免了局部最優(yōu)的可能;臨近訓練結束時,區(qū)域位置基本都定在目標的特征部分。
本文針對單一特征的細粒度船舶圖像目標識別問題,提出了一種基于多特征區(qū)域的新型RA-CNN網絡目標識別方法。在分類網絡中引入SDP算法提升分類性能,在定位網絡中加入JCMR算法使得網絡關注多個特征區(qū)域,從而使目標識別更具魯棒性,同時設計特征優(yōu)化算法解決了JCMR可能出現的過擬合問題。重新定義損失函數對VGG-19和APN進行交叉訓練,提高了網絡的收斂速度。實驗結果表明新型的RA-CNN網絡對全局信息利用率較高,較基于單特征區(qū)域的方法取得了更高的識別率,并驗證了特征優(yōu)化算法的有效性。本文的細粒度船舶圖像目標識別方法在復雜背景下有時會將無關部分計入特征區(qū)域,尚需要更先進的背景處理網絡算法來解決這一問題。