王成龍, 趙 倩, 趙 琰, 郭 彤
(上海電力大學電子與信息工程學院,上海 201000)
遙感目標檢測是計算機視覺領域的重點研究課題之一,其在軍事戰(zhàn)爭、民用生活等方面的應用前景廣闊[1],但遙感檢測場景復雜,實際部署存在諸多局限,目前主流的目標檢測算法難以直接應用,因此,兼顧準確性與實時性的遙感目標檢測算法具有重要的研究意義。
為此國內(nèi)外學者做出了許多努力,傳統(tǒng)基于模板匹配的遙感目標檢測算法多使用人工設計輔助特征提取,當面對復雜背景及環(huán)境干擾時,模型檢測效果與泛化能力較差[2-3]。近年來,深度學習的快速發(fā)展為遙感目標檢測算法提供了新的思路,目前主流的深度學習遙感目標檢測算法主要分為兩類:一類是基于錨框(Anchor)的目標檢測算法,代表算法有YOLO[4],SSD[5],F(xiàn)aster R-CNN[6]等;另一類是不基于錨框(Anchor-free)的目標檢測算法,代表算法有CenterNet[7],F(xiàn)COS[8]等。兩者的主要區(qū)別在于是否使用候選區(qū)域進行目標檢測的分類與回歸。蔣光峰等[9]針對Anchor-free算法,提出了基于定向遙感目標檢測的旋轉(zhuǎn)中心點估計網(wǎng)絡,通過添加方向預測分支提升了算法在傾斜目標檢測上的性能,但是寬高交換訓練過程容易導致訓練不穩(wěn)定。與之不同,許多學者為了應對復雜的遙感檢測場景,對基于Anchor的目標檢測算法進行改進,文獻[10]提出了改進YOLOv3的遙感目標檢測算法,使用DenseNet替換主干網(wǎng)絡,有效減少了模型的梯度消失問題,但是DenseNet作為主干網(wǎng)絡進行特征提取無疑使網(wǎng)絡參數(shù)更加冗余,實時檢測效果較差;為避免上述問題,文獻[11]對算法進行改進,對YOLOv3主干網(wǎng)絡進行簡化,設計并提出了FE-YOLO,有效提升了網(wǎng)絡檢測的實時性;隨著YOLOv4算法的提出,文獻[12]針對軌道檢測場景對其進行改進,達到了94.4%的平均精度和78.7 幀/s的檢測速度,實現(xiàn)了較高的檢測性能,為遙感目標檢測算法改進提供了新的思路。
為了同時保證模型的檢測精度與速度,本文對YOLOv4算法[13]進行改進,采用K-means++算法對遙感數(shù)據(jù)集進行錨框聚類分析,提高檢測的準確性。為了實現(xiàn)輕量化設計,使用輕量級網(wǎng)絡MobileNetv3[14]作為主干提取網(wǎng)絡,并設計深度可分離卷積PANet模塊[15],有效減少模型的參數(shù)量,提高檢測速度。分別在UCAS_AOD[16],RSOD[17],DIOR[18]等數(shù)據(jù)集上進行測試,驗證了模型的檢測性能與泛化能力。
遙感檢測場景中物體尺度變化大,且小目標數(shù)量多,直接使用原始的錨框參數(shù)進行訓練與檢測可能會造成較大誤差,使用K-means++算法[19]進行錨框(Anchor)聚類分析,加速網(wǎng)絡對定位信息的檢索,提高網(wǎng)絡的訓練速度與檢測性能。相比于目前錨框聚類改進中常用的K-means聚類算法,使用K-means++聚類算法可以避免隨機抽取聚類中心造成的誤差,提升聚類的穩(wěn)定性與準確性。
網(wǎng)絡在定位目標的過程中,需要對特征網(wǎng)絡的預測信息進行編碼與解碼,其對應的邊界框如圖1所示。
圖1中:bw和bh分別為邊界框的寬和高;pw和ph分別為錨框預測結(jié)果的寬和高;(tx,ty)為網(wǎng)絡預測的目標中心坐標;tw,th為網(wǎng)絡預測的寬和高;(cx,cy)為當前網(wǎng)格左上角坐標;σ是Sigmoid函數(shù),使用Sigmoid函數(shù)的優(yōu)點在于可以歸一化最終的輸入范圍,同時加快網(wǎng)絡的收斂速度[4]。
圖1 邊界框結(jié)構(gòu)圖Fig.1 Structure of boundary box
通過對YOLOv4網(wǎng)絡結(jié)構(gòu)分析可知,使用CSPDarknet53作為主干提取網(wǎng)絡,雖然能夠?qū)崿F(xiàn)較好的特征提取能力,但是網(wǎng)絡參數(shù)量大,計算量也大[20]。為了實現(xiàn)網(wǎng)絡輕量化,以MobileNetv3作為主干提取網(wǎng)絡進行特征提取,并使用深度可分離卷積改進網(wǎng)絡卷積層、減少網(wǎng)絡參數(shù)量、提高檢測速度,MobileNetv3設計結(jié)構(gòu)如圖2所示,基于MobileNetv3的網(wǎng)絡結(jié)構(gòu)如圖3所示。
圖2 MobileNetv3設計結(jié)構(gòu)Fig.2 Structure of MobileNetv3 design
對于大目標和小目標,YOLO系列算法均能實現(xiàn)較好的檢測效果,因此,網(wǎng)絡改進后仍使用3個預測尺度。網(wǎng)絡淺層特征圖的感受野較小,深層特征圖感受野大,使用不同深度的網(wǎng)絡特征圖對物體進行預測,可以解決遙感目標檢測場景中因物體尺度變化大而造成檢測不準確的問題。
網(wǎng)絡的輸入尺寸為416*416,主干網(wǎng)絡設計5層MobileNetv3_block進行特征提取,輸出的5個特征層維度分別是208*208*16,104*104*24,52*52*40,26*26*112,13*13*160。遙感目標檢測場景復雜,精簡預測層數(shù)會影響不同尺度目標的檢測效果,因此選用52*52*40,26*26*112,13*13*160這3個特征層作為預測層的輸入,為了進一步提升檢測效果,網(wǎng)絡對3個特征層進行了改進PANet的特征融合,通過網(wǎng)絡空間信息的共享來提升網(wǎng)絡的檢測性能[15]。
實驗測試原始YOLOv4網(wǎng)絡參數(shù)量為63 954 000,改進后網(wǎng)絡參數(shù)量為11 791 741,基于主干網(wǎng)絡和深度可分離卷積的改進,使網(wǎng)絡參數(shù)量大幅減少,能夠在保證模型檢測效果的同時大幅提高檢測速度。MobileNetv3主干網(wǎng)絡中嵌入的SENet注意力機制可以使網(wǎng)絡更加關注遙感目標的相關特征,提升網(wǎng)絡的檢測性能,增強模型的回歸能力,使網(wǎng)絡在面對復雜的遙感目標檢測場景時有更準確的特征關注,提升算法的魯棒性。
YOLOv4使用CSPDarknet53作為主干提取網(wǎng)絡,通過犧牲模型的運算速度提高了模型精度,這樣的設計方式使網(wǎng)絡中存在大量冗余。與之相似,除主干網(wǎng)絡部分外,PANet特征融合處也存在大量的特征冗余,為了進一步降低網(wǎng)絡參數(shù)量,減小內(nèi)存消耗,提高網(wǎng)絡的檢測效率,需要對網(wǎng)絡特征融合處進行改進。
PANet通過保留空間信息來增強網(wǎng)絡的檢測能力,YOLOv4在嵌入PANet結(jié)構(gòu)時,將原來相鄰特征層的相加操作修改為特征堆疊操作,提高預測的準確性,但是直接對網(wǎng)絡進行特征堆疊會引入許多不重要的特征,導致網(wǎng)絡特征冗余。為了解決上述問題,使用深度可分離卷積代替原來的標準卷積,提出了基于深度可分離卷積的PANet結(jié)構(gòu),改進PANet網(wǎng)絡結(jié)構(gòu)如圖4所示。
圖4 改進PANet結(jié)構(gòu)圖Fig.4 Structure diagram of the improved PANet
為驗證所提算法的檢測性能,分別在UCAS_AOD,RSOD,DIOR這3個主流遙感目標檢測數(shù)據(jù)集上進行實驗與測試。
其中:UCAS_AOD[16]是遙感影像數(shù)據(jù)集,數(shù)據(jù)集中包含汽車與飛機兩類目標,數(shù)據(jù)集中的目標經(jīng)過仔細篩選,實例對象的方向在數(shù)據(jù)集中分布均勻;RSOD遙感目標檢測數(shù)據(jù)集[17]中包含飛機、操場、立交橋和油桶4類遙感目標,共計976幅圖像、6950個目標實例;DIOR數(shù)據(jù)集[18]是目前主流的大規(guī)模光學遙感圖像目標檢測基準數(shù)據(jù)集,包含飛機、機場、棒球場等20類目標,共計23 463幅圖像和190 288個目標實例。實驗在上述3個主流遙感目標檢測數(shù)據(jù)集上進行對比,進一步驗證所提算法的檢測性能。
實驗硬件環(huán)境配置為NVIDIA GeForce RTX 2080 super,Intel?CoreTMi7-10700k,16 GiB RAM,開發(fā)環(huán)境為Tensorflow1.13.2,Keras2.1.5,CUDA10.0,Opencv3.4.2.16,Python3.6。
考慮實際硬件性能與對比實驗,將超參數(shù)進行如下設置:批量大小(Batch_size)設置為16、迭代次數(shù)(Epoch)設置為100、動量(Momentum)設置為0.9、權(quán)重衰減(Weight decay)設置為0.000 3,以Adam作為優(yōu)化器更新網(wǎng)絡參數(shù),使用余弦退火學習率并設置初始學習率為1E-4。訓練過程中損失(Loss)變化如圖5所示。
圖5 訓練損失曲線圖Fig.5 Training loss curve
由圖5可知,隨著網(wǎng)絡訓練的不斷進行,Loss逐漸下降,網(wǎng)絡正常收斂,網(wǎng)絡設計中設置了提前截止(early_stop),當網(wǎng)絡迭代80次時,由于Loss不再下降,網(wǎng)絡訓練提前截止。
實驗使用準確率P(Precision)、召回率R(Recall)、平均精度均值mAP(mean Average Precision)、參數(shù)量、檢測速度作為評價標準,其中,準確率及召回率[21-22]算式如下
(1)
(2)
式中:TP(True Positive)為真正例數(shù)量;FP(False Positive)為假正例數(shù)量;FN(False Negative)為假反例數(shù)量。若只使用準確率和召回率作為評價標準存在一定的局限性,因此引入mAP進行評判,AP為P與R在[0,1]范圍內(nèi)繪制曲線圍成的面積[22],mAP則為各類目標AP的均值,是評判目標檢測網(wǎng)絡整體性能的重要指標之一。
為驗證算法性能,在DIOR數(shù)據(jù)集上進行測試,與改進前算法進行對比,整體性能對比結(jié)果如表1所示。
表1 整體性能對比
從實驗結(jié)果分析中可以看出,改進算法參數(shù)量僅為原來的18.4%,檢測速度提升了2.19倍,雖然mAP相比于YOLOv4降低了1.45%,但是仍然能夠滿足檢測的準確性。通過對比分析可以看出,改進算法在準確率與實時性上達到了較好的平衡,相比YOLOv4,YOLOv3,SSD,YOLOv4-tiny等算法有更好的檢測性能。
為了直觀展示改進后算法的檢測效果,抽取DIOR測試數(shù)據(jù)集中的同幅圖像,對比算法改進前后的檢測效果,檢測效果對比如圖6所示。
圖6 檢測效果對比圖Fig.6 Comparison of detection results
由圖6可以看出,改進前后檢測效果差別不大,僅存在部分目標置信度下降情況,但仍能夠?qū)崿F(xiàn)遙感目標的準確檢測。綜合模型性能以及檢測結(jié)果分析可以看出,輕量化改進后模型仍然可以實現(xiàn)較為準確的檢測效果,且參數(shù)量大幅減少,模型檢測速度達到61.71 幀/s,符合實時檢測的要求。
為了驗證算法的魯棒性,將文獻[4]中的YOLOv3、文獻[5]中的SSD300、文獻[6]中的Faster R-CNN、文獻[7]中的Centernet以及YOLOv4-tiny,MobileNet-SSD等主流目標檢測算法與改進算法在RSOD,UCAS_AOD兩個遙感數(shù)據(jù)集上分別進行對比分析,對比實驗以mAP和檢測速度為技術(shù)指標,實驗對比結(jié)果如表2所示。
表2 與主流算法對比表
由表2可以看出,YOLOv3,SSD300,F(xiàn)aster R-CNN等基于錨框的目標檢測算法均能夠?qū)崿F(xiàn)較好的檢測效果,但是檢測速度難以達到要求,其中,F(xiàn)aster R-CNN算法檢測速度僅為13.52 幀/s,無法達到實時檢測的效果,而基于Anchor-free的Centernet算法檢測速度也僅為38.24 幀/s,同樣難以實現(xiàn)實時檢測,因此也證明了直接使用目前主流的目標檢測算法難以滿足實際檢測場景。
YOLOv4-tiny是對YOLOv4輕量化改進中效果較好的算法,將本文改進算法與之對比,從對比結(jié)果中可以看出,改進算法在RSOD和UCAS_AOD兩個數(shù)據(jù)集上mAP分別達到了79.02%和80.56%,相比于YOLOv4-tiny算法,改進算法雖然檢測速度略低,但是在RSOD和UCAS_AOD兩個數(shù)據(jù)集上的檢測精度明顯優(yōu)于YOLOv4-tiny算法。通過上述實驗對比不難看出,改進算法擁有較高的檢測精度與速度,為了直觀展示算法的檢測效果,抽取YOLOv4-tiny算法與改進算法的檢測效果進行對比,如圖7所示。
圖7 檢測效果對比圖Fig.7 Comparison of detection results
從圖7中可以看出,改進算法的檢測準確性明顯高于YOLOv4-tiny算法,尤其是對于小目標。許多YOLOv4-tiny算法未檢測出的小目標,本文改進算法都有較好的檢測效果。
從降低模型參數(shù)量與計算量的角度,針對遙感目標檢測場景,提出了基于深度可分離卷積改進YOLOv4的實時遙感目標檢測算法,對數(shù)據(jù)集進行錨框聚類分析后使用MobileNetv3作為主干提取網(wǎng)絡,并結(jié)合深度可分離卷積改進PANet網(wǎng)絡結(jié)構(gòu),減少網(wǎng)絡冗余參數(shù),在檢測效果與原算法相近的情況下,模型參數(shù)量僅為原來的18.4%,檢測速度提升了2.19倍。在DIOR,RSOD,UCAS等主流遙感數(shù)據(jù)集上進行實驗,驗證改進算法可以滿足實時檢測需要,算法魯棒性強。后續(xù)研究中可嘗試進一步對網(wǎng)絡結(jié)構(gòu)進行特征融合,在不增加網(wǎng)絡參數(shù)的情況下提高遙感目標檢測的精度。