楊龍,蘇娟,李響
(火箭軍工程大學 核工程學院,陜西 西安 710025)
合成孔徑雷達(SAR)因其具有全天時、全天候、多視角、多俯角的數據獲取優勢,在目標檢測領域,SAR圖像目標檢測技術已經成為當前軍用和民用領域研究的熱點。而SAR圖像艦船目標檢測則是軍用領域對海目標檢測的重要分支,通過對敵方艦船的精確檢測,可為我方精確制導武器精確打擊目標提供有力的支持。
隨著深度學習的不斷發展,基于深度學習的目標檢測技術已經成為當前計算機視覺領域的主流方向[1],而基于深度學習的SAR圖像艦船目標檢測技術也在一步步走向成熟。其中,文獻[2]提出了一種基于深度卷積神經網絡SAR圖像艦船目標檢測技術,首先構造了國內該領域唯一的一個SAR艦船目標檢測數據集(SSDD),在更快速區域卷積神經網絡(Farster R-CNN)[3]的基礎上,提出了特征聚合、遷移學習、損失函數設計和應用細節的創新,檢測的平均準確率達到75.6%;文獻[4]提出一種基于生成式對抗網絡(GAN)[5]和線上難例樣本挖掘的SAR圖像艦船目標檢測技術,在Fast R-CNN[6]的基礎上,使用對抗網絡生成難例樣本增強檢測器適應性,同時使用線上難例挖掘技術避免了少量的難例樣本在采樣時被忽略,提高了模型的檢測精度,在SSDD上平均準確率達到70.2%;文獻[7]提出了一種全新的基于上下文區域的多層融合卷積神經網絡,融合了圖像深層語義和淺層次的高分辨率特征,提高了小型艦船檢測性能,并在Sentinel-1數據集上的進行了實驗驗證。文獻[8]提出一種基于Fast R-CNN的密集連接多尺度神經網絡,從上到下將一個特征映射與每一個其他特征映射緊密連接起來,用于解決多尺度、多場景SAR艦船檢測問題,在多個公開數據集進行測試,也取得了很好的檢測效果。
基于深度學習的SAR圖像艦船目標檢測技術在艦船檢測領域已經展現出了強大的實時檢測能力,但是數據集稀少仍然是限制該領域進一步發展的瓶頸。已有的數據集又存在著數據集小、目標大小不均勻、難以包含各種復雜條件下的艦船目標等眾多缺點,因此通過一定的技術對現有SAR圖像數據集進行擴充與完善,對SAR圖像艦船目標檢測具有重要的意義。
目前相對成熟的生成圖像方法是通過GAN產生新的圖像。隨著GAN的發展,其生成的圖像越來越逼真,比較典型的GAN有深度卷積生成式對抗網絡(DCGAN)[9]、信息最大化生成式對抗網絡(infoGAN)[10]、像素對像素(pix2pix)生成式對抗網絡(pix2pix GAN)[11]等,但是鮮有學者將其用于SAR圖像的生成。因此,本文考慮采用pix2pix技術對SAR圖像艦船目標進行數據增廣,首先制作一個用于pix2pix的數據集,生成800張新的SAR艦船圖像,然后用開源圖片標注軟件Labelimg對生成的數據進行標注,將標注好的數據加入單次多盒檢測器(SSD)[12]中進行對比分析。針對SSD檢測算法對小目標檢測效果不佳的缺點,本文吸收GoogleNet[13]中Inceptionv2[14]模塊的經驗,通過一種多尺度卷積核特征提取的方式,提高了SSD檢測算法對不同尺度艦船目標的檢測能力,實驗結果表明改進的SSD顯著地提高了SAR艦船檢測精度。
本文將基于pix2pix的SAR艦船數據增廣技術與改進的SSD結合起來,將生成的SAR數據加入算法中進行多組對比分析實驗,通過對實驗結果的分析論證得到以下兩個結論:1)采用pix2pix技術擴充的數據集對檢測精度有一定的提高,但依然存在著上限;2)擴充數據集對原SSD檢測算法的檢測效果要優于對改進SSD檢測算法的檢測效果。
首先建立一個用于pix2pix的SAR艦船生成數據集(SSG),數據來源有部分SSDD中的艦船圖片、Sentinel-1數據中的部分艦船圖片,以及高分三號衛星拍攝的部分艦船圖片共2 000張,訓練集中圖片模式為原圖和邊緣的成對圖片,原圖和邊緣圖片尺寸大小均裁剪為256×256,其中獲得圖片邊緣圖片的算法采用標準的Canny[15]邊緣算子,測試集為空白圖片和邊緣圖片,測試集中的邊緣圖片是采用繪圖技術生成的艦船輪廓圖片,用于生成不同場景下的SAR艦船圖像。表1所示為部分pix2pix訓練集和測試集的圖像。
表1 SSG數據集部分圖片
Tab.1 Partial pictures of SSG dataset

