侯 濤,蔣 瑜
成都信息工程大學 軟件工程學院,成都610200
遙感是指非接觸的遠距離探測技術。高分辨率的衛星與航空圖像技術提供了高分辨率的遙感圖像,這為遙感圖像的目標檢測開辟了更好的前景[1]。遙感圖像中飛機目標的檢測在民用與軍事方面有著重要且廣泛的應用。在軍事方面,可以為軍隊在作戰時帶來巨大的優勢[2]。在民用方面,可以使航空業更好地對飛機進行監管,并且可以更加快速地搜尋失去聯絡的飛機。
對遙感圖像中飛機目標檢測最早使用基于模板匹配的方法,Liu等人[3]構建了一個全局最小化活動輪廓模型(SGACM),用來檢測遙感圖像中飛機、油罐等具有規則形狀的目標,但模板匹配方法對復雜場景的目標檢測效果不佳。傳統的機器學習方法需要人工設計目標的特征。Sun等[4]針對高分辨率遙感圖像中形狀復雜的物體檢測任務,提出了一種基于空間稀疏編碼詞袋模型的檢測方法,工作人員設計的特征會顯著影響分類與檢測的準確性。
近年來,基于深度學習的目標檢測算法發展迅速,深度學習模型具有更強的特征表示能力和特征抽象能力[5]。Alganci等人[6]對基于深度學習卷積神經網絡的目標檢測算法在遙感圖像中飛機目標檢測任務中的性能進行了比較評估,Faster-RCNN[7]取得了最高的精確度,但是檢測速度很慢,不能滿足實時檢測的需求[8],SSD[9]算法檢測性能最低[10],YOLOv3[11]在準確性和檢測速度之間取得了平衡。綜合來看YOLO系列的算法相對于RCNN算法與SSD算法更能夠滿足實時高效的要求。與YOLOv3相比,YOLOv4[12]擁有更高的精確度且檢測速度沒有下降。但YOLOv4在檢測小目標時,用于檢測大目標的特征層會丟失目標的語義信息。用于檢測小目標的特征層提取目標的特征信息能力較差。所以本文對YOLOv4做出改進,提升對遙感圖像中的飛機目標檢測的性能。
目前已有很多文獻對YOLO算法應用于遙感目標檢測做出了一些改進。董彪等人[13]提出了一種基于改進YOLOv3的遙感建筑物檢測模型,該模型去除了YOLOv3中用于檢測大目標的特征層,并且減少了特征融合部分的卷積層,這樣大大減少了網絡模型的語義信息丟失,這對形狀特征相對簡單的建筑物檢測效果很好,但在對形狀特征與背景相對復雜的飛機目標檢測時,飛機目標的特征提取不夠充分。戴偉聰等人[14]提出的基于改進YOLOv3的遙感飛機檢測模型中,在神經網絡深度較淺的第二個殘差模塊后輸出了分辨率更高的特征圖來作為新的檢測尺度,雖然較淺的特征圖擁有更高的分辨率,但是提取的特征信息能力較弱。Xu等人[15]提出的基于改進YOLOv3的遙感圖像目標檢測模型,為了減輕特征金字塔中五次卷積模塊帶來的梯度消失問題,使用ResNeT殘差單元替換了五次卷積層模塊,但如果可以在減少梯度消失問題的同時增強網絡的特征提取能力將會很大提升網絡的性能。
本文從以上文獻得到思路,對YOLOv4進行改進。改進YOLOv4的多尺度檢測,減少網絡模型的語義丟失,增強檢測遙感圖像中尺寸偏小的飛機目標的能力。使用密集鏈接網絡復用特征,減少梯度消失問題,加強特征傳遞與特征提取。提取遙感數據集中含有飛機目標的圖像作為訓練集與測試集,對訓練集使用K-means算法得到適用于遙感圖像目標檢測的先驗框尺寸,并將YOLOv4每個檢測尺度的先驗框數量調整為4個。
YOLOv4采用CSPDarknet53[16]作為主干特征提取網絡,共五個殘差模塊。最后三個殘差模塊的輸出會輸入到特征金字塔結構中,YOLOv4的特征金字塔部分采用了PANet結構[17]對特征層進行了特征融合。
經過特征融合后,輸出的三種特征層尺寸分別為原輸入尺寸的1/8、1/16和1/32,相當于將圖片劃分成尺寸為S×S網格,如圖1所示。在每個單元格中,都有三個不同尺寸的先驗框。最后通過預測值來對先驗框進行調整來得到邊界框(bounding box)。

圖1 19×19特征圖網格單元示意圖
目標邊界框的預測值為邊界框的置信度(confidence score)和位置信息。置信度的公式為公式(1)。Pr(Object)是該邊界框包含目標的可能性,為邊界框與實際框(groundtruth)的IOU(Intersection Over Union)交并比。

