張青華 谷國(guó)太 李彩林 王佳文
(1山東理工大學(xué)建筑工程學(xué)院;2河南省新聞出版學(xué)校)
隨著航天事業(yè)的不斷發(fā)展,高分辨率遙感衛(wèi)星的數(shù)量越來(lái)越多,中國(guó)獲取遙感影像的方式越來(lái)越便捷,并且遙感影像因其較高的視角,包含十分豐富的位置信息、特征信息等。面對(duì)如此豐富的影像源,如何產(chǎn)生有效的社會(huì)效益是科研工作者面臨的一個(gè)挑戰(zhàn),其中遙感影像目標(biāo)檢測(cè)領(lǐng)域的研究一直都是研究熱點(diǎn),在軍事偵察、城市規(guī)劃、環(huán)境檢測(cè)、智能交通、資源勘測(cè)等領(lǐng)域均有涉及。
傳統(tǒng)的遙感影像目標(biāo)檢測(cè)方法:通常使用人工設(shè)計(jì)的特征描述子提取特征,然后訓(xùn)練一個(gè)分類器來(lái)達(dá)到目標(biāo)識(shí)別的任務(wù)。經(jīng)典的人工設(shè)計(jì)的特征主要有Harr 特征、局部二值模式(Local Binary Pattern,LBP)、尺度不變特征變化(Scale-invariant feature transform,SIFT)、方向梯度直方圖(Histogram of Oriented Gardient,HOG)等。常見(jiàn)的分類器有支持向量機(jī)(Support Vector Machine,SVM)、提升模型(Boosting)和AdaBoost 算法等。
傳統(tǒng)的目標(biāo)檢測(cè)算法存在兩個(gè)主要弊端:第一,檢測(cè)效果的性能主要依賴于人工設(shè)計(jì)的特征描述子,但是特征描述子的設(shè)計(jì)存在很大的瓶頸;第二,傳統(tǒng)方法的滑動(dòng)窗口算法對(duì)待檢測(cè)區(qū)域沒(méi)有針對(duì)性,存在大量的對(duì)檢測(cè)任務(wù)無(wú)效的冗余窗口,時(shí)間復(fù)雜度高。這兩個(gè)缺點(diǎn)制約了目標(biāo)檢測(cè)的精度與檢測(cè)速度,隨著海量數(shù)據(jù)的獲取越來(lái)越便利和GPU(Graphics Processing Unit,GPU)算力的顯著提升,基于深度學(xué)習(xí)的目標(biāo)檢測(cè)方法應(yīng)運(yùn)而生,并且在檢測(cè)性能方面超越傳統(tǒng)檢測(cè)算法,目前基于深度學(xué)習(xí)的目標(biāo)檢測(cè)算法主要分為基于候選區(qū)域和基于回歸思想的兩種檢測(cè)策略,基于候選區(qū)域思想的代表算法有R-CNN、SPP-Net、Fast R-CNN 和Faster R-CNN 等,基于回歸思想的代表算法有YOLO系列和SSD系列。
隨著通用目標(biāo)檢測(cè)算法的發(fā)展,深度學(xué)習(xí)的目標(biāo)檢測(cè)方法在遙感影像的應(yīng)用也取得了較好的發(fā)展。文獻(xiàn)使用具有去噪能力的卷積神經(jīng)網(wǎng)絡(luò)對(duì)遙感影像中的車輛目標(biāo)進(jìn)行檢測(cè)。文獻(xiàn)利用改進(jìn)后的Faster R-CNN目標(biāo)檢測(cè)算法完成遙感影像中的車輛目標(biāo)檢測(cè)任務(wù)。文獻(xiàn)提出使用U-Net 卷積神經(jīng)網(wǎng)絡(luò)對(duì)遙感影像中的建筑物進(jìn)行檢測(cè)。文獻(xiàn)提出將ResNet網(wǎng)絡(luò)結(jié)構(gòu)作為特征提取網(wǎng)絡(luò)提取不同層級(jí)范圍的特征完成目標(biāo)檢測(cè)任務(wù)。文獻(xiàn)利用全卷積神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)對(duì)遙感影像中的飛機(jī)目標(biāo)進(jìn)行檢測(cè)。文獻(xiàn)提出利用數(shù)據(jù)擴(kuò)充和上下文信息完成對(duì)遙感影像中的飛機(jī)目標(biāo)檢測(cè)任務(wù)。雖然目前深度學(xué)習(xí)的目標(biāo)檢測(cè)方法在遙感影像中已有較多的研究,但是針對(duì)遙感影像中的小目標(biāo)問(wèn)題,存在漏檢和誤檢問(wèn)題難以解決。
綜合以上研究方法,文章以SSD目標(biāo)檢測(cè)框架為基礎(chǔ)進(jìn)行改進(jìn),完成高分辨率遙感影像的小目標(biāo)檢測(cè)任務(wù)。首先對(duì)特征提取網(wǎng)絡(luò)在公共數(shù)據(jù)集進(jìn)行預(yù)訓(xùn)練,然后增加SSD目標(biāo)檢測(cè)多尺度特征圖的檢測(cè)層級(jí),同時(shí)采用Adam 的訓(xùn)練方法,使模型具有更好的擬合能力。
VGG-16 網(wǎng)絡(luò)結(jié)構(gòu)最早由牛津大學(xué)Visual Geometry Group團(tuán)隊(duì)提出,并且在ImageNet2014奪得亞軍。該網(wǎng)絡(luò)結(jié)構(gòu)最大的特點(diǎn)就是使用了較小的卷積核和較為規(guī)整的網(wǎng)絡(luò)結(jié)構(gòu),網(wǎng)絡(luò)結(jié)構(gòu)包含5個(gè)大的卷積結(jié)構(gòu)(Block)和3個(gè)大的全連接層,而且所有的卷積層均使用3×3的卷積核,這樣不僅減少了網(wǎng)絡(luò)訓(xùn)練的參數(shù)量,而且可以堆疊出更深的網(wǎng)絡(luò)模型,提高網(wǎng)絡(luò)的分類能力,同時(shí)結(jié)合Dropout層來(lái)防止過(guò)擬合。整體的網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示。
圖1 VGG-16網(wǎng)絡(luò)結(jié)構(gòu)圖
文章使用VGG-16網(wǎng)絡(luò)結(jié)構(gòu)作為特征提取網(wǎng)絡(luò),不僅可以獲得抽象能力更強(qiáng)的非線性特征,而且VGG-16網(wǎng)絡(luò)規(guī)整的網(wǎng)絡(luò)結(jié)構(gòu),更有利于進(jìn)行改進(jìn),嵌入完整的目標(biāo)檢測(cè)架構(gòu)。
根據(jù)卷積神經(jīng)網(wǎng)絡(luò)分層提取特征的特性,使用遷移學(xué)習(xí)的方式對(duì)特征提取網(wǎng)絡(luò)進(jìn)行預(yù)訓(xùn)練,可降低整體目標(biāo)檢測(cè)網(wǎng)絡(luò)的訓(xùn)練時(shí)間。文章的VGG-16 基礎(chǔ)網(wǎng)絡(luò)首先在ImageNet(A Large-Scale Hierarchical Image Database)數(shù)據(jù)集進(jìn)行預(yù)訓(xùn)練,獲得的預(yù)訓(xùn)練基礎(chǔ)網(wǎng)絡(luò)具有很好的圖像特征提取能力,然后將預(yù)訓(xùn)練完成的特征提取網(wǎng)絡(luò)嵌入整體目標(biāo)檢測(cè)架構(gòu),并作為遷移訓(xùn)練的初始模型參數(shù),然后通過(guò)DOTA數(shù)據(jù)集迭代回歸四個(gè)參數(shù)變量(Δcx,Δcy,Δw,Δh),達(dá)到目標(biāo)檢測(cè)的目的。
在遷移訓(xùn)練過(guò)程中包括兩個(gè)損失函數(shù):一個(gè)是位置損失函數(shù)Lloc,進(jìn)行目標(biāo)的精確定位,;另一個(gè)是置信度損失Lconf,判斷預(yù)測(cè)框的分類概率。代價(jià)函就是上述兩類損失函數(shù)的加權(quán)平方和,具體計(jì)算公式如式(1):
其中,N 是正樣本數(shù)量,λ為權(quán)重,如果N=0,則損失為0。x是所有默認(rèn)框的標(biāo)簽,如果第i個(gè)默認(rèn)框匹配到了第j個(gè)標(biāo)簽框,則xij=1,否則xij=0。定位損失Lloc為L(zhǎng)1 平滑損失(Smooth L1):
置信度損失Lconf是基于多個(gè)類別的置信度的softmax 損失。參數(shù)c代表某一類別的目標(biāo)與非目標(biāo)的置信度。
式中字母含義同上。
SSD 目標(biāo)檢測(cè)網(wǎng)絡(luò)的整體策略是在特征提取網(wǎng)絡(luò)不同尺度的特征提取層進(jìn)行分類回歸,完成對(duì)不同尺度大小的目標(biāo)進(jìn)行識(shí)別定位的任務(wù)。原始的SSD 檢測(cè)架構(gòu)是將VGG-16 基礎(chǔ)網(wǎng)絡(luò)在最后的全連接層處截?cái)啵⑻砑覥onv6、Conv7、Conv8_2、Conv9_2、Conv10_2、Conv11_2 卷積層,根據(jù)卷積神經(jīng)網(wǎng)絡(luò)分層提取特征的特性,原始SSD 檢測(cè)框架使用Conv4_3、Conv7、Conv8_2、Conv9_2、Conv10_2、Conv11_2 作為檢測(cè)層,由于小目標(biāo)在影像中的占比較小,隨著層層卷積的結(jié)構(gòu),容易出現(xiàn)小目標(biāo)特征信息的流失,因此原始SSD 目標(biāo)檢測(cè)網(wǎng)絡(luò)中僅僅使用Conv4_3作為特征檢測(cè)層是不夠的,改進(jìn)后的SSD目標(biāo)檢測(cè)算法增加Conv3_2作為特征檢測(cè)層,提高整體算法對(duì)小目標(biāo)的檢測(cè)能力。改進(jìn)后的整體網(wǎng)絡(luò)架構(gòu)如圖2所示。
圖2 改進(jìn)后SSD目標(biāo)檢測(cè)模型圖
算法訓(xùn)練的目的是為了使損失函數(shù)值不斷減小進(jìn)而得到最佳訓(xùn)練模型。原始SSD算法使用SGD算法進(jìn)行損失函數(shù)的優(yōu)化,SGD是一種常用的損失函數(shù)優(yōu)化算法,但該算法的缺點(diǎn)是下降速度較慢,并可能收斂于某一局部最優(yōu)而不是全局最優(yōu)點(diǎn)。Adam算法相較于SGD主要優(yōu)勢(shì)在于可利用梯度的一階矩估計(jì)和二階矩估計(jì)動(dòng)態(tài)調(diào)整每個(gè)參數(shù)的學(xué)習(xí)率,在經(jīng)過(guò)偏置校正后可使每一次迭代學(xué)習(xí)率都有個(gè)確定范圍,因此參數(shù)比較平穩(wěn),有利于收斂于全局最優(yōu)點(diǎn)。因此文章引入Aadm算法用于優(yōu)化損失函數(shù)。主要公式如下:
3.1.1 數(shù)據(jù)描述
文章實(shí)驗(yàn)數(shù)據(jù)集主要包括兩個(gè)數(shù)據(jù)集:ImageNet 數(shù)據(jù)集、DOTA數(shù)據(jù)集。
ImageNet 數(shù)據(jù)集具有140 萬(wàn)張標(biāo)記圖片,1 000 種不同類別,是針對(duì)圖像識(shí)別的全球最大公開(kāi)數(shù)據(jù)集之一,利用該數(shù)據(jù)集進(jìn)行模型預(yù)訓(xùn)練可以使模型具有更好的泛化能力,并且加快遷移訓(xùn)練的速度。
DOTA 數(shù)據(jù)集是包含2 806 張航空影像的公開(kāi)數(shù)據(jù)集,由JL-1 衛(wèi)星、JL-2 衛(wèi)星和Google Earth 遙感拍攝所得,影像幅度很大,尺寸大約為800×800~4 000×4 000,主要包含兩大類目標(biāo):大型場(chǎng)地和各種可移動(dòng)物體兩種類別;其中大型場(chǎng)地包含:游泳池、足球場(chǎng)、操場(chǎng)、環(huán)形交通樞紐、港口、棒球場(chǎng)、網(wǎng)球場(chǎng)、籃球場(chǎng)、橋等9 種場(chǎng)地;可移動(dòng)物體包括:飛機(jī)、直升機(jī)、船舶、大型車輛、小型車輛和儲(chǔ)油罐等6個(gè)類別,共計(jì)15種類別,188 282個(gè)實(shí)例,由于拍攝高度較高,可移動(dòng)物體多為中小目標(biāo)。
3.1.2 數(shù)據(jù)預(yù)處理
由于原始數(shù)據(jù)尺寸不一,首先將原始數(shù)據(jù)裁剪為512×512大小的圖像,數(shù)據(jù)增強(qiáng)采取隨機(jī)擾動(dòng)、隨機(jī)裁剪、隨機(jī)擴(kuò)張及縮放等操作方式,然后將數(shù)據(jù)集劃分為訓(xùn)練集和測(cè)試集,訓(xùn)練集和測(cè)試集數(shù)據(jù)量比例滿足9:1的比例。
3.2.1 實(shí)驗(yàn)環(huán)境
實(shí)驗(yàn)硬件環(huán)境為Intel Xeon E3-1220 v5 處理器、GTX1070 8G 顯卡、16G 內(nèi)存;實(shí)驗(yàn)軟件環(huán)境為Ubuntu18.04 系統(tǒng)、tensorflow深度學(xué)習(xí)框架。
3.2.2 精度評(píng)估方法
使用平均精度(average precision,AP)來(lái)評(píng)估訓(xùn)練所得目標(biāo)檢測(cè)模型,計(jì)算公式如式(5):AP 的幾何意義即P-R 曲線與坐標(biāo)軸所圍面積,其中P(precision)表示訓(xùn)練精準(zhǔn)率,R(recall)表示訓(xùn)練召回率,具體計(jì)算公式如式(6):
式中:TP表示正確識(shí)別為標(biāo)簽?zāi)繕?biāo)數(shù)量,F(xiàn)P 表示錯(cuò)誤識(shí)別為標(biāo)簽?zāi)繕?biāo)數(shù)量,F(xiàn)N表示錯(cuò)誤識(shí)別為非標(biāo)簽?zāi)繕?biāo)數(shù)量。
3.2.3 速度評(píng)估方法
使用每秒幀速(Frame Per Second,F(xiàn)PS)進(jìn)行評(píng)估,每秒幀速即每秒內(nèi)處理的影像數(shù)量,F(xiàn)PS 越大,速度越快。計(jì)算公式如式(7):
式中:F為處理影像數(shù),S為處理時(shí)間,單位為s。
3.2.4 超參數(shù)設(shè)定
學(xué)習(xí)率策略采用Warm Up,初始學(xué)習(xí)率設(shè)置為0.01,batchsize為2,epoch設(shè)置為400。
3.3.1 改進(jìn)SSD算法訓(xùn)練分析
分別進(jìn)行A、B兩組實(shí)驗(yàn):A組實(shí)驗(yàn)為直接在DOTA數(shù)據(jù)集進(jìn)行訓(xùn)練得到的模型;B 組為首先將VGG-16 網(wǎng)絡(luò)在ImageNet數(shù)據(jù)集進(jìn)行預(yù)訓(xùn)練,然后在DOTA數(shù)據(jù)集進(jìn)行遷移訓(xùn)練得到的模型;最后將得到的模型分別在DOTA 測(cè)試集進(jìn)行檢測(cè),具體檢測(cè)結(jié)果:A 組模型AP 值為7.06×10-1;B 組模型AP 值為7.53×10-1。分析可知,經(jīng)過(guò)模型預(yù)訓(xùn)練的模型在DOTA 數(shù)據(jù)集中具有更好的訓(xùn)練效果,該實(shí)驗(yàn)充分說(shuō)明了卷積神經(jīng)網(wǎng)絡(luò)在圖像特征提取中逐層提取特征的特性,同時(shí)證明了遷移學(xué)習(xí)的有效性。
模型訓(xùn)練策略采用Adam 算法取代原來(lái)的SGD 算法進(jìn)行損失函數(shù)優(yōu)化。為分析Adam算法的有效性,文章分別用Adam和SGD兩種訓(xùn)練策略對(duì)SSD算法進(jìn)行訓(xùn)練,并在DOTA數(shù)據(jù)測(cè)試集進(jìn)行精度評(píng)定,結(jié)果如表1所示:
表1 不同優(yōu)化算法性能對(duì)比
由表1 中第一行數(shù)據(jù)和第二行數(shù)據(jù)的AP 值對(duì)比可知:在損失函數(shù)一致的情況下,使用Adam優(yōu)化算法的SSD512模型精度要高于使用SGD優(yōu)化算法的SSD512模型的精度,由此得出使用Adam 優(yōu)化算法得到的模型精度高于使用SGD 優(yōu)化算法得到的模型精度。
3.3.2 改進(jìn)SSD算法性能分析
為更好分析改進(jìn)后SSD算法的性能,同時(shí)利用訓(xùn)練集訓(xùn)練了原始SSD算法和YOLO算法作為對(duì)比,并在測(cè)試集進(jìn)行精度評(píng)定,檢測(cè)結(jié)果見(jiàn)表2。
表2 不同算法在DOTA測(cè)試集檢測(cè)結(jié)果表
通過(guò)對(duì)表2 中AP 數(shù)據(jù)分析可知,文章改進(jìn)后的檢測(cè)模型有效提高了模型的檢測(cè)精度,原因是將原始SSD檢測(cè)模型中的6 層特征檢測(cè)層增加了Conv3_2 特征提取層。對(duì)比表2 中FPS數(shù)據(jù)可知,改進(jìn)后的SSD 模型對(duì)比原始SSD 模型,檢測(cè)速度略有下降,可能原因是由于添加了新的檢測(cè)層,增加了模型的計(jì)算量,但總體而言模型對(duì)遙感影像的小目標(biāo)檢測(cè)具有一定程度的提升。
圖3為經(jīng)過(guò)改進(jìn)后的SSD算法在DOTA測(cè)試集上的檢測(cè)效果。由圖3可知,針對(duì)飛機(jī)、船舶等小目標(biāo),該算法仍具有一定的檢測(cè)精度。對(duì)比圖3中的(a)和(d),容易發(fā)現(xiàn)船舶目標(biāo)的檢測(cè)精度沒(méi)有飛機(jī)目標(biāo)的檢測(cè)精度高,通過(guò)分析可知,船舶目標(biāo)與背景顏色十分相似,因此檢測(cè)難度更大。
圖3 (a~c)檢測(cè)結(jié)果圖
文章通過(guò)對(duì)SSD算法進(jìn)行改進(jìn),將改進(jìn)后的SSD目標(biāo)檢測(cè)算法應(yīng)用于遙感影像小目標(biāo)檢測(cè)領(lǐng)域。針對(duì)遙感影像數(shù)據(jù)量不足的問(wèn)題,采用遷移學(xué)習(xí)的方式,首先將特征提取網(wǎng)絡(luò)在ImageNet數(shù)據(jù)集上進(jìn)行模型預(yù)訓(xùn)練,得到具有較好特征提取能力的特征提取網(wǎng)絡(luò);然后將訓(xùn)練好的特征提取網(wǎng)絡(luò)嵌入改進(jìn)后的SSD目標(biāo)檢測(cè)架構(gòu)進(jìn)行遷移訓(xùn)練,同時(shí)在損失函數(shù)優(yōu)化過(guò)程中使用Adam算法取代SGD算法,最終使得檢測(cè)模型具有更好的檢測(cè)精度和檢測(cè)速度。實(shí)驗(yàn)表明,改進(jìn)后SSD算法在遙感影像目標(biāo)較小的情況下,仍可以有效識(shí)別,一定程度解決了遙感影像中的小目標(biāo)檢測(cè)問(wèn)題。但是算法存在對(duì)于遮擋目標(biāo)會(huì)出現(xiàn)漏檢、檢測(cè)精度低的問(wèn)題,而且特征提取網(wǎng)絡(luò)對(duì)整體模型的檢測(cè)精度影響較大,因此如何設(shè)計(jì)更加有效的特征提取網(wǎng)絡(luò)將是以后的研究方向之一。