?

錨框策略匹配的SSD飛機遙感圖像目標檢測

2022-11-15 16:17王浩桐郭中華
計算機與生活 2022年11期
關鍵詞:尺度樣本飛機

王浩桐,郭中華,2+

1.寧夏大學 物理與電子電氣工程學院,銀川750021

2.寧夏大學 沙漠信息智能感知重點實驗室,銀川750021

目標檢測是計算機視覺領域的基本任務之一,其中飛機遙感圖像目標檢測具有重要的研究價值和應用價值。在軍用領域,實時檢測敵方飛機位置能夠使我軍時刻掌握敵軍飛機的動態;在民用領域,實時檢測地面飛機的位置信息對交通及物資調用等具有重要意義。因此,如何在復雜背景條件下的遙感圖像中實現對飛機目標高精度實時檢測成為了極具挑戰的課題[1]。

飛機遙感圖像目標檢測的核心任務是判斷遙感圖像中是否存在飛機目標并對其進行檢測、特征提取、分類和定位。由于遙感觀測平臺存在一定的特殊性,導致飛機遙感圖像時常會包含復雜的地物背景,同時飛機遙感目標的尺寸、類型、姿態也往往具有不確定性。在飛機目標檢測領域,傳統的飛機目標檢測算法,如邊緣提取法和圓周頻率濾波法,檢測結果極易受到人工設計部分的干擾且檢測過程過于繁瑣,并不適用于遙感圖像的飛機目標檢測[2]?,F今,得益于硬件GPU的高性能計算,基于深度學習的目標檢測模型被廣泛應用于遙感圖像領域?;诰矸e神經網絡(convolutional neural network,CNN)[3]的目標檢測算法主要分為兩類:一類是雙階段目標檢測算法,如Fast R-CNN[4]、Faster R-CNN[5]等;另一類是單階段目標檢測算法,如YOLO(you only look once)[6]、SSD(single shot multibox detector)[7]等。但以上算法常用于檢測日常生活中的通用物體,對尺度大小不一和背景復雜的遙感圖像難以進行有效的飛機目標檢測。如果直接將現有的深度學習目標檢測算法應用到遙感影像上進行飛機目標檢測,顯然不能取得與自然光學圖像下相同的檢測精度?;诖?,大量學者對以上深度學習目標檢測算法進行改進,將其運用于遙感影像中的飛機檢測[8]。文獻[9]采用改進錨框寬高比的方法來更加貼合遙感飛機的實際尺寸,雖然這種方式可以一定程度上提高錨框匹配到真實目標的概率,但是忽略了不同檢測層之間錨框鋪設密度不同的問題。由于飛機遙感圖像存在密集和小尺度的現象存在,錨框鋪設密度的不同會導致不同尺度的錨框匹配到真實目標的數量差距較大,同時也不利于對小尺度目標的檢測。文獻[10]采用錨框與真實目標的交并比大于閾值的方式來判定是否為正樣本,此種方法和SSD 算法中的錨框匹配策略是一致的,但這種匹配策略會容易發生不同尺度錨框匹配到真實目標的數量差距過大的情況。數量差距過大會不利于網絡的有效訓練,導致檢測精度降低。

針對以上問題并結合SSD 算法的特點,本文提出了一種改進的SSD 目標檢測算法(anchor match design single shot multibox detector,AMDSSD)。本文的主要工作包括以下三點:(1)用改進以后的深度殘差網絡(deep residual network,ResNet)[11]替換SSD算法中的VGG(visual geometry group)[12]特征提取網絡,并且額外增加一個包含兩種尺度的特征層用以對極小尺度遙感目標的檢測[13]。(2)結合飛機遙感圖像的特點,重新設計SSD算法中的錨框尺度、錨框比例。而后對特征層進行錨框尺度密集化操作,使得每一個特征層的錨框鋪設密度基本一致。(3)在正負錨框樣本的判別過程中重新設計錨框匹配策略,使得不同尺度正樣本錨框數量趨向于總體正樣本平均值。一定程度上用以解決不同尺度正樣本錨框數分布不均勻的問題。

1 SSD目標檢測算法