在制作測試集的過程中,盡量多加入一些較小的艦船目標,通過加入不均勻的輪廓生成港口等復雜環境,用以加強之后的檢測器對小目標與不同場景的適應能力。
圖像的轉換問題本質上是像素到像素的映射,本文使用pix2pix生成SAR艦船圖片實現線稿圖到實時圖的轉換,結構如圖1所示。

圖1 GAN訓練過程Fig.1 Training process of GAN
訓練的過程中邊緣圖像x作為GAN訓練的條件輸入生成器G和鑒別器D中。生成器G實際上是圖像x和隨機噪聲z到y的映射:G:{x,z}→y.訓練生成器G生成鑒別器D無法辨識真偽的圖像,訓練判別器D盡力地識別出偽造的圖像。
一般地,GAN目標函數可以表示為
LcGAN=Ex,y[log2D(x,y)]+
Ex,z[log2(1-D(x,G(x,z))],
(1)
式中:E表示期望值。
G要得到函數的最小值,而D要得到函數最大值,二者互相進行博弈。為了測試輸入條件x對判別器的重要性,也訓練了一個沒有x的普通GAN:
LcGAN=Ey[log2D(y)]+
Ex,z[log2(1-D(G(x,z))],
(2)
同時融合了傳統損失函數得到最終的目標方程為
(3)
式中:
LL1(G)=Ex,z[‖y-G(x,z)‖1].
(4)
本文使用文獻[16]中的生成器和判別器結構,卷積單元形式為conv-BatchNorm-Relu,生成器結構沒有使用原始的解碼- 編碼網絡[17],而是模仿U-net[17]在原始的結構中增加了條線連接,如圖2所示,在第j和第k-j層增加了跳線,k為網絡的總層數。判別器使用馬爾可夫過程的判別器,使用傳統的L1-loss函數雖然會使生成的圖片產生模糊問題,但是在很多情況下能夠捕捉到低頻信息,因此判別器的設計需要對高頻進行建模,關注局部的感興趣目標塊。判別器對每個目標塊判別為真假,在整張圖片上運行這個判別器,最后取平均值作為輸出。對于SAR圖像而言,這樣做能夠在測試時較好地對艦船目標進行重建,這是因為SAR圖像的拍攝角度不同,質量也會產生差異,而通過對所有圖片的學習能夠綜合考慮到每個目標塊的質量差異,使模型訓練得更加充分。

圖2 鑒別器結構圖Fig.2 Discriminator structure
選取信息熵、等效視數、平均梯度以及目標長寬比作為生成圖像的評價指標。
1)熵是隨機信號中不確定度的一種表達方式,對于一幅M×N的SAR圖像,其熵表示為
(5)
(6)
式中:Pmn表示取某一灰度值l(m,n)的概率;num[l(m,n)]表示某一灰度值l(m,n)的像素數目;M×N表示圖像總的像素個數。SAR圖像的信息熵越小,其包含的信息量越多;相反,SAR圖像的信息熵越大,其包含的信息量越少,圖像則會不清晰。
2)等效視數[18]常用于SAR圖像的質量效果評估,是SAR圖像中衡量斑點噪聲強弱的標準,定義為圖形均值與標準差的比值,表示為
(7)
式中:ENL表示SAR圖像的等效視數;μ表示圖像的均值;σ表示圖像的標準差。
SAR圖像的等效視數越大,表明其斑點噪聲越弱,圖像的對比度越強;反之,圖像的等效視數越小,其斑點噪聲則越強,對比度越小,圖像的整個效果則會顯得很模糊。
3)平均梯度[18]反映了圖像邊緣附近灰度的差異,能夠反映圖像微小細節變化的速率,其計算公式為
(8)
式中:ΔIx表示橫坐標軸方向上的差分;ΔIy表示縱坐標軸方向上的差分。
一幅圖像的平均梯度越大,表明其層次越分明,圖像會更加清晰;相反,一幅圖像平均梯度越小,圖像會看起來較為模糊,清晰度不夠。
4)目標長寬比是指目標最小外接矩形長與寬的比值,其定義為
(9)
式中:W為最小外接矩形的長;L為最小外接矩形的寬。一般情況下,利用長寬比r可以將感興趣的目標與其他干擾物分開。
對艦船目標區域的標注使用開源軟件Labelimg,該軟件使用Python語言編寫,可以對目標區域做標簽;標簽中包含目標的4個坐標(c,v,h,w),其中(c,v)為目標區域矩形框的左上角坐標,h為矩形框的高度,w為矩形框的寬度,根據ImageNet所使用的PASCAL VOC[19]格式存成XML文件,方便之后將標注好的數據加入檢測器進行訓練。
SSD檢測算法有SSD300和SSD512兩種結構,可以用于輸入不同尺寸的樣本檢測,SSD300的基本原理是基于前饋卷積網絡,首先產生固定大小的默認框集合,利用不同層次的特征圖基于所產生的默認框來進行位置的回歸和類別的預測;然后利用非極大值抑制算法對每個類別預測到的所有先驗框集合進行篩選,去除多余的和概率較低的邊框,生成最終的檢測結果。相比于雙階段檢測算法,SSD檢測算法消除了雙階段檢測算法對每一個候選邊框的特征重采樣階段,使算法速度極大地提高,檢測的準確度也得到了保證。
如圖3所示,SSD300的網絡框架由兩部分構成,第1部分為基礎網絡架構,第2部分為附加網絡架構。基礎網絡使用的是VGG16,附加網絡為尺度不斷減小的卷積層,在Conv4_3、Conv7、Conv8_2、Conv9_2、Conv10_2、Conv11_2共6個層提取特征圖用來預測,特征圖尺寸分別為38×38、19×19、10×10、5×5、3×3、1×1,不同特征圖設置不同的先驗框數目,先驗框尺寸隨特征圖大小的降低呈線性遞增:
(10)
式中:t為特征圖的個數;sk表示先驗框與圖片的尺寸比例;smax表示比例的最大值;smin表示比例的最小值。
模型訓練所使用的損失函數為位置誤差與置信度誤差的加權和:
(11)


