吳 杰,高 策,余 毅,張艷超,裴 玉,馬少峰
1.中國科學院 長春光學精密機械與物理研究所,長春 130033
2.西昌衛星發射中心,四川 西昌 615099
遙感圖像的目標檢測主要研究在圖像中是否有目標物體存在,并確定其位置和類別。隨著深度學習與遙感技術的發展,基于卷積神經網絡的遙感飛機檢測算法在民用和軍事上都起著至關重要的作用。然而,與傳統的目標檢測不同,遙感飛機圖像受天氣環境、光照和背景等因素影響,如果算法要實現高精度的目標檢測功能,需要計算機提供大量的算力和存儲,降低了算法的檢測速度,一定程度上限制了算法的應用。因此權衡算法檢測速度與精度,針對遙感飛機設計一種滿足模型參數少、檢測精度高的網絡是有必要的。
針對遙感目標檢測技術,早期Liu等人[1]用模板匹配的方法應用于遙感飛機的輪廓檢測,但對于復雜背景的情況檢測精度不高。隨著深度學習的發展,對遙感目標檢測主要有基于區域建議和基于邏輯回歸的方法,前者代表有Faster RCNN[2],具有較高的檢測精度,但是遍歷候選框導致速度較慢。基于邏輯回歸的檢測算法主要有SSD[3]和YOLO系列,SSD在檢測速度可以達到較高水平,但是缺陷在于小目標的定位,YOLOv4[4]可以權衡檢測精度和速度,但是兩者指標都不是最佳。為了增加檢測器性能,Zhang等人[5]提出結合不同特征的卷積層網絡提高對目標的檢測精度,引入無錨的檢測方法一定程度降低了遙感目標的漏檢率,但是模型依舊較為復雜。
針對模型輕量化技術,卷積方式上Google提出了一種輕量級卷積神經網絡MobileNet[6],其核心思想通過卷積核分解來減少模型參數,實現在相同量級縮小模型計算量,小目標檢測精度較低。網絡結構上何凱明提出的殘差模塊,通過跳躍連接增加模型深度進而減少參數量[7],然而由于連接的關聯性太強容易產生過擬合,不利于遙感飛機目標的模型學習。Wang等人[8]設計了一種輕量級的小型網絡模型Scaled-YOLOv4,該網絡簡化了YOLOv4模型復雜度,極大降低了參數量,但是對復雜目標的檢測精度有待提高。隨后,Liu等人[9]提出網絡剪枝思想,訓練時設置一個閾值然后將YOLOv4等網絡模型中貢獻度低于閾值的神經元裁剪,使得檢測模型得到輕量化。
本文研究的遙感飛機檢測算法從以上幾點出發,結合遙感圖像中飛機目標的特點,以網絡YOLOv4模型為基礎,通過改進多尺度融合預測網絡和引入一致性監督網絡,在網絡結構和損失函數上對檢測網絡進行改進,結合更多的細節信息解決原網絡在遙感飛機檢測過程中精度不足的問題。輕量化方面分別在預測層設計密集連接方式,在分類層增加輕量化模塊,加強目標特征學習并裁剪多余的卷積,解決基于卷積神經網絡的遙感飛機檢測算法中模型過大和速度慢的問題。
以主流的YOLOv4網絡為基礎展開研究,應用對象為遙感圖像中的飛機這一類的簡單目標,通過將輸入圖像調整為416×416大小,將待檢測圖像分成13×13形式的網格,再利用中心點與網格寬高預測出邊界框寬高,求出三個候選邊界框,進而得到最終預測結果。網絡將三個邊界框的得分進行篩選得出最大的預測置信值,然后該置信值對應的邊界框會給相應的目標加上標簽。結合目標柵格與圖像左上角的邊距(C x,C y)以及柵格所在候選框的寬高(P w,P h),預測出邊界框的四個坐標值(T x,T y,T w,Th)和一個目標存在的可能性得分To。再由式(1)、(2)計算得出每個邊界框與左上角的相對坐標(B x,B y)、寬高(B w,B h)和預測置信值C(confi dence)[10-11]。具體計算公式如下:

C的數值表示該處是否有目標,若置信度為0則認為該處不存在目標,若置信度不為0,則顯示該處置信度的數值。T x、T y用sigmod函數歸一化處理,使其取值在0~1之間,σ參數將歸一化值轉化為真實值,P r(obj)為目標屬于某一類的概率,σ(To)表示預測邊界框的置信值,IOU表示真實標注框與算法檢測框的交并比。如公式(3)所示,檢測框精準度與IOU大小成正比。

式中,Bop為預測框與標注框的交集,B gt表示預測框與標注框的并集。YOLOv4的損失函數由3個部分組成,分別為中心坐標預測、寬高坐標預測和置信度類別預測[12]。
YOLOv4存在三個多尺度融合預測的網絡層結構,決定著候選框檢測的精準度,然而上采樣和特征融合過程產生大量迭代參數,降低了檢測的速度。因此本文設計在特征獲取階段和多尺度上采樣后使用密集連接的網絡結構,密集連接技術主要是借鑒跳躍連接的思想,在各個輸入加上之前特征的輸出,從而達到維度的擴充。假設輸出特征圖為x l,原始特征圖為x0。兩者之間的關系如公式(4)所示:

由式(4)可知,密集連接網絡中各卷積層接收之前所有卷積層的特征圖作為輸入。遙感圖像中飛機目標對比度較弱,有效增強了網絡對飛機目標特征的提取能力,跳躍的網絡連接方式不但可以增加網絡深度,提高檢測精度,還可以減少用于進行多尺度融合時產生的參數量,改進多尺度融合網絡結構圖如圖1所示。

圖1 改進多尺度融合網絡結構圖Fig.1 Improved multi-scale fusion network structure diagram
圖1中將輸入圖像調整為448×448,這樣在預測層能夠增大感受野,獲得更多的預測信息,同時Mish激活函數曲線在負值不是直接截斷,梯度下降較快。網絡由特征金字塔的結構組成,通過上采樣調整小尺度特征圖分辨率,與上層大尺度預測層融合,分別在三組尺度預測層的支路設計密集連接的卷積形式,它們之間用由1×1大小的點卷積組成,作用是增加不同層之間飛機目標信息的關聯度,增加密集連接后在進行上采樣,可以在融合不同層細節信息的同時,去除多余的冗余。適當調整預測層前的卷積層,選擇大小為14×14的最小尺度進行預測,減少模型過擬合嚴重的問題。
對YOLOv4的改進集中在第三、四、五個卷積模塊,并且特征圖在這三個卷積模塊中傳播時深度保持不變,符合密集連接的要求,需要適度調整增長率,防止特征圖經過Dense Block層后通道數會迅速增加在LDS_YOLO中,本文設置k=32,經過多次實驗發現這樣既能有效加強對特征的提取能力,又避免了冗余參數的大量產生。改進后的LDS_YOLO各層結構及參數如表1所示。
表1可知,改進后LDS_YOLO網絡結構使得融合預測層和通道權重層相應地降低了參數量,網絡預測層一減少了36 864-26 624=10 240個參數,同理相應地可以計算出網絡預測層二減少的參數為3×3×32×32-(3×3×32×16+1×1×16×32)=4 096,網絡預測層三由于融合了前兩層減少參數更多為3×3×64×64-(3×3×64×32+1×1×32×64)=16 360。輕量化分類模塊中的通道權重層減少的參數為3×3×64×64-(1×1×32×64)=34 816由此可得LDS_YOLO的參數含量共計40 779 912,相較于YOLOv4參數量減少了22.51%。

表1 LDS_YOLO模型參數量和計算量Table 1 LDS_YOLO model parameter amount and calculation amount
LDS_YOLO網絡用邏輯回歸方式來預測每個邊界框中目標存在的可能性,大小作為預測的得分值,這一步通過設置合適的閾值來去掉得分低的邊界框從而減少計算量。在訓練過程中,網絡用一致性監督損失函數[13]損失來預測類別。一致性監督損失公式如式(5)、(6)所示:

