張 陽,劉小芳,周鵬成
(四川輕化工大學 計算機科學與工程學院,四川 宜賓 643000)
在海洋資源管理、領域安全、船上作業(yè)和海上救援等方面,海上船舶檢測有著非常重要的意義,但是在自然因素不可控的條件下,采取指派海警船或基于可見光的船舶目標監(jiān)測等方式難以取得成效。衛(wèi)星合成孔徑雷達(Synthetic Aperture Radar,SAR)是一種在能見度極低的惡劣天氣條件下高分辨率成像雷達,具有全天時、全天候和多維度獲取信息等優(yōu)點[1],為海洋上全域的船舶檢測解決數(shù)據和技術提供等問題。由于SAR圖像復雜背景、強散射雜波的干擾、目標密集等問題,SAR圖像船舶目標檢測難度很大。
目前SAR圖像船舶檢測方法[2-3]主要有3類:傳統(tǒng)類目標檢測算法、基于機器學習的目標檢測算法[4]和基于深度學習的目標檢測算法。其中,基于深度學習的檢測算法憑借高效率、高準確率和強泛化能力等優(yōu)勢,在SAR圖像目標檢測領域中已經得到廣泛應用。文獻[5]針對復雜大場景設計了一種基于級聯(lián)網絡的艦船目標檢測框架,進行SAR圖像海陸分割和塊區(qū)域篩選,采用CP-FCOS網絡進行目標檢測。文獻[6]針對SAR圖像艦船目標誤檢或漏檢情況,提出了一種基于融合注意力機制與改進的SSD算法的目標檢測方法,引入ResNet網絡并改進提供更多的語義和細節(jié)信息,融合通道和空間注意力抑制海雜波干擾,改進損失函數(shù)解決漏檢問題。文獻[7]針對數(shù)據集不充分和模型魯棒性差等問題,提出了一種改進YOLOv3的SAR圖像艦船目標檢測算法,引入ATSS正負樣本分配方法提高正負樣本選擇的質量,設計基于特征層的錨框超參數(shù)優(yōu)化方法,使錨框更接近數(shù)據集樣本分布。文獻[8]提出了一種基于YOLO框架的無錨框SAR圖像艦船目標檢測方法,采用anchor free方法解決YOLOv3需要預設錨框的弊端,特征提取網絡CSPDarknet53中引入注意力機制和改進FPN網絡增大感受野。文獻[9]針對艦船方向任意和密集排列造成的漏檢問題,提出了多尺度特征增強的艦船目標檢測算法。文獻[10]提出了一種SAR圖像旋轉檢測方法,基于YOLOv4-CSP改進先驗框設計和邊框回歸公式,提出基于旋轉邊界框外接圓和交并比的損失函數(shù),引入轉移注意力模塊。文獻[11]提出了基于語義分割實現(xiàn)的檢測、分割一體化SAR圖像艦船無錨框目標檢測方法,通過語義分割實現(xiàn)的目標檢測可以避免檢測網絡的復雜解碼過程。文獻[12]針對艦船目標檢測框高長寬比和密集排列問題,提出了一種基于改進YOLOv5的目標檢測方法,優(yōu)化損失函數(shù)抑制高長寬比和引入坐標注意力機制。
以上方法基本都是使用一階段的目標檢測算法,一階段目標檢測算法檢測速度快,但是檢測精度比較低。本文基于二階段的Faster R-CNN算法進一步研究,卷積層特征提取網絡采用新網絡架構——Swin Transform,同時引入了多尺度融合結構;生成的區(qū)域建議特征圖使用新的池化操作讓目標定位更準確;在骨干網絡最后引入可變形卷積為區(qū)域建議特征圖融入全局特征信息;引入Focal Loss損失函數(shù)作為分類損失函數(shù)降低損失。
Faster R-CNN算法[13]分為2個階段:第1階段在圖像中生成檢測目標的錨框;第2階段對錨框內的目標進行分類。原始圖像輸入卷積層(骨干網絡)進行特征提取生成特征圖,通過區(qū)域候選網絡(Region Proposal Network,RPN)結構生成區(qū)域建議;Fast R-CNN把區(qū)域建議特征映射到特征圖中;最后由全連接層進行邊框回歸和分類得到檢測結果,具體目標檢測網絡結構如圖1所示。
圖1 Faster R-CNN目標檢測網絡結構Fig.1 Faster R-CNN object detection network structure
Faster R-CNN摒棄了傳統(tǒng)耗時長的滑動窗口和R-CNN使用的Select Search產生候選框的方法,提出了一種快速準確生成候選框的RPN算法。卷積層提取的特征圖通過3×3卷積的滑動窗口進行滑動,生成一個256維的特征向量,把該特征向量分別送入分類層和回歸層進行背景、目標二分類和區(qū)域建議準確定位?;瑒哟翱谟衚個錨框,分類層有2k個參數(shù)包含目標和背景的得分,回歸層有4k個參數(shù)包含候選框左上和右下的橫縱坐標信息。Faster R-CNN中按照1∶1,1∶2和2∶1共3種長寬比和3種面積大小產生9個預設大小錨框,RNP生成候選區(qū)域過程如圖2所示。
圖2 RPN結構示意Fig.2 RPN structure diagram
Faster R-CNN通過邊框回歸實現(xiàn)錨框近似真實框,回歸過程如圖3所示。
圖3 邊框回歸示意Fig.3 Box regression diagram
若預設錨框A=(Ax,Ay,Aw,Ah)和真實框G=(Gx,Gy,Gw,Gh),邊框回歸試圖找到一種變換使得F(Ax,Ay,Aw,Ah)=(G′x,G′y,G′w,G′h),其中(G′x,G′y,G′w,G′h)≈(Gx,Gy,Gw,Gh)。若A映射到預測框G′,則有先平移Ax和Ay,后縮放Aw和Ah:
G′x=Aw·dx(A)+Ax,
(1)
G′y=Ah·dy(A)+Ay,
(2)
G′w=Aw·edw(A),
(3)
G′h=Ah·edh(A),
(4)
(5)
(6)
式中,x,y,w,h代表預測框的中心橫縱坐標和寬高;下標a代表預設錨框;上標*代表真實錨框。當需要回歸的邊框位置接近真實框時,上述的變換F近似認為是線性變換,否則就是復雜的非線性變換。
本文在Faster R-CNN算法基礎上進行網絡結構改進,主要有以下4點改進:骨干網絡不再使用卷積神經網絡,而是使用Swin Tansformer作為骨干網絡提取特征,同時對Swin Tansformer四個階段生成的特征圖進行多尺度融合;采用更加準確的定位操作ROI Align替換了原來的ROI Pooling操作;在骨干網絡后引入可變形卷積(Deformable Convolution,DC)生成的特征圖,與RPN生成的區(qū)域建議特征圖相融合;分類損失函數(shù)由交叉熵損失函數(shù)改用為Focal Loss損失函數(shù)。改進Faster R-CNN網絡結構如圖4所示。
圖4 改進Faster R-CNN網絡結構Fig.4 Improved Faster R-CNN network structure
2.1.1 骨干網絡結構改進
Faster R-CNN卷積層一般選取常用的卷積網絡VGG16,ResNet50和ResNet101等作為骨干網絡提取特征,本文引入一種新的架構——Swin Transformer與特征金字塔(Feature Pyramid Network,F(xiàn)PN)[14]融合的網絡結構作為骨干網絡。Swin Transformer共有4種不同大小的模型,本文選擇最輕量的模型Swin-T;FPN結構中低層位置信息和高層語義信息結構可以加強特征表達,增強小目標特征映射分辨率,可以改善SAR圖像中的小目標檢測效果;Swin-T共有4個階段,每個階段生成的特征圖進行1×1卷積,然后進行上采樣多尺度融合,最后把融合生成不同大小的特征圖進行3×3卷積輸出,具體網絡結構如圖5所示。
圖5 Swin-T與FPN多尺度融合網絡結構Fig.5 Swin-T and FPN multi-scale fusion network structure
Swin Transformer[15]是在ViT的基礎上提出,該架構先驗引入層次性、局部性和平移不變性等優(yōu)良特性,其采用移動窗口的操作使相鄰的2個窗口能相互交互從而達到具有全局信息建模的能力,且計算量大幅度降低。Swin Transformer Blocks結構如圖6所示。
圖6 2個連續(xù)的Swin Transformer Blocks結構Fig.6 Two successive Swin Transformer Blocks structure
第一部分由2個層歸一化(Layer Normalization,LN)、1個窗口多頭自注意力機制(Window based Multi-head Self-Attention,W-MSA)和1個多層感知機(Multilayer Perceptron,MLP)組成,其中W-MSA模塊將圖像劃分為不重合的窗口,能降低模型的計算量。第二部為了解決不重合的窗口造成的信息交流問題,將第一部分的W-MSA改為了滑動窗口多頭自注意力機制(Shift Window based Multi-head Self-Attention,SW-MSA),剩余部分仍然使用LN,MLP進行殘差連接。輸入特征Z從第l-1層到第l+1層計算過程如下:
(7)
(8)
(9)
(10)
2.1.2 ROI Align池化
Fast R-CNN結構采用ROI Pooling操作提取區(qū)域建議特征生成固定大小的特征圖,送入到全連接層進行分類、邊框回歸完成目標檢測。RPN結構生成的區(qū)域建議大小不一樣,通過ROI Pooling操作分塊池化固定成7×7大小的特征圖會破壞原始圖像的結構信息,造成目標定位不精確問題[16]。本文采用多尺度融合FPN結構生成的特征圖大小不一致會造成極端長寬比,映射結果偏差很大導致特征丟失。在SAR圖像中有許多小目標船舶,ROI Pooling的偏差會對小目標的定位造成更大的誤差。本文采用ROI Align操作[17]很好地減小量化誤差,使用雙線性插值法計算中心位置的像素,圖像上坐標像素點是浮點數(shù),不需要去做量化操作取整[18]。具體過程:遍歷每一個候選區(qū)域,保持浮點數(shù)邊界不做量化;將候選區(qū)域按輸出要求大小平均劃分,單元邊界也不做量化;若采樣帶點數(shù)是4,在每個單元中計算采用雙線性插值法計算均分成4個區(qū)域的幾何中心值,然后進行最大池化操作[19]。ROI Align池化過程如圖7所示。
圖7 ROI Align池化過程Fig.7 ROI Align pooling process
2.1.3 引入可變形卷積
由于SAR圖像中的船舶形狀不規(guī)則,本文在骨干網絡后加入一個可變形卷積可以更好地學習特征提取的位置,能夠讓卷積的區(qū)域集中在船舶上??勺冃尉矸e生成的特征圖按順序經過3×3卷積、ROI Align操作后與RPN經過ROI Align操作生成的區(qū)域建議特征圖按位相加,區(qū)域建議特征引入全局信息,可以緩解船舶目標檢測受復雜背景和雜波干擾等問題??勺冃尉矸e[20]通過一個標準的卷積生成偏差特征,偏差特征與輸入特征圖尺寸保持一致,輸入特征與偏移特征疊加后通道數(shù)是2N,這2個特征卷積核參數(shù)通過雙線性插值之后反向傳播法學習得到,可變形卷積過程如圖8所示。
圖8 可變行卷積過程示意Fig.8 Deformable convolution process
卷積核定義為:
R={(-1,-1),(-1,0),…,(0,1),(1,1)},
(11)
標準卷積得到特征矩陣:
(12)
可變形卷積核得到矩陣:
(13)
式中,pn是對R中所有位置的枚舉;Δpn代表偏移矩陣。
Faster R-CNN算法總損失包括回歸損失和分類損失2部分。分類損失采用交叉熵損失函數(shù)L作為分類損失函數(shù):
(14)
Lcls=-[y·ln(pi)+(1-y)·ln(1-pi)],
(15)
式中,N代表樣本數(shù)量;pi表示第i個anchor預測為真實標簽的概率;y代表真實標簽(正樣本時為1,負樣本時為0)。RPN算法生成的候選框正樣本數(shù)量是低于負樣本的,產生訓練樣本類間不平衡的問題。樣本分布失衡,當負樣本遠遠大于正樣本時,負樣本在損失函數(shù)中處于絕對優(yōu)勢方,模型學習到的樣本特征有限,泛化能力差。針對正負樣本不平衡的問題,引入Focal Loss損失函數(shù)[21]計算分類損失:
(16)
式中,α∈[0,1]代表正負樣本權重參數(shù);γ>0代表可調節(jié)因子。Focal Loss損失函數(shù)α和γ兩個參數(shù)可以很好地平衡正負樣本以及讓模型減少易分類的損失。本文設置α為0.25,γ為2。
本文實驗基于paddlepaddle2.2.0框架,Tesla V100顯卡(32 GB),RAM(32 GB),CUDA10.1環(huán)境完成。Faster R-CNN采用ResNet50作為骨干網絡進行實驗,加載COCO2017數(shù)據集預訓練權重,使用Momentum方法對網絡參數(shù)進行迭代更新,初始動量參數(shù)設為0.9,初始學習率0.01,批次大小設為6,訓練50個epoch。在此基礎上進行改進,與原始網絡進行對比。
本文實驗采用的數(shù)據集為中國資源衛(wèi)星應用中心提供的102景GF-3衛(wèi)星數(shù)據及歐洲航天局提供的108景哨兵1號衛(wèi)星數(shù)據,標注數(shù)據由中國科學院空天信息創(chuàng)新研究院王超研究員團隊制作和提供。該數(shù)據集尺寸為256 pixel×256 pixel,共21 504張圖片,按照7∶3的比例把數(shù)據集隨機劃分成訓練集和測試集,訓練集15 053張,測試集6 451張。
本文使用平均準確率(Average Precision,AP)作為實驗結果評價指標。AP綜合考慮到準確率和召回率2個指標,計算公式為:
(17)
式中,P為準確率;R為召回率。P和R計算公式為:
(18)
式中,TP代表模型預測為正樣本的正樣本;FP代表模型預測為正樣本的負樣本;FN代表模型預測為負樣本的正樣本。
為了驗證本文Faster R-CNN網絡改進的有效性,在102景GF-3衛(wèi)星及108景哨兵1號衛(wèi)星融合的數(shù)據集上進行實驗。策略1使用Swin-T與FPN融合的網絡結構作為骨干網絡進行實驗;策略2使用ROI Align操作替換了ROI Pooling操作;策略3在骨干網絡最后引入可變形卷積生成的特征圖,經過ROI Align操作與RPN結構生成的特征圖經過ROI Align操作按位相加。這些改進策略相對于原始Faster R-CNN算法檢測精度對比如表1所示。
表1 不同改進策略實驗結果對比Tab.1 Comparison of experimental results in different improvement strategies
AP[0.5∶0.95](Box AP)表示IOU閾值大于[0.5∶0.95]([0.5∶0.95]表示0.5~0.95以0.05的步長)的平均檢測精度。由表1可知,采用骨干網絡Swin-T與多尺度網絡FPN融合的網絡結構作為骨干網絡之后(改進2),與原始Faster R-CNN相比Box AP提高3.2%。原始Faster R-CNN網絡結構用ROI Align替換ROI Pooling之后(改進1),Box AP提高0.6%;在采用骨干網絡Swin-T與FPN融合的網絡結構的基礎上用ROI Align替換ROI Pooling之后(改進3),與原始Faster R-CNN相比Box AP提高4%;ROI Pooling操作2次量化操作有偏差導致小目標的船舶定位誤差很大,ROI Align在一定程度上解決了該問題。在改進3的基礎上引入可變形卷積,為RPN生成的候選區(qū)域特征引入全局信息,Box AP提高了5.7%,改善了近岸復雜場景和雜波干擾情況下的船舶檢測。本文改進網絡結構與原始Faster R-CNN算法AP曲線對比如圖9所示,本文算法在整個訓練過程AP基本都高于Faster R-CNN,算法收斂后大幅度領先Faster R-CNN算法。
圖9 AP曲線對比Fig.9 Comparison of AP curves
為了驗證分類損失引入Focal Loss損失函數(shù)的有效性,在原始Faster R-CNN算法基礎上使用Focal Loss損失函數(shù)作為分類損失函數(shù),檢測結果對比如表2所示。由表2可知,Box AP提高了0.7%,在本文改進網絡結構的基礎上使用Focal Loss損失函數(shù)作為分類損失函數(shù),Box AP提高了0.5%。分類損失曲線對比如圖10所示,總損失曲線對比如圖11所示。由圖10和圖11可知,改進網絡結構后的Faster R-CNN算法引入Focal Loss損失函數(shù)后,在訓練過程分類損失更低且收斂更快,總損失也降低。Focal Loss損失函數(shù)可以很好地抑制正負樣本分布失衡導致負樣本分類損失變大的問題,提高模型的泛化能力。
表2 引入Focal Loss損失函數(shù)檢測結果對比Tab.2 Comparison of detection results by introducing Focal Loss function
圖10 分類損失曲線對比Fig.10 Comparison of classification loss curves
圖11 總損失曲線對比Fig.11 Comparison of total loss curves
為了說明本文算法的優(yōu)越性,部分有代表性的SAR圖像船舶檢測結果如圖12所示。其中,近岸港口和近島嶼的情況下檢測結果如圖12(a)和(b)所示,可以看出原始Faster R-CNN算法在面對復雜的近岸港口和近島嶼情況時會出現(xiàn)很多誤檢的目標;在圖12(c)所示的目標密集較小情況下,原始Faster R-CNN算法檢測時也會出現(xiàn)誤檢的情況;在圖12(d)和(e)所示的面對背景雜波干擾和臨近目標影響的情況下,給檢測帶來了很大的難度,特別是圖12(e)中出現(xiàn)大量誤檢的目標,檢測效果并不理想。在面對近岸和近島嶼復雜的背景、目標密集且小以及背景雜波干擾等情況下,本文算法泛化能力更強,發(fā)生誤檢的情況更少。本文算法引入多尺度融合和可變形卷積,提升了SAR圖像中復雜背景、目標密集和小目標情況下的船舶檢測效果。
(a) 近岸
(b) 近島嶼
(c) 密集目標
(d) 背景雜波
(e) 臨近物體干擾圖12 檢測結果對比Fig.12 Comparison chart of detection results
不同算法在102景GF-3衛(wèi)星及108景哨兵1號衛(wèi)星的數(shù)據集上的檢測精度對比如表3所示。
表3 不同算法檢測精度和速度結果對比Tab.3 Comparison of detection average precision and speed results of different algorithms
可以看出,本文算法在該數(shù)據集上精度最高,充分說明本文算法在檢測精度方面的優(yōu)越性,相對于原始Faster R-CNN算法檢測速度也有大幅度提升。FCOS屬于anchor free類型的算法,其余算法都屬于anchor類型的算法;FCOS算法檢測精度低于anchor類型的算法,檢測速度也低于一階段算法。SSD和YOLO系列算法都屬于一階段算法,在檢測速度方面有很大優(yōu)勢,但是檢測精度偏低。本文算法與Mask R-CNN和Cascade R-CNN相比,檢測精度仍有5.7%和4.9%的領先。
在SAR圖像的船舶檢測中,本文提出了一種改進Faster R-CNN算法。Swin Transformer架構中的多頭注意力機制可以關注更多上下文信息,對復雜環(huán)境下的船舶特征更好地提?。籖OI Align操作可以改善小目標定位偏差較大的情況;船舶的形狀不規(guī)則,可變形卷積提取特征圖為區(qū)域建議生成的特征圖引入全局信息;Focal Loss損失函數(shù)作為分類損失可以有效平衡正負樣本的損失,降低分類損失以及總損失。實驗結果表明,本文算法在原始算法基礎上檢測精度有很大提升,AP[0.5∶0.95]達到61.3%;同時也優(yōu)于目前的主流目標檢測算法。本文算法基于二階段的目標檢測算法在檢測精度上有很大優(yōu)勢,但是檢測速度較慢。在未來的研究中仍需對模型進一步優(yōu)化,例如,優(yōu)化RPN算法、嘗試使用輕量級的骨干網絡提升檢測速度或使用輕量級的多尺度融合網絡結構等。