SSD 目標檢測算法是Liu 等在2016 年提出的一種目標檢測算法。這是一種端對端的單階段目標檢測算法,相比Faster R-CNN 其檢測效率更高,相比YOLO 其檢測精度更高。該算法的優勢主要有三方面:其一,采用多種尺度特征進行目標檢測。Conv4_3、FC7 層在原圖上的感受野較小主要用于檢測較小目標物體;而Conv8_2、Conv9_2、Conv10_2、Conv11_2在原圖上的感受野較大主要用來檢測較大目標物體。其二,設置不同高寬比例的錨框用于更好地匹配目標。其三,使用了多種數據增強的方法,包括水平翻轉、裁剪、放大和縮小等。主要目的是為了使得該算法對輸入的不同大小和不同形狀的目標具有更好的魯棒性。本文以輸入尺寸為300×300 的SSD 網絡為例,如圖1所示。

圖1 SSD算法網絡結構圖Fig.1 Framework diagram of SSD algorithm

2 改進的SSD目標檢測算法(AMDSSD)

由于飛機遙感圖像存在目標尺寸小且數目繁多的情況,給目標的分類與定位帶來了挑戰。在SSD算法中主要負責檢測小型目標的是下采樣倍數為8的Conv4_3層,一些尺度在8個像素左右的極小尺度目標受限于網絡結構的原因基本不可能被檢測到。同時SSD最初是被用來檢測通用物體的目標檢測算法,對于飛機這一固定的目標,原算法的一系列錨框設計體系顯然已經不適合。最后,SSD算法中的錨框匹配策略容易發生不同尺度正樣本錨框數量差距過大的情況,這是不利于網絡整體訓練的。

為解決以上問題,以SSD目標檢測算法為基礎,本文提出了一種用于飛機遙感圖像的目標檢測算法AMDSSD,該算法相比SSD算法有以下三個改進點,在增加少量訓練參數的情況下,既可以提升算法的檢測精度,又可以保留SSD算法的實時檢測性。

2.1 骨架網絡的替換

ResNet 是一種用于特征提取的卷積神經網絡。因為其具有高效性和實用性廣泛用于計算機視覺目標檢測領域。從以往的經驗來看,網絡的深度對模型的性能至關重要,因此當模型更深時理論上可以取得更好的結果。研究表明,一味地追求網絡深度,網絡準確度會出現飽和,甚至出現下降,這種現象被稱為網絡退化。

ResNet 提出了殘差結構來解決網絡退化的問題,殘差結構如圖2(a)所示。

圖2 殘差結構Fig.2 Residual structure

在殘差結構中,當輸入為x時,其學習到的原始特征記為H(x),殘差特征記為F(x),則網絡學習到的殘差特征可以表示為:

和原始特征H(x)相比,深度殘差網絡更容易學習到殘差特征F(x),當F(x)為0 時,由殘差結構組成的網絡層僅僅只是做到了恒等映射,至少網絡的性能不會因層數變深而下降。但實際上殘差特征F(x)不會為0,殘差結構會在輸入特征基礎上學習到新的特征,從而擁有更好的性能[14]。由文獻[10]可知,ResNet101 與VGG16 兩種特征提取網絡以Faster R-CNN作為目標檢測算法的成績如表1所示。

表1 不同特征提取網絡在PASCAL VOC 2007/2012上的檢測結果Table 1 Test results of different feature extraction networks on PASCAL VOC 2007/2012

本文改進后的殘差結構如圖2(b)所示,相比原殘差結構增加了批量歸一化(batch normalization,BN)[15]和Leaky-ReLU[16]。BN的作用是為了對輸出特征層進行歸一化處理,加快網絡的收斂速度,同時也能一定程度上解決梯度爆炸或者梯度消失導致網絡無法訓練的問題。ReLU 激活函數的特點是當輸入小于0 時,輸出結果恒為0。這樣的結果會導致網絡可能會丟失一部分特征信息,個別情況下會導致對應權重無法更新從而無法學習到有效的特征。而Leaky-ReLU 激活函數即使在輸入小于0 時,仍然會有不為0的輸出,使得模型能夠持續更新權重和學習特征。

通過以上分析可知,ResNet 相比SSD 算法中的骨架網絡(VGG16)有著更好的特征提取能力。在模型大小與計算量方面,ResNet50 在分類精度方面與ResNet101 相差不多的情況下,計算量遠小于后者。因此在改進的過程中,首先將SSD 原本的骨架網絡VGG16替換為網絡層數相對更深且計算量相對較低的ResNet50。為了讓ResNet50網絡適合作為SSD算法的骨架網絡,現對ResNet50網絡進行部分調整,刪除和添加一些層作為網絡輸出的特征層。