當面對分類問題,每邊界框還要給出預測的C個類別的分數,這些概率值是在各個邊界框置信度下的條件概率,即Pr(class i|Object)。使用公式(2)計算各個邊界框類別置信度(class-specific confidence scores)。

邊界框位置信息的預測值為t x、t y、t w和t h。圖2展示了YOLOv4網絡得到最終預測結果的過程。虛線框為先驗框,實線框為邊界框,c x和c y表示對先驗框所處的網格點相對于左上角的偏移量,pw和ph分別表示先驗框的寬和高,b w和b h表示預測得到的邊界框的寬和高,b x和b y表示邊界框相對于網格點左上角的偏移量,邊界框的值通過公式(3)得到:


圖2 得到預測結果
對于608×608的輸入圖像,YOLOv4的三個特征層的網格的尺寸分別為76×76、38×38和19×19。卷積神經網絡越深,得到的特征圖的神經元感受野(Receptive Field)越大,這也意味著每個神經元蘊含更為全局、語義層次高的特征,但是局部特征與細節特征會出現丟失。相反,當卷積神經網絡較淺時,特征圖的神經元所包含的特征會更趨向于局部和細節。圖3(a)、(b)、(c)分別為76×76、38×38和19×19特征圖,可以看出檢測大目標的尺寸為19×19的特征層在檢測遙感圖像中的飛機時語義丟失嚴重,特征圖中已經完全無法查看到飛機的邊緣特征,所以在與前面的兩層進行特征融合時會帶來更多的不利影響。

圖3 殘差塊輸出的特征圖
為了減少網絡模型的語義丟失,將主干特征提取網絡的最后一個殘差模塊取消,去除了尺寸為19×19的特征層,保留了尺寸為38×38和76×76的特征層。這樣不僅減少了網絡的參數量,還減少了語義信息的丟失。原YOLOv4將SPP結構放置在第5個殘差卷積塊后,本文將尺度最大的特征層取消后,將SPP結構重新放置到第4個殘差卷積塊后。
取消了用于檢測大目標的特征圖后,需要加強網絡模型的特征提取能力,使高分辨率的特征圖擁有更多的目標的特征信息。
隨著網絡層數的加深,網絡在訓練過程中的前傳信號和梯度信號在經過很多層之后可能會逐漸消失。如果卷積網絡在靠近輸入層和靠近輸出層之間包含更短的連接,則可以訓練得更深、更準確和有效。Huang等人[18]提出了一種更為有效網絡DenseNet。為了確保網絡中各層間信息流量最大化,DenseNet將所有層直接相互連接,每個層都從所有先前的層中獲取輸入,并將自身的特征圖傳遞給所有后續層,有效減輕了網絡的梯度消失問題。并且DenseNet提升了梯度的反向傳播,使得網絡更容易訓練。
使用DenseNet模塊代替特征金字塔中的五次卷積模塊,不僅有效減輕了梯度消失問題,而且DenseNet通過Concatenate特征來實現短路連接,讓特征圖在channel維度上連接,實現了特征復用(feature reuse),更好地利用了特征信息,并提高了信息在層之間的傳遞,加強了模型對遙感圖像中尺寸較小的飛機目標的特征提取。此外,DenseNet具有正則化效果,從而減少了過擬合的問題。在檢測網絡階段,使用兩個DenseNet模塊來分別代替特征金字塔中的兩個五次卷積層模塊。
卷積,歸一化和激活函數構成了CBL模塊,兩個CBL模塊構成Double-CBL(DCBL)模塊。在兩個DenseNet模塊中,每個圖層特征圖通道的增量分別是256和128。DenseNet模塊中采用了bottleneck層來減少計算量,結構中增加1×1卷積。兩個Densenet模塊結構如圖4所示,圖中X0、X1、X2表示輸出層的特征圖;H1、H2表示非線性變換。表1和表2給出了兩個DenseNet模塊的詳細結構。

圖4 DenseNet模塊結構

表1 DenseNet1結構

表2 DenseNet2結構
圖5展示了使用DenseNet模塊前后的對比,圖5(a)左邊為未使用DenseNet2模塊,使用連續5次卷積模塊卷積后的結果,可以看出飛機的邊緣特征沒有得到很好的提取。圖5(a)右邊為使用DenseNet2模塊改進后的特征提取結果,飛機的特征信息與背景被明顯地區分開來,飛機的邊緣特征也得到了很好的提取。圖5(b)左邊為未使用DenseNet1模塊,使用連續5次卷積模塊卷積后的結果,圖5(a)右邊為使用DenseNet1模塊改進后的特征提取結果,同樣DengNet1更好地提取了飛機的特征信息。由此可見,DenseNet模塊增強了模型的特征提取能力。

