陳松鈺,左 強(qiáng),王志芳
(黑龍江大學(xué) 電子工程學(xué)院,黑龍江 哈爾濱 150080)
隨著衛(wèi)星傳感器的快速發(fā)展,遙感圖像的分辨率不斷提高。高分辨率遙感圖像提供了適用于各種觀測任務(wù)的信息,有利于社會和經(jīng)濟(jì)的多方面發(fā)展,語義分割是解析遙感圖像的關(guān)鍵[1]。由于遙感圖像數(shù)據(jù)量大,傳統(tǒng)的圖像分割方法也不能有效地處理遙感圖像的大數(shù)據(jù)[2-3]。
目前為止,研究人員試圖從不同的角度來設(shè)計分類器,從傳統(tǒng)的距離測量方法到支持向量機(jī)和隨機(jī)森林等先進(jìn)方法[4]。然而,對手工制作的視覺特性或中級語義特性的高度依賴限制了這些方法的靈活性和適應(yīng)性。近年來,許多研究采用了深度卷積神經(jīng)網(wǎng)絡(luò)(DCNN)方法進(jìn)行語義分割,并且取得了巨大的成功。2015年,Long[5]等人提出的全卷積網(wǎng)絡(luò)(FCN)在語義分割領(lǐng)域具有開創(chuàng)性的意義,利用反卷積層代替全連接層,提高了分類的效率,實現(xiàn)端到端的訓(xùn)練。在FCN之后,基于編碼-解碼器結(jié)構(gòu)的語義分割陸續(xù)被提出。U-Net[6]結(jié)構(gòu)是對稱的,通過跳躍連接將特征連接在一起,形成U形結(jié)構(gòu)。ResU-Net[7]受到殘差連接的啟發(fā),將U-Net的每一個子模塊分別替換為具有殘差連接形式。U-Net++[8]通過在編碼器和解碼器之間加入密集的塊和卷積層來提高分割精度。PSPNet[9]使用金字塔池模塊聚合不同區(qū)域的上下文信息,提高了獲取全局信息的能力。DeepLab[10]使用骨干網(wǎng)對圖像進(jìn)行采樣,然后,利用不同擴(kuò)張速率的空洞卷積得到多尺度信息。
雖然現(xiàn)在深度學(xué)習(xí)的語義分割算法在語義分割任務(wù)中取得了很好的效果,但是遙感圖像在語義分割任務(wù)中往往涉及目標(biāo)小和場景復(fù)雜等類別,例如建筑場景比較復(fù)雜,汽車的目標(biāo)比較小。即使是相同的類別,大小和形狀也存在很大的差異性[11-12]。
針對分割目標(biāo)小,復(fù)雜場景類別存在精度不高、分割效果不好的問題,本文對U-Net進(jìn)行了改進(jìn)和優(yōu)化,構(gòu)建了AFU-Net語義分割算法,充分融合多尺度信息提高網(wǎng)絡(luò)的分割效果。
U-Net網(wǎng)絡(luò)直接通過跳躍連接將低級特征和高級特征進(jìn)行融合,這種方法獲取到的多尺度信息有限。為了提高U-Net網(wǎng)絡(luò)的分割精度,本文對U-Net的整體結(jié)構(gòu)進(jìn)行改進(jìn),提出了一種基于編-解碼的AFU-Net方法,提高網(wǎng)絡(luò)的分割效果。AFU-Net網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示。
圖1 AFU-Net結(jié)構(gòu)Fig.1 AFU-Net structure
AFU-Net首先在網(wǎng)絡(luò)骨干設(shè)計了一個自上而下、自下而上的網(wǎng)絡(luò),將低級特征和高級特征進(jìn)行逐像素相加得到具有多尺度的信息,并在解碼器階段加入密集跳躍連接,進(jìn)一步將不同尺度的特征進(jìn)行組合利用。然后,使用殘差單元替換原有的卷積為網(wǎng)絡(luò)提供更豐富的特征,并在編碼器每個階段的輸出都經(jīng)過一個非對稱卷積塊,對所有級別的特征進(jìn)行細(xì)化,幫助編碼器獲取到更多的細(xì)節(jié)信息。最后,使用視覺激活函數(shù)FReLU代替基礎(chǔ)網(wǎng)絡(luò)中的非線性激活函數(shù)ReLU,提升空間像素關(guān)聯(lián)性。
較深層次的神經(jīng)網(wǎng)絡(luò)訓(xùn)練起來比較有挑戰(zhàn)性,隨著網(wǎng)絡(luò)深度的增加雖然可以提高訓(xùn)練精度,但是有可能出現(xiàn)退化問題。因此,He等人[13]提出了一種深度殘差學(xué)習(xí)框架,以促進(jìn)訓(xùn)練過程并解決退化問題。殘差神經(jīng)網(wǎng)絡(luò)由一系列疊加的殘差卷積單元組成。在殘差單元中,輸入和輸出通過短路連接進(jìn)行疊加。殘差單元的結(jié)構(gòu)如圖2所示。
(a) 普通卷積單元
設(shè)w1,w2為卷積層的權(quán)值,σ1,σ2分別為殘差單元中的2個激活函數(shù)。那么,卷積層的輸出F(x)描述為:
F(x)=σ2(w2σ1(w1x))。
(1)
最后,將F(x)與輸入特征x相加,得到殘差單元的輸出:
H(x)=F(x)+x。
(2)
普通卷積的卷積核大小為d×d,它可以對圖像進(jìn)行局部特征提取。非對稱卷積塊將普通卷積的卷積核轉(zhuǎn)換成d×1和1×d。但是,在轉(zhuǎn)換的過程中會導(dǎo)致信息的丟失。針對這一問題,Ding等[14]提出了一維非對稱卷積來增強(qiáng)水平方向和垂直方向的特征,然后將其獲得的信息收集到平方核層中,保證了良好的圖像識別性能,非對稱卷積塊如圖3所示。
圖3 非對稱卷積塊Fig.3 Asymmetric convolution blocks
非對稱卷積塊一共有3個分支,分別是3×3卷積、1×3卷積和3×1卷積,用于捕獲不同接受域的特征,從而獲取不同的信息。3×3卷積捕捉具有較大的接受域,1×3卷積和3×1卷積分別增強(qiáng)水平方向和垂直方向的特征。同時,非對稱卷積塊將3個分支生成的特征圖相加得到融合結(jié)果。最后,利用Batch Normalization(BN)和ReLU提高數(shù)值穩(wěn)定性,以非線性方式激活結(jié)果。計算如下:
(3)
(4)
式中,xi為網(wǎng)絡(luò)的輸入;xi-1為網(wǎng)絡(luò)的輸出;Var(·)和E(·)為方差函數(shù)和輸入期望;ε為常數(shù)保持?jǐn)?shù)值穩(wěn)定;γ和β為BN層的2個可訓(xùn)練參數(shù);σ(·)為激活函數(shù)。
非線性激活函數(shù)為卷積神經(jīng)網(wǎng)絡(luò)中提供良好非線性建模能力。目前卷積神經(jīng)網(wǎng)絡(luò)中常用的激活函數(shù)主要以ReLu和PReLu為主[15],其表達(dá)式為:
(5)
(6)
在ReLu激活函數(shù)中,當(dāng)輸入x>0時,是線性的部分;當(dāng)x≤0時,全部設(shè)置為0對函數(shù)進(jìn)行調(diào)整。因此會存在激活死區(qū)這一缺點,導(dǎo)致訓(xùn)練過程很脆弱。如一個很大的梯度流過一個ReLU神經(jīng)元,參數(shù)更新后這個神經(jīng)元就再也不會對任何數(shù)據(jù)有激活現(xiàn)象了。PReLu目的是為x≤0部分線性激活單元,引入了一個可以隨計算改變的隨機(jī)參數(shù)a。
ReLu和PReLu激活函數(shù)被應(yīng)用深度學(xué)習(xí)的各個領(lǐng)域。但是在計算機(jī)視覺領(lǐng)域,以上激活函數(shù)對空間信息不夠敏感。因此,曠視和香港理工大學(xué)在2020年專門為計算機(jī)視覺任務(wù)提出一種視覺激活函數(shù)FReLu來提高網(wǎng)絡(luò)的性能[16],F(xiàn)ReLu表達(dá)式為:
FReLu(x)=max(x,T(x))。
(7)
FReLu的特點是使用T(x)二維空間條件,增強(qiáng)了卷積神經(jīng)網(wǎng)絡(luò)對不規(guī)則和詳細(xì)對象的解析能力,F(xiàn)ReLu原理如圖4所示??臻g條件使用了卷積函數(shù)提升了像素和像素之間的空間依賴性,實現(xiàn)像素級視覺信息的捕獲,更能夠提升激活函數(shù)在計算視覺語義分割任務(wù)中的精度。
圖4 FReLu原理Fig.4 FReLu principle
在ISPRS航空影像Vaihingen數(shù)據(jù)集[17]上驗證AFU-Net算法的可行性。Vaihingen數(shù)據(jù)集共有由33張高分辨率遙感圖像,每張圖片包含建筑物、不透水域表面、低矮植被、樹木和汽車5種類別。其中16張進(jìn)行了標(biāo)記,每幅影像的平均大小為2 494 pixel×2 064 pixel,空間分辨率為9 cm,包含3個波段:近紅外(IR)、紅(R)、綠(G)波段。
由于GPU內(nèi)存的限制,不能直接將較大的遙感圖像直接輸入到網(wǎng)絡(luò)結(jié)構(gòu)中,因此,對遙感影像進(jìn)行剪裁處理,裁剪大小為256×256。此外,為了防止過擬合現(xiàn)象,實驗通過旋轉(zhuǎn)和平移操作,對數(shù)據(jù)集進(jìn)行數(shù)據(jù)增強(qiáng)。數(shù)據(jù)集實驗信息如表1所示。
表1 數(shù)據(jù)集實驗
本文采用F1-score (F1)、總體平均精度(OA)、交互比(IoU)、平均交互比(mIoU)作為評價指標(biāo),定義分別為:
F1=2PR/(P+R),
(8)
(9)
(10)
(11)
遙感圖像語義分割本質(zhì)是圖像分類的過程,有4種預(yù)測結(jié)果:True Positive(TP),True Negative(TN),F(xiàn)alse Positive(FP)和False Negative(FN)。P為預(yù)測正確的正例數(shù)占預(yù)測的正例總量的比率;R為預(yù)測正確的正例數(shù)占真正的正例數(shù)的比率。
在進(jìn)行實驗設(shè)計時,程序使用pytorch框架進(jìn)行設(shè)計。優(yōu)化器使用SGD,損失函數(shù)使用交叉熵?fù)p失函數(shù),參數(shù)設(shè)置:lr=0.001,momentum=0.99,weight_decay=0.000 5,batchsize=8。
在相同的實驗條件下使用經(jīng)典的語義分割網(wǎng)絡(luò)FCN,U-Net,ResU-Net,U-Net++和本文提出的AFU-Net的進(jìn)行對比分析,實驗結(jié)果如表2和表3所示。
表2 實驗結(jié)果
表3 每一類別的IoU結(jié)果
從表2可以看出,本文提出的AFU-Net方法的mIoU,F(xiàn)1,OA都有相應(yīng)的提升。與基礎(chǔ)的FCN和U-Net相比,mIoU提高了4.35%,F(xiàn)1提高了3.75%,OA提高了2.41%。ResU-Net和U-Net++都是基于U-Net方法的優(yōu)化,AFU-Net相比于ResU-Net,U-Net++的mIoU,F(xiàn)1,OA至少提高了1.48%,1.78%,1.11%。從表3可以看出,AFU-Net相比于ResU-Net,U-Net++,U-Net的IoU提升了1.5%,1.7%,1.06%,0.28%,2.03%。尤其是車這種小目標(biāo)類別以及存在大小和形狀具有差異性的建筑物類別的IoU達(dá)到了71.18%,87.51%有明顯提高。另外,U-Net對樹木和車類別的IoU相比于FCN提高了1.31%,2.35%,證明低級特征對小目標(biāo)分割的重要性。因此,表2和表3的對比結(jié)果證明了本文提出的AFU-Net方法在分割任務(wù)中的有效性。
選取4幅圖像進(jìn)行比較。原始圖像、標(biāo)簽和各個算法的分割結(jié)果如圖5所示。
(a) 遙感圖像
由圖5可以看出,地面和建筑物等類別的大小形狀不一,即使是同一個類別也有一定的差異性,或者中間夾雜著其他的像素,導(dǎo)致很難區(qū)分開。AFU-Net方法相比于FCN,U-Net,ResU-Net和U-Net++方法對于類別的邊界清晰分明,錯誤信息較少,區(qū)分較為準(zhǔn)確,并且對于車較小的類別提取也相對準(zhǔn)確。
為了提高遙感圖像語義分割的分割精度,本文提出了一種基于U-Net改進(jìn)的遙感語義分割的算法AFU-Net。通過一個自下而上、自上而下并結(jié)合密集跳躍連接的多尺度結(jié)構(gòu),提升了U-Net網(wǎng)絡(luò)獲取多尺度信息能力,同時引入不對稱卷積塊和FReLu激活函數(shù)提升網(wǎng)絡(luò)對不同目標(biāo)的解析能力,進(jìn)一步提高了遙感圖像語義的分割精度。實驗結(jié)果表明,AFU-Net的mIoU,F(xiàn)1,OA提高到76.64%,78.79%,88.04%,優(yōu)于FCN,U-Net,ResU-Net和U-Net++方法,證明了AFU-Net方法的有效性。