尹法林,王天一
(貴州大學 大數(shù)據(jù)與信息工程學院,貴州 貴陽 550025)
近年來衛(wèi)星遙感技術在自然災害救助和高空目標偵察等方面得到廣泛的應用,成為軍事偵察、海洋勘測等領域不可缺少的工具[1-3]。氣候、光照等自然條件的影響,使得識別遙感圖像中的目標有很多困難。因此,對復雜場景下的遙感圖像目標檢測識別的研究具有重要的價值[4-5]。
隨著深度學習[6]在計算機視覺領域的發(fā)展,使用卷積神經(jīng)網(wǎng)絡[7-8]對圖像中的目標進行識別已經(jīng)成為研究的熱門課題。2012年AlexNet[8]網(wǎng)絡在ImageNet圖像分類比賽中成績突出,從此出現(xiàn)了以深度卷積神經(jīng)網(wǎng)絡為基礎的目標檢測算法。之后出現(xiàn)的雙階段目標檢測算法Fast R-CNN[9]、Faster R-CNN[10]等進一步提高了檢測的精度,但是檢測速度很慢。2016年Redmon等在CVPR會議上提出統(tǒng)一實時目標檢測算法YOLO[11],該算法利用回歸得到邊界框和類別概率,在檢測速度上有明顯的提升,但是檢測精度偏低。同年,Liu等在ECCV會議上提出了多尺度單發(fā)射擊檢測算法SSD[12],該算法通過用不同尺度的特征圖來提取特征,在滿足實時性的同時,提高了檢測精度。
針對小目標檢測的準確率不高,文獻[13]提出了自注意力特征融合模塊。遙感數(shù)據(jù)集中基本都是小目標物體,而小目標物體主要以淺層特征圖來檢測[14],因此對SSD算法網(wǎng)絡中的淺層特征圖進行融合,可提高目標檢測的準確性;針對訓練過程中正負樣本失衡導致的模型退化問題,采用聚焦分類損失函數(shù)(focal classification loss)[15-16]對原始的損失函數(shù)進行優(yōu)化。本文在原始SSD算法的基礎上,提出了注意力特征融合SSD(Attention Feature Fusion SSD,AFF-SSD)算法,以提升對遙感圖像目標檢測的平均準確率。
如圖1所示,AFF-SSD算法網(wǎng)絡結構是基于VGG16[17]網(wǎng)絡修改而來的,將VGG16網(wǎng)絡的FC6、FC7全連接層改為Conv6、FC7卷積層,并在后面添加了4個 卷 積 層(Conv8、Conv9、Conv10、Conv11),然 后 將Conv4_3層和FC7層特征融合組成新的Conv4_3層,將FC7層和Conv6_2層特征融合組成新的FC7層。整個網(wǎng)絡結構有6個特征圖,這6個特征圖有不同的感受野,會產(chǎn)生不同尺寸的候選框,預測不同大小的目標物體。在網(wǎng)絡結構中,由于淺層特征圖感受野小、分辨率高,用來預測小目標物體;深層特征圖感受野較大,用來預測較大的物體目標。
圖1 AFF-SSD算法網(wǎng)絡結構
網(wǎng)絡以300×300圖片作為輸入,通過池化下采樣使得圖片尺寸逐漸減小,6個特征圖尺寸分別為38×38,19×19,10×10,5×5,3×3,1×1,每個特征圖生成候選框的數(shù)量分別為4,6,6,6,4,4,整個網(wǎng)絡會產(chǎn)生8 732個候選框來預測目標物體。最后通過非極大值抑制(Non-Maximum Suppression,NMS)算法[18]過濾掉多余邊界框并產(chǎn)生最終檢測結果。
注意力模塊本質上是通過矩陣轉置相乘進行相關性計算,增加依賴性較強的特征權重,降低噪聲干擾,提高對有效信息的利用率。在卷積神經(jīng)網(wǎng)絡模型中,由于卷積核選擇一般都比較小,導致每次卷積操作只能提取部分的特征信息,對于距離卷積核較遠的特征信息不容易被提取。為了捕捉數(shù)據(jù)和特征的內(nèi)部相關性,使得遠距離的特征存在依賴關系,本文提出了通道注意力模塊和空間注意力模塊,結構如圖2、圖3所示。
圖3 空間注意力模塊
通道注意力模塊如圖2所示,其作用為建立通道之間的依賴關系,增強語義信息的表達。輸入特征圖A維度為W×H×C,通過對特征圖A卷積得到特征圖B、C,維度均為W×H×C1,將特征圖B進行維度重排和矩陣轉置得到矩陣D,維度為C1×(W×H),將特征圖C進行維度重排得到矩陣E,維度為(W×H)×C1。然后矩陣D和矩陣E相乘,得到特征圖矩陣H,維度為C1×C1,將矩陣H在列方向上使用softmax進行歸一化,得到通道注意力矩陣,具體操作如下:
圖2 通道注意力模塊
式中Bji為第i個像素和第j個像素之間的相關性,二者特征越相似,則轉置相乘得到的相關性越大,在注意力特征圖像上具有更高的特征值。Hij為矩陣H中的各元素。最后將矩陣H維度重排得到通道注意力特征圖G,維度為C2×C2×C1,其中C2=C1/2。
空間注意力模塊如圖3所示,其作用為降低噪聲,加強對重要特征信息的提取。輸入特征圖A維度為W×H×C,通過對特征圖A卷積得到特征圖B、C,維度為W×H×1,將特征圖B進行維度重排得到矩陣D,維度為W×H×1,將特征圖C進行維度重排和矩陣轉置得到矩陣E,維度為1×(W×H),然后矩陣D和矩陣E相乘,得到特征圖矩陣F,維度為W×H×W×H,將矩陣F在列方向上使用softmax進行歸一化,得到空間注意力矩陣。最后將矩陣F維度重排得到空間注意力特征圖G,維度為W×H×(W×H)。
在SSD算法中,不同特征圖的特征信息沒有融合,使得用于檢測小目標物體的淺層特征圖缺乏足夠的語義信息,因此對小目標物體的檢測效果不好。傳統(tǒng)的特征融合方法都要進行上采樣操作,而上采樣會引入大量噪聲,對小物體目標識別會有影響。同時在卷積神經(jīng)網(wǎng)絡中,由于卷積核尺寸一般設置都比較小,導致每次卷積操作只能覆蓋卷積核附近的像素點區(qū)域。對于圖片上距離較遠的相關特征信息不容易被卷積核捕獲。針對以上問題,結合通道注意力模塊和空間注意力模塊,本文提出了注意力特征融合模塊,對SSD算法卷積神經(jīng)網(wǎng)絡淺層特征圖特征融合。
圖4所示為注意力特征融合模塊,在模塊中有兩個輸入:第n個特征圖和第n+1個特征圖。
圖4 注意力特征融合模塊
第n個特征圖,輸入維度為W1×H1×C1,其中W1為輸入 寬,H1為輸入高,C1為輸 入通 道數(shù)。首先,通過2個1×1卷積降低通道數(shù),使得通道數(shù)變?yōu)?,維度變?yōu)閃1×H1×1。然后,合并寬和高得到矩陣A和矩陣B,矩陣A維度為W1×H1;矩陣B維度為W1×H1。將矩陣A與矩陣B相乘,得到矩陣C,維度W=W1×H1,將矩陣C在列方向上使用softmax歸一化,得到特征圖上所有特征點與某一特征點的相關性。將矩陣C的維度展開得到第n個特征圖的空間注意力圖。
第n+1個特征圖,輸入維度為W2×H2×C2,其中W2為輸入寬,H2為輸入高,C2為輸入通道數(shù)。首先,通過2個1×1卷積改變通道數(shù),使得通道數(shù)C2=W1×H1。然后合并寬和高,得到矩陣D和E。矩陣D維度為(W,N;W=W1×H1,N=W2×H2),矩陣E維度為(N,W;N=W2×H2,W=W1×H1),將矩陣D與矩陣E相乘,得到矩陣F,其維度W=W1×H1,將矩陣F在列方向上使用softmax歸一化,得到特征圖上所有特征點與某一特征點的相關性。將矩陣F的維度展開得到第n+1個特征圖的通道注意力圖。將第n個特征圖的空間注意力圖與第n+1個特征圖的通道注意力圖使用特征增強方法特征融合。最后,為了增加特征多樣性,采用通道拼接的特征融合方法與第n個特征圖特征融合,得到注意力特征融合圖。
在SSD網(wǎng) 絡 中,主 要 由Conv4_3層、FC7層、Conv8_2層來檢測小目標物體,相比于Conv4_3層,F(xiàn)C7層擁有更多的語義信息,而Conv4_3層擁有更多的特征信息;與FC7層相比,Conv8_2層擁有更多的語義信息,而FC7層擁有更多的特征信息。因此,在FC7層增加通道注意力模塊,可以提取更多的語義信息,在Conv4_3層增加空間注意力模塊,可以加強對重要信息的提取,降低噪聲的影響,增強對小物體目標的檢測能力。
為避免因正負樣本分布不均導致模型訓練退化的問題,結合聚焦分類損失函數(shù),對SSD算法的損失函數(shù)進行優(yōu)化,優(yōu)化后的損失函數(shù)由聚焦分類損失和位置回歸損失加權求和獲得,公式如下:
聚焦分類損失公式如下:
位置回歸損失公式如下:
其中,cx,cy是中心點坐標;w,h分別為默認框的寬和高;為候選框的值,表示真實框相對于候選框編碼。
遷移學習是解決小樣本數(shù)據(jù)集相關問題的一個很好方法,其將一個任務上訓練好的卷積神經(jīng)網(wǎng)絡模型遷移到另一個任務中,然后通過簡單的調整使其適用于一個新的任務。通過模型參數(shù)共享,將在大規(guī)模數(shù)據(jù)集中預訓練好的網(wǎng)絡模型運用到其他任務中,作為其他任務的特征提取器。圖5為AFFSSD算法遷移過程,該算法網(wǎng)絡中包含有大量要訓練的參數(shù),而訓練這些參數(shù)需要大量的訓練數(shù)據(jù),由于本文使用的遙感數(shù)據(jù)集較少,因此在訓練網(wǎng)絡時容易過擬合,為解決該問題,本文采用遷移學習方法訓練網(wǎng)絡。
圖5 遷移學習過程
本文使用的遙感數(shù)據(jù)集較小,訓練時比較困難,因此在訓練時進行數(shù)據(jù)增強。圖像變換方式包括隨機亮度變化(-30%~30%)、隨機平移(-20%~20%)、隨機旋轉(30°~180°)、隨機翻轉(水平或垂直翻轉)、尺寸變化(-20%~100%)、隨機裁剪等。
首先,在VOC2012數(shù)據(jù)集進行預訓練,將預訓練模型的特征提取層和相應權重遷移到本文的訓練任務;然后,根據(jù)本文訓練任務重新設計一個分類層,和遷移過來的特征提取層重新組建一個新的卷積神經(jīng)網(wǎng)絡,用于本文數(shù)據(jù)集的訓練。實驗中采用兩種方法進行訓練:(1)凍結特征提取層,只訓練分類層;(2)所有層都訓練。
在Python3.7、TensorFlow2.0環(huán)境下進行實驗,應用labelimg標注數(shù)據(jù)集;用RTX 2080Ti加速訓練,CPU為i7-9700 3.6k@3.60 GHz*8。實驗使用Adam優(yōu)化器,初始學習率設為0.000 4,batch_size設置為8,Dropout為0。
表1為不同融合方式在測試集上的實驗結果。本文采用平均精度(Average Precision,AP)、平均檢測精度(mean Average Precision,mAP)、平均檢測時間三個評價指標對不同融合方式進行檢驗。AP是評價目標檢測精度的最重要的指標之一,其大小可是以查全率為橫軸、召回率為縱軸所圍成的面積大小,所圍成面積越大,AP值越高,對目標檢測越準確。mAP用來判別對多目標物體的檢測精度,對每個類別求出AP再求和,然后除以類別數(shù)便得到mAP的值,mAP的取值范圍是[0,1],其值越高檢測精度越好。除了檢測精度,目標檢測的另一個檢測指標是平均檢測時間,只有平均檢測時間足夠短,才能實現(xiàn)實時檢測。
表1 不同融合方式在測試集上的實驗結果
為了檢測注意力特征融合方法的效果,實驗中與傳統(tǒng)的融合方法做了比較。由實驗結果可知,與傳統(tǒng)SSD算法相比,經(jīng)過注意力特征融合后的SSD算法,雖然平均檢測時間增加了7.42 ms,但是平均準確率均值提高了8.09%;與特征增強、通道拼接等傳統(tǒng)融合方法相比,無論平均檢測時間還是平均準確率均值,都有大幅度的提高。
圖6為不同融合方式下的PR曲線。在圖6中,垂直直線部分不在PR曲線內(nèi),只是一條輔助線,為了顯示出不同PR曲線與坐標軸圍成面積的差異,從而體現(xiàn)不同融合方式下AP值的差異。以垂直直線為區(qū)分條件,從左向右第一條為沒有融合的PR曲線,第二條為add(特征增強)融合方式的PR曲線,第三條為concat(通道拼接)特征融合方式的PR曲線,第四條為本文注意力特征融合方式的PR曲線。由圖6可知注意力特征融合方式的PR曲線所圍成的面積最大,即該方式的AP值最高。
圖6 不同類別在不同融合方式下的PR曲線
在圖7中,灰色框(上面一層)為SSD算法的檢測效果,白色框(下面一層)為AFF-SSD算法的檢測效果,可以看出,AFF-SSD算法對小目標物體的檢測效果好于SSD算法。
圖7 SSD算法與AFF-SSD算法檢測效果對比
表2為不同訓練方式在測試集上的實驗結果,由實驗結果可知,平均準確率均值最低為遷移學習只訓練分類層的訓練方式,平均準確率均值為57.27%。原因是本文使用的數(shù)據(jù)集與VOC2012數(shù)據(jù)集存在差異,只訓練分類層,特征提取層參數(shù)無法得到更新。而遷移學習訓練全部層的平均準確率均值最高,達到75.19%,與遷移學習只訓練分類層相比,平均準確率均值提高17.92%,與全新訓練方式相比,平均準確率均值提高3.47%,因此,本文使用遷移學習訓練全部層作為遷移學習實驗結果。
表2 不同訓練方式在測試集上的實驗結果
圖8為AFF-SSD算法遷移學習后的PR曲線。在圖8中,垂直直線部分不在PR曲線內(nèi),只是一條輔助線,為了顯示出PR曲線與坐標軸圍成面積,從而體現(xiàn)出AP值。由圖8可知經(jīng)過遷移學習后,飛機類別和油桶類別PR曲線所圍成的面積比未經(jīng)過遷移學習所圍成的面積大,即經(jīng)過遷移學習后,對目標檢測的AP有了進一步的提高。
圖8 不同類別在遷移學習后的PR曲線
針對SSD算法對遙感圖像小目標物體檢測效果不佳的缺陷,本文提出了一種特征融合增強的SSD小目標檢測算法——AFF-SSD算法。該算法的核心思想是加強SSD算法淺層特征圖之間的信息交流,使用注意力特征融合模塊對SSD算法網(wǎng)絡結構的淺層特征圖進行特征融合,增強淺層特征圖的語義信息,從而提高小目標的檢測準確率。此外,針對訓練過程中正負樣本失衡導致模型退化的問題,對原始的損失函數(shù)進行優(yōu)化。最后,使用遷移學習的方法對網(wǎng)絡進行訓練,進一步提升檢測精度。由實驗結果可知,該算法對小目標具有良好的檢測效果。