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