劉潔瑜,趙彤?,劉敏
(1.火箭軍工程大學 導彈工程學院,陜西 西安710025;2.湖南大學 電氣與信息工程學院,湖南 長沙410082)
SAR圖像是通過高頻率的電磁波與合成孔徑原理相結合對一片區(qū)域進行主動感知生成的高分辨率圖像,其成像受外界環(huán)境影響較小,可以主動對目標完成全天候和遠距離的偵查[1].因此,基于SAR圖像的目標檢測在敵艦偵察領域得到了廣泛的應用.傳統(tǒng)的SAR目標檢測一般采用恒虛警率檢測算法,其采用檢測器統(tǒng)計SAR圖像中的每個像素點周圍雜波的分布特性,自適應生成檢測閾值,并將目標像素點從背景中提取出來,而后通過形態(tài)學處理和負樣本剔除等操作得到目標中心,進而完成檢測.此類方法需根據(jù)圖像特征,人為地設定檢測器和約束條件,因此魯棒性和實用性較差[2].尤其在艦船檢測中,由于海洋潮汐等背景雜波的干擾,該類算法的檢測精度會受到較大影響.
近年來,基于卷積神經(jīng)網(wǎng)絡(Convolutional Neural Network,CNN)的深度學習目標檢測算法成為了研究熱點.Girshick等人[3]提出了基于區(qū)域卷積神經(jīng)網(wǎng)絡的目標檢測算法,使得基于深度學習的目標檢測相對于傳統(tǒng)方法在精度和速度上取得巨大突破,在PSCAL VOC 2012數(shù)據(jù)集上平均檢測精度達到了53.3%,開啟了基于深度學習的目標檢測的熱潮.之后,陸續(xù)出現(xiàn)了SPPNet[4]、Faster R-CNN[5]、Faster RCNN[6]、YOLO[7-9]、SSD[10]等算法.到目前為止,目標檢測已經(jīng)被構建為分類和回歸的問題來進行解決--以Faster R-CNN為代表的兩階段方法和以SSD和YOLO為代表的單階段方法,其中Faster R-CNN準確率更高,而SSD的速度占優(yōu).之后,Lin等[11]認為單階段算法精度不及兩階段算法的本質原因是其正負樣本的不均衡,并為此提出了Focal loss損失函數(shù)使得單階段的檢測網(wǎng)絡在精度上有了很大的提升,其提出的RetinaNet也成為了當下最佳的檢測網(wǎng)絡方法之一.
得益于深度學習算法的發(fā)展,SAR圖像目標檢測也迎來了很大變革.李健偉等[12]構建了國內(nèi)首個SAR圖像艦船公開數(shù)據(jù)集SSDD并用其訓練Faster R-CNN網(wǎng)絡,通過對比傳統(tǒng)方法,證明了深度學習算法的優(yōu)越性.Shahzad等人[13]利用級聯(lián)的全卷積神經(jīng)網(wǎng)絡實現(xiàn)了高分辨率SAR圖像中對建筑物的有效檢測.然而,基于深度學習的SAR圖像檢測中的各類算法在精度和速度上還有改進空間.
本文基于現(xiàn)階段較為先進的RetinaNet檢測算法進行改進,結合SAR圖像本身信息相對RGB圖像較少的特點,在更底層的圖像特征層上進行處理,融合了基礎提取網(wǎng)絡的多層特征信息;之后在多尺度的特征層對預選框進行回歸.采用SSDD數(shù)據(jù)集對網(wǎng)絡進行訓練,并通過樣本增強和遷移學習的方法提升算法的魯棒性、收斂速度.最終通過實驗與其他典型的深度學習算法進行對比,結果表明,本算法具有更好的效果.
本算法的特征提取部分與RetinaNet相同,采用了深度殘差網(wǎng)(ResNet101)[14].一般來說,神經(jīng)網(wǎng)絡的性能隨著網(wǎng)絡深度的增加而增加,然而如果簡單地增加深度,會導致梯度彌散或梯度爆炸.針對該問題,解決的方法是采用relu激活函數(shù)和中間層的正則化(Batch Normalization)[15],這樣可以訓練幾十層的網(wǎng)絡.但之后便會出現(xiàn)模型退化問題,即使深度繼續(xù)增加,網(wǎng)絡的準確率也不會上升甚至出現(xiàn)下降.而ResNet采用跨層連接的思想使用恒等映射直接將前一層輸出傳到后面,即使網(wǎng)絡深度增加,也不會使網(wǎng)絡的準確度下降.其網(wǎng)絡結構如圖1(a)所示,其中每組括號代表一個結構塊(block),其結構如圖1(b)所示(以Conv3為例).整個網(wǎng)絡包含101個卷積層(這里省略了最后的全連接層).每個block中包含3個卷積層,其參數(shù){n×n,m}中,n代表卷積核的大小,m代表卷積核的數(shù)量.Conv1中的stride為卷積操作的步長,在每個block中第一個卷積層的步長為2,其余步長均為1,因此在每一個block結構中,特征圖的尺寸會下降一半.Conv2中的maxpool代表最大池化操作,其池化單元大小為3×3,步長為2.
圖1 特征提取網(wǎng)絡參數(shù)Fig.1 Feature extraction network parameter
傳統(tǒng)的RetinaNet采用了特征金字塔(Feature Pyramid Networks,F(xiàn)PN)[16]的結構進行特征融合,其融合結構如圖2所示.Conv5_9層首先經(jīng)過1×1的卷積生成Conv6層,而后經(jīng)過線性插值上采樣得到和Conv4_69同樣的尺度,之后再與Conv4_69經(jīng)過1×1的卷積后進行融合生成Conv7.同樣,Conv7經(jīng)過上采樣生成和Conv3_12相同的尺度后與經(jīng)過1×1的卷積的Conv3_12融合生成Conv8.在檢測過程中,淺層的細節(jié)信息更有利于目標的定位,而高層的語義信息則更有益于目標的識別.FPN巧妙地將ResNet淺層的細節(jié)信息和高層的語義信息結合起來,以更好地對局部信息進行約束.然而在結合的過程中,F(xiàn)PN僅僅將高層信息上采樣后與淺層信息同緯度相加.這樣的結合方式相對來說較為粗糙,忽略了特征圖經(jīng)雙線性插值引入的結構誤差.同時,由于SAR圖像本身僅包含一個維度的有效信息,對誤差的影響更加敏感,因此更有效地融合特征信息是提高檢測效率的關鍵.
圖2 ResNet的FPN結構Fig.2 FPN structure in ResNet
本文提出了一種新的特征融合網(wǎng)絡,其結構如圖3所示.Fusion1和Fusion2為特征融合單元,F(xiàn)usion1以適當?shù)姆绞饺诤?層不同表征能力的特征圖,提取了更多Sar圖像的潛在特征,生成更準確的特征金字塔.Fusion2將金字塔相鄰的不同尺度的特征圖進行融合,建立了深淺層之間的耦合關系.其結構參數(shù)分別如表1(以Conv6和Conv9的生成為例)和表2所示.Fusion1對ResNet的Conv2、Con3、Conv4和Conv5層后3個block分別進行1×1同緯度的卷積運算,而后并聯(lián)在一起并再次通過1×1的卷積對有效信息進行融合,生成了Conv6、Conv7、Conv8和Conv9.這4個特征信息更豐富和準確的特征層,感受野逐漸變大,特征的細粒度也逐漸減小.其中Conv6是從Conv2特征圖中融合得到,包含更多的目標細節(jié)信息,因此其對小目標更敏感,對目標的定位更有效.Fusion2結構在新的金字塔結構上建立了深層特征到淺層特征的鏈接.對小尺寸的特征圖首先進行雙線性插值,而后通過1×1卷積跨通道地整合信息并降低特征層維度,通過3×3的卷積減少特征圖的結構誤差,最后與經(jīng)過1×1卷積的低維特征圖融合.融合過程采用相加的方式,3×3的卷積是為消除混疊效應.相比于原始網(wǎng)絡的FPN結構,本網(wǎng)絡的輸出層提取了更淺層的特征信息,各特征圖的尺度為原輸出特征圖的4倍.
表1 Fusion1的融合結構Tab.1 Fusion structure of Fusion1
圖3 新的特征融合結構Fig.3 New feature fusion structure
表2 Fusion2的融合結構Tab.2 Fusion structure of Fusion2
改進的融合結構在Module1、Module2和Module3三個特征層上分別通過4個3×3的卷積層后,進行位置回歸和分類,生成固定數(shù)目的初始框.一般的回歸部分,位置和種類的回歸在同一個特征圖上,而為了使兩個不同的損失相互之間沒有影響,增強特征的表征能力,RetinaNet的位置回歸和分類分開進行.以Module2為例,其回歸結構如圖4所示.在每個特征層的錨點上生成9個初始框,通過和真實框的匹配得到邊界框.計算真實框和邊界框之間的損失函數(shù),并通過平均梯度下降法建立優(yōu)化器,最終完成網(wǎng)絡的訓練.
圖4 Module2的回歸結構Fig.4 Regression structure of Module2
RetinaNet的損失函數(shù)和其他檢測算法相同,分為位置損失和分類損失.位置損失的計算如式(1)所示.
考慮正負樣本的不平衡問題,RetinaNet采用了Focal loss作為分類損失.Focal loss是在交叉熵損失函數(shù)(CE loss)中改進的,CE loss如式(3)所示.
式中:n代表邊界框的總數(shù),y′t為第t個邊界框所對應的正確類別;pt為第t個邊界框的預測類別;I為符號函數(shù);大括號內(nèi)為判斷條件.Focal loss在CE loss前加上了權重,如式4所示:
式中:α和γ均為權重因子,一般分別取0.25和2.可以看出,當正負樣本不均勻時,由負樣本造成的損失會大幅度下降;而當樣本均勻時,損失僅適當降低,從而減弱了樣本不均造成的分類錯誤.
由于改進網(wǎng)絡結構特征層的尺度是原圖的4倍,因此初始框的數(shù)目為原圖的4倍,屬于背景的邊界框與屬于前景的邊界框之間的比例會更大.這樣,即使Focal loss可以適當平衡正負樣本的不均衡,也會對損失函數(shù)的訓練帶來退化.同時,由于初始框的大量增加,網(wǎng)絡計算量增加,訓練效率也會受到較大影響.因此,在進行分類和回歸前,采用了OHEM(Online Hard Example Mining)算法[17]的思想,對正負樣本進行篩選.OHEM也是基于CE算法的改進,經(jīng)證明[10-11],其在平衡正負樣本上具有較好的魯棒性.
在本文算法中,首先計算每個邊界框與真實框之間的IOU;而后按照IOU從大到小對所有邊界框進行排序,取其中前2/3數(shù)量的邊界框作為訓練樣本;最后,調(diào)用Focal loss進行損失函數(shù)的計算和反向傳遞.
在訓練過程中,為了增加網(wǎng)絡的魯棒性,對輸出的SAR圖像進行增廣.數(shù)據(jù)增廣的方式有很多,比如水平翻轉、裁剪、視角變換、jpeg壓縮、尺度變換、顏色變換和旋轉等等.考慮到實際拍攝的角度不同和SAR圖像的單通道特性,這里我們選擇采用水平翻轉、尺度變化、旋轉和亮度變化.在數(shù)據(jù)輸入階段,分別有50%的概率對圖像進行隨機類別的增廣操作.
在進行水平翻轉、尺度變化和旋轉變化時,圖像的標注框也要同時進行改變.在進行水平翻轉和尺度變化時,標注框的類別信息不變,位置信息(x,y,w,h)進行對稱變化和尺度變化.而在進行旋轉變化時,標注框需要重新設定,如圖5所示.首先通過旋轉的角度,計算相應標注框的頂點旋轉后的映射位置.而后,計算出每兩個點之間的橫向和縱向的最大距離,并以最大的橫向距離和縱向距離作為新標注框的(w,h),中心位置坐標不變.最后,選擇適當?shù)目s進尺度對邊框的(w,h)進行修正.設(w′,h′)為新邊框的大小,ε為縮放因子,S為原邊框的面積,則
圖5 旋轉變化時標注框的變化Fig.5 Change in the label box
遷移學習是指針對新的神經(jīng)網(wǎng)絡重新使用預先訓練的模型進行參數(shù)初始化.由于其能用較少的數(shù)據(jù)訓練深度神經(jīng)網(wǎng)絡,能夠提升網(wǎng)絡的訓練速度和精度,這使得它在深度學習領域非常流行.在本文中,首先使用MSTAR數(shù)據(jù)集在ResNet101上進行預訓練,保存訓練好的模型參數(shù),而后將模型載入本算法的特征提取層,最后利用SSDD數(shù)據(jù)集對本網(wǎng)絡的參數(shù)進行微調(diào)(Fine-tuning).
MSTAR數(shù)據(jù)集是美國國防高等研究計劃署(DARPA)支持的MSTAR計劃所公布的實測SAR地面靜止目標的公開數(shù)據(jù)集,包含多種車輛目標在各個方位角下獲取到的目標圖像.由于SAR圖像和RGB圖像之間存在較大差異,因此使用MSTAR數(shù)據(jù)集進行預訓練可以避免出現(xiàn)負遷移的現(xiàn)象.將MSTAR數(shù)據(jù)集在ResNet101上進行訓練,待網(wǎng)絡完全收斂,去除ResNet101最后的全連接層,將前層的參數(shù)載入到本算法的特征提取層.在之后的Finetuning過程中,不凍結特征提取層的參數(shù),直接利用SSDD數(shù)據(jù)集對網(wǎng)絡進行調(diào)整.
實驗在Ubuntu16.04系統(tǒng)的Pytorch框架下運行,并使用CUDA8.0和cuDNN5.0來加速訓練.計算機搭載的CPU為Corei7-8700k,顯卡為NVIDIA GTX1080Ti,內(nèi)存為32 G.數(shù)據(jù)集為SSDD,共1 160張圖像,2 456艘艦船目標.本文將此數(shù)據(jù)集按照7∶3的比例分為了訓練集和測試集,在分類中,將圖像按照復雜度(密集程度和尺度變化量)均勻地分給訓練集和測試集以保證實驗的有效性.非極大值抑制和預測概率的閾值均為0.5.
將本算法與傳統(tǒng)的RetinaNet、SSD、FSSD、RFB單階段算法進行對比,采用平均精度和FPS作為性能指標,對比結果如表3所示(都經(jīng)過預訓練和數(shù)據(jù)增強).
表3 算法性能對比表Tab.3 Algorithm performance comparison table
由表3可知,在精度上,經(jīng)典的基于Vgg16的SSD網(wǎng)絡精度相對較低,而其改進結構RFB和FSSD網(wǎng)絡(基于Vgg16)的檢測精度雖然有所提高,但改進效果較小.當采用性能更好的特征提取層如ResNet101和DarkNet53時,SSD網(wǎng)絡的精度提升到了86.7%,而FSSD網(wǎng)絡提升較小,RFB網(wǎng)絡甚至出現(xiàn)精度下降.相對于SSD系列的算法,RetinaNet在精度上具有明顯的優(yōu)勢.而本文所提出的改進算法在RetinaNet的基礎上仍有1.8%的提升,取得了最高的檢測精度.在速度上,可以看出特征提取層的影響較大,其中基于Vgg16的網(wǎng)絡速度較快,基于ResNet101的速度較慢.傳統(tǒng)的基于Vgg16的SSD網(wǎng)絡速度最快,但是精度相對不足.本文提出的算法在速度上達到50 FPS,相比原始RetinaNet僅僅下降8.82 FPS(3 ms),因此總體來看,本文所提出的算法在此數(shù)據(jù)集中具有更好的效果.
為了證明改進算法的有效性,分別將本文算法的改進部分(融合結構,損失函數(shù))與原始算法進行對比,如表4所示.
表4 改進部分的對比表Tab.4 Improved part comparison
由表4可以看出,同時包含了這2種改進的算法精度達到最高;只改進了損失函數(shù)算法的精度有所下降,這是由于原始算法正負樣本比例適中,不會對Focal loss的計算帶來退化所致.而加入OHEM的思想,網(wǎng)絡強制性地去除了一些有利樣本,故精度有所下降.當加入特征融合結合結構時,可明顯發(fā)現(xiàn),網(wǎng)絡檢測精度提高,這是因為網(wǎng)絡綜合利用了底層的特征信息,更高效地融合了深淺層的圖像特征.然而,由于此時正負樣本的不均衡程度增加,損失函數(shù)存在部分退化,此時,加入OHEM的思想則對正負樣本的均衡性進行調(diào)整,再利用Focal loss進行損失計算和傳遞,于是算法精度上升.
最后,將改進的算法和原始的RetinaNet的檢測結果可視化對比,如圖6所示.通過對比2種算法和標注圖,可以看出,在干擾因素較多、目標較小的時候,傳統(tǒng)的RetinaNet漏檢、錯檢嚴重,而本文算法都可以很好地識別出目標,具有較好的魯棒性.
圖6 輸出結果的可視化對比Fig.6 Visual comparison of output
針對傳統(tǒng)的SAR圖像艦船檢測算法魯棒性差、精度低、適應性不強等不足,本文提出了一種深度學習的SAR圖像檢測算法,該算法在RetinaNet的基礎上針對SAR圖像成像的特點對其FPN結構進行改進,增加了其特征數(shù)量,提升了融合效果.而后,針對數(shù)據(jù)量的增加出現(xiàn)的正負樣本失衡問題,對損失函數(shù)的計算進行改進.最后,通過數(shù)據(jù)增強和遷移學習提升網(wǎng)絡魯棒性、收斂速度.實驗中利用SSDD數(shù)據(jù)集對網(wǎng)絡進行訓練并對比了幾個典型的單階段檢測算法,結果顯示,本算法相比于傳統(tǒng)的RetinaNet算法在FPS下降有限的情況下,準確率提升了1.8%,具有更好的效果.