在SSD 算法中有6 個尺度和通道數都不相同的輸出特征層。為了與SSD算法的輸出特征層相匹配,對于輸入尺寸為300×300×3的ResNet50,對Conv4_x的第一個殘差結構進行修改,將短路連接(shortcut connection)上的卷積核的步長由2修改為1,Conv4_x的輸出就變成了38×38×1 024。將其作為SSD 算法中的第二個輸出特征層(Feature map 2),與修改前的輸出結果(38×38×512)相比,可以發現輸出特征層的通道數增加了一倍,得益于殘差結構的優點,輸出特征層可以學習到的特征信息量變得更豐富,改進后的Conv4_x結構如圖3(a)所示,BlockX(X:2、3、4、5、6)由圖2(b)組成。當輸入尺寸為300×300×3 時,Conv5_x 的特征輸出層尺寸和SSD 算法的第三個特征輸出層尺寸不一致,故刪除ResNet50 網絡里Conv4_x之后的層結構,額外設計了5個輸出特征層Feature map(3~7)。在每次縮小輸出特征層尺寸前使用1×1 的卷積核重新聚合前層的特征信息并調整通道數,之后用3×3 的卷積核縮小輸出特征層的尺寸,循環此操作達到多尺度輸出特征層的結果。在飛機遙感圖像中時常會出現一些尺度極小的飛機目標,負責檢測小型目標的Feature map 2層的下采樣倍數為8,會導致一些極小目標無法被網絡檢測出來從而導致檢測精度降低。例如面積為8×8 像素的飛機目標通過下采樣倍數為8的網絡時,目標的特征信息可能只會保留1到2個像素,想要在特征信息如此少的情況下進行目標檢測無疑是很困難的。為了提高極小目標的特征信息提取量,額外添加一個下采樣倍數為4的輸出特征層(Feature map 1)用以檢測極小的飛機目標。

Feature map(1~7)是改進后的殘差模塊與額外添加層的輸出結果,因而可以在保證模型訓練收斂的同時使特征提取網絡具有更好的語義抽象能力。改進以后的ResNet50 如圖3(b)所示,改進后的網絡整體結構如圖3(c)所示。

圖3 ResNet50替換VGG16的網絡結構圖Fig.3 Network structure diagram after ResNet50 replaces VGG16

2.2 錨框體系的重新設計與錨框密集化

錨框尺度大小和比例是否合適直接影響著檢測精度的高低,其中錨框尺度大小關聯著各特征層實際感受野的大小。據文獻[17]可知,在理論感受野的區域中并不是每一個像素都對輸出單元有相同的貢獻。實際上,理論感受野中的像素對輸出單元的貢獻是一個高斯分布,即感受野中心區域部分貢獻較大,越往邊緣貢獻越小。文獻[17]還使用了CamVid(Cambridge-driving labeled video database)數據集訓練了一個用于分割任務的卷積模型,作者嘗試從輸出映射的中心像素向網絡反向傳播一個梯度,并將所有其他梯度設置為0,然后檢查應用于輸入層的梯度。這個模型包括4個下采樣操作,每個操作的步長為2。由于這些下采樣操作,輸出是輸入大小的1/16。對于該模型,頂層卷積層單元的理論感受野為505×505。在訓練開始時有效感受野僅得到直徑為100的一部分。然而在訓練的過程中,有效感受野會有一定的增加,在訓練的最后階段有效感受野的直徑達到了150,理論感受野的變化如圖4所示。經過計算,有效感受野約占理論感受野的20%~30%。

圖4 有效感受野變化示意圖Fig.4 Schematic diagram of effective receptive field

鑒于理論感受野的每一個像素會有不同的輸出貢獻,為了使之輸出貢獻最大化,即神經元將有更多的路徑來傳播更加有效的信息。將從最后一層的中心像素的梯度傳播回所有可能的路徑,使得模型的梯度有更大的幅度。由以上內容分析可知,將錨框尺度大小設置為理論感受野大小的20%~30%,不僅有利于網絡正向傳播計算損失,還可以增大反向傳播的梯度回傳和加速損失函數快速收斂,從而間接提高網絡的檢測精度。