圖3 SSD網絡結構圖Fig.3 SSD network structure
SSD檢測算法最大的缺點是對小目標檢測效果不佳,而在SAR艦船目標中又存在大量的像素點小于10的艦船目標,本文吸取GoogleNet中的Inceptionv2模塊的經驗,SSD的前4個預測層加入Inceptionv2模塊,Inceptionv2通過增加網絡的寬度和增加感受野來增強網絡對不同尺度目標的檢測能力,其主要特點是在多個尺寸上進行卷積再進行聚合。結構如圖4所示,BN表示批歸一化處理[20],使用Relu激活函數。
在SAR艦船目標中,存在各種不同尺寸的艦船,對前4個特征預測圖分別加入Inceptionv2模塊,通過增加網絡寬度來增強網絡對不同尺度艦船的適應性,在Inceptionv2模塊中不同支路的感受野不同,第2、第3個支路中的第1個1×1卷積層是為了通過降維方式減小參數量,同時通過兩個卷積的級聯可以組合出更多的非線性特征,提取到特征圖更加豐富的特征。第1個支路采用1×1的卷積對特征圖進行處理,第2個支路用3×3的卷積對特征圖進行處理,第3個支路用兩個3×3的卷積對特征圖進行處理,相當于一個5×5的卷積的感受野,但是參數量大為減少,從第1個支路到第3個支路感受野逐漸擴大,第4個支路采用池化層加1×1的卷積層來提取特征,最后將4個支路輸出的特征圖聚合,得到最終的特征預測圖。對于不同尺寸的特征圖,每一支路所用卷積核的維度不同,具體結構如圖4所示。
在得到以上新的4個特征預測圖之后,與原SSD算法的后兩個特征預測圖組成新的6個特征圖,在新的特征圖上進行預測。