圖5 改進前后對比
圖6 、圖7和圖8展示了改進YOLOv4的完整結構。圖8(a)為第一個CSPResNet的結構,圖8(b)為剩余4個CSPResNet的結構,n C為輸出的通道數,N為殘差堆疊的次數。

圖6 網絡中模塊的詳細結構

圖7 改進后的YOLOv4網絡

圖8 特征提取網絡結構
從YOLOv2開始,YOLO系列算法引入了先驗框的思想,用來獲取更加準確的邊界框。YOLOv4中,每個特征圖中的網格點都有3種不同尺寸的先驗框,共9種不同尺寸的先驗框。針對遙感圖像中飛機目標尺寸偏小的情況,對YOLOv4的3個檢測尺度做出改進,去除用于檢測大目標特征圖后,先驗框的數量有所改變,并且,由于遙感圖像中目標尺寸偏小,針對常規目標的先驗框尺寸不再適用,所以需要得到新的先驗框尺寸。通過對遙感圖像數據集使用K-means算法得到適用于改進后的YOLOv4網絡以及遙感圖像中飛機目標的先驗框。
數據集中的邊界框由左上角頂點的坐標和右下角頂點的坐標表示,在對目標的邊界框做聚類時,需要以邊界框的寬和高作為特征。由于數據中圖片的尺寸不同,所以要對圖片的寬高和邊界框的寬高做歸一化,公式如下:

因為,在聚類過程中,只需要關心先驗框(anchor)與邊界框(box)的IOU,不用關心邊界框的大小,所以使用IOU作為度量。設先驗框anchor=(w a,ha),邊界框box=(w b,h b),先驗框與邊界框的IOU為IOU(box,anchor)。計算先驗框與邊界框的IOU如圖9所示,公式如下。

圖9 先驗框與邊界框IOU

顯然,IOU(box,anchor)的取值在0到1之間,兩個框越相似,值越大,所以最終的度量公式為:

對box進行K-means的步驟如下:
(1)隨機選取K個box作為初始anchor。
(2)使用度量公式(5),將每個box分配給與其距離最近的anchor。
(3)計算每個簇中所有box寬和高的均值,更新anchor。
(4)重復(2)、(3)步,知道anchor不再變化,或達到了最大迭代次數。
參考原YOLOv4的9個先驗框尺寸,考慮到數據集飛機尺寸的復雜性,以及改進后的特征層變為兩層,最終選擇的K值為8。兩個不同尺度的特征圖中分別有4種不同尺寸的先驗框,這樣可以為目標分配更加準確的先驗框,以此來得到更加準確的邊界框。
使用K-means算法對訓練集進行聚類分析,用于檢驗最小的目標的特征層的先驗框尺寸為(11,11),(18,17),(25,25),(34,29);另一個特征層的先驗框尺寸為(34,38),(51,49),(76,76),(142,140)。
實驗平臺配置如圖10所示,本文采用臺式計算機配置為Iterl?Xeon?CPU,內存64 GB,顯卡NVIDIA TITAN Xp,64位Windows 10操作系統;開發環境為tensorflow-gpu1.14、opencv4.1、python3.6、cuda10.0。

圖10 實驗平臺信息
3.2.1 遙感數據集特點
遙感圖像具有以下特殊性。
(1)規模具有多樣性。不同拍攝高度的遙感圖像讓不同圖像中的飛機具有不同的大小和特征。
(2)視角具有特殊性。遙感圖像都是從空中俯視地面所拍攝,這與通常看待目標時的視角有很大的不同,所以遙感圖像數據集中物體與常規數據集中物體的特征是不同的。
(3)小目標。遙感圖像中的目標大多體積都很小,在經過若干層卷積神經網絡的下采樣之后,目標的特征信息容易丟失。
(4)復雜的背景。遙感圖像拍攝時的高度很高,影響的范圍領域也比較大,所以背景會很復雜,會對目標的檢測造成干擾。
基于上述特點,通過常規數據集訓練出的目標檢測模型無法完成遙感圖像的目標檢測任務。
3.2.2 數據集分析
綜合考慮這些因素后,本文使用RSOD數據集[19]與DIOR數據集[20]中包含飛機的圖像來作為數據集。RSOD數據集由武漢大學在2015年發布,DIOR數據集是由西工大韓軍偉課題組提出的一種用于光學遙感圖像中目標檢測的大規模基準數據集。
數據集中,目標的尺寸大多較小,并且分布較為密集。由于拍攝原因造成遙感圖像模糊(圖11(a)),并且飛機顏色與背景顏色相近,導致很難識別。在遙感圖像中,機場環境設施復雜,飛機旁邊會有登機橋與運輸車輛距離很近(圖11(b)、(c)),并且飛機尺寸較小,在數據集標注與目標檢測時,背景物體會與飛機一起被框出,對訓練與識別造成困難。表3展示了訓練集與測試集的數據。

圖11 數據集樣本

