王 曦, 于 鳴,2*, 任洪娥,2*
(1. 東北林業(yè)大學(xué) 信息與計算機(jī)工程學(xué)院, 黑龍江 哈爾濱150040;2. 黑龍江省林業(yè)智能裝備工程研究中心, 黑龍江 哈爾濱 150040)
卷積神經(jīng)網(wǎng)絡(luò)(Convolution Neural Networks,CNN)[1]以其局部權(quán)值共享的特殊結(jié)構(gòu)以及良好的容錯能力、并行處理能力和自學(xué)習(xí)能力被廣泛應(yīng)用于語義分割[2]、對象檢測[3]、人臉識別[4]、圖像分類[5]等諸多計算機(jī)視覺領(lǐng)域[6]。以圖像語義分割為例,Long J和Shelhamer E首次將CNN引入了圖像語義分割問題,提出了著名的FCN[7]結(jié)構(gòu)。FCN將深度學(xué)習(xí)擴(kuò)展到語義分割領(lǐng)域。FCN在提取特征方面與CNN基本一致。不同的是,F(xiàn)CN為每一個像素分配一個值,用于表示該像素屬于特定類別的概率。相比使用手工設(shè)計的特征描對圖像進(jìn)行編碼,通過反卷積實現(xiàn)上采樣將CNN獲取的編碼恢復(fù)到原有圖像尺寸,采用端到端的訓(xùn)練方式,簡化了語義分割問題過程,得到了更優(yōu)的準(zhǔn)確率。Ronneberger O和Fischer P等人在FCN[8]基礎(chǔ)上提出了UNET結(jié)構(gòu),使用了編碼器解碼器結(jié)構(gòu)并加入了橫向連接,f反卷積使得從圖像特征編碼到最后的預(yù)測結(jié)果更加平滑,橫向連接為解碼器增加了來自淺層具有局部信息的特征,豐富了解碼器階段包含的信息,進(jìn)一步提升了效果。Chen L C和Papandreou G提出了DeepLab V3模型,在模型中對空間金字塔池化模塊(ASPP)進(jìn)一步改進(jìn),使用具有不同感受野的空洞卷積提取多尺度語義信息,通過1×1卷積進(jìn)行整合,提升了模型整合多尺度信息的能力,將語義分割的效果帶上了新臺階。
UNET模型最早用于醫(yī)學(xué)影像分割,該模型以其簡潔的結(jié)構(gòu)以及顯著的效果受到了國內(nèi)外學(xué)者的關(guān)注。李忠智等人提出基于UNET的船舶檢測方法,通過在UNET中加入多變輸出融合策略算為基礎(chǔ)在模型中加入特征融合[9];周銳燁等人提出PI-UNET用于異質(zhì)虹膜精確分割,使用深度可分離卷積替換傳統(tǒng)卷積對模型進(jìn)行加速,在上采樣階段同時使用反卷積與二次先行插值,彌補(bǔ)因深度可分卷積帶來的精度問題[10];蔣宏達(dá)等人提出I-UNET用于皮膚病圖像分割,在UNET中加入Inception提升UNET對多尺度信息的捕捉能力[11]。本文將對UNET模型出現(xiàn)的問題進(jìn)一步探究,通過兩種方式對其進(jìn)行改進(jìn),提升模型的語義分割精度。
高分辨率遙感影像語義分割[12]問題是語義分割的一個重要分支。梁華等人[13]利用深度學(xué)習(xí)技術(shù)對航空對地小目標(biāo)進(jìn)行檢測。對遙感影像精確的分割以及對建設(shè)數(shù)字型、智慧型城市有著重要意義。語義分割是將圖像中屬于相同類別的像素聚類為一個區(qū)域,對圖像更加細(xì)致地了解[14]。本文在語義分割[15]基礎(chǔ)上,探究語義分割模型在遙感影像分割上的應(yīng)用。針對分割過程中存在的圖像邊緣分割精細(xì)程度不佳的問題,本文提出了一種改進(jìn)UNET模型,通過加入具備整合多尺度信息的FPN結(jié)構(gòu),豐富每一個像素點(diǎn)在分類時所需要的信息。同時使用能夠更好捕捉目標(biāo)邊緣[16]的損失函數(shù),緩解上述模型在目標(biāo)邊緣分割不佳的問題。實驗證明,在加入上述兩種改動后,模型對目標(biāo)邊緣的分割精細(xì)程度有所提升,得到了更優(yōu)的分割效果。
UNET是通過反卷積與通道維度連接進(jìn)行整合;反卷積上采樣與通道連接的優(yōu)點(diǎn)在于可以得到更加平滑的結(jié)果,但是經(jīng)過conv + relu的非線性變換,通過該層傳遞的淺層信息傳遞到下一層的量將會減少。我們希望每一層都可以像ASPP那樣盡可能多的掌握不同尺度語義信息,很顯然,UNET的方式不能滿足對圖像中目標(biāo)邊緣附近區(qū)域精準(zhǔn)分割。所以本文主要從以下兩個方面著手進(jìn)行改進(jìn):
(1)通過在UNET中加入FPN結(jié)構(gòu),提升UNET整合多尺度語義信息的能力,豐富其像素點(diǎn)標(biāo)簽分類所使用的特征中包含的信息。
(2)對損失函數(shù)進(jìn)行改進(jìn),相比對每個點(diǎn)獨(dú)立進(jìn)行預(yù)測的多分類交叉熵,本文使用了能夠更好地捕捉目標(biāo)邊緣的邊界標(biāo)簽松弛損失函數(shù)。
為提升UNET模型的分割效果,本文對UNET模型的整體結(jié)構(gòu)進(jìn)行了改進(jìn),在UNET結(jié)構(gòu)中引入FPN結(jié)構(gòu),充分利用UNET編碼器中包含多尺度信息的優(yōu)勢。
FPN結(jié)構(gòu)又稱特征金字塔網(wǎng)絡(luò),這是一種廣泛應(yīng)用于目標(biāo)檢測任務(wù)中的結(jié)構(gòu),F(xiàn)PN結(jié)構(gòu)能有效整合來自編碼器部分的多尺度語義信息。FPN主要由自底向上流程、自頂向下流程和橫向連接3部分構(gòu)成,如圖1所示。
圖1 FPN網(wǎng)絡(luò)結(jié)構(gòu)Fig.1 Diagram of FPN network structure
自底向上流程即為卷積神經(jīng)網(wǎng)絡(luò)在前向計算時提取具備不同尺度特征的過程。自頂向下流程即對前述所提取每步卷積特征進(jìn)行上采樣處理,保證處理后的高層卷積特征維度與自底向上的低層特征維度相同。隨后將高級特征圖與橫向連接傳遞的低層特征圖對應(yīng)元素進(jìn)行相加,得到具備多尺度信息的融合特征。低層次特征由于經(jīng)歷的卷積次數(shù)相對于高層特征較少,因此具有較多的紋理信息,而高層次特征因為經(jīng)過多次卷積濾波,具有更高級的語義特征。經(jīng)過對高層的特征上采樣至同等尺寸,與低層次特征進(jìn)行相加,使用低層次特征包含的紋理和細(xì)節(jié)信息,進(jìn)一步對高層特征做補(bǔ)充,豐富了融合后的特征圖所包含的信息。
UNET使用的反卷積上采樣可得到相對平滑的結(jié)構(gòu)特征,但是經(jīng)過卷積加非線性激活層的變換后,使原始特征無法得到較好的保留,所以在UNET中通過跳層連接傳入來自淺層的特征對原始特征進(jìn)行彌補(bǔ)。圖像中每個像素點(diǎn)的準(zhǔn)確分類要依靠來自不同尺度的語義信息,而UNET的跳層連接傳遞的特征較為單一。因此本文引入了FPN結(jié)構(gòu)。此外FPN的上采樣方式為二次線性插值,相比反卷積操作,對原始特征保留更完整,加和方式特征整合保證了傳遞給解碼器的每一層都包含盡可能多的多尺度信息。對比FPN結(jié)構(gòu)與UNET結(jié)構(gòu),發(fā)現(xiàn)二者具有相似性,F(xiàn)PN結(jié)構(gòu)中的橫向連接可使用UNET中的橫向連接實現(xiàn)。這一特征為FPN結(jié)構(gòu)擴(kuò)展UNET模型提供了便利。充分利用UNET中結(jié)構(gòu)的同時,極大地利用UNET模型中包含的不同尺度信息。在加入FPN結(jié)構(gòu)后,UNET整體結(jié)構(gòu)如圖2所示。
圖2 加入FPN結(jié)構(gòu)后的UNET網(wǎng)絡(luò)結(jié)構(gòu)Fig.2 Diagram of UNET network structure after joining FPN structure
FPN是通過二次線性插值和對應(yīng)元素相加的方式進(jìn)行整合;而UNET則通過反卷積與通道維度連接進(jìn)行整合。由于二次線性插值是一個線性操作,對原始的淺層信息沒有更改,僅僅通過線性插值增加了特征圖的尺寸,對應(yīng)元素相加的方式保證了傳遞給每個解碼器層的特征都是原始淺層特征加和的方式,避免了因反卷積導(dǎo)致的信息丟失,但是二次線性插值的缺點(diǎn)在于會引入噪聲,無法獲得平滑的結(jié)果,因此我們選擇在保留UNET的基礎(chǔ)上加入FPN結(jié)構(gòu)。
深度學(xué)習(xí)技術(shù)的加入快速推動了語義分割的發(fā)展,圖像中目標(biāo)包含的大部分像素都能夠被準(zhǔn)確分類,但對于邊緣部分的分割效果依然有限,探索這一問題的本質(zhì)在于,深度學(xué)習(xí)技術(shù)的主要方法論是將認(rèn)為加工得到的目標(biāo)理解為在一種分布上采樣得到的結(jié)果,通過訓(xùn)練方式使模型去逼近這種分布,我們無法做到完全準(zhǔn)確的擬合,因此對于模型的預(yù)測就存在一些出入。此外對于目標(biāo)邊緣上實為兩目標(biāo)相交處,所以此處的像素點(diǎn)類別存在二義問題。針對這一問題,國內(nèi)外學(xué)者的解決方法主要通過更高質(zhì)量的標(biāo)注數(shù)據(jù)和更加復(fù)雜的模型去提升分割效果。本文將從損失函數(shù)入手,對UNET模型進(jìn)行改動,本文使用了能更好捕捉目標(biāo)邊緣的邊界標(biāo)簽松弛損失函數(shù)[15](Boundary Label Relaxation,BLR)來緩解這一問題帶來的影響。將邊界像素點(diǎn)定義為具有不同標(biāo)記鄰居的任何像素,如圖3所示。
圖3 邊界像素點(diǎn)Fig.3 Border pixels
圖3中紅色曲線代表邊緣,邊緣的兩側(cè)標(biāo)簽分別為A與B。為了產(chǎn)生更好邊緣的預(yù)測情況,可以選擇兩種策略,一種方式為直接對邊緣的形狀進(jìn)行建模,但是圖像中包含的邊緣形狀各異,統(tǒng)一對邊緣進(jìn)行建模比較復(fù)雜。為此本文選擇第二種方式,即對圖像邊緣兩側(cè)的區(qū)域進(jìn)行最大似然估計,上文提到了邊緣像素點(diǎn)定義為具有不同標(biāo)記鄰居的任何像素,因此只需要將邊緣兩側(cè)的區(qū)域進(jìn)行最大似然估計,便可找到邊緣區(qū)域。又因邊緣兩側(cè)的標(biāo)簽分布相互獨(dú)立,因此對兩側(cè)區(qū)域的概率描述可表示為:
P(A∪B)=P(A)+P(B)
(1)
對該項進(jìn)行負(fù)對數(shù)似然估計,則有:
-log[P(A∪B)]=-log[P(A)+P(B)]
(2)
考慮目標(biāo)邊緣具有多變性,為保證每一個目標(biāo)邊緣都能得到理想的語義分割效果,將圖片切割成3×3大小的圖像塊。此時每個圖像塊上只包含較小部分邊緣或者不包含邊緣,降低了對整張圖像使用梯度下降法求解時的難度。整張圖片是由大小相同的圖像塊構(gòu)成,因此對整張圖片的負(fù)對數(shù)似然估計為:
(3)
該函數(shù)即為上文提到的邊界標(biāo)簽松弛(BLR)損失函數(shù),其中M代表每張圖片中包含的圖像塊個數(shù),Ni代表每個圖像塊,c代表圖像塊中包含的像素點(diǎn)。相比傳統(tǒng)的交叉熵?fù)p失函數(shù),優(yōu)化降低BLR損失函數(shù)在保證準(zhǔn)確預(yù)測圖像中包含的每個點(diǎn)的類別標(biāo)簽的同時,提升模型對目標(biāo)邊緣的語義分割效果。在模型訓(xùn)練中只需要使用梯度下降法對上式進(jìn)行最小化,便可得到比較理想的效果。
本文選擇了CAMVID數(shù)據(jù)集和“CCF衛(wèi)星影像的AI分類與識別競賽”數(shù)據(jù)集。
(1)CAMVID數(shù)據(jù)集:該數(shù)據(jù)由劍橋大學(xué)收集整理和標(biāo)注。數(shù)據(jù)集由一組道路街景圖像構(gòu)成,其中包含367個訓(xùn)練圖像和233個測試圖像(白天和黃昏場景)組成,分辨率為360×480。挑戰(zhàn)在于劃分11類,如道路、建筑物、汽車、行人、標(biāo)志、電線桿、人行道等。
(2)“CCF衛(wèi)星影像的AI分類與識別競賽”數(shù)據(jù)集:訓(xùn)練集中包含5張尺寸為3 357×6 166的高清分辨率遙感圖片,部分影像如圖4所示。為了克服數(shù)據(jù)極其稀少的問題,選擇充分利用圖片具有的大尺寸高分辨率性質(zhì)對數(shù)據(jù)集進(jìn)行了擴(kuò)充。首先從5張圖像中隨機(jī)選取4張,使用過采樣策略在訓(xùn)練集上的每張圖片上隨機(jī)選點(diǎn),因為原始圖像的像素為3 357×6 166,其中橫向像素為3 357個,縱向像素為6 166個,所以一共可以取到約為18×106個像素點(diǎn)。將每個隨機(jī)選中的點(diǎn)作為圖像塊中的左上角,分別從左上角的像素點(diǎn)向右和向下延伸256個像素點(diǎn),這樣就得到一個以256個像素為長度切割出256×256的圖像塊,使用切割得到的圖像塊構(gòu)成訓(xùn)練集。將剩余的一張遙感圖像使用相同的采樣策略,并使用采樣得到的圖像塊作為驗證集。
圖4 CCF衛(wèi)星影像分類與識別比賽中的裁切得到的影像Fig.4 AI classification and CCF satellite influenced part of the images in the competition
本文對數(shù)據(jù)集使用了數(shù)據(jù)增強(qiáng)策略,采用高斯平滑、隨機(jī)添加噪聲點(diǎn)、顏色抖動、圖像旋轉(zhuǎn)與縮放等操作對訓(xùn)練集進(jìn)行擴(kuò)充,測試集與驗證集未做數(shù)據(jù)增強(qiáng)。
實驗在Ubuntu 16.0.4的環(huán)境下,使用Tesla v100GPU作為硬件環(huán)境。為了獲得更好的結(jié)果,使用了Xaiver方法對模型中包含的參數(shù)進(jìn)行初始化。在優(yōu)化算法上選擇了具備自適應(yīng)調(diào)節(jié)步長能力的Adam方法,其中學(xué)習(xí)率初始值設(shè)置為0.002批(batch size),大小設(shè)置為16,共迭代了6 000次。模型訓(xùn)練過程如圖5所示。
圖5 模型訓(xùn)練過程Fig.5 Model training process
此外,為了防止模型出現(xiàn)過擬合,本文在模型中使用了批歸一化(Batch Norm),并且在訓(xùn)練階段加入了系數(shù)為0.000 05的L2正則項,訓(xùn)練階段所使用的損失函數(shù)如下:
(4)
在模型推理(inference)階段,將測試集中的圖像調(diào)整為相應(yīng)尺寸,依次送入訓(xùn)練好的改進(jìn)UNET模型中,得到最終的預(yù)測結(jié)果。
本文方法在上述2個數(shù)據(jù)集上與FCN、SEGNET[17]、UNET、DeepLabV1[18]、DeepLabV2[19]以及目前較為先進(jìn)的DeepLabV3進(jìn)行了多組實驗以驗證其語義分割效果。使用了常用的像素精度(PA)和均交并比(MIOU)作為衡量標(biāo)準(zhǔn):
(1)PA是最簡單的度量,為標(biāo)記正確的像素占總像素的比例,數(shù)學(xué)表達(dá)如下:
(5)
(2)MIOU為語義分割的標(biāo)準(zhǔn)度量。均交并比計算模型預(yù)測得到的標(biāo)注圖與人工標(biāo)注圖的交集與并集之比。在每個類上計算IOU,之后取平均,其中Class Number為包含的類別。數(shù)學(xué)表達(dá)如下:
(6)
在CAMVID測試集上得到的分割結(jié)果如表1所示,不同模型耗時分析如表2所示。對比表1中的各數(shù)值,本文改進(jìn)的模型具備了與DeppLabV3相近的能力。在平均像素精度和平均交并比上都明顯超越以往的FCN模型、SEGNET模型、DeepLabV1、DeepLabV2。對比表2各數(shù)值,本文改進(jìn)后模型的消耗時間快于DeepLabV1、DeepLabV2和DeepLabV3。
表1 CAMVID結(jié)果對比(%)Tab.1 Comparison of CAMVID result(%)
表2 CAMVID不同模型耗時分析Tab.2 Time consuming analysis of different models of CAMVID
在CCF影像分類數(shù)據(jù)上的精度指標(biāo)如表3所示,不同模型消耗時間如圖4所示。對比表3的各個數(shù)據(jù)可以清晰地觀察到在UNET中加入FPN結(jié)構(gòu)后模型的平均像素精度和均交比都有提升,在引入BLR損失函數(shù)后模型的均交并比又一次得到了提升,得到了與DeepLabV3相接近的效果。對比表4的各個數(shù)據(jù)值,不同模型耗時同CAMVID測試集。
表3 CCF影像分類結(jié)果精確度(%)Tab.3 Classification result accuracy of CCF image(%)
表4 CCF影像不同模型耗時分析Tab.4 Time consuming analysis of different models of CCF image
在建立的兩個數(shù)據(jù)集上與其他先進(jìn)方法的時間對比如表2和表4所示。由表可知,DeeplabV1模型耗時最長,造成這一現(xiàn)象的主要原因為條件隨機(jī)場的參數(shù)量大,同時推理速度慢。相比其他方法如FCN,SEGNET,改進(jìn)的UNET+BLR速度稍遜一籌,原因在于改進(jìn)UNET+BLR參數(shù)量增加,相比DeepLabV3,本文方法具有更快的速度,同時具有相似的效果。
為了更加明顯地展示加入BLR損失函數(shù)帶來的交并比提升,本文將改進(jìn)的UNET和加入BLR后的改進(jìn)UNET分割結(jié)果進(jìn)行了可視化,如圖6~9所示。圖6(a)為原始圖片,(b)為改進(jìn)的UNET的預(yù)測結(jié)果,(c)為改進(jìn)UENT+BLR的預(yù)測結(jié)果,(d)為人工標(biāo)注的真實值。對比圖6(b)與圖6(c),注意到加入BLR損失函數(shù)后,UNET模型使得目標(biāo)邊緣的分割結(jié)果得到了大幅度提升,緩解了原始UNET中對目標(biāo)邊緣分割效果不佳的問題。同時整體分割結(jié)果相比于改進(jìn)的UNET結(jié)構(gòu),分割結(jié)果效果更佳。實驗證明,在增加FPN結(jié)構(gòu)和使用BLR損失函數(shù)的基礎(chǔ)上,相比于原始的UNET結(jié)構(gòu),本文方法不僅在均交并比和像素類別預(yù)測精度上有大幅度提升,同時使得目標(biāo)邊界的預(yù)測結(jié)果得到了明顯改善。
圖6 CCF影像分割結(jié)果Fig.6 Segmentation results of CCF image
圖7 CCF影像分割結(jié)果1Fig.7 CCF affect segmentation results 1
圖8 CCF影像分割結(jié)果2Fig.8 CCF affect segmentation results 2
圖9 CCF影像分割結(jié)果3Fig.9 CCF affect segmentation results 3
本文對UNET模型在目標(biāo)邊緣的語義分割精細(xì)度不夠理想方面做出改進(jìn),通過在UNET中加入FPN結(jié)構(gòu),提升UNET對多尺度語義信息的整合能力,同時引入能更好地捕捉目標(biāo)邊緣的邊界標(biāo)簽松弛損失函數(shù)BLR。在數(shù)據(jù)量較少的條件下,使用了將大尺度的遙感圖像分割為256×256的圖像塊,同時通過旋轉(zhuǎn)平移、添加高斯噪聲、高斯平滑、椒鹽噪聲等方式有效地擴(kuò)充了數(shù)據(jù)量。實驗結(jié)果表明,改進(jìn)的UNET模型在提升語義分割效果的同時,使得目標(biāo)邊緣的分割效果也得到了大幅度改善。未來將嘗試RESNET等更加優(yōu)秀的骨干網(wǎng)絡(luò),或在模型中加入空洞卷積,獲得性能及速度的進(jìn)一步提升。