王 艷,李 昂,王晟全
(1.南京理工大學 a.紫金學院;b.電子工程與光電技術(shù)學院,南京 210023;2.南京郵電大學 通信學院,南京 210003)
遙感成像技術(shù)的迅猛發(fā)展催生了大量遙感圖像的產(chǎn)生。遙感圖像在國民經(jīng)濟建設(shè)的眾多領(lǐng)域中有著特殊的優(yōu)勢,例如戰(zhàn)場態(tài)勢監(jiān)控、城市交通以及礦物、陸地植被、惰性氣體和人工材料的探測與識別等[1]。自動目標識別(ATR)是計算機自動完成目標捕捉并分類的過程[2-4]。該過程涉及圖像濾波、圖像增強、圖像分割、圖像變換、特征提取、特征選擇、圖像匹配等多個方向的專業(yè)知識[5-6]。本文以船舶為目標,在遙感圖像中實現(xiàn)船舶的自動目標識別。遙感圖像中的船舶屬于小目標,對遙感圖像進行小目標識別并非容易的事情,原因在于遙感圖像的空間分辨率較低,針對普通圖像的自動識別算法無法直接應(yīng)用于遙感圖像。因此在對船舶進行識別之前,需要完成圖像超分辨率(SISR),即將低分辨率圖像映射到高分辨率圖像[7-9],該技術(shù)可以在不改變物理成像設(shè)備的限制下,獲取更高分辨率的圖像,在遙感圖像處理方面得到了應(yīng)用[10-12],可以提高遙感圖像的空間分辨率、自動識別的準確率。下面分別介紹ATR和SISR的發(fā)展現(xiàn)狀。
隨著深度學習的巨大進展,基于卷積神經(jīng)網(wǎng)絡(luò)(convolution neural network,CNN)的自動目標識別算法取得巨大進步。相比于傳統(tǒng)方法,目標識別性能得到巨大提升,特別是在復雜場景的自動目標識別方面。Wagner等[13]利用CNN提取數(shù)據(jù)特征,將得到的特征數(shù)據(jù)送入到可訓練的SVM分類器中進行分類。Zeiler等[14]使用遷移學習解決了深度學習應(yīng)用于SAR目標識別時數(shù)據(jù)不足的問題。Chen等[15]用卷積層替換CNN中的全連接層,降低了過擬合風險。Deng等[16]通過在損失函數(shù)中添加歐式距離限制(euclidean distance restriction),使類與類之間的特征更具有可分性。
SISR是低分辨率圖像映射到高分辨率圖像的過程,比任何縮放算法的保真度都高,如圖1所示。SISR可以有效提高圖像的空間分辨率,因此可以減少對更大、更昂貴的衛(wèi)星攝像機的需求。SISR的核心是嘗試將低分辨率圖像映射到高分辨率圖像,如圖2所示。SISR分為3類:基于插值、基于模型和基于判別學習的方法,其中基于判別學習的方法最為主流[17]?;谂袆e學習的算法利用CNN對于大量的圖像訓練數(shù)據(jù)集進行訓練,學習LR圖像和HR圖像之間的映射關(guān)系,從而能夠?qū)擫R圖像進行有效超分辨重構(gòu)。Michal等[18]測試了用于訓練SR網(wǎng)絡(luò)的下采樣方法,使用DIV2K圖像測試了SRResNet和FSRCNN,通過不同的下采樣方法顯示了不同的圖像質(zhì)量得分。Kim等[19]提出一個深度的超分辨網(wǎng)絡(luò)模型VDSR(very deep super-resolution),采用了20個卷積層。Kim等通過實驗驗證了采用更深網(wǎng)絡(luò)模型能夠帶來更好的重建效果,但也會對收斂速度產(chǎn)生很大影響。
圖1 SR提高空間分辨率的效果圖
圖2 SISR示意圖
本文采用超分辨復原生成對抗網(wǎng)絡(luò)(SRGAN),在包括測試船舶本體的多個訓練集中進行訓練,多個訓練集包括農(nóng)業(yè)、城市、雜亂場景、石油、港口和船舶本體,然后采用AlexNet網(wǎng)絡(luò)進行分類檢測,最后采用RetinaNet網(wǎng)絡(luò)進行目標識別。本文主要研究了訓練集對SISR、超分辨率下目標識別的影響,目前相關(guān)研究較少。實驗表明,和不包含測試本體的訓練集相比,包含測試本體的訓練集,SISR后的圖像更加真實,超分辨率下的目標識別準確率更高。
SRGAN的目的在于將一個低分辨率的圖片轉(zhuǎn)化為一個高分辨率的圖片[20]。SRGAN是基于GAN方法進行訓練,包括一個生成器和一個判別器,判別器的主體使用VGG19,生成器是一連串的Residual block連接,同時在模型后部也加入了subpixel模塊,借鑒了文獻[21]的Subpixel Network思想,讓圖片在最后的網(wǎng)絡(luò)層增加分辨率,提升分辨率的同時,減少計算資源的消耗。
將均方誤差(MSE)的感知損失lSR表示為內(nèi)容損失lSXR和對抗性損失成分lSGRen的加權(quán)和,如式(1)所示:
像素方式的MSE損失lSRMSE計算方法如式(2)所示:將VGG損函數(shù)失定義為重建圖像GθG(ILR)x,y特征表示與參考圖像IHR之間的歐氏距離,如式(3)所示:
其中,φi,j表示從VGG-19網(wǎng)絡(luò)的第j層卷積(激活后)的第i個最大池化層之前獲取的特征圖;Wi,j和Hi,j是VGG網(wǎng)絡(luò)中對應(yīng)特征圖的維數(shù)。
生成損失lSRGEN是基于所有訓練樣本上鑒別器GθC(ISR)的概率定義,如式(4)所示:
DθD(GθG(ILR))定義為重建圖像GθG(ILR)是自然HR圖像的概率。為了更好的梯度表現(xiàn),使用-log DθD(GθG(ILR))最小化生成損耗函數(shù),而不是log[1-DθD(GθG(ILR))]。
SRGAN結(jié)構(gòu)如圖3所示,其中每個卷積層指示了相應(yīng)的內(nèi)核大小(k)、特征圖數(shù)量(n)和步幅(s)。
圖3 生成器和鑒別器網(wǎng)絡(luò)的體系結(jié)構(gòu)示意圖
在后續(xù)的分類檢測中,本文采用AlexNet[22]網(wǎng)絡(luò)作為分類網(wǎng)絡(luò)的基本框架,前5層為卷積層,然后是全連接層,最后一層是分類層Softmax。傳統(tǒng)網(wǎng)絡(luò)常用的激勵函數(shù)Sigmoid和tanh函數(shù)被取代為修正線性單元ReLU,同時為了減輕過擬合問題,采用了dropout方法,可以有效提高正確率,整體框架如圖4所示。
對于80 px和320 px的輸入,使用深度均為64,內(nèi)核大小為3×3的2D卷積層,并激活ReLU,然后再進行大小為2×2的2D最大池化層,直到獲得80×80的特征空間。然后,我們改為使用深度為32的Conv2D,然后使用大小為2×2的Maxpool2D,以實現(xiàn)38×38的潛在空間。最后,應(yīng)用速率為0.30的濾除層,把特征過濾出來,添加大小為30 mm的密集層、速率為0.30的退出層、輸出為2類的Softmax,其中,損失是分類交叉熵,優(yōu)化器是默認的Keras Adadelta。
圖4 AlexNet整體框架示意圖
本文采用了文獻[23]基于Focal Loss的RetinaNet作為識別網(wǎng)絡(luò)。RetinaNet在識別領(lǐng)域有著重要的地位。Focal loss是一種改進了的交叉熵CE(cross-entropy)loss,但是它在原有的CE loss上乘了使得易檢測目標對模型訓練貢獻削弱的指數(shù)式,從而成功地解決了在目標檢測時,正負樣本區(qū)域極不平衡、而目標檢測loss易被大批量負樣本影響的問題,改進后的bias:b=-αlog((1-π)/π),其中α可以控制bias的值,使之能夠根據(jù)實際的情況,取得相應(yīng)的值,使其預測圖像目標的準確性上升。
為了避免數(shù)據(jù)集中的相機偽影變化太多,訓練圖像需使用單個長焦距鏡的照片。為此,采用了Planet公司0.8m Visual Skysat衛(wèi)星采集的圖像。SkySat衛(wèi)星是美國Planet公司發(fā)展的高頻成像對地觀測小衛(wèi)星星座,主要用于獲取時序圖像,并服務(wù)于高分辨率遙感大數(shù)據(jù)的應(yīng)用。如圖5所示,單個圖像的可視化效果和RGB直方圖,以及5種訓練集(農(nóng)業(yè)、城市、雜亂場景、石油和港口)中每種訓練集的直方圖平均值。
測試集采用來自Kaggle Shipsnet競賽的圖像,示例圖像如圖6所示。這些圖像來自Planet的Planetscope衛(wèi)星(3.0 m),其中包含加利福尼亞州的舊金山灣和圣佩德羅灣地區(qū)圖像。與訓練集的圖像相似,這些圖像也是Planet視覺分類中的場景,這意味著它們也經(jīng)過了銳化、正射和顏色校正的RGB。但是,與訓練集不同,測試集中的場景已被平鋪為80 px×80 px的正方形。就數(shù)據(jù)集中的類別而言,只有全幅船被分類為船,所有其他圖像均歸類為“無船”。測試集包含4 000張圖像,其中1 000張圖像被分類為船。
圖5 土地利用類別的示例圖像和RGB直方圖
圖6 來自Kaggle Shipsnet競賽的圖像
在農(nóng)業(yè)、城市、雜亂場景、石油、港口和船舶本體這6個測試集訓練了6個SRGAN,每個SRGAN均訓練了10 000次,每批次20個。目標檢測和分類檢測在Intel i7-7700HQ 2.8 GHz上運行,每組圖片大約需要30 min。
使用所需分辨率的所有圖像后,可以設(shè)置SRGAN網(wǎng)絡(luò),加載數(shù)據(jù)后,需要先采樣以獲得LR圖像。再次使用雙3次濾波器對圖像進行下采樣,以減少采樣方法對結(jié)果的影響,通過GAN運行數(shù)據(jù)之前將-1和1之間的所有像素值標準化。
SRGAN在包括農(nóng)業(yè)、城市、雜亂場景、石油、港口和船舶本體這6個訓練集中進行訓練。每個SRGAN運行的船舶圖片如圖7所示。對于船舶圖像,由農(nóng)業(yè)、港口訓練的SRGAN產(chǎn)生的圖像色彩偏暗,由城市、雜亂場景訓練的SRGAN產(chǎn)生的圖像色彩偏亮,由石油訓練的SRGAN在船舶的船體產(chǎn)生了黑色的人工痕跡,由船舶本體訓練的SRGAN產(chǎn)生的圖像色彩最亮、效果最好。
在訓練了SRGAN之后,判別出一些流行的衛(wèi)星圖像樣本的縮減樣本,如:Xview(0.3 m)、Pleides(0.5 m)、Quickbird(0.65 m)、Triplesat(0.8 m)和Ikonos(1 m)。不同種類的訓練集SRGAN對測試集產(chǎn)生的影響如表1所示,船舶本體和其他訓練集相比,PSNR和SSIM這2個指標均表現(xiàn)最好。這表明針對本體圖像需要進行定制訓練。原因在于超分辨復原的訓練是無監(jiān)督學習,結(jié)果具有隨機性,但是也與本身的圖像顯著性特征有關(guān)。
圖7 SRGAN運行的船舶圖片
表1 SRGAN應(yīng)用于不同圖像的結(jié)果
在目標識別過程中,采用了前文提到的Alex-Net網(wǎng)絡(luò)和RetinaNet算法,圖像的固定分辨率似乎并不能從增強中獲益很多,并且顯示出對基于尺寸的分辨率變化的敏感性。xView對比例敏感度的一個示例是在較高的分辨率下,同一張圖像可以錯誤地檢測出汽車的建筑物,而在較低的分辨率下,則可以將汽車誤認為是游艇。總體而言,對于未更改的xView圖像的基礎(chǔ)模型,最佳驗證mAP為300個歷時(3 d)后為0.16,對應(yīng)的訓練mAP為0.30。不同訓練集下的識別評價指標如表2所示,其中TP是實際為正例、預測為正例的比例,F(xiàn)P是實際為負例、預測為正例的比例,識別精確率Precision=TP/(TP+FP)。從表2可見,在不同的訓練集情況下SRGAN中有明顯的差異,包含測試船舶本體的訓練集,目標識別的精確率最高,達到了98.79%,可以滿足實際的識別應(yīng)用需求。
表2 不同訓練集下的識別評價指標
本文算法對飛機目標進行識別和準確性的測試效果圖如圖8所示,圖中綠色框表示標簽位置、藍色表示測試結(jié)果、紅色表示誤檢的目標,準確率比較理想。但是在不同特征尺度下的飛機還是不能特別正確的標識,當飛機分辨率較低時,有一定的誤檢率和漏檢率。因此對遙感圖像中的飛機進行識別之前,引入SISR算法是非常必要的,該算法可以將低分辨率圖像映射到高分辨率圖像。SRGAN處理過的google遙感圖像訓練損失率Loss比較理想,如圖9所示。
圖8 對遙感機場的檢測實驗
圖9 SRGAN處理過的google遙感圖像訓練損失率Loss
當訓練不同的圖像集時,在SRGAN網(wǎng)絡(luò)之間可以看到明顯的差異。這突顯了定制訓練集需求的重要性。在農(nóng)業(yè)、城市、雜亂場景、石油、港口和船舶本體這6類訓練集中進行SRGAN訓練,然后采用AlexNet網(wǎng)絡(luò)進行分類檢測;最后采用RetinaNet網(wǎng)絡(luò)進行目標識別。實驗表明:在同一個船舶測試集中,受過測試本體圖像訓練的識別效果最好,精確率最高。