其中,當且僅當y i和y j相等時,Loss為0;否則,Loss為一個正數。在預測網絡設置之后增加一致性監督的網絡,利用多尺度融合算法將改進YOLOv4的倒數第一、二、三、四層進行特征融合,構建{C1,C2,C3,C4}主特征金字塔。通過上采樣方式構建新的{P1,P2,P3,P4}次金字塔用于每一層的目標預測,配合主金字塔的每個層通過1×1卷積進行通道降維,同時將上采樣減少的特征表示為{M1,M2,M3,M4},如圖2所示。

圖2 一致性監督損失原理圖Fig.2 Schematic diagram of consistency monitoring loss
多個分類和回歸連接到這些特征,以產生輔助損失,這些分類和回歸的參數在不同次金字塔層上共享[14]。為了穩定損失函數的變化,使用權重λ和β來平衡由一致性監督和原始損失產生的輔助損失。形式上,LDS_YOLO最終損失函數如公式(7)所示:

p M、d M和p、d分別是中間層和最終金字塔層的預測,t*和b*分別是基本類別標簽和回歸目標,λ是用于平衡輔助損耗和原始損耗的權重,β是用來平衡分類和定位損失的權重。[t*>0]的定義如公式(8)所示:

2.4.1 LDS_YOLO模型權重冗余分析
結合多尺度融合和密集連接的網絡層以及基于全局平均池化層的網絡輕量化模型都使得模型參數得到了減少,訓練過程中每一個支路的Dense結構如圖3所示。

圖3 Dense模塊結構Fig.3 Dense module structure
Dense模塊中令X l表示第l層的輸出,H l表示一個非線性變化。第l層的輸出結果如式(9)所示,其中[X0,X1,X2,…,X l-1]表示將0到第l-1層的輸出特征疊加。Block的參數量及計算量的計算由公式(10)和(11)表示:

其中,Bi表示第i個Block,L i表示Bi中卷積層的總層數。
2.4.2 基于改進的特征通道權重的模型裁剪
遙感圖像中的目標信息相比普通圖像環境更為復雜,飛機和周圍建筑在形狀上極容易混淆,因此在特征分類的時候會增大圖像分辨率和迭代次數,這樣會增加特征分類模塊模型參數量,本小節設計一種基于全局平均池化層的輕量化模塊,結合特征權重映射在分類遙感飛機目標的同時,去掉模型冗余參數,減少模型大小。改進特征分類模塊結構如圖4所示。

圖4 基于全局池化層的輕量化分類模塊Fig.4 Improved pruning based on global pooling
模塊主要包含三個部分:全局平均池化層(global average pool)、全連接層和特征權重映射層。其中全局平均池化層的作用是將每一個特征通道上的信息平均成一個值,對應的計算如公式(12)所示:

其中,H、W、C分別代表輸入卷積的高、寬和特征通道數,X∈R1×1×C代表前一層的輸出數據。全局平均池化層主要功能是獲取模型通道上的信息,為得到特征通道間的相關性,需要基于全部數據集對模型進行訓練。全連接層的作用是將全部數據集中的目標信息進行一個全面的通道映射,達到最佳的分類效果。擴展型Sigmoid函數的作用是將數據限制在[0,1]范圍內,方便設定合適的權重閾值進行裁剪,如公式(13)所示:

假設在第l層對LDS_YOLO網絡模型進行通道權重特征調整,則前面所有層的輸出特征會由一個非線性變換后得到第l層的輸出特征,如公式(14)所示:

Zl表示l層的最后的輸出結果,經過Sigmoid函數后的圖像信息被限制在一定范圍內,由全連接進行通道和特征的映射,通過設定合適的閾值將影響檢測率較低的權重部分去除,在保證不丟失檢測精度的前提下,可以學習數據集的全部特征并減少模型的參數。
文章數據集采用了NWPU VHR-10[15]遙感飛機數據集,受各個衛星所拍出的遙感圖片質量差異,飛機的視角差異和高度差異等各種因素影響,包含了多種狀況下的遙感航空圖片,如圖5所示。該數據集中遙感飛機的類別有戰斗機、民用機等,環境有大目標、小目標,有建筑和空地等。針對數據集類別不平衡問題,設計場景數據增強方法,使類別均衡化,按樣本數量均衡類別權重,利用上采樣將少量的民用機和小目標的飛機數量增加,提高模型在復雜環境的魯棒性。訓練集為23 000張圖像,測試集為5 000張。通過手動標注夠將大量數據匯集的圖像標記為xml文檔,標記后的文檔中會存儲圖像中各個目標的類型、尺寸和方位等信息。

