李一松
(1.中國科學(xué)院上海微系統(tǒng)與信息技術(shù)研究所,上海 200050;2.中國科學(xué)院微小衛(wèi)星創(chuàng)新研究院,上海201210;3.上??萍即髮W(xué)信息科學(xué)與技術(shù)學(xué)院,上海201210;4.中國科學(xué)院大學(xué)北京100049)
多光譜成像技術(shù)始于20世紀(jì)80年代,是光學(xué)儀器發(fā)展歷史中的一次飛躍。該技術(shù)突破了傳統(tǒng)相機(jī)的成像能力,傳統(tǒng)的彩色相機(jī)只能記錄紅、綠、藍(lán)3個通道的影像,而多光譜成像可以記錄除可見光波段外的其他光譜影像,其光譜探測范圍遠(yuǎn)遠(yuǎn)超過了人類肉眼的感知范圍。由于許多地標(biāo)物質(zhì)的吸收特性都表現(xiàn)在400納米到2 500納米的光譜分辨率內(nèi),所以多光譜成像可以識別許多在可見光圖像中不能識別的物質(zhì)。利用多光譜成像信息能夠在農(nóng)業(yè)、森林、海洋、江河、湖泊以及地質(zhì)勘探等領(lǐng)域中的不同物質(zhì)成分光譜特征進(jìn)行區(qū)分,為科學(xué)的進(jìn)行資源管理、生態(tài)監(jiān)測、環(huán)境保護(hù)、城市智能遙感提供新的技術(shù)手段。
與普通可見光圖像場景分類問題相比,多光譜圖像的多標(biāo)簽場景分類的難點有兩個:一是輸入的數(shù)據(jù)不再是三通道的圖像數(shù)據(jù),而是多維度的光譜數(shù)據(jù),在提供了更多信息量的同時也帶來的更高的計算量;二是由于一張多光譜圖像往往包含多種地物,所以多光譜圖像的多標(biāo)簽分類比單標(biāo)簽分類更能反映其所包含的地物信息,由于每種地物在整張多光譜圖像中的比例不盡相同,如何處理這種不平衡性為多標(biāo)簽分類任務(wù)提出了新的挑戰(zhàn)。
針對如上提出的多光譜圖像的多標(biāo)簽分類任務(wù)面臨的兩大挑戰(zhàn),文中設(shè)計了一種卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)既能夠處理大于三通道的多光譜圖像數(shù)據(jù),又能利用在其他大型數(shù)據(jù)集上預(yù)訓(xùn)練好的權(quán)重進(jìn)行遷移學(xué)習(xí)。從而大大降低了計算量。通過計算數(shù)據(jù)集內(nèi)所有標(biāo)簽的共現(xiàn)矩陣而得到的損失函數(shù)很好的解決了每種地物在整張多光譜圖像中的比例不平衡問題,大大提高了分類結(jié)果的準(zhǔn)確率和召回率。
卷積神經(jīng)網(wǎng)絡(luò)由生物學(xué)家休博爾和維瑟爾在早期關(guān)于貓的視覺皮層的研究發(fā)展而來。最近幾年,卷積神經(jīng)網(wǎng)絡(luò)在大規(guī)模圖像和視頻識別以及自然語言處理和語音識別領(lǐng)域取得了巨大的成功,這主要源自于兩個重要因素:一個是大規(guī)模的高質(zhì)量數(shù)據(jù)集,比如ImageNet[2];二是大規(guī)模并行計算系統(tǒng),特別是圖形計算單元(GPU)的快速發(fā)展和并行程序模型和軟件環(huán)境比如Compute Unified Device Architecture(CUDA)。卷積神經(jīng)網(wǎng)絡(luò)通過堆疊卷積層、池化層、非線性激活函數(shù)層、批量歸一化層,來進(jìn)行特征抽取,利用參數(shù)共享機(jī)制相比于反向傳播(Back Propagation,BP)神經(jīng)網(wǎng)絡(luò)大大減少了參數(shù)個數(shù),其局部視野的特性保證了能夠抽取不同層次的特征表達(dá),相較于傳統(tǒng)的人工精心設(shè)計的特征表達(dá),實現(xiàn)了端到端的訓(xùn)練。
卷積神經(jīng)網(wǎng)絡(luò)最先取得成功是AlexNet[1]在2012年的ImageNet競賽上,其以比以往最低錯誤率低10個百分點的成績奪冠,網(wǎng)絡(luò)一共有8層可學(xué)習(xí)層,包括5層卷積層和3層全鏈接層,并且引入了修正線性單元(Rectified linear units,ReLU)、池化、數(shù)據(jù)增強(qiáng)、Dropout的操作,在增強(qiáng)模型表達(dá)能力的同時很好避免了過擬合的發(fā)生。之后的VGGNet使用了更小的卷積核、更深的網(wǎng)絡(luò)深度,直觀上我們會覺得大的卷積核更好,因為它可以提取到更大區(qū)域內(nèi)的信息,但實際上大卷積核可以用多個小卷積核代替,比如一個7×7的卷積核函數(shù)就可以用3個串聯(lián)的3×3的卷積核來代替,這種代替方式在減少了參數(shù)個數(shù)的同時也引入了更多的非線性因素。所以VGGNet相比于AlexNet層數(shù)更深卻可以更快的收斂。本文在設(shè)計網(wǎng)絡(luò)結(jié)構(gòu)時充分借鑒了小卷積核的優(yōu)點。ResNet[3]是卷積神經(jīng)網(wǎng)絡(luò)發(fā)展的另一個里程碑,其通過引入殘差的概念讓網(wǎng)絡(luò)不直接擬合輸入和輸出的映射而是去擬合殘差,由于殘差結(jié)構(gòu)的特殊性,在損失對輸入求導(dǎo)的時候,導(dǎo)數(shù)項會被分解為兩個,而有一個直接對輸入的導(dǎo)數(shù)項并不會消失,所以避免了梯度消失或者爆炸問題,從而網(wǎng)絡(luò)可以設(shè)計的非常深。DenseNet[4]通過鏈接操作來結(jié)合特征圖,使得網(wǎng)絡(luò)中每一層都與其它層都有關(guān)系,這種方式使得信息流最大化,提升了網(wǎng)絡(luò)的魯棒性并且加快了學(xué)習(xí)速度。
目前學(xué)術(shù)界針對多光譜圖像的場景分類問題大都集中在小訓(xùn)練樣本并且類別較少的場景下,所設(shè)計場景分類器往往要求能在較小的訓(xùn)練樣本下具有很好的泛化能力。
Peng J[5]等人利用理想歸一化核(Ideal Regulization Kernel)來訓(xùn)練一個非線性的核函數(shù)表達(dá),結(jié)合支持向量機(jī)(Support Vector Machine)進(jìn)行分類。譚熊[11]等人利用梯度下降方法計算出多核的線性疊加權(quán)重,然后利用多核SVM進(jìn)行多光譜圖像的場景分類。馮逍等人[13]提出了一種基于三維Gabor濾波器進(jìn)行特征提取然后用SVM進(jìn)行多光譜圖像的場景分類方法。由于核函數(shù)具有一定的非線性擬合能力,而且SVM本身良好的泛化能力,以上基于SVM的多光譜圖像分類方法在小樣本集上取得了不錯的效果,但是隨著訓(xùn)練樣本數(shù)據(jù)的增加,核函數(shù)的越來越不足以表達(dá)數(shù)據(jù)與其標(biāo)簽之間的非線性關(guān)系,SVM本身的訓(xùn)練時間也大幅增長,所以基于SVM的核方法不適應(yīng)較大規(guī)模的多光譜圖像數(shù)據(jù)集。M.Lienous等人[15]把通常用于文本語義挖掘的主題模型應(yīng)用到多光譜圖像場景分類問題中。把圖片中的某一塊映射為文檔中的某個單詞,把整張圖映射為文檔主題,然而此方法只在場景類別較少的情況才有較高的準(zhǔn)確率。W.Luo等人[16]改進(jìn)了用于圖像分類的主題模型,提出作者主題模型進(jìn)一步提高了多光譜圖像場景分類的準(zhǔn)確率,但是任然沒有突破只能在場景類別較少情況下才有比較高準(zhǔn)確率的局限。M.Fang[7]等人提出了一種利用隱馬爾科夫隨機(jī)場(HMM)進(jìn)行無監(jiān)督多光譜圖像分類方法,Yao X W[8]等人提出了利用堆棧自動編碼機(jī)(Stacked Auto Encoder,SAE)對圖像進(jìn)行特征提取然后利用多層感知機(jī)(Mutilayer Perceptron,MLP)進(jìn)行分類。以上兩種非監(jiān)督分類方法的其優(yōu)點是不需要對圖像數(shù)據(jù)做標(biāo)注即可自動分類,缺點是無法預(yù)定義場景類別而且只在類別很少的場景下才能有較好的準(zhǔn)確率。Penatti O A B[6]等人首次提出了利用在非多光譜圖像數(shù)據(jù)集ImageNet所預(yù)訓(xùn)練的卷積神經(jīng)網(wǎng)絡(luò)在多光譜圖像進(jìn)行遷移學(xué)習(xí)的方法。劉楊等人[14]提出了一種媒體神經(jīng)認(rèn)知模型,其綜合了圖中上下文場景的語義信息進(jìn)行預(yù)分類,利用預(yù)分類結(jié)構(gòu)構(gòu)造懲罰函數(shù),然后用增量式集成學(xué)習(xí)獲得最終的分類結(jié)果。許風(fēng)暉等[10]人提出了利用多尺度卷積神經(jīng)網(wǎng)絡(luò)融合的方法進(jìn)行多光譜圖像的場景分類。以上3種方法使用的卷積神經(jīng)網(wǎng)絡(luò)層數(shù)都比較淺,使用的數(shù)據(jù)集的場景類別也較少。
隨著計算機(jī)視覺的發(fā)展,更加復(fù)雜的卷積神經(jīng)網(wǎng)絡(luò)被提出并且在圖像分類和自然語言處理等領(lǐng)域發(fā)揮出了巨大的作用,如何發(fā)掘卷積神經(jīng)網(wǎng)絡(luò)在多光譜圖像場景分類任務(wù)中的巨大潛力是一個值得研究的問題。
文中采用了由Planet公司的Flock2衛(wèi)星于2016年1月至2017年1月拍攝的亞馬遜雨林地區(qū)的高光譜影像,空間分辨率為3.7米,共計8萬張圖片。按照6:2:2的比例將此數(shù)據(jù)集劃分為訓(xùn)練集、驗證集和測試集。數(shù)據(jù)的標(biāo)簽由Planet Impact團(tuán)隊提供,多光譜影像包括紅、綠、藍(lán)和近紅外共4個通道的光譜數(shù)據(jù),共17個類別,包括有primary、haze、algriculture、clear、water、habitation、road、cultivation、slash、burn、cloudy、partly cloudy、conventional mine、bare ground、 artisinal mine、 blooming、 selective logging、blowdown。數(shù)據(jù)集中的每一張圖片都包含了至少一個標(biāo)簽。
圖1 本文設(shè)計的卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)圖
文中設(shè)計的卷積神經(jīng)網(wǎng)絡(luò)如圖1所示,為了保證模型的非線性,每個卷積層之后都跟著一個非線性激活函數(shù)層,本文所使用的是修正線性單元ReLU,ReLU可以加速網(wǎng)絡(luò)的收斂[1]。為了進(jìn)一步防止模型過擬合,每一步卷積操作之后都接一個批量歸一化層(Batch Norm,BN)[9],BN層可以有效減輕模型的過擬合。網(wǎng)絡(luò)的輸入時256×256×4的多光譜圖像經(jīng)過填充為2,步長為3,卷積核大小為3的卷積之后特征圖的大小為76×76×64,再經(jīng)過填充為4,步長為3,卷積核大小為3的卷積之后得到的特征圖大小為28×28×64,緊接著是步長為2的最大池化層操作,其后是2個Dense Block,中間加入1×1的卷積和步長為2的最大池化層。Dense Block共有5層,前四層的每一層都是批量歸一化層、最大池化層和卷積核為3的卷積層的集合,并不改變特征圖的大小,最后一層是卷積核為1的卷積層,用來降低通道數(shù),即降低了模型的參數(shù)。對于Dense Block中的每一層來說,前面的所有層的特征圖都被直接拿來作為這一層的輸入。網(wǎng)絡(luò)經(jīng)過Dense Block2之后的特征圖大小為7×7×16,接下來的步長為7的最大池化層得到16維的向量,16×17的全鏈接層輸出每種類別的概率。
圖2 訓(xùn)練集所有標(biāo)簽的共現(xiàn)矩陣示意圖
由于在多標(biāo)簽分類問題中,一張圖片可能對應(yīng)幾個標(biāo)簽,但這些標(biāo)簽所對應(yīng)的物體在圖片中所占的比例是不同的,為了處理這種比例的不平衡,與常規(guī)的Softmax損失函數(shù)不同,本文提出了一種新型的損失函數(shù),計算方法如下:首先計算整個訓(xùn)練集上所有標(biāo)簽的共現(xiàn)矩陣如圖2所示。
Softmax層的輸出為:
損失函數(shù)定義為:
其中yj是根據(jù)訓(xùn)練集上所有標(biāo)簽的共現(xiàn)矩陣計算得出。假設(shè)一張多光譜圖像的標(biāo)簽集合為L,查閱共現(xiàn)矩陣得出L中所有標(biāo)簽共同出現(xiàn)的概率集合P,則L中每一類標(biāo)簽的權(quán)重yi的計算方法為:
損失函數(shù)定義為:
本文所設(shè)計的卷積神經(jīng)網(wǎng)絡(luò)的實現(xiàn)和訓(xùn)練、測試是基于Tensorflow深度學(xué)習(xí)框架。
為了防止網(wǎng)絡(luò)過擬合,在訓(xùn)練集原始圖像輸入網(wǎng)絡(luò)之前,進(jìn)行數(shù)據(jù)增強(qiáng),具體做法如下:原始256×256的圖片的4個角以及中心區(qū)域截取224×224的區(qū)域加上自身經(jīng)過縮放到224×224,然后經(jīng)過水平和垂直翻轉(zhuǎn),這樣我們的訓(xùn)練數(shù)據(jù)量是原始的6×2=12倍,在測試階段只對圖片做縮放以獲得最完整的圖像信息。
在訓(xùn)練階段,網(wǎng)絡(luò)的兩個Dense Block采用在Imagenet上預(yù)訓(xùn)練的DenseNet 121的最后兩個Dense Block的權(quán)重作為初始值,其余層的初始參數(shù)皆用標(biāo)準(zhǔn)正態(tài)分布生成。文中采用帶動量的逐參數(shù)適應(yīng)隨機(jī)梯度下降算法Adam,設(shè)置網(wǎng)絡(luò)的初始學(xué)習(xí)率為0.001,批處理大小為64,動量為0.9。
文中采用F值作為實驗結(jié)果的評價標(biāo)準(zhǔn):
其中:
這里p為準(zhǔn)確率,r為召回率,tp為真陽數(shù),fp為假陽數(shù),fn為假陰數(shù)。
文中同時實現(xiàn)了在多光譜圖像分類任務(wù)中特征提取表現(xiàn)出色的尺度不變特征變換(Scale Invariant Feature Transform,SIFT)[12]+SVM以及文獻(xiàn)[13]提出的Gabor濾波器+SVM和文獻(xiàn)[8]提出的SAE+MLP與本文提出的方法進(jìn)行比較,結(jié)果如表1所示。
表1 不同方法結(jié)果對比
由上述實驗可以看到,結(jié)合復(fù)雜的卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行特征提取和重新定義的損失函數(shù)在Planet Amazon多光譜圖像多標(biāo)簽分類任務(wù)中取得了最高的F值。與不加經(jīng)過共現(xiàn)矩陣重新定義的損失函數(shù)的CNN相比,重新定義的損失函數(shù)讓F值提高4個百分點,從而說明了本文提出算法的有效性。
文中提出了一種基于卷積神經(jīng)網(wǎng)絡(luò)的多光譜圖像多標(biāo)簽場景分類方法,在模型設(shè)計過程中多次用小的卷積核來減少參數(shù)個數(shù),降低了模型的復(fù)雜度,減少過擬合現(xiàn)象的發(fā)生,模型中的直連操作保證了信息流的最大化,從而避免了梯度爆炸或是消失的問題。在訓(xùn)練集所有標(biāo)簽的共現(xiàn)矩陣基礎(chǔ)上重新定義的損失函數(shù)進(jìn)一步提高了模型的F值,在Planet Amazon數(shù)據(jù)集上的試驗以及與其他文獻(xiàn)中的方法進(jìn)行對比驗證了所提出的卷積神經(jīng)網(wǎng)絡(luò)對于多光譜圖像多標(biāo)簽場景分類的有效性。