錨框的寬高比例關聯著檢測目標的實際尺寸,據文獻[18]可知,常見不同型號的飛機長寬比約為0.6~1.6。除Feature map 1 以外,將錨框的寬高比設置為Feature map 1 識別的目標尺度極小,因此錨框寬高設置為比例僅為1。由于特征提取網絡被更換為改進后的ResNet50,網絡的各個特征層的理論感受野也發生了變化,理論感受野計算公式如式(2):

其中,lk-1為第k-1 層對應的理論感受野大小,fk為第k層的卷積核大小或者是池化層的池化尺寸大小。由式(2)可計算出特征提取網絡被更換后的各特征層的理論感受野。而后根據各特測層的錨框尺度和下采樣倍數可計算出錨框的鋪設密度,這里用d表示錨框的鋪設密度,c和p分別表示錨框尺度和下采樣倍數(錨框鋪設步長)。錨框的鋪設密度計算公式如式(3):

經過式(2)和式(3)的計算可得到重新設計以后的錨框相關信息,如表2所示。

表2 錨框的相關信息Table 2 Information about anchor frame

由表2分析可知,負責檢測小尺度目標的Feature map 1的鋪設密度與其他各層存在明顯差異,這種差異會導致不同尺度的錨框匹配到真實目標的數量差距較大,不利于對小尺度目標的檢測。同時Feature map 1 錨框尺度為8 對應的鋪設密度過低,造成該尺度的錨框匹配到正樣本數量過少。為解決以上問題,本文受文獻[19]的啟發,在此基礎上設計了一種錨框密集化的操作。該方法可以提高Feature map1錨框的鋪設密度,能夠讓特征層上1個特征像素點關聯多個錨框從而提高該尺度正樣本錨框的數量。具體操作如圖5所示,其中正六邊形在原圖上經過的每一個像素區域表示輸出圖像1 個特征像素點在原圖上的理論感受野范圍,示意圖上的錨框僅代表錨框鋪設的位置,不表示具體錨框大小。

圖5 錨框密集化示意圖Fig.5 Schematic diagram of anchor frame densification

通過對比錨框密集化前后的示意圖可以發現,Feature map 1 上尺度大小為8 的錨框鋪設密度增加了2 倍,由最開始的1 個特征像素點關聯1 個錨框變化到關聯4個錨框。另外,Feature map 7雖然錨框鋪設密度低,但是該層是用來檢測超大型目標的檢測層,在實際的飛機遙感圖像中很少會有數量多且體型特別大的飛機目標,因此不做錨框密集化操作,用以減少不必要的訓練參數,提高網絡的檢測速度。

2.3 錨框的策略匹配

SSD 算法中采用錨框與真實目標的交并比大于閾值的方式來判定是否為正樣本錨框,這種錨框匹配策略會容易發生不同尺度錨框匹配到真實目標的數量差距過大的情況,這種差距過大的情況不利于網絡的有效訓練。如圖6所示,其中較大和較小的矩形框代表不同尺度的錨框。

圖6 錨框策略匹配前的結果Fig.6 Results before anchor box strategy matching

如果錨框的鋪設密度相等或者非常接近,那么每一種接近錨框尺度的飛機目標更容易被匹配到相應尺度的錨框,同時被匹配到的錨框數目基本一致。2.2 節已經對網絡做了相應的密集化操作,因此滿足上述條件。由圖6可知,兩張圖片各自有且僅有兩種尺度的飛機目標,每一個飛機目標被3個錨框成功匹配到。對于圖6(a),較大尺度的飛機一共有3個正樣本錨框,較小尺度的飛機一共有9 個正樣本錨框。對于圖6(b),較大尺度的飛機一共有3個正樣本錨框,較小尺度的飛機一共有30個正樣本錨框。不同尺度錨框匹配到真實目標數量差距的情況如圖6所示。

這里用N代表正樣本錨框的數量,L代表錨框尺度的種類,M代表錨框匹配到不同尺度目標數目的平均值,用D代表不同尺度正樣本錨框數與M的差值,M的計算公式如下:

由式(4)計算及相關統計所得結果如表3所示。

表3 統計信息Table 3 Statistical information

