謝 夢,劉 偉,2,楊夢圓,柴 琪,吉 莉
(1. 江蘇師范大學(xué)地理測繪與城鄉(xiāng)規(guī)劃院,江蘇 徐州 221116; 2. 資源與環(huán)境信息系統(tǒng)國家重點實驗室,北京 100101)
隨著遙感影像空間分辨率的提高,對高分遙感影像的處理和應(yīng)用正變得日益緊迫。飛機(jī)檢測在軍用和民用領(lǐng)域均具有相當(dāng)廣泛的應(yīng)用,近年來已經(jīng)成為高分遙感影像目標(biāo)檢測中一個極其重要的研究方向[1]。關(guān)于飛機(jī)檢測的研究方法,多數(shù)是利用飛機(jī)的基本特征來識別目標(biāo),通過獲取飛機(jī)的基本特征后送入分類器分類[2-4],這些方法對人工選擇目標(biāo)特征具有很強的依賴性。
深度學(xué)習(xí)是機(jī)器學(xué)習(xí)領(lǐng)域一個新的研究方向,其目的在于建立模擬人腦進(jìn)行分析學(xué)習(xí)的神經(jīng)網(wǎng)絡(luò),模仿人腦的神經(jīng)機(jī)制來解釋數(shù)據(jù),如圖像、聲音和文本。近年來,深度學(xué)習(xí)算法在圖像分類[5]、自然語言處理[6]、人工智能[7-8]等領(lǐng)域取得前所未有的成果。通過低層濾波器來獲取圖像局部特征,利用高層濾波器將這些局部特征組合成全局特征。整個過程都是通過網(wǎng)絡(luò)訓(xùn)練大量樣本來自動提取影像特征,有效地提高了執(zhí)行效率和檢測精度。因此,深度學(xué)習(xí)在遙感應(yīng)用中引起了廣泛關(guān)注,并在場景分類[9]、高光譜圖像分類[10-11]、目標(biāo)檢測[12-13]等方面取得了顯著成效。
基于深度學(xué)習(xí)的飛機(jī)檢測克服了傳統(tǒng)檢測方法中目標(biāo)特征難以選取、泛化能力差等問題,但也面臨巨大挑戰(zhàn),主要為訓(xùn)練樣本不足、網(wǎng)絡(luò)難以訓(xùn)練[14]。同時,為了得到較高的識別率,網(wǎng)絡(luò)設(shè)計越來越復(fù)雜,網(wǎng)絡(luò)參數(shù)增大,飛機(jī)所處的遙感影像背景復(fù)雜且飛機(jī)形態(tài)存在差異[13],因此準(zhǔn)確而快速地檢測出遙感影像中飛機(jī)仍然十分困難[1]。
深度學(xué)習(xí)在目標(biāo)檢測方面主要分為兩類:一類是基于候選區(qū)域的分步式目標(biāo)檢測方法,代表性的有R-CNN[15]、SPP[16]、Fast R-CNN[17]、Faster R-CNN[18];另一類是基于回歸思想的直接目標(biāo)檢測方法,代表性的有YOLO[19]、SSD[20]。前者定位精度高,但檢測時間長,后者檢測速度快、正確率高。很多學(xué)者都青睞YOLO算法,通過對其網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行改進(jìn)來提高網(wǎng)絡(luò)性能。文獻(xiàn)[21]提出一種Dense-YOLO網(wǎng)絡(luò),通過特征復(fù)用提高對遙感影像中飛機(jī)的識別效果,但內(nèi)存占用較大,文獻(xiàn)[22]提出一種SENet結(jié)構(gòu)嵌入YOLOv3網(wǎng)絡(luò)中,融合YOLOv3(you look only once)與SENet的優(yōu)點,增強了網(wǎng)絡(luò)感受野,但網(wǎng)絡(luò)訓(xùn)練參數(shù)較多。
由于YOLOv3算法對原圖做縮放處理,造成網(wǎng)絡(luò)高層的感受野減小,導(dǎo)致“相對尺寸小”的目標(biāo)檢測困難,其中相對尺寸小的目標(biāo)是相對原圖的長寬。本文為擴(kuò)大網(wǎng)絡(luò)高層的感受野,提高特征圖的分辨率,將擴(kuò)張卷積[23-24]引入YOLOv3網(wǎng)絡(luò),為減少需要計算的可訓(xùn)練權(quán)重參數(shù),實現(xiàn)通道和區(qū)域的分離,再將深度可分離卷積[25]引入網(wǎng)絡(luò)。試驗結(jié)果表明:相比于YOLOv3算法,優(yōu)化的YOLOv3算法能夠降低漏檢率,提高小目標(biāo)的檢測精度。
YOLO是一種多目標(biāo)檢測算法,在訓(xùn)練和預(yù)測時將整張圖像輸入網(wǎng)絡(luò)模型,直接回歸出目標(biāo)中心位置、目標(biāo)長寬和類別,以實現(xiàn)端到端的目標(biāo)檢測。
(1)
(2)
本文首先使用K-means聚類算法計算出適用于數(shù)據(jù)集的錨框,然后用擴(kuò)張率為2的擴(kuò)張卷積取代YOLOv3網(wǎng)絡(luò)第76、78、80層卷積核為3×3的普通卷積,并用深度可分離卷積取代原網(wǎng)絡(luò)殘差模塊中的普通卷積,算法的優(yōu)化主要體現(xiàn)在以下3個方面。
由于YOLOv3算法中的anchorbox是由VOC20和COCO80數(shù)據(jù)集聚類得到,而本文數(shù)據(jù)集中的飛機(jī)相對較小,不適合使用原定義的anchorbox[21],因此需要對本文數(shù)據(jù)集的目標(biāo)候選框進(jìn)行維度聚類分析,使用K-means聚類算法獲取適合本文數(shù)據(jù)集的anchorbox。
擴(kuò)張卷積是向卷積層引入一個稱為擴(kuò)張率(dilation rate)的新參數(shù),該參數(shù)定義卷積核處理數(shù)據(jù)時各值的間距。傳統(tǒng)的骨干網(wǎng)絡(luò)基于大的下采樣因子可以生成更高的感受野,有利于圖像分類,但犧牲了空間分辨率,從而使網(wǎng)絡(luò)難以準(zhǔn)確地定位大型目標(biāo)和識別小型目標(biāo)[26]。YOLOv3算法對原圖做了縮放,造成網(wǎng)絡(luò)高層感受野減小,本文引入擴(kuò)張卷積層增加網(wǎng)絡(luò)高層感受野,以改善小目標(biāo)檢測效果。擴(kuò)張卷積的原理如圖1所示。
圖1中灰度點標(biāo)記位置同正常卷積核,其他位置為0,其中圖1(a)為3×3擴(kuò)張率為1的卷積,與普通卷積一樣,感受野為9;圖1(b)為擴(kuò)張率為2的卷積,感受野為49;圖1(c)為擴(kuò)張率為4的卷積,感受野為225,從圖中可以看出卷積核的參數(shù)個數(shù)保持不變,感受野的大小隨著擴(kuò)張率的增加呈指數(shù)增長。
深度可分卷積[25]是在輸入的每個通道獨立執(zhí)行空間卷積,然后進(jìn)行逐點卷積,即1×1卷積,將深度卷積的通道輸出映射到新的通道空間。深度可分離卷積比普通卷積減少訓(xùn)練參數(shù),而且它先只考慮區(qū)域,然后再考慮通道,以實現(xiàn)區(qū)域和通道的分離。深度可分離卷積的過程如圖2所示。
從圖2可以看出,每一個通道用一個卷積核卷積之后得到對應(yīng)一個通道的輸出,然后再進(jìn)行信息融合。假設(shè)輸入通道數(shù)為3,輸出通道數(shù)為32,用一個3×3卷積核進(jìn)行卷積,則普通卷積需要計算的參數(shù)為3×3×3×32=864,深度可分離卷積要計算的參數(shù)為: 3×3×3+3×1×1×32=123, 深度可分離卷積明顯降低了參數(shù)量。本文優(yōu)化的YOLOv3算法模型結(jié)構(gòu)如圖3所示。
本文試驗環(huán)境為在Ubuntu16.04操作系統(tǒng)下,安裝配置Cuda9.1.85和Python3.6.5,并搭建Keras和Tensorflow深度學(xué)習(xí)平臺,算法的訓(xùn)練和測試均在GPU加速下完成。
在遙感影像飛機(jī)目標(biāo)檢測的應(yīng)用研究方面,目前幾乎沒有公開的符合深度學(xué)習(xí)訓(xùn)練的數(shù)據(jù)集,這也是制約該方向應(yīng)用的主要問題之一。本文研究的影像來自DOTA(http:∥captain.whu.edu.cn/DOTAweb/)、UCAS-AOD(http:∥www.ucassdl.cn/resource.asp)、RSOD-Dataset(https:∥github.com/RSIA-LIESMARS-WHU/RSOD-Dataset)3個遙感影像數(shù)集,影像的尺寸一般是1044×944。在制作數(shù)據(jù)集的過程中,依據(jù)VOC2007的數(shù)據(jù)集格式,對影像進(jìn)行統(tǒng)一格式的命名,再利用labelImg(https:∥github.com/tzutalin/labelImg)圖片標(biāo)注工具對影像進(jìn)行標(biāo)注,生成包含有目標(biāo)類別位置信息的XML文件。試驗共制作446張數(shù)據(jù)集,其中386張訓(xùn)練集,42張驗證集,18張測試集,飛機(jī)樣本如圖4所示。
對YOLOv3算法和優(yōu)化的YOLOv3算法分別迭代200次進(jìn)行訓(xùn)練,飛機(jī)在影像中屬于小目標(biāo),經(jīng)過多次對比試驗,算法采用按步長衰減學(xué)習(xí)率的策略,設(shè)置基礎(chǔ)學(xué)習(xí)率為0.001,在迭代120次、180次時學(xué)習(xí)率變成基礎(chǔ)學(xué)習(xí)率的0.1倍和0.01倍。選取Batch_size(每批數(shù)據(jù)量的大小)為10,沖量常數(shù)為0.9,權(quán)值衰減系數(shù)為0.000 5,從而避免出現(xiàn)過擬合現(xiàn)象。
將YOLOv3算法和優(yōu)化的YOLOv3算法在本文測試集上進(jìn)行對比測試,分別計算準(zhǔn)確率、召回率和F1-score。精確率的公式為
(3)
召回率的公式為
(4)
F1-score的公式為
(5)
式中,TP為正確檢測出的飛機(jī)個數(shù);FP為誤檢的飛機(jī)個數(shù);FN為漏檢的飛機(jī)個數(shù)。
F1-score是使用調(diào)和平均結(jié)合召回率和精度的指標(biāo)。從表1可以看出,本文優(yōu)化YOLOv3算法的召回率比YOLOv3算法高出11.86%,精確率下降7.27%。此時需要F1-score來進(jìn)行總體衡量。試驗結(jié)果表明本文在使用K-means聚類算法和擴(kuò)張卷積后,其F1-score比YOLOv3高出1.33%,網(wǎng)絡(luò)中再加入深度可分離卷積后,其F1-score比YOLOv3高出2.99%。由此可見,本文算法明顯優(yōu)于YOLOv3算法。圖5是YOLOv3算法和優(yōu)化YOLOv3算法對2張相同圖像的檢測結(jié)果。從圖5中可以看出YOLOv3算法不能準(zhǔn)確檢測出影像中的小目標(biāo),出現(xiàn)較多漏檢情況,框上沒字是漏檢,框上有字是算法檢測出的飛機(jī)。優(yōu)化的YOLOv3算法增強了網(wǎng)絡(luò)高層的感受野,能夠準(zhǔn)確檢測出影像中的小目標(biāo),有效地降低漏檢率,提高小目標(biāo)檢測的精度。
(%)
本文針對YOLOv3算法對小目標(biāo)檢測效果較差、出現(xiàn)較多漏檢的情況,使用K-means聚類算法計算出適合本文數(shù)據(jù)集的錨框,在YOLOv3算法的網(wǎng)絡(luò)結(jié)構(gòu)中引入擴(kuò)張卷積,用來增強網(wǎng)絡(luò)高層的感受野,改善對小目標(biāo)的檢測效果,并在網(wǎng)絡(luò)結(jié)構(gòu)中引入深度可分離卷積來減少計算參數(shù)和分別學(xué)習(xí)空間特征和通道特征。試驗結(jié)果表明,優(yōu)化的YOLOv3算法比YOLOv3算法的召回率提高了11.86%,而且F1-score提高了2.99%,能準(zhǔn)確檢測到更多目標(biāo),提高小目標(biāo)的檢測精度。由于遙感影像目標(biāo)檢測作為圖像解譯的一個重要研究方向,其對于資源調(diào)查、災(zāi)害監(jiān)測、資源勘探及軍事目標(biāo)的識別判讀等都具有重要的意義。在今后的研究工作中,會增加訓(xùn)練集以提高樣本多樣性,而且在繼續(xù)提升召回率的同時,提高精確率。