圖4 改進的預測圖生成結構Fig.4 Improved predictive structure
硬件平臺:計算機CPU inter?Xeon(R)E5-2603v4@1.70 GHz×6,顯卡NVIDIA GTX 1080Ti GPU(16 GB內存)。
網絡框架:Pytorch(使用Visdom可視化)。
編程語言:C語言和Python.
操作系統:Ubuntu 16.04.
數據集:GAN使用本文構造的SSG數據集,SSD檢測算法使用SSDD數據集[2]。
首先使用pix2pix進行SAR艦船的數據集增廣,使用標準的方法交替訓練生成器D和鑒別器G,使用小批量梯度下降法[21]且應用Adam優化器[22],在測試時使用隨機失活(dropout)[23]和批歸一化處理,訓練一個pix2pix網絡。表2所示為5種典型場景的仿真圖像與真實圖像對比。
從表2中可以看出,生成的SAR艦船圖像已經接近于真實的圖像,不仔細觀察難以用肉眼判別出來,為了對生成的圖像做進一步質量效果評估,從生成的SAR艦船圖像中與SSDD中分別選取相似的典型場景的5張SAR艦船圖像,包括港口艦船和海面艦船,分別求出其信息熵、等效視數、平均梯度以及目標長寬比,進而對其質量進行客觀評價,最后對生成的圖像與真實圖像進行客觀的比較分析。
表2 生成圖像與真實圖像對比
Tab.2 Comparison of generated and real images

表3所示為生成圖像與真實圖像的指標對比。從表3中可以得出,生成SAR艦船圖像信息熵與真實圖像的信息熵相差不大且略小,生成圖像的等效視數大于真實圖像的等效視數,表明真實的SAR艦船圖像噪聲分布較廣,生成的SAR艦船圖像斑點噪聲相對較少,信息量足夠。但是生成圖像的平均梯度小于真實圖像的平均梯度,圖像的層次感依然弱于真實圖像。同時生成圖像的目標長寬比與真實圖像的目標長寬比也比較接近,表明生成的圖片與真實圖片的目標幾何特性也具有相似性。總之,使用pix2pix生成的SAR艦船圖像與真實圖像的效果相差不大,能夠滿足一般的需求。
本文SSD檢測算法使用的評價指標為平均準確率。在SSDD上對本文所提出的方法進行驗證,驗證在訓練器中依次加入100、200、300、400、500、600、700、800張圖片對檢測精度的影響以及在訓練器中加入不同張數條件下改進SSD檢測算法對檢測器檢測精度的影響,實驗結果如表4所示。

表3 指標對比Tab.3 Comparison of indicators

表4 算法比較Tab.4 Algorithms comparison
注:√表示選擇將生成圖片加入原SSD或者改進SSD中。
表4反映了生成圖像對檢測器性能的影響。從表4中可以看出,當沒有將生成的樣本加入檢測器中時,改進SSD檢測算法相比原SSD檢測算法平均準確率由75.6%提高到80.3%.隨著將GAN生成樣本逐漸加入訓練器中,測試的平均準確率會逐步提高,當生成的800張樣本全部加入訓練器中之后,原SSD檢測算法的精度由75.6%提高到79.9%,提高了4.3個百分點,改進SSD檢測精度由80.3%提高到82.2%,提高了1.9個百分點。但是從表4中仍然可以看出,對于原SSD檢測算法,當在訓練器中加入500張圖片時檢測精度達到79.8%,繼續向訓練器中添加圖片,檢測的平均準確率基本不再上升,對于改進SSD檢測算法,往訓練器中添加800張圖片檢測器性能只有1.9%的提升。對比表4實驗結果可以發現,使用pix2pix生成的艦船樣本對檢測器性能有一定的提高,但是檢測的平均準確率不會隨著樣本數量的增加而不斷提高,使用pix2pix生成的艦船樣本對原SSD檢測算法性能提升要優于改進SSD檢測算法。主要有以下兩個原因:
1)使用pix2pix生成的艦船目標行為尺度比較單一,模擬生成如復雜港口等惡劣環境下的艦船仍然比較困難,而真實海面環境下的艦船目標變化范圍更大,斑點噪聲更加明顯。而正是因為生成的艦船目標中缺少這些復雜環境變化等狀況,所以在檢測的過程中檢測器對復雜環境下艦船目標的適應能力有限,當不斷地往訓練集中添加生成的圖片后,檢測器性能會達到一定的瓶頸不再提升。
2)原SSD檢測算法本身存在著對小目標檢測效果不佳的缺點,將生成的多種尺度的艦船圖片加入檢測器中,使得網絡更加適應了SAR艦船的多尺度性,使得SSD的檢測精度大大提高。當使用改進SSD檢測算法后,檢測器已經適應不同尺寸的艦船目標,對各種尺寸艦船目標的檢測性能已經得到提升,因此繼續向訓練樣本中添加生成的圖片對檢測器的性能提升很有限。為了直觀地體現,將表4中數據用曲線圖連接起來,如圖5所示。從圖5中可以發現:當添加的樣本數量達到一定的數量時,檢測器性能也會達到一個瓶頸,精度不再上升。