由表3分析可知,圖6(a)和圖6(b)不同尺度的正樣本錨框個數相差很大,即使和平均值M相比差距依然很大。假設訓練集有1 000 張類似圖6(b)正樣本錨框數量差距很大的飛機遙感圖像,經過統計,有30 000個較小尺度和3 000個較大尺度總計33 000個正樣本錨框。極端情況下,模型的學習策略只需要返回一個用來學習較小尺度的正樣本錨框的學習器,同時在這個過程中少學習甚至完全不學習較大尺度的正樣本錨框,那么學習器就可以達到將近90%的檢測精度。然而這種高檢測精度的學習器往往沒有價值,因為它只能對較小尺度的飛機目標進行目標檢測。在現實情況中,飛機遙感圖像中會存在多種尺度的飛機目標,并不是只存在較小尺度的飛機目標。因此在模型的訓練過程中,如果時常發生類似于以上的這種情況,那么勢必會造成模型的學習器更加偏向正樣本錨框數較大的那一方,導致模型對多種尺度的飛機目標不能進行有效的學習,也降低了模型目標檢測的魯棒性。

為了解決以上問題,本文受文獻[20]的啟發,在此基礎上提出了一種錨框的策略匹配方法,一定程度上使得正樣本錨框的數量趨向于總體正樣本錨框平均值,用以提高訓練的有效性,增強模型目標檢測的魯棒性,具體方法如下。

相應尺度差值D為正值的正樣本錨框數目不變,相應尺度差值D為負值的正樣本錨框數目增加F。F的計算公式如下(如果F的計算結果不是整數,將F通過一個向上取整操作得到最終結果):

通過式(5)計算可得,圖6(a)和圖6(b)紅色尺度的正樣本錨框數分別需要增加3 個和5 個,在使用SSD算法的錨框匹配策略基礎上(SSD算法中閾值為0.5),通過每次降低0.05的閾值循環來提高該尺度對應的正樣本錨框數,直至大于或等于F+N(不同尺度)。經過錨框策略匹配后的結果如圖7所示。

圖7 錨框策略匹配后的結果Fig.7 Results after anchor box strategy matching

通過對比圖6和圖7可以發現,紅色尺度的飛機目標明顯被匹配到了更多的正樣本錨框。經過增加后的正樣本錨框數量為6 和8,明顯更加趨向于總體正樣本錨框數平均值6.0和16.5。

在實際情況中,不同尺度的正樣本錨框數一般不會存在非常大的差距。類似圖6(b)這樣的個例在訓練集中的占比其實是較低的。為了考慮更一般的情況,本文隨機選取了500 張飛機遙感圖像,統計了錨框策略匹配前后的平均值,如圖8所示。

由圖8(a)和表2 可知,飛機目標的尺寸是連續的,錨框的尺寸是非連續的。在錨框尺寸接近或者等于飛機目標尺寸時易被錨框匹配到。相反,在錨框尺寸遠離飛機目標尺寸時不易被錨框匹配到。例如圖8(a)藍色實線的波峰段的附近正好就處在相應錨框尺度大小的附近,波谷段的情況則正好相反。對比圖8(a)和圖8(b)可以發現,藍色實線的波谷段明顯趨向于灰色虛線,說明了不同尺度的正樣本錨框數更加趨向于總體正樣本錨框數均值,也證明了錨框策略匹配在更一般的情況下也會有較好的表現。

圖8 匹配前后的平均值Fig.8 Average value before and after matching

在模型的訓練過程中,模型會將增加后的正樣本錨框納入到總體正樣本錨框中。此時不同尺度的正樣本錨框數的占比會更加均衡化,模型的學習器對待不同尺度的飛機目標的注意力也會更加平等,一定程度上提高了模型訓練的有效性,增加了模型目標檢測的魯棒性,避免訓練出高精度但是無意義的學習器。

2.4 AMDSSD算法的損失函數

針對模型訓練過程中遙感圖像正、負樣本劃分不平衡的問題,本文將使用聚焦分類損失函數(focal classification loss)[21]對模型進行優化訓練,具體表示為:

式中,N表示與真實框相匹配的候選框的個數,x代表輸入圖像,c代表目標類別,p代表預測類別概率,l代表候選框,g代表真實的標簽框,a為兩者的權重。Lfl(x,c,p)和Lloc(x,l,g)分別為聚焦分類損失和邊界框回歸損失,其中Lloc(x,l,g)借鑒SSD 算法中的邊界框回歸函數,表示為:

式(6)中的Lfl(x,c,p)結合聚焦分類損失函數采用交叉熵計算損失,表示為:

3 實驗與結果分析

