朱福珍 王 帥 巫 紅
(*黑龍江大學(xué)電子工程學(xué)院 哈爾濱 150080)
(**中南大學(xué)物理與電子學(xué)院 長沙 410006)
遙感圖像具有數(shù)據(jù)量大、數(shù)據(jù)復(fù)雜、目標(biāo)分布廣泛等特點(diǎn),如何克服遙感圖像目標(biāo)繁多、種類密集、背景信息復(fù)雜等難點(diǎn),快速精準(zhǔn)地識(shí)別定位遙感圖像中的目標(biāo),是當(dāng)下遙感圖像目標(biāo)檢測領(lǐng)域研究的熱點(diǎn)和難點(diǎn)。遙感圖像目標(biāo)檢測在遙感圖像語義檢索、智慧城市建設(shè)、資源調(diào)査、環(huán)境監(jiān)測等領(lǐng)域具有重要意義[1]。本文對現(xiàn)階段自然圖像目標(biāo)檢測表現(xiàn)突出的PP-YOLO 網(wǎng)絡(luò)進(jìn)行改進(jìn),并將該網(wǎng)絡(luò)進(jìn)行遷移,更好地用于遙感圖像目標(biāo)檢測。
傳統(tǒng)的遙感圖像目標(biāo)檢測算法主要是基于人工提取特征的方法,對專家經(jīng)驗(yàn)依賴程度很高,且工作量巨大。隨著深度學(xué)習(xí)技術(shù)的成功應(yīng)用,全球重要賽事和實(shí)際應(yīng)用已證明了其在目標(biāo)檢測中的強(qiáng)大實(shí)力。深度學(xué)習(xí)領(lǐng)域的重大轉(zhuǎn)折始于2012 年的計(jì)算機(jī)視覺競賽中由Krizhevsky 等人[2]改進(jìn)設(shè)計(jì)的AlexNet,該網(wǎng)絡(luò)設(shè)計(jì)獲得了卷積神經(jīng)網(wǎng)絡(luò)模型圖像分類最高的準(zhǔn)確率。隨著硬件技術(shù)的快速發(fā)展,大規(guī)模的深度學(xué)習(xí)網(wǎng)絡(luò)架構(gòu)呈現(xiàn)井噴式發(fā)布。例如,2014 年,Girshick 等人[3]提出區(qū)域卷積神經(jīng)網(wǎng)絡(luò)(region convolutional neural network,R-CNN)算法,該算法將目標(biāo)檢測任務(wù)分割成了目標(biāo)分類和定位兩個(gè)任務(wù),實(shí)現(xiàn)了檢測精度的重大突破,但是選擇性搜索算法產(chǎn)生了大量的冗余候選框,候選區(qū)域特征提取過程中存在大量重復(fù)運(yùn)算,這些都限制了模型的速度和性能。隨后,基于其改進(jìn)的Fast R-CNN[4]、Faster R-CNN 算法[5]以及Mask R-CNN[6]都在深度學(xué)習(xí)發(fā)展史上留下了濃墨重彩的一筆。
2017 年,提出的YOLO 系列算法成功地開創(chuàng)了單目標(biāo)檢測算法的時(shí)代[7-9],不再使用特定算法來產(chǎn)生候選框,而是巧妙地將回歸問題與目標(biāo)邊框定位問題進(jìn)行類比推理,極大地提升了目標(biāo)檢測器的速度和精度。同年,Lin 等人[10]在特征金字塔網(wǎng)絡(luò)(feature pyramid network,FPN)算法中提出了bottom-up 與top-down 的結(jié)構(gòu),利用深層特征圖的高語義特征與淺層的高分辨率信息融合后的特征層獨(dú)立預(yù)測,提升了目標(biāo)檢測算法對小目標(biāo)檢測的效果。2019 年,CornerNet 算法[11]的提出,開創(chuàng)了無錨框算法的時(shí)代,成功解決了基于錨框的算法依賴手動(dòng)設(shè)計(jì)、訓(xùn)練和預(yù)測過程低效及正負(fù)樣本不均衡的問題,并取得了與基于錨框的算法相媲美的精度。
PP-YOLO 網(wǎng)絡(luò)是基于百度編寫的深度學(xué)習(xí)框架PaddlePaddle 上編寫的,在目標(biāo)檢測方面體現(xiàn)了非常好的性能,將YOLOv3 模型的平均精度均值(mean average precision,mAP)在COCO 數(shù)據(jù)集對象檢測任務(wù)上從38.9%提升到44.6%,并將推理速度(FPS)從58 增加到73??梢?與其他目標(biāo)檢測器相比PP-YOLO 模型檢測性能有了很大的提升。與YOLO 系列算法不同,PP-YOLO 網(wǎng)絡(luò)并沒有探索不同的骨干網(wǎng)絡(luò)和數(shù)據(jù)增強(qiáng)算法,也沒有使用神經(jīng)結(jié)構(gòu)搜索(neural architecture search,NAS)超參數(shù),而是采用一種改進(jìn)的ResNet50-vd-dcn 骨干網(wǎng)絡(luò)[12]替換掉了原YOLOv3 網(wǎng)絡(luò)的骨干網(wǎng)絡(luò),并對現(xiàn)有的一些幾乎不影響效率的有效技巧進(jìn)行修改并疊加到原有網(wǎng)絡(luò)中,以提高網(wǎng)絡(luò)性能,做到有效性和效率之間的平衡。本文對PP-YOLO[12]網(wǎng)絡(luò)在訓(xùn)練策略和網(wǎng)絡(luò)結(jié)構(gòu)兩方面進(jìn)行了改進(jìn)優(yōu)化,使其能夠更好地適應(yīng)遙感圖像小目標(biāo)任務(wù)的檢測。
PP-YOLO 網(wǎng)絡(luò)是一種典型的單階段目標(biāo)檢測算法,通常由骨干網(wǎng)絡(luò)、檢測頸(通常是一個(gè)特征金字塔網(wǎng)絡(luò))和檢測頭(物體分類和定位部分)組成[13]。本文在檢測頸、數(shù)據(jù)增強(qiáng)策略和訓(xùn)練策略方面進(jìn)行改進(jìn),用于提高遙感圖像目標(biāo)檢測。
PP-YOLO 網(wǎng)絡(luò)構(gòu)建具有橫向連接的特征金字塔,具體結(jié)構(gòu)如圖1 所示。為了簡潔起見,圖中省略了激活層。與傳統(tǒng)的特征金字塔不同的是,PP-YOLO 加入了許多不影響精度的方法提升FPN 結(jié)構(gòu)的性能,本文對檢測頸的重要改進(jìn)之一是對特征金字塔引入新的方法進(jìn)行調(diào)整。在圖2 中使用不同顏色的圓角框和連接線進(jìn)行了標(biāo)注,其中棕色圓角框表示該卷積層加入CoordConv 方法[14],紫色圓角框表示在該位置加入DropBlock 方法[15],紅色連接線表示加入空間金字塔池化[16]方法。骨干網(wǎng)絡(luò)的最后3 層的特征映射(C3,C4,C5)輸入到FPN 網(wǎng)絡(luò)中,在此定義l層特征金字塔輸出的特征映射為Pl,本文實(shí)驗(yàn)時(shí)l=3,4,5。當(dāng)輸入圖像尺寸為W×H時(shí),輸出特征映射Pl為
圖1 特征金字塔具體結(jié)構(gòu)
本文在檢測頸部分的另一處改進(jìn)是加入了由低層網(wǎng)絡(luò)向高層網(wǎng)絡(luò)傳達(dá)的通路,如圖2 所示。之所以做出這樣的改進(jìn),是由于原PP-YOLO 網(wǎng)絡(luò)的檢測頸只能實(shí)現(xiàn)低層網(wǎng)絡(luò)學(xué)習(xí)到高層網(wǎng)絡(luò)的語義信息,但是高層網(wǎng)絡(luò)卻沒有辦法學(xué)習(xí)低層網(wǎng)絡(luò)豐富的空間特征信息。因此,本文在改進(jìn)的檢測頸結(jié)構(gòu)中,保留了原網(wǎng)絡(luò)的基本框架,即每一層的處理過程不變,在第4 和第5 層加入了低層網(wǎng)絡(luò)語義信息傳達(dá)通路,該通路通過名為Downsample Block 的模塊實(shí)現(xiàn),DownsampleBlock 模塊的具體信息在圖3 中給出。經(jīng)實(shí)驗(yàn)驗(yàn)證,改進(jìn)后的檢測頸設(shè)計(jì)在遙感圖像目標(biāo)識(shí)別過程中顯示出了一定的優(yōu)勢,對提升檢測精度很有幫助。
圖2 檢測頸優(yōu)化策略框圖
PP-YOLO 網(wǎng)絡(luò)的檢測頭部分采用3×3 卷積層和1×1 卷積層進(jìn)行最終預(yù)測,每個(gè)輸出通道最終的輸出是3×(K+5),其中K是預(yù)測目標(biāo)實(shí)例總類別。每一張輸入圖片的最終預(yù)測結(jié)果都會(huì)與3 個(gè)錨框進(jìn)行關(guān)聯(lián)。每個(gè)錨框的輸出結(jié)果都是由K個(gè)不同類別的預(yù)測概率加上4 個(gè)預(yù)測錨框的位置坐標(biāo)以及為某個(gè)類別的分?jǐn)?shù)預(yù)測組成。針對分類和定位,分別采用了cross entropy 損失和L1 損失函數(shù)。檢測頭的結(jié)構(gòu)以及損失函數(shù)的搭配使用如圖3 所示。
圖3 檢測頭的結(jié)構(gòu)以及損失函數(shù)的搭配
Cross entropy 損失函數(shù)定義如式(2)所示,計(jì)算輸入和標(biāo)簽之間的交叉熵,可用于訓(xùn)練分類器。如果提供權(quán)重參數(shù),它是一個(gè)1-D 的張量,每個(gè)值對應(yīng)每個(gè)類別的權(quán)重,損失函數(shù)為式(2);如果不提供權(quán)重參數(shù),該損失函數(shù)為式(3)。
其中,weight為指定每個(gè)類別的權(quán)重,input為指定類別的輸入。
L1 損失函數(shù)用于計(jì)算輸入和標(biāo)簽之間的損失,根據(jù)指定應(yīng)用于輸出結(jié)果的計(jì)算方式L1 損失函數(shù)有絕對值、均值和求和3 種表達(dá),本文中采用求和L1 損失,如式(4)所示。
其中,input為指定類別的輸入,label為與input在維度和類別上相同的標(biāo)簽。
數(shù)據(jù)增強(qiáng)的目的是擴(kuò)充原訓(xùn)練數(shù)據(jù)集,產(chǎn)生與原圖像相似但又不完全相同的樣本,防止網(wǎng)絡(luò)過擬合,以提升模型的泛化能力。PP-YOLO 首先使用Image Mixup(服從Beta(1.5,1.5)分布)訓(xùn)練,使訓(xùn)練的前250 輪每幅圖像都是任意2 張圖像混合,最后20 輪不做混合,這樣做的優(yōu)點(diǎn)是提高了網(wǎng)絡(luò)對空間擾動(dòng)的泛化能力。但Mixup 數(shù)據(jù)增強(qiáng)算法會(huì)存在圖像混合不自然的情況,從而出現(xiàn)非信息像素,降低訓(xùn)練效率。因此,本文對數(shù)據(jù)增強(qiáng)策略進(jìn)行改進(jìn),改進(jìn)策略框圖如圖4 所示,以更優(yōu)的CutMix 數(shù)據(jù)增強(qiáng)算法[17]替換掉原有的Mixup 數(shù)據(jù)增強(qiáng)算法。這種CutMix 數(shù)據(jù)增強(qiáng)算法采用裁剪區(qū)域然后以補(bǔ)丁的方式混合圖像,不存在以上問題,同時(shí)訓(xùn)練和推理代價(jià)不變。
圖4 改進(jìn)的數(shù)據(jù)增強(qiáng)策略框圖
本文實(shí)驗(yàn)數(shù)據(jù)集為公開的DIOR 和DOTA 遙感圖像目標(biāo)檢測數(shù)據(jù)集,這類數(shù)據(jù)集目標(biāo)總數(shù)分布不均勻(車輛的圖片高達(dá)6000 張,而包含煙囪的圖片卻不到1000 張)、類別總數(shù)分布不均勻(船只總數(shù)高出了車輛總數(shù)的1/3,是火車站數(shù)量的60 倍)。在模型訓(xùn)練過程中,這會(huì)導(dǎo)致模型的差別學(xué)習(xí)或偏向性學(xué)習(xí),使得相同識(shí)別難度下某些在數(shù)據(jù)集中分布更廣泛的類別識(shí)別精度遠(yuǎn)高于相同識(shí)別難度的其他類別。同時(shí),具有類間相似性的不同類別還存在相互抑制性,在分布差距較大的情況下,可能會(huì)導(dǎo)致對某一類目標(biāo)的過度學(xué)習(xí),抑制具有類間相似性的其他類別的學(xué)習(xí)。這都給目標(biāo)檢測算法帶來了巨大的挑戰(zhàn)。即使采取了適當(dāng)?shù)臄?shù)據(jù)增強(qiáng)策略,距離滿足網(wǎng)絡(luò)訓(xùn)練的需求還有一定差距,因此,實(shí)驗(yàn)中對DOTA 數(shù)據(jù)集進(jìn)行了分析,取該數(shù)據(jù)集與DIOR 數(shù)據(jù)集中相同且難以識(shí)別的類別,修改其數(shù)據(jù)標(biāo)注文件為VOC 數(shù)據(jù)集標(biāo)注格式,然后將該部分?jǐn)?shù)據(jù)混合入DIOR 數(shù)據(jù)集的訓(xùn)練集中完成擴(kuò)充。由于DIOR數(shù)據(jù)集中包含類別眾多,類間相似性明顯,訓(xùn)練過程中難免會(huì)出現(xiàn)部分類別訓(xùn)練不充分的問題。為了解決該問題,本文提出了訓(xùn)練策略的優(yōu)化并編寫了相應(yīng)的程序來實(shí)現(xiàn)該功能。
具體過程是將公開的DIOR 和DOTA 遙感圖像目標(biāo)檢測數(shù)據(jù)集經(jīng)特定的篩選規(guī)則組成混合訓(xùn)練集,當(dāng)模型訓(xùn)練達(dá)到某個(gè)瓶頸,總體平均mAP 值在取得最優(yōu)值的10 個(gè)批次內(nèi)不再提升時(shí),停止訓(xùn)練并測試輸出每一個(gè)類別的AP 值;將單一類別的AP 值與總體平均mAP 值進(jìn)行對比;根據(jù)統(tǒng)計(jì)出的各單一類別的平均像素大小,取所有包含低于總體平均mAP 值且像素點(diǎn)在平均像素以下類別的圖片;根據(jù)單一類別AP 值升序排列,分別在混合數(shù)據(jù)集中取原訓(xùn)練集大小的9.75%依次遞減0.5%的數(shù)量(小數(shù)部分按四舍五入處理),然后再擴(kuò)充2 倍寫入新的訓(xùn)練集。這樣做的目的是為了使網(wǎng)絡(luò)能對那些難以識(shí)別的圖片進(jìn)行學(xué)習(xí),并且盡可能地保證不會(huì)因?yàn)橐敫嗟哪骋活悎D片而導(dǎo)致具有類間相似性類別的識(shí)別精度降低。
具體實(shí)驗(yàn)中,選擇開源DIOR 和DOTA 數(shù)據(jù)集,確定訓(xùn)練集圖像5861 張,測試集圖像11 738 張,共20 類目標(biāo)。為了表述方便,分別用H1~H20 依次表示飛機(jī)、飛機(jī)場、棒球場、籃球場、橋、煙囪、大壩、高速公路服務(wù)區(qū)、高速公路收費(fèi)站、高爾夫球場、地面田徑場、港口、立交橋、船、體育場、儲(chǔ)存罐、網(wǎng)球場、火車站、車輛和風(fēng)車。實(shí)驗(yàn)的環(huán)境為GPU:Tesla V100,Video Mem:16 GB;CPU:2 Cores,RAM:16 GB;Disk:100 GB。實(shí)驗(yàn)過程主要步驟可概括為:首先設(shè)定訓(xùn)練模型路徑和評估模型路徑,模型分類數(shù)設(shè)定為20,依次設(shè)定模型的backbone、檢測頸、檢測頭,損失函數(shù)、學(xué)習(xí)率設(shè)定為0.0003;然后訓(xùn)練數(shù)據(jù)增廣和優(yōu)化;最后設(shè)置預(yù)測模型參數(shù)。整個(gè)網(wǎng)絡(luò)訓(xùn)練約30 h收斂。詳細(xì)參數(shù)設(shè)置及具體實(shí)現(xiàn)過程已開源,開源網(wǎng)址為https://aistudio.baidu.com/aistudio/projectdetail/1480790。
實(shí)驗(yàn)采取平均精度均值(mAP)作為評判指標(biāo),mAP 是n個(gè)不同類別平均精度(average precision,AP)的平均值,其定義為
式中,AP 是對數(shù)據(jù)集中的一個(gè)類別的精度進(jìn)行平均,其定義為
式中,P和Δr為查準(zhǔn)率-查全率(precision-recall,P-R)曲線中的查準(zhǔn)率和查全率[13,18]。
為了驗(yàn)證本文改進(jìn)網(wǎng)絡(luò)的有效性,并在實(shí)驗(yàn)過程中提供具有參考意義的對照組,本文提出的每一個(gè)改進(jìn)點(diǎn),均是在單獨(dú)的實(shí)驗(yàn)環(huán)境中進(jìn)行測試,以保證不引入非修改因素對實(shí)驗(yàn)結(jié)果造成影響。為了便于描述,本文將ResNet101-vd-dcn 骨干網(wǎng)絡(luò)的整體網(wǎng)絡(luò)架構(gòu)實(shí)驗(yàn)稱為方法1,將訓(xùn)練策略優(yōu)化的方法在ResNet50-vd-dcn 以及ResNet101-vd-dcn 骨干網(wǎng)絡(luò)的實(shí)驗(yàn),分別稱為方法2 和方法3。將優(yōu)化的檢測頸結(jié)構(gòu)在ResNet50-vd-dcn 骨干網(wǎng)絡(luò)的實(shí)驗(yàn)稱為方法4。實(shí)驗(yàn)結(jié)果如圖5 所示。
圖5 各方法預(yù)測檢測效果對比圖
根據(jù)表1 和表2 的統(tǒng)計(jì)結(jié)果,可以看出使用優(yōu)化訓(xùn)練策略后網(wǎng)絡(luò)各類別預(yù)測AP 值均有顯著的提升,充分訓(xùn)練后的網(wǎng)絡(luò)其mAP 值高達(dá)89.3%。通過對比方法4 和方法1,可以看到優(yōu)化后的檢測頸結(jié)構(gòu)對網(wǎng)絡(luò)的精度提升是有效的,相比于使用更大骨干網(wǎng)絡(luò)的方法1,方法4 仍取得了2.5%的mAP值提升。故整體考慮,該修改結(jié)構(gòu)引入的參數(shù)增多是可以忽略的。即使造成了推理速度的降低,但精度的提升彌補(bǔ)了該缺陷。通過檢測效果圖5,可以看到優(yōu)化的訓(xùn)練策略存在一些矛盾,由于DIOR 數(shù)據(jù)集中汽車等目標(biāo)存在為數(shù)眾多的特小目標(biāo),中等以上目標(biāo)較少,而網(wǎng)絡(luò)更多地對小目標(biāo)以及特小目標(biāo)的特征進(jìn)行了學(xué)習(xí),反而對中等以上的目標(biāo)特征學(xué)習(xí)造成了影響。
表1 不同方法在DIOR 數(shù)據(jù)集上取得的AP 對比表
表2 不同方法在DIOR 數(shù)據(jù)集上取得的AP 對比表續(xù)
本文提出一種改進(jìn)的PP-YOLO 網(wǎng)絡(luò)遙感圖像目標(biāo)檢測方法,分別進(jìn)行了訓(xùn)練策略的優(yōu)化和檢測頸的優(yōu)化。優(yōu)化訓(xùn)練方法基于遙感數(shù)據(jù)集特點(diǎn),使用更優(yōu)的CutMix 數(shù)據(jù)增強(qiáng)算法替換掉原有的Mixup數(shù)據(jù)增強(qiáng)算法,加入增強(qiáng)網(wǎng)絡(luò)特征學(xué)習(xí)的GridMask算法,生成增廣數(shù)據(jù)集對模型進(jìn)行訓(xùn)練,充分且均衡地學(xué)習(xí)每一類目標(biāo)的特征。訓(xùn)練優(yōu)化策略均能有效地提高每一類目標(biāo)實(shí)例的精度,解決了遙感圖像目標(biāo)實(shí)例尺寸變化大、類間相識(shí)性和類內(nèi)相似性大,從而造成不同目標(biāo)實(shí)例精度差距較大、部分目標(biāo)精度不高的問題,最高取得了89.3%的mAP。
對PP-YOLO 網(wǎng)絡(luò)的檢測頸部分進(jìn)行了改進(jìn)優(yōu)化,保留了原基本框架,在第4 和第5 層加入了由低層網(wǎng)絡(luò)向高層網(wǎng)絡(luò)傳達(dá)的通路,不僅使網(wǎng)絡(luò)低層部分可以學(xué)習(xí)到高層部分的特征信息,同時(shí)加強(qiáng)高層網(wǎng)絡(luò)學(xué)習(xí)到的特征信息。檢測頸優(yōu)化方法提高了檢測精度,保證了極佳的泛化能力,即使是在識(shí)別完全不同的數(shù)據(jù)集時(shí),仍然可以取得優(yōu)異的檢測效果,其mAP 比未改進(jìn)優(yōu)化同骨干網(wǎng)絡(luò)的PP-YOLO 網(wǎng)絡(luò)提高了4.4%。