圖5 遙感圖像中低質量飛機數據集實例Fig.5 Examples of low-quality aircraft data sets in remote sensing images
3.2.1 LDS_YOLO模型訓練分析
本次實驗選用NWPU VHR-10遙感飛機數據集,主要用來分析LDS_YOLO基于密集連接改進的多尺度融合預測后對目標的檢測能力,以及模型大小、計算量和速度的優化程度,最終應用在無GPU的嵌入式設備樹莓派3B+上進行研究。其中訓練集為50 000張圖像,測試集為7 692張,訓練迭代次數batches為400 000次,bath_size設為64,學習率設為0.001,在訓練過程圖中每20 000次迭代保存一次此時的網絡模型,為了證明本章所設計的算法可以完成對目標數據集的學習,利用matlabplot庫將訓練中的loss、IOU數據可視化,最終得到如圖6所示的變化曲線。

圖6 訓練過程中的loss曲線和IOU曲線Fig.6 Loss curve and IOU curve during training
從圖6可以看出,隨著迭代次數的增加,模型的精準度逐漸提高,從中選擇檢測率最高的權重可用于后續實驗的研究,訓練過程中IOU也逐漸趨于平穩,平穩值為1,從而說明LDS_YOLO目標檢測網絡可以學習到遙感飛機數據集中的細節內容。
3.2.2 損失函數改進實驗
為了驗證論文中一致性監督損失函數的有效性,在NWPU VHR-10遙感飛機數據集上將改進的LDS_YOLO算法網絡作為檢測網絡,分別使用原損失函數(二元交叉熵)以及一致性監督損失函數對網絡進行訓練。在訓練的過程中對模型特征分類在二維平面內進行可視化,檢測結果如圖7所示,特征分布以(0,0)中心成放射狀。
圖7中不同顏色分別對應NWPU VHR-10數據集內的10種類別。實驗發現相比較于原二元交叉熵損失函數,一致性監督損失函數的特征點分布明顯使得不同類別之間的距離足夠遠,并且類別的特征分布變得更為緊湊,相同顏色點的分布近似壓縮為一條直線,表明分類效果更好。

圖7 不同損失函數的二維平面內可視化圖Fig.7 Two-dimensional in-plane visualization of different loss functions
3.2.3 改進剪枝后的損失函數實驗
(1)引入特征通道調整層后損失變化分析
本小節主要對LDS_YOLO輕量化算法中引入改進剪枝層的Dense模塊進行實驗(殘差連接模塊同樣適用該剪枝方法)。首先使用改進前后的LDS_YOLO網絡對遙感飛機數據集進行訓練,訓練過程中的損失函數變化曲線如圖8所示。

圖8 損失函數曲線圖Fig.8 Loss function graph
圖8中紅色曲線在訓練的過程中明顯收斂得更快,且收斂后始終在黑色曲線下方,證明了在LDS_YOLO網絡引入改進剪枝層后不會影響到原模型的性能。
(2)超參數φ實驗分析
接下來分析應用了特征權重調整層后的LDS_YOLO模型,實驗發現在公式(8)中,合適的φ值可以有效地將不同種類目標特征區間分開,這一特性方便剪枝時閾值的選取。本節對Sigmoid函數曲線特性進行實驗,通過設置大量不同φ值進行分析,最終選擇在[5,8,10,100]之間做φ值的選擇實驗。使用不同φ值在LDS_YOLO網絡模型訓練時的損失值隨著迭代次數而下降的變化曲線趨勢如圖9所示。