3.1 數據集與實驗環境

為了評估本文提出的AMDSSD算法檢測性能情況,采用兩個不同的數據集進行飛機遙感圖像實驗,包括西北工業大學標注的航天遙感圖像和谷歌衛星影像共計2 146 張。各數據集包含尺寸大小不同的圖片并且按照7∶3 的比例來劃分訓練集和驗證集。隨機選取1 502張作為訓練集,644張作為測試集,并根據Pascal VOC 2012 的格式進行標注。此外,依據數據集對目標大小劃分的標準(Small object: area <322;322<Medium object:area <962;Big object:area >962)對采集的遙感數據進行劃分,由于一些飛機在小分辨率的情況下只有極少的像素個數,已很難通過人眼確定是否為飛機,因此,僅對像素個數超過6 個的目標進行劃分。圖9為本文數據集的樣本示例,從左到右面積類型分別為Small object、Medium object、Big object。

圖9 本文數據集的樣本示例Fig.9 Sample examples of dataset in this paper

本文的實驗環境選用Pytorch 開源框架進行訓練、測試,基于ubuntu16.04操作系統,CPU為Intel Core i9-9900K,3.60 GHz,顯卡為NVIDIA GTX2080。編譯環境為torch-1.6、torchvision-0.7,cuda10.1、python 3.6語言編程。

3.2 評價標準

對于飛機這單一種類的遙感圖像,本文采用精度均值(average precision,AP)和每秒幀率(frames per second,FPS)作為算法的評價標準??梢愿鶕蚀_率(Precision)和召回率(Recall)制成一條曲線,在0到1 范圍內繪制的曲線與坐標之間的面積即為精度均值(AP),可表示為AP=∫01p(r)dr,準確率與召回率的定義式如下[22]:

式中,TP為正樣本中的正例,FP為負樣本中的正例,FN為負樣本中的負例。此外,FPS 決定了算法的效率,其數值的大小反映了檢測速度的快慢。

3.3 實驗結果分析

為了初步評估改進后SSD 算法的性能,本文選取了測試集中三張具有代表性的圖片,并使用幾種經典目標檢測算法和改進后的算法進行橫向結果比較。比較結果如圖10 所示,其中三張具有代表性的圖片如圖10(a)所示。第一張圖片是不同于一般遙感圖像光照的沙塵天氣下的飛機目標;第二張圖片是飛機密集分布且存在較小尺度的情況;第三張圖片是同時包含飛機密集分布和極小尺度飛機遙感圖像目標的情況。

根據圖10 幾種經典目標檢測算法檢測結果可知,對于圖10(a)中的第一張圖片,由于受到不同于一般遙感圖像光照的影響,除了本文算法AMDSSD和Faster-RCNN+特征金字塔網絡(feature pyramid networks,FPN[23])以外,YOLO v3[24]和SSD 算法均有不同程度漏檢的情況發生。分析可知,這主要是由于算法的魯棒性不夠,導致檢測結果容易受到光照、沙塵等因素的影響。對于圖10(a)中的第二張圖片,除AMDSSD 算法以外,其余算法都存在漏檢的情況發生。分析可知,其余算法都是針對自然場景設計的目標檢測算法,不能很好地應對遙感圖像尺度小且密集的特點。而AMDSSD針對遙感飛機目標的特點設計了一套用于檢測遙感飛機目標的錨框體系,使得該算法更適合于飛機目標的檢測,從而一定程度上提升檢測精度。對于圖10(a)中的第三張圖片,由于飛機遙感目標存在尺寸極小且密集的情況,包括本文算法在內,4種算法均不能正確檢測出全部目標。顯然,AMDSSD 算法雖然沒有全部檢測出飛機目標,但檢測結果明顯優于其他3 種算法。分析可知,AMDSSD 算法增加了一個用于檢測極小尺寸的Feature map 1,該層用以解決下采樣倍數過大導致特征層丟失了極小目標信息的問題,同時錨框的鋪設密度相近和錨框的策略匹配方法可以一定程度上幫助網絡更加有效地訓練,提高目標檢測的魯棒性。

為了進一步評估改進后SSD 算法的性能,本文使用3.2 節的評價標準計算得到了該算法的檢測精度與檢測速度,并與另外幾種經典的目標檢測算法進行橫向結果對比。對比結果如圖11和表4所示。

