江 源,李建偉,張玉婷
(1.海軍研究院特種勤務研究所,北京102400;2.海軍參謀部機要局,北京100841)
隨著卷積神經(jīng)網(wǎng)絡在計算機視覺任務中取得極大的成功[1-5],SAR圖像中目標檢測也急須引入此類方法。文獻[6]雙階段檢測算法Faster R-CNN 用于SAR圖像艦船目標檢測,并進行了適應性的改進。相比于雙階段檢測算法,單階段檢測算法速度更快,但精度會稍差。
2016 年12 月,LIU WEI 等 提 出 了SSD(Single Shot Detector)[7]檢測算法,將回歸思想和錨框機制結(jié)合,通過在不同卷積層的特征圖上預測目標區(qū)域,生成離散化的多尺度、多比例的錨框坐標。同時,利用小卷積核預測一系列候選框的坐標和每個類別的置信度,既保持了快速性,又保證了邊框定位效果。
SSD對輸入圖像數(shù)據(jù)的處理流程如圖1所示。圖中包括骨干網(wǎng)絡(采用了16 層的VGG-Net[8]模型,即VGG-16)、前端網(wǎng)絡(預測層)和后處理(通過NMS實現(xiàn))3部分。骨干網(wǎng)絡用于特征提取,一般需要加載分類任務中訓練好的參數(shù)。之后,根據(jù)具體任務進行微調(diào);前端網(wǎng)絡用于目標預測,一般需要初始化之后從頭進行訓練;后處理用于去除多余的邊框。
圖1 SSD處理流程Fig.1 Processing flows of the SSD
圖2 SSD前端網(wǎng)絡原理示意圖Fig.2 Sketch map of the SSD front end network
多尺度特征圖包括conv3(表示VGG-16的第4個卷積層得到的特征圖,其尺寸為38×38,通道數(shù)為512)、conv7(表示SSD 算法中第7 個卷積層得到的特征圖,其尺寸為19×19,通道數(shù)為1 024)、conv8-2(表示SSD 算法中第8 個卷積層得到的特征圖,其尺寸為10×10,通道數(shù)為512)、conv9-2(表示SSD 算法中第9個卷積層得到的特征圖,其尺寸為5×5,通道數(shù)為256)、conv10-2(表示SSD 算法中第10 個卷積層得到的特征圖,其尺寸為3×3,通道數(shù)為256)和conv11-2(表示SSD 算法中第11 個卷積層得到的特征圖,其尺寸為1×1,通道數(shù)為256)6 種尺度。在每個尺度的特征圖上,產(chǎn)生類似于Faster R-CNN的錨框。原論文中conv3、conv10-2 和conv11-2 有 長 寬 比1、2 和1/2,conv7、conv8-2 和conv9-2 有長寬比1、2、1/2、3 和1/3。SSD 給不同的邊框設置不同的長寬比,對于為1 的長寬比,會增加一個尺寸。因此,SSD一共有8 732 個錨框(38×38×4+19×19×6+10×10×6+5×5×6+3×3×4+1×1×4=8732)。
圖2 中的預測部分用于預測物體類別的置信度,并通過在特征圖上使用小尺寸的卷積核(1×1 和3×3的卷積核)來直接預測物體的邊框坐標。由于預測是在6 種不同的尺度進行,且每種尺度具有不同長寬比的錨框,所以能夠提高目標檢測的精度,而且整個算法可以進行端到端的訓練,在速度上也有較大的優(yōu)勢。
在訓練之前,需要用匹配策略將錨框分成正負樣本。對于訓練數(shù)據(jù)圖像產(chǎn)生的每一個真實邊框,從各種位置、長寬比和尺度來選擇錨框;然后,把與錨框具有最大交并比的和與任意錨框的交并比大于0.5的看成正例進行訓練,其余當作負例,之后進行訓練。
SAR 圖像首先輸入到VGG-16 提取特征,形成特征圖;接著,通過多個卷積生成6種尺度的額外的特征圖,并在這6 種尺度的特征圖上生成錨框;之后,預測部分通過在對錨框上使用小尺寸的卷積核(1×1和3×3的卷積核)來直接預測物體的邊框坐標和類別的置信度,得到目標位置和類別的預測值;目標位置和類別的預測值送入到損失函數(shù),損失函數(shù)根據(jù)目標位置和類別的預測值與真實值的誤差,分別計算相應的損失,并用損失最小調(diào)整神經(jīng)元參數(shù),使檢測達到最優(yōu)。
為了實現(xiàn)對目標快速準確地檢測,本文對經(jīng)典的單階段檢測算法SSD進行了改進,在前端網(wǎng)絡中對卷積特征進行重用,將高低層語義(類別)信息進行聚合,提高了對特征的利用效率(所提方法對SSD 檢測算法提取的特征進行了進一步的處理,包括特征和語義聚合,提高了特征利用率)。在通用目標檢測數(shù)據(jù)集PASCAL VOC[9]和SSDD上證明了改進的效果。此外,還根據(jù)艦船目標在數(shù)據(jù)集SSDD 上尺寸和長寬比的分布情況對錨框進行了針對性的設計。所提出的方法能提高對艦船目標的檢測效果,且計算量不會增加很多。
本文針對SSD 的前端網(wǎng)絡對特征利用不充分的問題,對前端網(wǎng)絡進行了改進,包括特征重用和語義聚合算法。特征重用算法對前端網(wǎng)絡的特征圖按照通道分成2部分,分別進行卷積處理和重新利用(通過與下一層聚合實現(xiàn)),可在進行學習的同時,減小了參數(shù)量。語義聚合算法將高層語義信息融入到底層,提高對不同尺寸目標的檢測能力。設計了2種新的錨框來適應SSDD 數(shù)據(jù)集中、艦船目標尺寸小和長寬比大的特點。
基于特征重用與語義(類別信息)聚合的特征融合算法是對圖1 中的前端網(wǎng)絡進行的改進,算法結(jié)構(gòu)圖如圖3所示,包括特征重用(從特征重用1到特征重用4的4個階段)和語義聚合(語義聚合1到語義聚合5的5個階段)2部分。特征重用通過對特征圖的高效利用,提高了對物體檢測的準確率;語義聚合算法通過融合位置信息豐富的底層特征和語義信息豐富的高層特征,提高了區(qū)分和定位艦船目標的能力。
圖3 的特征重用算法對conv7、conv8-2、conv9-2和conv10-2的特征圖都只進行一半的參數(shù)學習,另一半改變尺寸后在下一層直接進行聚合。相比于圖2的過程,在進行學習的同時,減小了參數(shù)量。例如,在特征重用1 中,conv7 的按通道劃分的一半特征(512×19×19)通過1×1 和3×3 卷積變成512×10×10,另一半通過池化變成512×10×10,二者通過聚合變成1 024×10×10 ,再通過1×1 卷積將特征圖變成512×10×10,如圖4所示。
圖3的語義聚合算法把語義信息較強且尺寸較小的特征圖進行了采樣,與上一層的特征進行融合(逐元素相加),如圖中語義聚合1 到語義聚合5 的過程。語義聚合通過去卷積(deconvolution)和1×1的卷積實現(xiàn)。例如,在語義聚合1 中,卷積核尺寸為3×3,零填充個數(shù)為0,步長為2,通道數(shù)為256 的去卷積層,將conv11-2 的特征圖從256×1×1 變換到256×3×3,通過逐元素相加操作與conv10-2 相拼接,得到新的特征圖,在新的特征圖上進行預測。
圖3 特征重用和語義聚合算法(在卷積之后會有BN和ReLU)Fig.3 Feature reuse and semantic algorithm(BN and ReLU at after convolution)
圖4 SSD前端網(wǎng)絡的特征重用1Fig.4 Feature reuse 1 in the frontend network of SSD
特征重用算法對圖1 中的前端網(wǎng)絡進行了改進,將特征圖按照通道分成2 部分:一部分被卷積處理進行參數(shù)學習;另一部分直接輸入到下一階段通過拼接的方式重新利用,這可在進行參數(shù)學習的同時,減小參數(shù)量和計算量。
特征重用1。圖4 描述的是特征重用1 的計算過程。按照通道個數(shù),將特征圖conv7(1024×19×19)平均分成2 部分,一部分像原始的SSD 那樣被1×1 卷積和3×3卷積處理變成512×10×10。其中,1×1的卷積將特征圖的通道數(shù)變少,3×3卷積將特征圖的尺寸減半;另一部分輸入到下一階段。通過池化,將特征圖的尺寸減半,對特征重新利用,特征圖變成512×10×10,這可以減小計算負擔。兩側(cè)得到的特征圖具有相同的尺寸和通道個數(shù)(都變成了512×10×10),輸入到聚合層進行特征圖的拼接(得到1024×10×10),1×1卷積用于在改變通道個數(shù)的同時,增加非線性操作(得到512×10×10)。特征重用算法在進行學習的同時,減小了參數(shù)量。
特征重用2。conv8-2(512×10×10)按通道劃分的一半特征(256×10×10)通過1×1和3×3卷積變成256×5×5;另一半通過池化變成256×5×5,通過聚合變成512×5×5,通過1×1 卷積將特征圖變成256×5×5,得到新的conv9-2。
特征重用3。conv9-2(256×5×5)按通道劃分的一半特征(128×5×5)通過1×1和3×3卷積變成128×3×3,另一半通過池化變成128×3×3,通過聚合變成256×3×3,得到新的特征圖conv10-2為256×3×3。
特征重用4。conv10-2(256×3×3)按通道劃分的一半特征(128×3×3)通過1×1和3×3卷積變成128×1×1;另一半通過池化變成128×1×1,通過聚合變成256×1×11,得到新的特征圖conv11-2為256×1×1。
語義聚合算法對圖1 中的前端網(wǎng)絡進行了改進。由于底層特征具有準確的位置信息,高層特征具有豐富的語義信息,因而為了同時實現(xiàn)對目標的準確識別和位置定位,這里將不同層級的特征進行語義聚合。
圖5是SSD的前端網(wǎng)絡采用語義聚合的前端網(wǎng)絡示意圖(圖中VGG-16用于特征提取)。圖5 a)是SSD的網(wǎng)絡結(jié)果,它構(gòu)成了一種層級的特征結(jié)構(gòu),并在各層進行預測,利用不同層級的特征進行預測可以提高對不同尺度目標的適應性。圖5 b)是基于語義聚合的SSD 的結(jié)構(gòu),它在SSD 層級結(jié)構(gòu)的基礎上,對不同層級的特征進行了語義聚合,對每層引入從上到下的語義信息(類別信息),使每層能夠同時具有豐富的類別和位置信息,便于對目標的分類和定位,底層的特征圖融入了高層語義信息的同時,也會提高對小尺寸目標的適應能力。相比于圖像金字塔結(jié)構(gòu),這種語義聚合算法不需要大量計算量和存儲量去保持中間特征,只需簡單的聚合操作即可實現(xiàn)。
a)SSD的前端網(wǎng)絡a)Front end network for SSD
圖5 SSD和基于語義聚合的SSDFig.5 SSD and SSD based on semantic aggregation
語義聚合算法包括5個階段,如圖3所示。
語義聚合1。卷積核尺寸為3×3,零填充個數(shù)為0,步長為2,通道數(shù)為256的去卷積層將conv11-2的特征圖從256×1×1 變換到256×3×3,通過逐元素相加操作與conv10-2相聚合。
語義聚合2。卷積核尺寸為3×3,零填充個數(shù)為1,步長為2,通道數(shù)為256 的去卷積層將特征圖從256×3×3 變換到256×5×5,通過逐元素相加操作與conv9-2相聚合。
語義聚合3。卷積核尺寸為1×1,零填充個數(shù)為1,步長為2,通道數(shù)為512的卷積層將特征圖通道數(shù)從256增加到512。卷積核尺寸為3×3,零填充個數(shù)為1,步長為2通道數(shù)為256的去卷積層將特征圖從512×5×5 變換到512×10×10,通過逐元素相加操作與conv7-2相聚合。
語義聚合4。卷積核尺寸為1×1,零填充個數(shù)為1,步長為2,通道數(shù)為1024 的卷積層將特征圖通道數(shù)從512增加到1 024。卷積核尺寸為3×3,零填充個數(shù)為1,步長為2,通道數(shù)為1 024 的去卷積層將特征圖從512×10×10變換到1 024×19×19,通過逐元素相加操作與conv7相聚合。
語義聚合5。卷積核尺寸為1×1,零填充個數(shù)為1,步長為2,通道數(shù)為512的卷積層將特征圖通道數(shù)從1 024 降低到512。卷積核尺寸為4×4,零填充個數(shù)為1,步長為2,通道數(shù)為512 的去卷積層將特征圖從1 024×19×19 變換到512×38×38。通過逐元素相加操作與conv3相聚合。
SSD的前端網(wǎng)絡會在6種尺度的特征圖上分別產(chǎn)生錨框,產(chǎn)生的錨框作為默認的候選區(qū)域,用于目標位置和類別的預測。錨框具有多種尺寸和長寬比,但SSDD 中艦船目標的尺寸和長寬比與PASCAL VOC中的目標不同,所以需要統(tǒng)計SSDD 中艦船目標包圍框的尺寸和長寬比,以針對性地改進檢測算法的錨框。
原SSD 論文中最小尺寸為0.2,最大尺寸為0.9,0.2 和0.9 都是相對于原圖像尺寸的比例,第k個尺寸按照下式進行平均取值:
式(1)中:smin表示最小的尺寸;smax表示最大的尺寸;m表示層數(shù),這里是6。
由SSDD數(shù)據(jù)集中艦船目標包圍框長度和寬度統(tǒng)計結(jié)果,將最大尺度從0.9 改成0.3,最小尺度從0.2 改成0.06。長寬比最大最小值從2和0.5改成了4和0.4。
原SSD 論文中,conv3、conv10-2 和conv11-2 有長寬比1、2 和1/2。conv7、conv8-2、conv9-2 有長寬比1、2、1/2、3和1/3。因而SSD一共有8 732 錨框,如表1所示。
根據(jù)SSDD 數(shù)據(jù)集中艦船包圍框長寬統(tǒng)計結(jié)果,設計錨框見表2、3。表2 中將所有的長寬比為2 的改成3,保持總的錨框不變,個數(shù)同樣是8 732 個。
表3 將conv3 和conv7 中的長寬比為2 的改成3,在conv8-2 和conv9-2 增加長寬比4,在conv10-2 和conv11-2增加長寬比3。得到的錨框個數(shù)是38×38×4+19×19×6+10×10×9+5×5×8+3×3×6+1×1×6=9102。
通過以上改進之后,特征圖上產(chǎn)生的錨框會更適合數(shù)據(jù)集SSDD 中的艦船目標,這會在實驗部分進行驗證。錨框個數(shù)增加會提高目標檢測的準確率,但同時也會增加計算量,因而在設計錨框時需要充分權(quán)衡錨框個數(shù)與計算量之間的矛盾。
表1 原SSD論文中的錨框Tab.1 Anchor box in the original SSD
表2 改進的錨框設計(保持錨框個數(shù)不變)Tab.2 Improved anchor designing(keep the number of anchor frames unchanged)
表3 改進的錨框設計(增加錨框個數(shù))Tab.3 Improved anchor designing(increase the number of anchor frames)
本文提出了特征重用和語義聚合算法用于改進經(jīng)典的SSD 檢測算法。現(xiàn)對其在PASCAL VOC 數(shù)據(jù)集上檢測效果進行實驗驗證。實驗過程中采用的是預訓練之后的VGG-16 模型,用NVIDA 1080 GPU 進行訓練,初始學習率為0.001,最大迭代次數(shù)120 000,學習策略在[80 000,100 000,1 200 000]多步下降,采用動量為0.9 的SGD 優(yōu)化,其他參數(shù)與原SSD 論文一致。圖6是訓練損失曲線,可看到算法收斂的很好。
圖6 基于特征重用和語義聚合的SSD的訓練損失曲線Fig.6 SSD training loss curve based on feature reuse and semantic aggregation
對于300×300 像素的圖像,在數(shù)據(jù)集PASCAL VOC 2007 和2012 的訓練數(shù)據(jù)進行訓練,在VOC2007的測試集進行測試,結(jié)果達到了79.0%的mAP,速度達到了51.5FPS(在單個GTX1080顯卡)。通過實驗發(fā)現(xiàn),它能提升對小尺寸目標的檢測效果,并有較好的定位精度。結(jié)果顯示,改進之后的檢測算法能夠在精度與速度之間進行較好的權(quán)衡,它比其他改進版本的SSD效果都要好,例如FSSD、DSSD和StairNet[10-15]。
圖7是3種不同檢測算法在訓練過程中的精度對比。圖中SSD 是指最新版本的代碼實現(xiàn)的結(jié)果,F(xiàn)SSD 是文獻[13]提出的改進算法。從圖7 中可以看到,改進方法能夠快速的收斂,且最終mAP 也是3 種檢測算法中最高的。
圖7 檢測算法性能對比Fig.7 Performance comparison of detection algorithm
表4、5是相關檢測算法的檢測結(jié)果?!?7+12”代表訓練和驗證數(shù)據(jù)集是VOC2007和VOC2012組合而成的,F(xiàn)aster 代表Faster R-CNN 檢測算法,R-101 代表ResNet-101。從表4、5 發(fā)現(xiàn),所提的方法相比于SSD及其改進版本具有最高的mAP,它還會比一些雙階段的檢測算法(如表中的Faster R-CNN)效果都要好。
表6 是不同檢測算法在PASCAL VOC2007 測試集上的結(jié)果。從表6 可以看出,所提出的檢測算法準確率和速度上能夠得到較好的權(quán)衡,它在VOC2007測試數(shù)據(jù)集上能夠達到79.0%的mAP且速度是51.5FPS(單個GTX 1080 顯卡),這是特征重用和語義聚合算法所起到的作用。
表4 PASCAL VOC2007測試集上的結(jié)果(第1部分)Tab.4 PASCAL VOC2007 results in detail(part 1)
表5 PASCAL VOC2007測試集上的結(jié)果(第2部分)Tab.5 PASCAL VOC2007 results in detail(part 2)
表6 不同檢測算法PASCAL VOC2007測試集上的結(jié)果Tab.6 PASCAL VOC2007 test detection results of different detectors
表7是所提出的改進算法(特征重用和語義聚合)在數(shù)據(jù)集SSDD上的效果。其中,SSD1代表只使用語義聚合不使用特征重用,SSD2 代表只使用特征重用不使用語義聚合,Proposed 代表特征重用和語義聚合都使用,表中用的都是表1的錨框配置。
從表7可發(fā)現(xiàn),SSD在SSDD上的AP為77.81%,當只使用語義聚合不使用特征重用時,AP 提升了1.24%,當只使用特征重用不使用語義聚合時,AP 提升了1.77%,二者都用時,AP 提升了2.11%。通過統(tǒng)計單張圖像處理時間發(fā)現(xiàn)沒有得到顯著的提高,平均每幅圖像處理時間從17 ms(SSD)增加到了23 ms(本文所提方法)。
表7 在數(shù)據(jù)集SSDD上特征重用和語義聚合的效果Tab.7 SSDD effect of feature reuse and semantic aggregation
SSD在不同錨框下的檢測性能見表8。從表中可以看到,通過改進錨框,檢測性能也到了提升,尤其是利用了表3 中的錨框配置,不過在增加錨框數(shù)量的同時也會增加算法的計算量,這是須要做好權(quán)衡的。所提的特征重用和語義聚合算法和表3的組合可以得到81.43%的AP,檢測的準確率得到了較大提升。
表8 不同錨框下檢測效果Tab.8 Effect of different anchors frames
圖8是給出的改進算法(包括特征重用、語義聚合和表3 的錨框)的檢測效果,從圖中可以看出相比于Faster R-CNN,SSD更加適合檢測大尺寸的目標,對于靠岸的艦船基本上都能檢測到,如圖8 a)、b)所示,密集排列在碼頭的艦船目標都能區(qū)分開來,如圖8 c)所示,甚至是一些在船塢上不是在海里的艦船目標,如圖8 d)所示,都能成功的檢測到。這對于以CFAR 為主的傳統(tǒng)檢測方法是較難實現(xiàn)的,因為如果利用傳統(tǒng)方法進行檢測,在進行海陸分割的過程中極易把艦船目標看成陸地而漏檢,即使不漏掉,在對圖像進行建模時,也難以建立準確的模型擬合所有的圖像像素分布,這也會導致出現(xiàn)很多漏警和虛警。而SSD算法能夠端到端的對這些復雜背景的目標進行訓練和檢測,能夠適應這些復雜場景,表現(xiàn)出了較大的優(yōu)勢[18]。但SSD檢測算法對小尺寸的目標檢測效果要比Faster RCNN要差一些,如圖8 e)、f)所示。
為了進一步研究檢測算法在數(shù)據(jù)集SSDD上的表現(xiàn),這里給出了一些檢測的失敗案例,如圖9所示。從圖中可以看出SSD對小尺寸目標的檢測效果較差(如圖9 a)、b)、e)所示),甚至是一些在大片海域里的小尺寸艦船目標SSD都無法檢測到,如圖9 c)、d)所示,此時小尺寸目標全部漏掉,這說明SSD算法相對于Faster R-CNN 對小尺寸目標的檢測能力特別差。當目標尺寸小,且所處環(huán)境背景復雜時也很難檢測到目標,如圖9 e)、f)所示,這是因為強散射目標對小尺寸目標有干擾作用。
之所以SSD 相比于Faster R-CNN 對小尺寸目標檢測效果差,是因為以Faster R-CNN為代表的雙階段檢測算法包括候選區(qū)域生成和邊框分類及調(diào)整2個過程。
圖8 SSD部分檢測結(jié)果示例Fig.8 Some results of SSD
圖9 SSD在數(shù)據(jù)集SSDD上的部分檢測失敗案例Fig.9 Some failure cases of SSD on SSDD
Faster R-CNN經(jīng)過第2個過程使對邊框的分類和定位更加準確,而SSD 只有一個過程,而且這個過程只相當于Faster R-CNN的第1步RPN。SSD的預測結(jié)果是從特征圖的錨框?qū)奶卣髦苯拥玫降?,而Faster R-CNN 會對上面步驟得到的特征圖進過RoI 池化之后進一步的處理。所以,對小尺寸的目標檢測的更準確。另一方面,如果SSD檢測算法中所有的錨框都沒覆蓋某個艦船,這時候它就不會被檢測到,而當較大的錨框包含了某個艦船,這樣就會使目標特征微弱,其包含目標的概率也不高。Faster R-CNN檢測算法的RoI池化會對艦船的候選框進行多個子區(qū)域的劃分,這樣小尺寸的目標的特征會被放大,其特征會更明顯,所以對小目標的效果會更好。SSD在計算速度上具有較大的優(yōu)勢,同時還能適應較多的復雜背景[19]。
本文首先介紹了SSD 檢測算法的原理和檢測流程;然后,針對SSD 檢測算法在SAR 圖像艦船目標檢測時對前端網(wǎng)絡特征利用不充分的問題,提出了基于特征重用和語義聚合的SAR 圖像艦船目標檢測算法。特征重用算法將特征圖按照通道分成2 部分:一部分被卷積處理進行參數(shù)學習,另一部分直接輸入到下一階段通過拼接的方式重新利用,這可在進行參數(shù)學習的同時減小參數(shù)量和計算量。語義聚合算法通過融合位置信息豐富的底層特征和語義信息豐富的高層特征,提高了區(qū)分和定位艦船目標的能力;之后,根據(jù)SSDD 中艦船目標尺寸和長寬比的不同,將錨框的尺寸減小,長寬比增大,提升了對SSDD中艦船目標的適應性;最后,在以上方法和策略的基礎上,提出了基于特征重用和語義聚合的SAR 圖像艦船目標檢測算法,通過CNN 網(wǎng)絡結(jié)構(gòu)的構(gòu)建、網(wǎng)絡模型的訓練,SAR圖像艦船目標檢測3個步驟,完成對實測SAR圖像艦船目標的檢測。在數(shù)據(jù)集PASCAL VOC 和SSDD中分別達到79.0%和81.43%的檢測準確率。