圖9 損失函數趨勢圖Fig.9 Loss function trend chart
圖9中可以看到,φ值過大會影響模型的收斂(以100為例,其他數值曲線未畫出),無法準確地學習到目標的信息。數值在10以下模型才會收斂,而在實驗所選取的使模型有效收斂的三個數值中,φ值為5時所對應的曲線的收斂速度較其他值更快,且趨于平穩。
3.2.4 通道權重剪枝有效性對比實驗
本小節實驗以LDS_YOLO輕量化算法為例設置三組實驗來說明通道權重剪枝的有效性。實驗基于Python語言進行,LDS_YOLO模型在遙感飛機數據集上的剪枝實驗結果如表2所示。
由表2可知,改進后的剪枝方法可適用于多種目標檢測算法,相比于傳統剪枝,參數量平均減少了9%,浮點運算平均減少了7%,說明模型在算力和存儲空間上的需求都有所降低。檢測速度方面剪枝后的模型在無GPU的樹莓派3B+上提高了28%以上,證明了改進輕量化模塊來減少模型參數的可行性。

表2 三種算法模型在數據集上的剪枝結果Table 2 Pruning results of three algorithm models on data set
軍事中經常需要將目標檢測算法應用在無GPU的嵌入式平臺,例如在無人機系統上對目標進行偵察,需要對目標檢測模型在大小和速度上有較高的要求,這對計算機的存儲空間和計算能力都是一個挑戰。本節選用無GPU顯卡的樹莓派3B+作為算法的運行平臺,展開對多尺度融合預測、損失函數和輕量化分類網絡改進后的目標檢測算法,進行綜合仿真實驗研究。
3.3.1 實驗測試結果與對比分析
為了分析輕量化算法在性能上的變化,本文選用改進前的YOLOv4做對比實驗,同樣用遙感飛機數據集進行訓練,選擇效果最好的模型對目標進行測試,為了直觀體現輕量化后模型在速度上的優勢,左上角添加檢測一張圖像中目標所需的時間,三種檢測方法的測試結果如圖10所示。
圖10分別為在不同場景的遙感飛機目標下三種算法的檢測效果,從中可以看出YOLOv4的檢測速度在300~500 ms,換算成幀率平均在3 frame/s,檢測率最高,在實驗中存在一些漏檢、誤檢;LDS_YOLO是專門設計用來放在無GPU的嵌入式上運行的,在犧牲1.3%~2.5%準確率的基礎上,將檢測速度提高為6~7 frame/s,LDS_YOLO_pruned_ours通過增加改進的剪枝模塊,犧牲2.6%~3.5%準確率的基礎上,將檢測速度提高為9~10 frame/s。選取不同場景下的遙感飛機圖像,選用準確率較高但速度慢的Faster RCNN與YOLOv4和本文改進算法進一步比較在高曝光、目標小等復雜背景下改進算法的效果如表3所示。

圖10 改進前后檢測算法測試集的部分效果圖Fig.10 Partial effect of test set of detection algorithm before and after improvement

表3 LDS_YOLO在低質量遙感圖像下檢測指標Table 3 Detection indexes of LDS_YOLO in low-quality remote sensing images %
由表3可以看出,改進后的LDS_YOLO算法在各個低質量遙感圖像上的檢測指標都存在一定程度上的提升,相比于YOLOv4算法LDS_YOLO算法mAP和召回率在小目標上提升最為明顯,分別提高2.2%和4.1%,在云霧遮擋的環境下由于LDS_YOLO算法加入了一致性損失函數,可以更好地根據對比度信息在迭代過程中監督檢測出飛機的形狀,檢測率可以高達95.2%。幾種算法在高度曝光環境下檢測結果影響最小,而復雜背景的目標檢測在mAP上Faster RCNN效果較好,而本文算法存在進一步的改進空間。為了與其他算法比較,文章選取主流輕量化目標檢測算法在相同數據集下進行對比實驗分析,結果如表4所示。