表4 不同算法在飛機遙感圖像上的AP和FPSTable 4 AP and FPS of different algorithms on aircraft remote sensing images

圖11 幾種經典目標檢測算法的PR曲線Fig.11 PR curves of several classic target detection algorithms

從表4 中的實驗結果可以看出,本文所提出的AMDSSD 算法在精度均值(AP)的指標上優于YOLO、YOLO v2、YOLO v3、SSD 和DSSD 算法。從檢測精度上看,當IOU=0.50 且area(面積類型)為all時,AMDSSD 算法相比SSD 算法提高了2.43 個百分點,相比YOLO、YOLO v2、YOLO v3、DSSD和Faster-RCNN+FPN分別提高了12.90個百分點、6.79個百分點、3.01 個百分點、1.60 個百分點和-0.20 個百分點。當IOU=0.50:0.95 且area=small 時,改進SSD 算法的精度均值為41.36%,較改進前提升了1.71個百分點,且改進后的SSD算法對小型目標的檢測精度相比其他算法提升幅度較為明顯,證明改進后的SSD 算法對小型目標檢測較有優勢。從檢測速度上看,改進后SSD 的檢測速度和改進前相比沒有太大的變化,和其他單階段目標檢測算法相比仍然可以滿足實時檢測的需求。

此外,精度均值(AP)通常根據不同的IOU(intersection over union)閾值進行評估,IOU 閾值越高,對應的邊框回歸就越準確。圖11為IOU=0.50和IOU=0.70 時各目標檢測算法的PR 曲線(由于YOLO 和YOLO v2 檢測精度較低,沒有繪制在PR 曲線里)。從檢測結果可以看出,本文改進的SSD算法Precision和Recall 兩個性能指標均優于其他算法,即AMDSSD 算法對目標位置的回歸能力優于其他算法。另外,本文算法和Faster-RCNN+FPN相比,精度均值(AP)雖有-0.20個百分點的差值,但是后者的檢測速度明顯慢于AMDSSD 算法,基本不能滿足實時檢測的需求。實驗結果表明本文提出的AMDSSD算法可以在滿足實時檢測性的同時有效提高各種復雜背景下飛機遙感圖像的目標檢測精度。

3.4 消融實驗

3.4.1 骨架網絡替換的消融實驗

為探究骨架網絡替換對SSD算法檢測結果(AP)產生的影響,本文分別設置兩組模型對照:一組為SSD;二組為骨架網絡被替換為ResNet50(改)的SSD,其余設置均與SSD模型相同。實驗結果如表5所示,SSD+ResNet50 的對照組相比一組AP 值提升了0.62個百分點。

表5 骨架網絡替換的消融實驗結果Table 5 Ablation experiment results of skeleton network replacement

實驗證明,骨架網絡的替換有效地增強了模型特征提取能力。ResNet50(改)幫助模型更加有效學習飛機遙感圖像的特征,一定程度上提升了網絡對飛機遙感目標檢測的精度均值。

3.4.2 錨框密集化與錨框策略匹配的消融實驗

本文所改進的錨框密集化和錨框策略匹配是有利于AP 值提升的一種方法,為探究其如何對AP 值產生影響,本文分別設置3組模型對照:一組為SSD+ResNet50(改),二組為SSD+ResNet50(改)+錨框密集,三組為SSD+ResNet50(改)+錨框密集+錨框策略匹配,其余設置均與SSD模型相同。實驗結果如表6所示,三組相比一組和二組AP值提升了1.79個百分點和0.57個百分點[27]。

表6 錨框密集化與錨框策略匹配的消融實驗結果Table 6 Results of ablation experiments matching anchor frame densification and anchor frame strategy

本文中錨框密集化主要用來解決尺度極小的遙感目標正樣本錨框數偏少的問題。實驗證明,錨框密集化可以通過增加錨框鋪設的密度來增加小尺度的錨框匹配到真實目標的數量,以此來提升模型對飛機遙感目標的AP值。錨框策略匹配通過式(5)來平衡不同尺度的正樣本錨框數量,使之趨向于總體正樣本錨框數,減少模型訓練會偏向某一方的可能。實驗證明,這種錨框策略匹配方法一定程度上增加了網絡的魯棒性,提升了對飛機遙感目標的AP值。

3.4.3 各改進對模型實時檢測性的影響

