楊秋蓮,劉艷飛,丁樂樂,孟凡效
天津市勘察設計院集團有限公司,天津 300000
隨著IKONOS、Worldview系列、高分系列、高景一號等高分辨率遙感衛(wèi)星的成功發(fā)射,高分辨率遙感數(shù)據(jù)已經(jīng)成為對地精細觀測的重要數(shù)據(jù)來源[1-3]。相較于中低分辨率遙感影像,高分影像呈現(xiàn)出了更豐富的空間細節(jié)信息,使得地物目標的精確解譯成為可能。目前高分影像的分類基本實現(xiàn)了從基于像素的分類到面向?qū)ο蟮姆诸愞D(zhuǎn)變,極大地提高了分類精度[4-6]。遙感場景是由語義目標以某種空間分布構成的具有高層語義的復雜影像區(qū)域。因此即使獲得如建筑、道路等精細地物目標識別結果,在獲取如工業(yè)區(qū)、居民區(qū)等高層語義方面仍無能為力。為獲取高層場景語義信息,如何跨越底層特征與高層場景語義之間存在的“語義鴻溝”,實現(xiàn)高分影像到高層場景語義之間的映射,是當前高分影像分類的一個熱點問題[7-10]。
為克服“語義鴻溝”問題,國內(nèi)外研究學者相繼展開了面向高分辨率遙感影像場景分類的方法的研究,目前已經(jīng)發(fā)展出了基于語義目標的場景分類方法[11-12],基于中層特征的場景分類方法[13-15]和基于深度特征的場景分類方法[16-20]?;谡Z義目標的場景分類方法構建了一種“自底向上”的場景分類框架,首先對遙感影像進行語義目標提取,然后對語義目標的空間關系進行建模獲得最終的場景表達特征,如文獻[11]利用彈力直方圖統(tǒng)計目標之間的位置關系作為場景表達特征用于分類。然而這種方法依賴于語義目標的提取精度和空間關系構建。不同于基于語義目標的場景分類方法,基于中層特征的方法不需要場景中目標的先驗信息,直接對場景表達特征進行建模,典型的方法包括詞袋模型[21-22]、主題模型[13-14]等。
然而以上兩類方法都需要手工設計特征,依賴專家先驗。深度學習作為一種數(shù)據(jù)驅(qū)動的學習框架,可以自動地從數(shù)據(jù)中學習本質(zhì)特征,已經(jīng)被成功應用于目標檢測、人臉識別等領域,由于其強大的特征學習能力,已經(jīng)被應用于高分影像場景分類。其中按照網(wǎng)絡類型主要可以分為自編碼模型[23-24]和深度卷積神經(jīng)網(wǎng)絡模型[25-27]。在基于自編碼模型的場景分類方法中,采用編碼—解碼的3層結構逐層對深度網(wǎng)絡每一層進行預訓練以獲得良好的參數(shù)初始化。然而這類方法由于編碼—解碼結構的存在,訓練深度網(wǎng)絡時往往需要大量時間。相較于基于自編碼的場景分類方法,基于卷積神經(jīng)網(wǎng)絡的方法不需要編碼—解碼結構,直接對整個網(wǎng)絡模型進行訓練,獲得廣泛研究。如文獻[28]為了提高深度卷積網(wǎng)絡特征的辨別性,通過構建正負樣本對并引入度量學習使得正樣本對在特征空間彼此接近,負樣本對彼此遠離。文獻[29]提出LPCNN,從數(shù)據(jù)中進行切片來增加訓練數(shù)據(jù)的個數(shù)和多樣性,提高場景分類精度。
基于深度卷積神經(jīng)網(wǎng)絡的方法往往需要大量的標注數(shù)據(jù)用于網(wǎng)絡模型的訓練,當標注樣本有限時,其學習到的特征表達泛化能力有限。針對標注數(shù)據(jù)有限條件下的遙感場景分類任務,目前已經(jīng)發(fā)展出了基于無監(jiān)督深度學習方法[23-24,30]、基于領域自適應的方法[31-33]、基于半監(jiān)督深度學習方法[34-37]。在這3大類方法中,無監(jiān)督深度學習方法和領域自適應方法往往不需要標記數(shù)據(jù),然而這兩類方法學習得到特征表達能力有限,場景分類精度較低。相較于基于無監(jiān)督深度學習方法和領域自適應方法,基于半監(jiān)督深度學習方法可以同時利用有限標注樣本和大量未標記樣本訓練模型,有效提高模型泛化能力,具有較高分類精度。目前國內(nèi)外學者已經(jīng)對基于半監(jiān)督深度學習場景分類方法開展了系列研究。文獻[34]基于度量學習框架將未標記樣本納入到深度網(wǎng)絡的訓練過程中,根據(jù)標記樣本在深度特征空間計算類別中心,并利用類別中心有效距離范圍內(nèi)的未標記樣本參與類別中心的校正,使得同類樣本向其對應類別中心靠攏。文獻[35]為提高模型的辨別性,利用標注數(shù)據(jù)和未標注數(shù)據(jù)訓練對抗網(wǎng)絡,并用對抗網(wǎng)絡中的辨別網(wǎng)絡用于最終的場景分類任務。文獻[37]將協(xié)同訓練引入到半監(jiān)督卷積神經(jīng)網(wǎng)絡場景分類中,利用標記訓練樣本分別訓練兩個不同的網(wǎng)絡,同時利用驗證集訓練一個辨別網(wǎng)絡,隨后使用3個網(wǎng)絡同時對未標記數(shù)據(jù)做預測,當3個網(wǎng)絡對同一樣本的預測一致時將其加入到訓練集中,用于模型的訓練。然而以上方法訓練過程較為復雜,涉及多個網(wǎng)絡的訓練。
針對有限標注數(shù)據(jù)下模型泛化能力下降問題,本文將自學習半監(jiān)督算法(self-training)應用到網(wǎng)絡模型的訓練,提出了一種端到端的半監(jiān)督深度卷積高分影像場景分類方法(3sCNN)。相較于已有方法,本文提出的方法僅需訓練單個網(wǎng)絡,訓練過程簡單,便于實現(xiàn):首先,利用標記樣本對卷積神經(jīng)網(wǎng)絡進行訓練;然后,利用得到的網(wǎng)絡對未標記樣本進行預測得到未標記樣本的預測標簽和對應的置信度,將置信度高的樣本作為真實標簽數(shù)據(jù)加入標記樣本數(shù)據(jù)中進行模型訓練。
基于卷積神經(jīng)網(wǎng)絡的高分影像場景分類基本流程包括數(shù)據(jù)預處理、深度特征提取和特征分類3個部分。
在數(shù)據(jù)預處理階段,主要對輸入原始影像進行歸一化操作,在本文中采用簡單的除以255操作,將影像像素值落在[0,1]區(qū)間。同時為了增加數(shù)據(jù)的多樣性,在訓練階段隨機地對數(shù)據(jù)進行平移、旋轉(zhuǎn)等操作。
深度特征提取階段利用卷積神經(jīng)網(wǎng)絡對經(jīng)過數(shù)據(jù)預處理的影像逐層的進行特征提取。其中卷積神經(jīng)網(wǎng)絡的主要包含卷積層、池化層、全連接層和分類器層等。在特征提取過程中,對于第i層網(wǎng)絡layi,其前一層的輸出zi-1作為本層的輸入得到本層輸出特征zi,隨后輸出到下一層作為輸入,重復特征提取過程
zi=layi(zi-1)
(1)
式中,layi可以是卷積層、池化層或者是全連接層等。
在深度特征提取階段,利用多元分類器SoftMax對得到的深度特征進行分類,輸出待分類樣本的類別分布概率。
雖然基于卷積神經(jīng)網(wǎng)絡的場景分類方法已經(jīng)被成功應用于遙感影像場景分類,并獲得廣泛關注,然而作為一種數(shù)據(jù)驅(qū)動的監(jiān)督學習模型,其訓練過程往往需要大量的標注數(shù)據(jù)。當訓練樣本有限時其深度特征泛化能力衰減,分類精度降低。針對這個問題,本文提出了半監(jiān)督深度卷積神經(jīng)網(wǎng)絡用于高分辨率遙感影像場景分類。
本文提出的方法流程如圖1所示,其過程主要包括數(shù)據(jù)預處理、深度特征提取和分類,標記數(shù)據(jù)集更新。
圖1 基于自學習半監(jiān)督深度卷積神經(jīng)網(wǎng)絡的高分影像場景分類流程Fig.1 Framework of high spatial resolution imagery scene classification based on semi-supervised CNNs
為增加數(shù)據(jù)的多樣性,在數(shù)據(jù)預處理階段對輸入的每一張影像進行隨機切塊作為樣本輸入,并且對得到的影像快進行隨機旋轉(zhuǎn)。
本文采用殘差網(wǎng)ResNet-50[38]用于特征提取和分類。在殘差網(wǎng)中,其通過在低層網(wǎng)絡和高層網(wǎng)絡之間建立跨越連接(skip connection)來保證低層網(wǎng)絡向高層網(wǎng)絡的信息流通和避免梯度彌散導致的深度網(wǎng)絡訓練收斂困難問題,如圖2(a)所示為含有跨越連接的ResNet Block,構成了殘差網(wǎng)絡的基本邏輯單元。殘差網(wǎng)絡通過堆疊多個ResNet Block構建深度網(wǎng)絡,如圖2(b)所示為ResNet-50的網(wǎng)絡結構圖,其中nX表示將n個ResNet Block堆疊在一起。
對于給定的輸入影像,ResNet-50通過逐層特征提取得到對應的特征向量,并將特征輸入到分類器SoftMax進行深度特征分類,得到一個樣本的類別概率分布
(2)
式中,p(y=i|x)代表輸入圖像x屬于類別i的預測概率;c代表場景分類中類別個數(shù)。在訓練階段,通過最大化樣本被正確分類的概率來為網(wǎng)絡參數(shù)更新提供監(jiān)督信息,目標損失函數(shù)為式(3)
(3)
式中,n為參與訓練的樣本個數(shù);yt,i為樣本t的類別編碼,當且僅當樣本t屬于類別i時yt,i取1,否則取0。
圖2 ResNet-50Fig.2 ResNet-50
傳統(tǒng)卷積神經(jīng)網(wǎng)絡通過最小化式(3)來訓練網(wǎng)絡參數(shù),然而當高分辨率遙感標記數(shù)據(jù)有限時,模型的泛化能力受到限制。針對這一問題,本文采用自學習機制在卷積神經(jīng)網(wǎng)絡訓練過程中加入標記數(shù)據(jù)集更新操作,增加可用于訓練的標記圖像數(shù)量。
首先在有限標注數(shù)據(jù)集上進行iter_thrd次迭代預訓練,使得深度網(wǎng)絡具有初步的場景識別能力。在標記數(shù)據(jù)更新階段,利用預訓練的網(wǎng)絡對未標記數(shù)據(jù)集進行推斷預測,得到每一個未標記樣本屬于某一類的最大概率,并將其作為置信度。對于未標記數(shù)據(jù),如果其置信度大于閾值con_thrd,則將其加入到訓練集中作為標記數(shù)據(jù)集進行網(wǎng)絡參數(shù)的訓練。對于未標記數(shù)據(jù),將其用于模型訓練時,其對應得目標函數(shù)為
(4)
Lsum=Lcls+λ(t)Lsemi
(5)
式中,Lsum為總的目標函數(shù);λ(t)為未標記數(shù)據(jù)樣本參與訓練的權重,其定義如式(6)
(6)
在本文方法具體實現(xiàn)中,在每一次網(wǎng)絡參數(shù)更新迭代時,從標記數(shù)據(jù)和未標記數(shù)據(jù)同時隨機采樣一批數(shù)據(jù)輸入卷積神經(jīng)網(wǎng)絡,計算標記數(shù)據(jù)和未標記數(shù)據(jù)的類別概率分布,然后根據(jù)式(3)、式(4)、式(5)計算目標函數(shù)。具體的偽代碼如下。
算法1 3sCNN算法
輸入:卷積網(wǎng)絡Net,學習率lr,未標記數(shù)據(jù)集Ud,標記數(shù)據(jù)集Ld,最大迭代次數(shù)iter
輸出:訓練得到的網(wǎng)絡net
fori=1:iter do:
sample batch of labeled dataL_batch fromLd
sample batch of unlabeled dataU_batch fromUd
FeedL_batch andU_batch to net
Compute the loss according to the equation (3)—(5)
Update the parameters of net
end
本文方法相較于傳統(tǒng)卷積神經(jīng)網(wǎng)絡訓練過程,僅是增加了一個未標記數(shù)據(jù)讀取分支和一個閾值篩選步驟。相較于已有的半監(jiān)督卷積神經(jīng)網(wǎng)絡場景分類方法,本文算法是一個端到端的半監(jiān)督訓練過程,簡單易行,便于實現(xiàn)。
為驗證本文算法的有效性,本文采用UCM[39]、Google of SIRI-WHU[14]和NWPU-RESISC45[19]3個場景分類數(shù)據(jù)集進行試驗測試。其中UCM數(shù)據(jù)集包含21個場景類別,每個類別具有100張場景影像,每張影像大小為256×256,空間分辨率為0.304 8 m(1 ft)。Google of SIRI-WHU數(shù)據(jù)集包含12個場景類別,每個類別具有200張影像,每張影像大小200×200,空間分辨率為2 m。NWPU-RESISC45具有45個場景類別,每類具有700張影像,大小為256×256,空間分辨率為30~0.2 m。圖3、圖4、圖5分別給出了3個數(shù)據(jù)集的代表樣本。為驗證本文方法在標記樣本有限的情況下的提升卷積神經(jīng)網(wǎng)絡泛化能力的有效性,在每一個數(shù)據(jù)集試驗中,僅從該數(shù)據(jù)集抽取3%的影像數(shù)據(jù)作為標記數(shù)據(jù)集,抽取70%的影像數(shù)據(jù)作為未標記數(shù)據(jù)集,剩余的數(shù)據(jù)作為測試樣本。每次試驗重復5次,記錄5次試驗的平均分類精度作為最終的分類精度。試驗中利用經(jīng)過在ImageNet數(shù)據(jù)集上經(jīng)過預訓練的ResNet-50進行網(wǎng)絡的初始化并在3個數(shù)據(jù)集上微調(diào),其中不采用本文提出的半監(jiān)督訓練方法進行微調(diào)的ResNet-50作為對比方法,記為Baseline-ResNet50。在本文試驗中,訓練迭代次數(shù)設置為2000,學習率為0.000 1。
圖3 UCM數(shù)據(jù)集Fig.3 UCM data set
圖4 Google of SIRI-WHU數(shù)據(jù)集Fig.4 Google of SIRI-WHU data set
表1給出了在置信度閾值con_thrd為0.2,迭代訓練閾值iter_thrd為300的條件下,本文提出的半監(jiān)督算法3sCNN與對比方法在3個數(shù)據(jù)集上的分類結果。從表1可以看出,本文半監(jiān)督算法可以有效地提高高分辨率場景分類精度,在3%標記數(shù)據(jù)集和70%未標記數(shù)據(jù)集參與訓練的情況下,相比于Baseline-ResNet50,提出的3sCNN在3個數(shù)據(jù)集上的分類精度分別提高了7.4%、4.7%和3.2%,有效地證明了所提算法的有效性。
圖5 NWPU-RESISC45數(shù)據(jù)集Fig.5 NWPU-RESISC45 data set
表1 場景分類精度對比情況Tab.1 The scene classification accuracy comparison
表2、表3分別給出了提出的3sCNN與已有半監(jiān)督的方法在UCM和NWPU-RESISC45數(shù)據(jù)集上的對比情況,其中x%~y%代表參與訓練的標記數(shù)據(jù)的占數(shù)據(jù)集整體的x%,未標記數(shù)據(jù)集占比y%。本文按照與對比方法相同的數(shù)據(jù)配置進行試驗,其中在5%~95%和80%~20%的設置中,測試數(shù)據(jù)也作為未標記數(shù)據(jù)參與訓練。從表2、表3可以看出本文提出的方法在同樣配置下可以取得最優(yōu)的分類結果。相較于文獻[37]、文獻[35]中的方法需要訓練多個網(wǎng)絡,本文提出的方法可以獲得更優(yōu)的分類精度,且僅需要訓練一個網(wǎng)絡,訓練簡單,便于實現(xiàn)。
表3 與已有方法在NWPU-RESISC45上對比情況Tab.3 Compared with published results with NWPU-RESISC45
為了進一步驗證未標記數(shù)據(jù)集在深度神經(jīng)網(wǎng)絡訓練中的作用,本文通過控制參與訓練的未標記數(shù)據(jù)樣本個數(shù),對比不同未標記樣本個數(shù)下3個數(shù)據(jù)集的場景分類精度,對比情況如表4所示,其中分別對比了當參與訓練的未標記個數(shù)占總樣本數(shù)0%(即等價于Baseline-ResNet50)、20%、50%和70%下的場景分類精度。從表4可以看出在未標記數(shù)據(jù)集的樣本個數(shù)逐漸從0%升至70%時,場景分類精度也隨之逐步提升,證明了提出的半監(jiān)督場景算法3sCNN可以有效利用未標記樣本參與模型訓練,提高模型的泛化能力。圖6比較了Baseline-ResNet50和3sCNN在Google of SIRI-WHU測試數(shù)據(jù)集上的混淆矩陣。如圖6所示,所提出的3sCNN在7類上取得了最好的分類效果,減少了港口、公園、裸地等類別的誤分類。對于池塘這一類別,相比于對比方法Baseline-ResNet50,本文方法的3sCNN精度由0.975衰減至0.775,造成這一現(xiàn)象的原因主要是在提出的半監(jiān)督方法中,會對未標記數(shù)據(jù)進行預測,然后將高置信度未標記樣本作為標記數(shù)據(jù)加入到訓練集中用于模型的訓練,因此未標記數(shù)據(jù)的預測質(zhì)量會影響到訓練數(shù)據(jù)的準確度,當有錯誤的高置信度樣本被作為標記數(shù)據(jù)用于訓練網(wǎng)絡模型時,會降低網(wǎng)絡的預測準確度。如圖7所示,本文測試了Baseline-ResNet50和3sCNN在未標記數(shù)據(jù)集上的分類情況,可以看出Baseline-ResNet50在池塘這一類別上的精度(0.96)高于3sCNN(0.91),這也說明了3sCNN在池塘這一類別上選用了錯誤的高置信度未標記樣本參與模型訓練,降低了模型對該類別樣本的識別能力。
表4 不同未標記樣本下場景分類精度對比情況Tab.4 Scene classification accuracy with different training sample ratio
圖6 Baseline-ResNet50和3sCNN對Google of SIRI-WHU測試數(shù)據(jù)的混淆矩陣Fig.6 The confusion matrix of Baseline-ResNet50 and 3sCNN with Google of SIRI-WHU
在本文提出的方法中,存在迭代閾值iter_thrd和置信度閾值con_thrd需要指定。為研究迭代閾值iter_thrd和置信度閾值con_thrd對分類精度的影響,本文分別令iter_thrd={0,300,600,900,1200,1500,1800},con_thrd={0,0.2,0.4,0.6,0.8}進行試驗,試驗結果如圖8、圖9所示。從圖8中可知,對于UCM和NWPU-RESISC45數(shù)據(jù),當置信度取值為0.2時獲得最優(yōu)分類精度,對于Google of SIRI-WHU數(shù)據(jù)集,當置信度閾值取值為0.4時獲得最優(yōu)精度。對于3個數(shù)據(jù)集來說當置信度閾值大于0時,場景分類精度有所提升,并在0.2和0.4取得最優(yōu)結果,說明通過設置閾值可以有效控制選入未標記樣本的質(zhì)量,避免預測錯誤的樣本參與到模型的訓練中。繼續(xù)增加置信度閾值精度開始出現(xiàn)下降,造成這一現(xiàn)象的原因可能是置信度非常高的樣本其與原本的訓練集樣本具有較高的相似性,將其加入訓練集用于模型訓練時,其帶來的信息量較為有限。圖9給出了迭代閾值iter_thrd對場景分類精度的影響,從圖9可以看出,當?shù)撝祻?增加至300時,分類精度提升,當該閾值繼續(xù)增加時,分類精度出現(xiàn)下降,造成這一現(xiàn)象的原因可能是標記數(shù)據(jù)本身數(shù)據(jù)量少,過多的迭代次數(shù)造成了過擬合現(xiàn)象。當?shù)撝等≈?00時,本文提出的方法在3個數(shù)據(jù)集上獲得最佳分類精度。
圖7 Baseline-ResNet50和3sCNN對Google of SIRI-WHU中未標記數(shù)據(jù)的混淆矩陣Fig.7 The confusion matrix of Baseline-ResNet50 and 3sCNN computed on the unlabeled dataset from Google of SIRI-WHU
圖8 置信度閾值對場景分類的影響Fig.8 The influence of con_thrd on scene classification accuracy
圖9 迭代閾值對場景分類的影響Fig.9 The influence of iter_thrd on scene classification accuracy
在基于卷積神經(jīng)網(wǎng)絡用于高分辨率遙感影像場景分類時,針對標記數(shù)據(jù)有限情況下卷積神經(jīng)網(wǎng)絡訓練困難,特征泛化能力衰減問題,本文將自學習半監(jiān)督算法應用到網(wǎng)絡模型的訓練,提出了一種端到端的自學習半監(jiān)督深度卷積高分影像場景分類方法,在利用有限標記數(shù)據(jù)訓練的同時,對未標記數(shù)據(jù)進行標記預測并將高置信度樣本作為標記數(shù)據(jù)加入到訓練集中進行模型的訓練。試驗表明本文算法可以有效提升分類精度本文方法在訓練過程中需要加入高置信度未標記樣本參與模型訓練,通過設置置信度閾值來保證加入樣本預測標簽的正確性。然而過高的閾值會導致選用的樣本所攜帶的有效信息較為有限,影響分類精度的進一步提升,在未來的工作中,將在保證未標記樣本標簽正確率的同時考慮待基于差異性衡量樣本信息量,選用攜帶更多有效信息的高置信度樣本參與模型的訓練,進一步提升場景分類精度。