郭東恩,吳澤琛
(南陽理工學(xué)院計(jì)算機(jī)與軟件學(xué)院 河南 南陽 473004)
遙感圖像場(chǎng)景分類可以自動(dòng)根據(jù)場(chǎng)景內(nèi)容將其分類為指定的語義類別。基于深度神經(jīng)網(wǎng)絡(luò)方法在較大規(guī)模的有標(biāo)簽數(shù)據(jù)集上進(jìn)行監(jiān)督訓(xùn)練時(shí),通??梢詫?shí)現(xiàn)更高的分類精度[1]。此外,無監(jiān)督分類可以從大量無標(biāo)簽樣本中學(xué)習(xí),但不能充分利用有標(biāo)簽樣本,導(dǎo)致其分類精度很難滿足實(shí)際需求。盡管最近已經(jīng)發(fā)布了數(shù)以萬計(jì)的遙感場(chǎng)景數(shù)據(jù)集,但由于標(biāo)注遙感圖像耗時(shí)耗力,在某些特定的遙感應(yīng)用中僅包含部分有標(biāo)簽的樣例,缺少大量有標(biāo)簽樣本是遙感領(lǐng)域深度學(xué)習(xí)方法的關(guān)鍵挑戰(zhàn)[2]。
半監(jiān)督學(xué)習(xí)是一種解決有標(biāo)簽數(shù)據(jù)不足的有效方法。半監(jiān)督遙感圖像場(chǎng)景分類不僅可以從少量的有標(biāo)簽數(shù)據(jù)中學(xué)習(xí),而且可以充分利用無標(biāo)簽的數(shù)據(jù),可以減少對(duì)有標(biāo)簽樣本的依賴,大大減輕了標(biāo)注遙感圖像的負(fù)擔(dān)[3]。
近年來,生成對(duì)抗網(wǎng)絡(luò)(generative adversarial networks,GAN)已用于半監(jiān)督圖像分類,這是因?yàn)镚AN具有通過對(duì)抗訓(xùn)練從真實(shí)訓(xùn)練樣本中學(xué)習(xí)基礎(chǔ)數(shù)據(jù)分布的能力,可以與最先進(jìn)的半監(jiān)督圖像分類方法競(jìng)爭(zhēng)[4]。當(dāng)前基于GAN的最新半監(jiān)督方法使用標(biāo)準(zhǔn)DCGAN的變體進(jìn)行圖像分類[5-7]。Li等人提出了一種triple-GAN利用三者博弈實(shí)現(xiàn)出色的半監(jiān)督分類性能[5]。Dai等人分析了GAN不能同時(shí)獲得良好的半監(jiān)督分類和良好的生成效果的原因,提出一種新的半監(jiān)督分類模型,有效提高了多個(gè)基準(zhǔn)數(shù)據(jù)集上的分類性能[6]。這些基于GAN的方法已經(jīng)實(shí)現(xiàn)了更好的半監(jiān)督分類性能,但是,由于標(biāo)準(zhǔn)DCGAN的判別網(wǎng)絡(luò)無法充分提取圖像特征,限制了分類性能的提高。尤其是面對(duì)更加復(fù)雜的遙感圖像的半監(jiān)督分類需要進(jìn)一步研究更有判別性的特征提取方法,以提高基于GAN的半監(jiān)督分類性能。
半監(jiān)督圖像分類可以從有標(biāo)簽和無標(biāo)簽的數(shù)據(jù)中聯(lián)合學(xué)習(xí),以利用大量無標(biāo)簽的樣本來提高分類性能。最近,GAN被引入半監(jiān)督圖像分類中,通過使用大量無標(biāo)簽的樣本和有限的有標(biāo)簽樣本來顯著提高分類性能[5,6]。
標(biāo)準(zhǔn)GAN至少包含一個(gè)生成網(wǎng)絡(luò)G和一個(gè)判別網(wǎng)絡(luò)D,G通過隨機(jī)噪聲z生成假樣本G(z),而D用于判斷輸入樣本的真假,通過兩者間的不斷博弈實(shí)現(xiàn)相關(guān)任務(wù)。其博弈過程對(duì)應(yīng)的值函數(shù)V(G,D)可表示為
EZ~pZ(Z)[log(1-D(G(z))]
(1)
其中,z表示遵循先驗(yàn)分布z~pz生成的隨機(jī)噪聲向量,pdata表示真實(shí)樣本的概率,pz表示生成網(wǎng)絡(luò)G生成的假樣本的概率,D旨在使真實(shí)圖像的概率最大化,而G旨在提高將生成圖像分類為真實(shí)圖像的可能性。
Salimans等人提出FMGAN通過加入生成網(wǎng)絡(luò)生成的假圖像擴(kuò)展標(biāo)準(zhǔn)分類器實(shí)現(xiàn)半監(jiān)督的圖像分類[4]。
基于GAN的半監(jiān)督圖像分類網(wǎng)絡(luò)框架如圖1所示。判別網(wǎng)絡(luò)D的輸入由3部分構(gòu)成:真實(shí)有標(biāo)簽圖像、真實(shí)無標(biāo)簽圖像和生成網(wǎng)絡(luò)G生成的假圖像,無標(biāo)簽圖像需要進(jìn)行無監(jiān)督訓(xùn)練,有標(biāo)簽圖像需要進(jìn)行有監(jiān)督訓(xùn)練。因此,判別網(wǎng)絡(luò)D的損失函數(shù)LD可以表示為
LD=Ls+Lun
=-Ex,y~pdata(x,y)[log(pmodel(y|x))]-
{Ex~pdata(x)logD(x)+Ez~pzlog(1-D(G(z)))}
其中,Ls表示有標(biāo)簽圖像訓(xùn)練的有監(jiān)督損失,Lun表示無標(biāo)簽真實(shí)圖像和生成網(wǎng)絡(luò)生成的假圖像對(duì)應(yīng)的無監(jiān)督損失。
圖1 基于GAN的半監(jiān)督圖像分類網(wǎng)絡(luò)框架
Roy等人提出一種用于半監(jiān)督衛(wèi)星圖像分類的語義融合GAN(SFGAN),通過引入一個(gè)語義分支增強(qiáng)判別網(wǎng)絡(luò)的特征提取能力獲得更好的分類性能[8]。最近,Guo等人提出了SAGGAN,利用門控自注意及預(yù)訓(xùn)練語義分支實(shí)現(xiàn)遙感圖像的半監(jiān)督分類,取得了良好的效果[3]。但是SAGGAN采用標(biāo)準(zhǔn)的DCGAN結(jié)構(gòu),適合處理場(chǎng)景相對(duì)簡(jiǎn)單,空間分辨率較低的圖像,對(duì)于復(fù)雜場(chǎng)景的高分辨率遙感圖像,特征捕獲能力受到較大的限制。
Duta等人提出了金字塔卷積(PyConv)利用不同大小和深度的不同類型的濾波器捕獲場(chǎng)景中不同層次的細(xì)節(jié)。Miyato等人引入譜歸一化(spectral normalization,SN)到GAN中穩(wěn)定訓(xùn)練過程提高GAN的性能。夏英等人提出了深層和淺層特征融合的基于GAN的半監(jiān)督遙感圖像場(chǎng)景分類方法,取得了較好的分類效果[9]。Ledig等人提出了SRGAN,利用深度殘差結(jié)構(gòu)的GAN進(jìn)行自然圖像的超分辨率重建,實(shí)現(xiàn)了更真實(shí)的圖像紋理的恢復(fù)重建[10]。
受上述文獻(xiàn)的啟發(fā),本文提出一種新的基于GAN的半監(jiān)督遙感督場(chǎng)景分類模型(SSGAN),該模型引入密集殘差塊代替SAGGAN中的卷積,使用金字塔卷積、預(yù)訓(xùn)練分支、譜歸一化及特征融合對(duì)判別網(wǎng)絡(luò)特征提取能力進(jìn)行增強(qiáng)。通過引入密集殘差塊到生成網(wǎng)絡(luò)增強(qiáng)生成圖像的質(zhì)量,通過引入密集殘差塊到判別網(wǎng)絡(luò)增強(qiáng)判別網(wǎng)絡(luò)特征判別能力。通過引入預(yù)訓(xùn)練的ResNet50 v1網(wǎng)絡(luò)分支有效提取圖像的語義特征并和原始判別網(wǎng)絡(luò)的特征進(jìn)行融合,提高特征判別能力。通過將判別網(wǎng)絡(luò)中標(biāo)準(zhǔn)卷積塊替換為金字塔卷積塊有效獲取場(chǎng)景圖像中不同層次的細(xì)節(jié)特征。利用譜歸一化穩(wěn)定GAN網(wǎng)絡(luò)的訓(xùn)練,有效提高半監(jiān)督遙感場(chǎng)景分類的精度。
通過在公開的遙感數(shù)據(jù)集EuroSAT[11]和UCM Merced[12]上的對(duì)比實(shí)驗(yàn)驗(yàn)證了提出的SSGAN方法的性能,提出的SSGAN和基于GAN的其他半監(jiān)督方法相比獲得了更高的分類精度。
本節(jié)詳細(xì)介紹提出的SSGAN模型。具體SSGAN的框架結(jié)構(gòu)如圖2所示。
圖2 PyConv的結(jié)構(gòu)
按照SAGGAN[3]中的結(jié)構(gòu),使用SRGAN[12]中的殘差塊來代替SAGGAN中的普通卷積構(gòu)建SSGAN的生成網(wǎng)絡(luò)和判別網(wǎng)絡(luò)結(jié)構(gòu),具體結(jié)構(gòu)如圖2所示。生成網(wǎng)絡(luò)由4個(gè)殘差塊構(gòu)成,每個(gè)殘差塊結(jié)構(gòu)如圖中G_Block塊所示,包含一個(gè)上采樣層,然后緊跟一個(gè)批正則化(batch normalization,BN)和一個(gè)參數(shù)化激活函數(shù)(Paramitric ReLU,PReLU),然后是兩個(gè)卷積層,中間有一個(gè)BN層。
為了進(jìn)一步增強(qiáng)判別網(wǎng)絡(luò)的特征表示能力以促進(jìn)半監(jiān)督遙感場(chǎng)景分類性能,受SF-GAN的啟發(fā)[8],本文擴(kuò)展了判別網(wǎng)絡(luò)以進(jìn)一步增強(qiáng)特征描述能力。首先引入一個(gè)在ImageNet數(shù)據(jù)集上預(yù)訓(xùn)練的ResNet50 v1作為網(wǎng)絡(luò)分支擴(kuò)展判別網(wǎng)絡(luò),當(dāng)圖像x輸入到D時(shí),通過微調(diào)ResNet50 v1分支提取最后一個(gè)卷積層的激活值,然后對(duì)提取的特征圖進(jìn)行全局平均池化操作(global average pooling,GAP)。其次,為了捕獲更廣泛的上下文信息,將判別網(wǎng)絡(luò)殘差塊中第二個(gè)卷積層替換成金字塔卷積(PyConv)。此外,在生成網(wǎng)絡(luò)和判別網(wǎng)絡(luò)的每個(gè)殘差塊中加入了SN層以穩(wěn)定GAN的訓(xùn)練過程,提高分類精度。最后,將從原始判別網(wǎng)絡(luò)分支和ResNet50 v1分支中提取的兩個(gè)特征進(jìn)行融合,輸入到softmax分類器中進(jìn)行半監(jiān)督場(chǎng)景分類。
由于遙感場(chǎng)景圖像的復(fù)雜性,不同對(duì)象在不同場(chǎng)景中可能呈現(xiàn)不同大小,相同對(duì)象在同一場(chǎng)景中也可能呈現(xiàn)不同的大小,使用傳統(tǒng)的3×3卷積很難有效學(xué)習(xí)這種多樣性。Duta等人提出了金字塔卷積[9],該卷積包含金字塔狀的核,每一層包含不同大小和深度的過濾器,能夠捕獲不同層級(jí)的細(xì)節(jié)信息,具有n組不同核的PyConv如圖2所示。按照PyConv[9]的思想,本文構(gòu)建了判別網(wǎng)絡(luò)的殘差塊D_Block,其中第二個(gè)卷積替換為PyConv,本文參考PyConvHGResNet的結(jié)構(gòu),使用4組不同核大小的PyConv捕獲不同層次的信息。
這里FMi表示中間層的特征圖作為PyConv的輸入,F(xiàn)Mo表示PyConv的輸出,PyConv由4組不同大小和深度的過濾器組成,通過PyConv構(gòu)成的殘差塊可以捕獲到不同層次的特征信息,增強(qiáng)判別網(wǎng)絡(luò)中特征的判別能力。
深層神經(jīng)網(wǎng)絡(luò)中不同層次的特征包含不同的細(xì)節(jié),特別是高層特征往往包含高層語義信息,因此,多層特征融合可以增強(qiáng)特征表示能力。那么,對(duì)多個(gè)網(wǎng)絡(luò)分支獲取的特征進(jìn)行融合也能增強(qiáng)特征表示能力,主要受SFGAN的啟發(fā),將原始判別網(wǎng)絡(luò)分支和微調(diào)預(yù)訓(xùn)練ResNet v1分支的特征進(jìn)行融合,進(jìn)一步增強(qiáng)特征判別能力。特征融合的結(jié)構(gòu)如圖3所示。
圖3 SSGAN模型的網(wǎng)絡(luò)架構(gòu)
GAN訓(xùn)練的不穩(wěn)定性一直是基于GAN任務(wù)中的一大挑戰(zhàn)。Miyato等人提出了譜歸一化[10]思想,用以約束判別網(wǎng)絡(luò)1-Lipschitz連續(xù),從而有效提高模型性能。而在SAGAN[13]中,譜歸一化被同時(shí)用于GAN的生成和判別網(wǎng)絡(luò)的每個(gè)卷積中,來穩(wěn)定訓(xùn)練梯度,提高GAN的性能。受SAGAN啟發(fā),本文在生成網(wǎng)絡(luò)和判別網(wǎng)絡(luò)中均加入譜歸一化來穩(wěn)定GAN訓(xùn)練,以增強(qiáng)判別網(wǎng)絡(luò)的特征表示能力。
本節(jié)在遙感圖像基準(zhǔn)數(shù)據(jù)集EuroSAT和UCM Merced上進(jìn)行廣泛的實(shí)驗(yàn),以驗(yàn)證提出的SSGAN方法的有效性。
EuroSAT 數(shù)據(jù)集[11]是基于Sentinel-2衛(wèi)星獲取的中分辨率遙感圖像數(shù)據(jù)集,含有10種不同的土地規(guī)劃類別,共27,000張空間分辨率為64×64的圖像。UC Merced數(shù)據(jù)集[12]是遙感圖像場(chǎng)景分類最常用的基準(zhǔn)數(shù)據(jù)集,共包括21種土地覆蓋類別。每類包含100張大小為256*256的圖像。
為了驗(yàn)證提出的SSGAN的半監(jiān)督分類性能,本文按照SAGGAN[3]中的設(shè)置,將兩個(gè)數(shù)據(jù)集拆分為3部分:訓(xùn)練集80%,驗(yàn)證集2%和測(cè)試集18%。另外,確定了有標(biāo)簽訓(xùn)練樣本的數(shù)量M。EuroSAT數(shù)據(jù)集上M分別設(shè)置為100、1000、2000和21600,而UC Merced數(shù)據(jù)集上M設(shè)置為100、200、400、1680,其余的作為無標(biāo)簽樣本。
所有實(shí)驗(yàn)在64位Ubuntu 16.04服務(wù)器上PyTorch框架中進(jìn)行,該服務(wù)器采用8核Intel?Xeon?Gold 6048 CPU @ 2.36 GHz處理器,配有4個(gè)TITAN V GPU。在訓(xùn)練過程中,根據(jù)SAGGAN[3]設(shè)置最小批大小為128,訓(xùn)練輪次為200,初始學(xué)習(xí)率0.0003,學(xué)習(xí)率衰減為0.9。所有對(duì)比方法都遵循原始設(shè)置,以確保公正性和客觀性。
此外,為了確保實(shí)驗(yàn)的可靠性,所有實(shí)驗(yàn)結(jié)果均是對(duì)隨機(jī)選擇的樣本進(jìn)行的5次重復(fù)實(shí)驗(yàn)取平均值。
本部分在兩個(gè)數(shù)據(jù)集上對(duì)提出的SSGAN進(jìn)行實(shí)驗(yàn),并和微調(diào)的Inception V3預(yù)訓(xùn)練網(wǎng)絡(luò)及幾種代表性的基于GAN的圖像分類方法進(jìn)行比較?;贕AN的半監(jiān)督分類方法包括SAGGAN[3]、FM-GAN[4]、Triple-GAN[5]、bad-GAN[6]、REG-GAN[7]、SF-GAN[8]。表1列出了幾種方法的整體精度,從這些數(shù)據(jù)中我們可以得到以下結(jié)論:
表1 不同方法的整體精度
(1)本文提出的SSGAN在兩個(gè)數(shù)據(jù)集上實(shí)現(xiàn)了最佳分類精度,這是因?yàn)橐肓祟A(yù)訓(xùn)練分支、PyConv和SN,并且使用了特征融合以進(jìn)一步增強(qiáng)特征表示能力。SAGGAN方法的性能排第二,因?yàn)橐肓俗宰⒁忾T控模塊和門控單元增強(qiáng)了判別網(wǎng)絡(luò)的判別能力。 SF-GAN方法的性能排第三,可能是因?yàn)樵赟F-GAN中引入了預(yù)訓(xùn)練的Inception V3網(wǎng)絡(luò)來增強(qiáng)了判別網(wǎng)絡(luò)的特征表示能力。Inception V3方法的性能超過了除SAGGAN、SF-GAN和本文提出的SSGAN之外的其他方法,這是因?yàn)镮nception V3在大規(guī)模ImageNet數(shù)據(jù)集上進(jìn)行了預(yù)訓(xùn)練,能夠通過微調(diào)提取遙感圖像中更有判別性的特征。
(2)隨著有標(biāo)簽樣本數(shù)量M的增加,每種方法的精度呈線性增加。有趣的是,當(dāng)M=21600時(shí),提出的SSGAN比預(yù)訓(xùn)練的Inception V3方法具有更高的精度。這可能是因?yàn)楸疚奶岢龅腟SGAN可以使用生成網(wǎng)絡(luò)生成的圖像進(jìn)行額外訓(xùn)練,而這些生成的樣本對(duì)預(yù)訓(xùn)練的Inception V3網(wǎng)絡(luò)是不可用的。在UCM Merced數(shù)據(jù)集上的結(jié)果存在相同的趨勢(shì)。
(3)在EuroSAT數(shù)據(jù)集上當(dāng)M=100時(shí)SSGAN的精度比SF-GAN和SAGGAN分別高10.96%和2.77%,達(dá)到79.56%,這表明SSGAN可以用較少的有標(biāo)簽樣本獲得更高的精度。在UC Merced數(shù)據(jù)集上可以看到類似的結(jié)果。
(4)在UC Merced數(shù)據(jù)集上,M=100、200、400和1680時(shí),SSGAN的精度僅為59.52%,76.13%,83.86%和91.02%,這是因?yàn)榭偟挠?xùn)練樣本數(shù)量不足,這限制了基于GAN網(wǎng)絡(luò)的半監(jiān)督分類性能。但是,與其他方法相比,SSGAN的分類精度仍最高。
為了進(jìn)一步分析所提出的SSGAN的性能,在EuroSAT數(shù)據(jù)集上分別在M=100、1000、2000和21600生成了混淆矩陣。從圖4混淆矩陣的結(jié)果中,可以得出如下結(jié)論:
(1)隨著有標(biāo)簽樣本數(shù)量M的增加,每個(gè)類別的精度單調(diào)增大,而混淆誤差相應(yīng)減小。當(dāng)M=100時(shí),10個(gè)類別中有6個(gè)類別精度超過76%,說明在具有更少有標(biāo)簽數(shù)據(jù)情況下,提出的方法獲得了更好的分類精度。
(2)通過對(duì)M=100和M=2000的結(jié)果進(jìn)行比較,類別1、2、6、7、8的準(zhǔn)確性分別提高了21%,29%,28%,21%和22%。表明隨著有標(biāo)簽樣本數(shù)的增加,各類別分類精度明顯增高。
(3)在M=21600的情況下,所有10類樣本中有9個(gè)類別的分類精度超過95%。簡(jiǎn)而言之,提出的SSGAN可以實(shí)現(xiàn)良好的半監(jiān)督分類性能。
圖4 EuroSAT數(shù)據(jù)集上M=100、1000、2000和21600產(chǎn)生的混淆矩陣
與其他半監(jiān)督圖像分類方法相比,提出的SSGAN由于對(duì)判別網(wǎng)絡(luò)的增強(qiáng)而達(dá)到了最佳性能。本節(jié)對(duì)預(yù)訓(xùn)練的ResNet50 v1分支及特征融合、PyConv和SN的有效性進(jìn)行驗(yàn)證。分別研究了所提出方法的3個(gè)變體:(1)SSGAN-R是沒有預(yù)訓(xùn)練的ResNet50 v1分支及特征融合的變體;(2)SSGAN-P是不使用PyConv的變體;(3)SSGAN-SN是不含SN的變體。
為了公平比較,本文在相同的實(shí)驗(yàn)設(shè)置和數(shù)據(jù)集上進(jìn)行了廣泛的實(shí)驗(yàn)。從表2中兩個(gè)數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果可以看出,ResNet50 v1分支和特征融合、SN和PyConv都有助于改善SSGAN性能。其中,SSGAN-R在兩個(gè)數(shù)據(jù)集中的精度最低,這表明ResNet50 v1分支和特征融合是最有效的,因?yàn)镽esNet50 v1可以從場(chǎng)景圖像中提取高級(jí)語義信息,然后將提取的語義特征圖和原始判別網(wǎng)絡(luò)特征進(jìn)行融合以進(jìn)一步增強(qiáng)特征判別能力。第二有效的是PyConv,因?yàn)橥ㄟ^多組不同核大小的金字塔卷積操作,可以獲取不同層次的細(xì)節(jié)信息,增強(qiáng)特征判別能力。第三有效的是SN,在兩個(gè)數(shù)據(jù)集上精度也有較大的提高。有趣的是,SSGAN-SN在標(biāo)簽數(shù)量M更大時(shí)其精度明顯比SSGAN更低,這表明SN在有更多有標(biāo)簽訓(xùn)練樣例下性能更好。
表2 消融實(shí)驗(yàn)結(jié)果
論文提出了一種新的基于GAN的半監(jiān)督場(chǎng)景分類方法,該方法引入密集殘差塊、預(yù)訓(xùn)練的ResNet50 v1網(wǎng)絡(luò)及特征融合的思想和金字塔卷積來增強(qiáng)特征表示能力,同時(shí)在生成網(wǎng)絡(luò)和判別網(wǎng)絡(luò)引入譜歸一化增加GAN訓(xùn)練的穩(wěn)定性,該方法可以充分利用少量有標(biāo)簽和大量無標(biāo)簽樣本進(jìn)行半監(jiān)督遙感場(chǎng)景分類。廣泛的實(shí)驗(yàn)結(jié)果表明,與其他對(duì)比方法相比,本文提出的方法可實(shí)現(xiàn)更高的整體精度,尤其是在僅有少量有標(biāo)簽樣本時(shí)能獲得明顯更高的精度。