對于基于深度學習的目標檢測算法,絕大部分都是由卷積層和全連接層組成。卷積層通常占據了算法實時檢測性的主導位置,因為卷積層往往是網絡中最耗時的部分,當然還有全連接層(全連接層可以看成特殊的卷積層)。很多時候,卷積層和全連接層的計算時間會占用80%到95%的網格總體計算時間,因此本文著重從卷積層的參數量來分析各改進對模型實時檢測性的影響。

本文改進后的算法較改進前一共有三個改進點,分別是骨架網絡的替換、錨框密集化和錨框的策略匹配。其中錨框的策略匹配并沒有增加額外的卷積層,因此對模型的檢測速度基本不會有影響。

在骨架網絡的替換中,改進后的ResNet50 和改進之前相比,額外增加的卷積層主要來自圖3(b)虛線框內添加的結構。經過計算,SSD算法中的骨架網絡(VGG16)具有26 102 468 個參數,改進后的Res-Net50具有18 342 744個參數。得益于殘差結構的優勢,后者的參數量不僅明顯少于前者,還有著更好的語義抽象能力和特征提取能力。顯然在模型的特征提取階段,骨架網絡的替換有助于提高模型的檢測速度。

對比圖1和圖3(c)可以發現,模型預測階段的輸入由6 個特征層變為7 個特征層,其余部分沒有變化,因此該階段額外增加的卷積層參數主要集中在新添加的特征層上(Feature map 1)。該層在特征提取階段也有額外的卷積層參數,但是數量占比太小基本不會影響模型的檢測速度,因此著重分析Feature map 1在模型預測階段對檢測速度的影響。

Feature map 1 是尺寸75×75,下采樣倍數為4 的特征層。在2.2 節中,本文對Feature map 1 上尺度大小為8的錨框鋪設密度增加了2倍。經過計算,該層需要生成28 125 個錨框和增加230 400 個卷積層參數。對于生成的每一個錨框,模型都會通過相應的卷積層來計算出預測結果,Feature map 1的加入勢必會增加模型卷積層的參數量和計算量,從而影響模型的檢測速度。從實驗結果來看,改進后與改進前相比FPS有一定的降低,這樣的實驗結果與以上的分析是符合的。雖然FPS有降低,但是在檢測精度和檢測速度方面有著更好的平衡性,與其他單階段目標檢測算法相比仍然可以滿足實時檢測的需求。

3.5 飛機遙感目標檢測結果

在不同場景下且area=all,AMDSSD 算法對遙感圖像數據集的部分檢測結果如圖12 所示,在復雜背景、光照不同、小尺度且密集分布的遙感目標、背景污染、極小尺度且密集和曝光背景的情況下,該算法均可以精確地檢測出相關的目標物體,證明了本文改進后的AMDSSD可以在不同場景下且面積類型為all的條件下均有較好的檢測效果。

圖12 AMDSSD在不同場景下的部分檢測結果Fig.12 Some test results of AMDSSD in different scenarios

4 結束語

本文提出了一種基于SSD的錨框尺度密集化和錨框策略匹配目標檢測算法(AMDSSD),旨在增加少量訓練參數且保留算法實時檢測性的情況下提高算法對復雜場景下多尺度遙感圖像目標檢測的精度。改進后的算法使用改進以后的ResNet50作為特征提取網絡,并且額外增加一個包含兩種尺度的特征層用以提升對小尺度目標的檢測效果。結合飛機遙感圖像的特點,重新設計了一套適用于飛機遙感圖像的錨框體系,在此基礎上還增加了錨框鋪設密集化和錨框策略匹配的方法。從實驗結果來看,改進后的SSD對不同場景下不同面積類型的飛機遙感目標均有較好的檢測效果,證明了改進后的算法在檢測精度和魯棒性上要優于SSD算法。對比其他幾種經典的目標檢測算法,改進后的算法在檢測精度和檢測速度方面有著更好的平衡性。在以后的研究學習中,希望進一步提高目標檢測精度的同時依然可以保留算法的實時檢測性,力求得到一種高精度且高效率的目標檢測算法。

猜你喜歡
尺度樣本飛機
飛機失蹤
用樣本估計總體復習點撥
財產的五大尺度和五重應對
“拼座飛機”迎風飛揚
規劃·樣本
乘坐飛機
隨機微分方程的樣本Lyapunov二次型估計
神奇飛機變變變
宇宙的尺度
9
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合