圖5 平均準確率隨檢測器中添加樣本數的變化曲線Fig.5 Change of average precision with the number of samples added to the detector
表5所示為本文所提出的方法與原SSD檢測效果對比,表5中圖片上數字表示檢測為艦船目標的概率,圖片來源于SSDD中4種典型的難例樣本。從樣本1和樣本3的檢測結果可以看出:在斑點噪聲極為嚴重、圖片模糊不清的情況下,原SSD檢測算法對SAR艦船目標的檢測性能有限,本文算法檢測效果較好,能夠適應一定的復雜環境,對于港口和河道區域的艦船能夠直接檢測到,且不需要像傳統檢測算法那樣對圖片進行海陸分離等預處理;樣本2是典型的港口區域密集停靠的艦船目標,從檢測結果可以看出,原SSD算法和改進SSD算法對密集港口艦船目標的檢測效果也較好,但是錯檢嚴重,原SSD算法把上方左邊的兩艘艦船錯檢成了一艘,上方右邊的3艘船錯檢成了2艘,而改進SSD算法能夠準確地檢測到艦船目標數量,檢測效果得到了提升;樣本4是典型的小目標,原SSD檢測算法對小目標檢測算法不佳,圖中的6艘艦船只檢測到了2艘,漏檢明顯,而改進SSD算法雖然也有漏檢,但是6艘艦船檢測到了5艘,漏檢率明顯降低。總之,相比于傳統的檢測算法,改進SSD算法實現了端對端的SAR艦船目標檢測,雖然仍然存在漏檢的情況,但能夠滿足基本的需求。
表5 檢測結果對比
Tab.5 Comparison of test results

本文提出一種基于生成式對抗網絡的SAR艦船目標生成方法與一種改進SSD的SAR艦船檢測算法。建立了一個用于產生SAR艦船目標的生成式對抗網絡的數據集SSG,進行了一次用生成對抗網絡產生SAR艦船目標的有益嘗試,并將生成的SAR圖像標注后加入原SSD檢測算法以及改進SSD檢測算法中進行驗證。主要得到以下結論:
1)將產生的數據標注后加入SSD中,原SSD檢測算法的平均準確率由75.6%提高到了79.9%.
2)通過在檢測器測試網絡加入Inceptionv2模塊,提高了網絡對不同尺度目標的適應性,檢測的平均準確率由原始的75.6%提高到了80.3%.
3)當把生成的艦船數據加入改進SSD中后,平均準確率由80.3%提高到了82.2%.
通過GAN產生SAR艦船目標的前提是收集大量的SAR艦船圖像并對圖像做一定的預處理,制作生成式對抗網絡的訓練樣本,生成的SAR圖像需要進行標記才能夠加入檢測器中,過程中需要消耗大量的人力物力。但是從實驗結果中仍然能夠發現生成的SAR艦船數據行為單一,對檢測器的性能提升仍然存在上限。
在將來的工作中,將進一步完善SSG數據集,改進生成對抗網絡結構,以滿足生成復雜環境下艦船目標的需要,使之能夠更好地提高目標檢測性能。