表3 訓練集和測試集信息
本文根據召回率、精確率、mAP和Time來作為評價指標來評價模型的性能。
召回率與精確率的公式如下:

其中,TP(True Positive)為真正例,FP為假正例,FN為假負例,TP為真負例。召回率表示模型檢測出的目標數量占所有目標數量的比例,體現了模型識別目標的能力;精確率表示模型檢測正確的目標數量的比例,體現了模型檢測的準確性。但是,由于精確率與召回率受置信度的影響,單獨采用精確率與召回率作為評價指標會有局限性,所以,在實驗中引入了平均精確度mAP作為評價指標,它是評價目標檢測算法性能的最重要的指標之一。
在YOLOv4和本文改進后YOLOv4的訓練階段,采用了余弦退火學習率衰減(CosineAnnealing)方法。余弦退火可以通過余弦函數來降低學習率。這種下降模式和學習率配合,以一種十分有效的計算方式來產生很好的效果。
初始學習率設置為0.000 1,最小學習率為0.000 01,最大學習率為0.001,訓練epoch設置為100。圖12為loss值下降曲線,橫軸為訓練epoch,縱軸為loss值。

圖12 loss值下降曲線
3.5.1 實驗結果對比
為了評估算法的性能,將本文所提出的改進后的YOLOv4算法命名為Improved-YOLOv4,并與YOLOv4、YOLOv3、Faster-RCNN在各方面進行了對比。算法對比實驗均采用相同的訓練集與測試集,相同的訓練批次,圖像在訓練前尺寸調整為608×608。性能對比見表4。計算召回率和精確率時,閾值設置為0.6,IOU設置為0.5。

表4 算法性能對比
從實驗結果可以看出,YOLOv4算法在對遙感圖像中飛機目標進行檢測時,效果要優于YOLOv3算法。Improved-YOLOv4精確率為95.4%,較原YOLOv4提升了0.3個百分點,Improved-YOLOv4召回率為86.04%,相對于原YOLOv4提升了4.68個百分點,Improved-YOLOv4在平均精確率方面,較原YOLOv4提升了5.27個百分點。Improved-YOLOv4在保證精確率的同時,提升了對遙感圖像中飛機目標的召回率。雖然檢測速度比原YOLOv4慢了0.02 s,但是仍然滿足實時檢測的要求。
3.5.2 網絡模型對比分析

圖13 實驗結果對比
針對遙感圖像中飛機目標的特殊性,在測試集中選取了具有代表性的圖片來展開對比分析。在圖13(a)中,飛機的目標尺寸偏小,并且白色的飛機與灰白色的背景在顏色上較難區分,僅有Improved-YOLOv4可以檢測到所有飛機目標。由于YOLOv4和YOLOv3的第三個特征層的對小目標的語義丟失嚴重,在特征金字塔層進行特征融合后,帶來了更多不利的影響,使得與背景顏色相似且密集的小目標不能被檢測出來,YOLOv4檢測出了一部分目標,而YOLOv3則只能識別中等尺寸的目標。Improved-YOLOv4去掉了檢測大目標的特征層,減少了語義丟失,相對較淺的卷積神經網絡對邊緣信息更加敏感,即使目標顏色與背景顏色相似,網絡還是可以識別出目標的細節特征。在圖13(b)中,飛機尺寸中等,但是部分飛機與登機橋距離很近,很容易干擾到模型對飛機的檢測。YOLOv3對相對偏小且背景復雜的目標依然無法識別,在登機橋的干擾下,YOLOv3識別目標變得更加困難。YOLOv4雖然識別出了大部分目標,但對與登機橋相連的飛機出現了漏檢。Improved-YOLOv4使用DenseNet加強了特征提取,并且DenseNet的正則化效果減輕了網絡的過擬合,使模型具有更高的泛化性,所以Improved-YOLOv4對連接著登機橋的飛機的檢測效果更好。在圖13(c)中,飛機目標的背景更為復雜,Improved-YOLOv4的優勢更加明顯,YOLOv4還是無法對距離登機橋太近的飛機以及目標顏色與背景顏色相近的飛機進行識別,YOLOv3依然只能對尺寸中等的目標進行識別。
本文針對遙感圖像中飛機目標尺寸偏小,檢測難度大的問題進行研究,提出了基于YOLOv4的改進算法,通過調整特征層,改進網絡結構,調整先驗框,加強了對小目標的檢測能力,得到了更適合檢測遙感圖像中的飛機的目標檢測算法。實驗結果表明,Improved-YOLOv4算法滿足實時檢測的需求;精確率、召回率和平均精確度分別較原YOLOv4算法均有提升,有效地優化了YOLOv4算法對遙感圖像中的飛機目標檢測的問題。但對遙感圖像中遮擋部分較大的目標不能進行精確的檢測,后續工作將優化對遮擋飛機目標的檢測效果。