史 超
(江蘇自動化研究所,江蘇 連云港 222000)
遙感技術(shù)是指借助于各類遙感平臺對遠距離地物進行隔空檢測的技術(shù)[1]。近年來,高分辨率的可見光遙感圖像大量涌現(xiàn),各種小型目標的紋理細節(jié)和結(jié)構(gòu)都十分清晰。由于海洋資源的重要性,海洋上各種艦船目標的自動檢測方法不斷更新,對海洋目標檢測意義重大。傳統(tǒng)目標檢測方法的解決思路主要是基于模板匹配、知識表示、圖像分析和機器學習等方法[2]。這些方法過于依賴人工,專用性太強,不具有普適性,而且人工提取特征難以表達高層語義信息,導致檢測性能較差。近年來,隨著人工智能技術(shù)的發(fā)展,人工智能已經(jīng)達到可以自行處理問題的程度,甚至能夠比人更加快速和準確。深度學習的方法不需要人為設(shè)計特征表達來提取目標特征,而是通過訓練海量的數(shù)據(jù)自行提取特征[3],而且已經(jīng)被證實。在可以獲得足夠數(shù)據(jù)量的前提下,深度學習方法的目標檢測識別精度甚至超過人類的認知能力。本文對海洋遙感圖像的艦船目標進行檢測。與普通近距離目標檢測不同的是遙感圖像屬于遠距離成像,遙感圖像的覆蓋范圍、尺度和物體方位都不同,進行目標檢測相對困難[4-6],主要有以下幾點:① 每一幅遙感圖像中包含不同大小的目標,同一個分辨率下的目標差異大,所以準確找出所有目標相對困難;② 可見光遙感圖像易受到光照、云層等因素影響,會導致目標本身的特征發(fā)生改變,影響目標的檢測;③ 遙感圖像是由衛(wèi)星或飛機從高空向下拍攝,會導致圖像中的同一個目標有不同的旋轉(zhuǎn)角度,導致形態(tài)上的差異,嚴重影響對目標的檢測;④ 遙感圖像有些目標可能很小而且密集,目標之間可能會產(chǎn)生干擾并且不易檢測[7-8]。針對上述問題,本文在對深度學習和視覺關(guān)注機制的相關(guān)技術(shù)分析的基礎(chǔ)上,使用python語言通過深度學習框架實現(xiàn)一個對海洋遙感圖像艦船目標的檢測。通過注意力機制對算法進行優(yōu)化使得結(jié)果更加精準。
快速區(qū)域卷積神經(jīng)網(wǎng)絡(luò)(Faster Region-based Convolutional Neural Networks,FR-CNN)以整張圖片為輸入,利用CNN得到圖片的特征圖[9]。使用區(qū)域生成網(wǎng)絡(luò)(Region Proposal Networks,RPN)進行候選框提取,并將這些候選框投影到特征圖[10-12]。針對特征圖上的每一個大小不同的候選框,使用興趣區(qū)域(Region of Interesting,RoI)池化操作,得到固定維度的特征表示,最后通過2個全連接層,分別用softmax分類以及回歸模型進行檢測[13]。一張圖經(jīng)過卷積后,會得到相應(yīng)的特征圖,特征圖的每一個像素都可以對應(yīng)原始的圖像,對于任何一個候選區(qū)域,只需要獲取它的左上右下2個點對應(yīng)到特征圖中的位置,就能從特征圖中獲取到這個候選區(qū)域?qū)?yīng)的特征。FR-CNN整體可以劃分為4個主要內(nèi)容,算法整體結(jié)構(gòu)如圖1所示。
圖1 FR-CNN整體結(jié)構(gòu)Fig.1 Overall structure of FR-CNN
(1) 特征提取網(wǎng)絡(luò)。FR-CNN的特征提取部分使用一組基礎(chǔ)的Conv+ReLU+pooling層提取輸入圖像的特征圖,用于后續(xù)RPN層和全連接層。
(2) 區(qū)域生成網(wǎng)絡(luò)。RPN網(wǎng)絡(luò)用于生成候選區(qū)域框,利用網(wǎng)絡(luò)訓練來提取前景。通過softmax判斷錨定屬于正例還是反例,獲得前景區(qū)域的大致坐標,再利用邊界框回歸修正錨定獲得精確的候選區(qū)域框。
(3) 感興趣區(qū)域池化。池化層獲得輸入的特征圖和候選區(qū)域框,綜合信息后提取出每個候選區(qū)域的特征表示,用于后續(xù)全連接層判定目標類別。
(4) 分類。利用每個候選區(qū)域的特征表示可以計算出候選區(qū)域框的類別,同時再次利用邊界框回歸和非極大值抑制來獲得檢測框最終的精確位置。
以上述4個方面依次描述算法實現(xiàn)。首先,展示一張本文實現(xiàn)的算法的整體結(jié)構(gòu)圖,如圖2所示。
圖2 目標檢測算法結(jié)構(gòu)Fig.2 Structure of object detection algorithm
對于任意大小的輸入圖像在提取特征圖之前,首先縮放至固定大小,再送入網(wǎng)絡(luò)進行特征提??;特征提取網(wǎng)絡(luò)中包含了多個卷積層、池化層和激活函數(shù);RPN網(wǎng)絡(luò)首先經(jīng)過3×3卷積,再分別生成正例錨定和對應(yīng)邊界框回歸偏移量,然后計算出候選區(qū)域;而RoI池化層則利用候選區(qū)域從特征圖中提取候選區(qū)域特征送入后續(xù)全連接和softmax網(wǎng)絡(luò)做分類。
特征提取層的主要作用是提取能夠很好地描述和區(qū)分圖像目標的特征,本文使用ResNet50網(wǎng)絡(luò)模型作為這一部分的結(jié)構(gòu)模型[14]。使用在ImageNet圖片分類數(shù)據(jù)集中訓練好的網(wǎng)絡(luò)參數(shù),在這里直接進行使用,可以節(jié)省很多的調(diào)整參數(shù)的時間。
ResNet50中有2個基本的塊:Conv Block和Identity Block。Conv Block輸入和輸出的維度不同,不能連續(xù)串聯(lián),用于改變網(wǎng)絡(luò)的維度;Identity Block輸入維度和輸出維度是相同的,可以串聯(lián),用于加深網(wǎng)絡(luò)。ResNet50的整體結(jié)構(gòu)如圖3所示。FR-CNN的特征提取網(wǎng)絡(luò)部分只包含了長寬壓縮了4次的內(nèi)容,第5次壓縮后的內(nèi)容在RoI中使用。ResNet50結(jié)構(gòu)中包括了多個Conv Block和Identity Block。最終輸出為特征圖。
圖3 ResNet50整體結(jié)構(gòu)Fig.3 Overall structure of ResNet50
區(qū)域生成網(wǎng)絡(luò)中,F(xiàn)R-CNN拋棄了傳統(tǒng)的滑動窗口和選擇性搜索方法,直接使用RPN生成候選區(qū)域框,可以極大地提升檢測框的生成速度。從圖2的結(jié)構(gòu)圖可以看到,RPN網(wǎng)絡(luò)分為2步:第1步通過softmax分類錨定獲得正例和反例分類,可以對RPN進行訓練使它對任意輸入都具備識別能力。第2步用于計算對于錨定的邊界框回歸偏移量,以獲得精確的正例,用收斂來保證精度。最后的正例層則負責綜合正例錨定和對應(yīng)邊界框回歸偏移量獲取候選區(qū)域,在這個過程中剔除太小和超出邊界的候選區(qū)域。獲得的公用特征層在圖像中就是特征圖,其有2個應(yīng)用,一個是和RoI池化結(jié)合使用;另一個是進行一次3×3的卷積后,進行一個9通道的1×1卷積,還有一個36通道的1×1卷積。
在FR-CNN中,錨定的數(shù)量是9,所以2個1×1卷積的結(jié)果是:① 9×4的卷積用于預測特征層上每一個網(wǎng)格點上每一個錨定的變化情況;② 9×1的卷積用于預測公用特征層上每一個網(wǎng)格點上每一個預測框內(nèi)部是否包含了物體。當輸入圖像尺寸是600 pixel×600 pixel的彩色圖像時,公用特征層的就是38×38×1 024,相當于把輸入進來的圖像分割成38×38的網(wǎng)格,然后每個網(wǎng)格存在9個錨定,錨定大小不等。
(1)
(2)
(3)
由式(1)可以看出,區(qū)域生成網(wǎng)絡(luò)的損失函數(shù)分為兩部分,第一部分為分類損失函數(shù)Lcls,是對邊界框分類網(wǎng)絡(luò)的損失函數(shù);第二部分為回歸損失函數(shù)Lreg,用于邊界框的回歸網(wǎng)絡(luò)訓練,Lreg計算公式如式(4)和(5):
(4)
(5)
RoI池化層則負責接收候選框,并進行池化操作后送入后續(xù)網(wǎng)絡(luò)。從圖1中可以看出,Rol池化層有2個輸入:原始特征圖和RPN輸出的候選框。對于傳統(tǒng)的CNN(如ResNet和VGG),網(wǎng)絡(luò)訓練好之后,輸入的圖像必須是固定大小尺寸,同時輸出也需要固定尺寸。當輸入圖像大小不確定,就會產(chǎn)生問題。有2種解決辦法:從圖像中裁剪一部分傳入網(wǎng)絡(luò)或者將圖像縮放成需要的尺寸后傳入網(wǎng)絡(luò)。
2種辦法的示意如圖4所示??梢钥闯?,無論采取哪種辦法,效果都不好。一方面,利用裁剪破壞了圖像的完整結(jié)構(gòu);另一方面,縮放后破壞了圖像原始形狀信息。
(a) 剪裁
(b) 縮放圖4 裁剪和縮放Fig.4 Cutting and scale
分類回歸是分類器部分利用前面已經(jīng)獲得的候選區(qū)域特征,通過全連接層與softmax可以計算出每個候選目標分別屬于哪個類別,輸出分類的概率向量;再次利用邊界框回歸獲得每個候選目標的位置偏移量,用于回歸更加精確的目標檢測框。全連接層的計算為:
(6)
非極大值抑制算法在計算機視覺方向有很多應(yīng)用,例如目標檢測算法和人臉識別算法等。在目標檢測算法中,經(jīng)過分類器后,會有很多被確定為樣本的候選區(qū)域框,大量候選區(qū)域框都集中在目標附近,這些框會有互相重疊的部分,需要進行非極大值抑制方法來解決。非極大值抑制的本質(zhì)是將其中局部范圍內(nèi)的最大值挑選出來,對非極大值的元素進行抑制,保留最優(yōu)的框,如圖5所示。
圖5 非極大值抑制Fig.5 Non-maximum suppression
首先對所有的候選框的得分進行排序,選出分數(shù)最大的候選框,然后遍歷剩余的框并設(shè)定一個值,當剩余的框和最高分的框交并比的值大于這個值時,證明重疊率很大,則刪除這個剩余框。循環(huán)以上操作,最后得到一個最優(yōu)解。
本文在FR-CNN框架的基礎(chǔ)上引入了注意力模型對遙感圖像進行目標檢測,設(shè)計了一種結(jié)合了空間和通道的注意力機制模塊——卷積塊注意模塊(Convolutional Block Attention Module,CBAM)[15],使用的特征提取網(wǎng)絡(luò)是ResNet50,將CBAM加入到ResNet結(jié)構(gòu)中,需要在ResNet的每個殘差塊后加入該模塊,結(jié)構(gòu)如圖6所示。實驗證明,該模塊的加入提高了網(wǎng)絡(luò)的檢測性能。
圖6 CBAM模型結(jié)構(gòu)Fig.6 Structure of CBAM model
當輸入F作為輸入特征圖時,本文提出的CBAM主要對其進行以下2個運算:
F′=Mc(F)?F,
(7)
F″=Ms(F′)?F′,
(8)
Mc(F)=σ(MLP(AvgPool(F)+MLP(MaxPool(F)))=
(9)
Ms(F)=σ(f7×7([AvgPool(F);MaxPool(F)]))=
(10)
式中,σ表示sigmoid激活函數(shù)。該部分顯示的卷積層使用了7×7的卷積核,后面的實驗曾使用3×3的卷積核,但總體來說7×7的卷積會表現(xiàn)更好。
本文利用網(wǎng)絡(luò)衛(wèi)星地圖搜集了近500張海洋遙感圖像作為數(shù)據(jù)集,其中80%作為訓練圖像,20%作為測試圖像。首先是對于遙感圖像數(shù)據(jù)的收集,使用衛(wèi)星遙感圖像以截圖的方式進行數(shù)據(jù)收集。使用網(wǎng)絡(luò)衛(wèi)星地圖裁減了500張不同視角、不同位置的海洋遙感圖像。部分示例如圖7所示。
圖7 海洋遙感數(shù)據(jù)集示例圖像Fig.7 Sample image of marine remote sensing dataset
在目標檢測領(lǐng)域,均值平均精度(mean Average Precision,mAP)是判斷一個目標檢測算法的檢測精度的主要指標。組成mAP的基礎(chǔ)是AP,AP是由查準率(Precision)和召回率(Recall)組合得到的。
查準率是目標檢測中會產(chǎn)生正樣本和負樣本,檢測過程中可能會發(fā)生錯誤,假定已經(jīng)識別結(jié)束時,被識別為正確的目標中有部分是正確目標(True Positive),但是也有一部分是錯誤目標(False Positive),查準率定義為:
(11)
召回率是定義被誤認的目標為False Negative,被正確分類的為True Negative,則召回率定義為:
(12)
由于查準率和召回率的關(guān)系是其中一個升高,另一個一定降低,所以可以繪制圖像并通過圖像獲得AP值,也就是Recall和Precision曲線下邊的面積,如圖8所示。mAP就是對AP的值求平均值。
圖8 查準率和召回率Fig.8 Precision ratio and recall ratio
IoU示意如圖9所示。
IoU(Intersection over Union)交并比:檢測中使用的一個評估指標,是測量在特定數(shù)據(jù)集中檢測相對物體準確度的一個標準。
IoU表示產(chǎn)生的候選框和原標記框的重疊率就是它們之間的交集和并集的比值。IoU值越高檢測精度越高。最理想的情況是完全重疊,IoU值為1。計算如下:
(13)
圖9 IoU示意圖Fig.9 Schematic diagram of IoU
對大部分目標檢測算法進行艦船目標檢測的測試結(jié)果如表1所示。
表1 目標檢測算法實驗數(shù)據(jù)Tab.1 Experimental data of object detection algorithm
由表1可以看出,本文經(jīng)過視覺注意力機制改進后的算法相比原算法和其他算法有優(yōu)勢,檢測精度和顯示效果較好,表明了工作的有效性。
本文使用深度學習框架和視覺注意力機制實現(xiàn)了對海洋遙感圖像的艦船目標的自動檢測,能夠?qū)崿F(xiàn)對艦船目標的快速檢測和標定。文中的海洋遙感圖像艦船目標檢測算法使用深度學習實現(xiàn)對遙感圖像的特征提取,相比傳統(tǒng)算法有極大的優(yōu)勢和提升效果,而且使用視覺注意力機制對算法進行改進,提升了算法的檢測精度和顯示效果,提高了對于海洋艦船目標檢測的定位精度,對海洋目標檢測有重大意義。