表4 幾種算法在數據下的對比實驗分析Table 4 Comparative experimental analysis of several algorithms under data
表4中性能參數包括Top-1檢測率、模型的計算量FLOPs和參數量Params,通過在不同經典目標檢測公共數據集上進行訓練測試。可以看出,文章所設計的輕量化目標檢測算法LDS_YOLO與其他輕量化算法比較,在計算量FLOP和參數量Params上最少,平均計算量為100 MFLOPs,模型參數量約為1.0×107,檢測率最高可以達到90%以上,同時改進后的剪枝操作,在檢測率下降不超過1.5%的前提下,計算量和參數量進一步減少18%和21%,再次證明文章中輕量化目標檢測算法LDS_YOLO和改進剪枝的LDS_YOLO在檢測率高于主流算法的同時,計算量和參數量也都明顯降低,整體優于其他算法。為了證明經過優化得到的目標檢測網絡可以在遙感飛機數據集上取得很好的效果,下面對模型的抗過擬合能力、魯棒性等進行實驗分析。
3.3.2 模型抗過擬合能力的對比實驗
為了分析輕量化LDS_YOLO的抗過擬合能力,文章選擇在一個小訓練集上進行訓練,比較準確率和損失函數變化值[20]。根據模型的準確率和損失值比較可以明顯看出不同模型的抗過擬合能力差異。分別對YOLOv4、LDS_YOLO和LDS_YOLO_pruned_ours算法進行訓練,實驗結果如圖11所示。

圖11 模型對比實驗結果圖Fig.11 Model comparison experiment results
圖中Epoch表示遍歷訓練集的次數,Epoch與迭代次數的關系如公式(15)所示:

由圖11(a)可知YOLOv4、LDS_YOLO和LDS_YOLO_prune_ours算法隨著迭代次數的增加準確率逐漸上升,可見通過密集連接和通道剪枝的操作進行輕量化后的模型具有良好的學習能力;兩者相比于YOLOv4在分類能力上分別損失了1.2%和2.3%。由圖11(b)可知,YOLOv4的損失值整體在0.41以上,模型參數過多會導致損失值隨著訓練次數的增加而增加,在反向傳播過程中均發生梯度爆炸,導致模型收斂變慢;LDS_YOLO和LDS_YOLO_prune_ours的損失值隨著訓練的進行逐漸下降,可見輕量化后的模型具有良好的學習能力與抗過擬合能力。
3.3.3 輕量化后模型的魯棒性實驗
Madry等人[21]發現模型的容量越大,魯棒性越好。CNN具有一定程度的平移不變性和旋轉不變性,這對檢測系統來說是一個很好的特性。魯棒性強的系統希望當圖像受到一定程度的擾動時(比如旋轉、平移、噪聲、光照條件變化、復雜背景),系統能夠容忍擾動而保持原本的輸出,為了探究輕量化算法訓練出的模型魯棒性強弱,文章設置相應的難樣本,分析模型檢測目標的準確率,結果如表5所示。

表5 難樣本下各個算法魯棒性數據Table 5 Robustness data of each algorithm under difficult samples
結合實驗結果和表5可以看出,當圖像受到一定程度的擾動,包括旋轉、平移、噪聲、光照條件變化時,各個模型的檢測率均會下降1.3%左右,輕量化模型LDS_YOLO和通道剪枝LDS_YOLO沒有隨著圖像擾動而使得檢測率大幅度下降,僅僅在復雜背景下會出現6%左右的下降,這一背景下其他成熟算法也都有不同程度的下降,原因是基于卷積神經網絡的檢測算法的不變性更多體現在旋轉、平移和光照上,對于背景復雜、目標小等圖像還是存在一定的不足。總體表明,輕量化算法訓練出的模型對于大部分圖像擾動,都展現出了很好的魯棒性。
本文針對目標檢測網絡在遙感飛機數據集上檢測精度低、速度慢、測試模型大等問題設計了一種改進型檢測網絡LDS_YOLO。該網絡通過多尺度融合預測層改進網絡,結合改進損失函數,增加目標飛機信息關聯度,提高檢測精度并減少參數;利用包含全局平均池化層的輕量化分類網絡對LDS_YOLO通道卷積進行裁剪,進一步減少網絡模型大小。并對算法模型做實驗性能分析,進一步證明了文章提出的目標檢測算法的可行性。未來考慮在多尺度預測層設計自適應特征選取網絡,加強主動判別重要特征能力,增加模型去冗余的速度。