杜炎播,黃 山
(四川大學 電氣工程學院,四川 成都 610065)
近年來,全卷積神經網絡的出現,極大地促進了遙感圖像語義分割的發展[1-4]。Keiller等提出了動態多上下文遙感圖像語義分割方法[5]。Li等提出了一個新的端到端語義分割網絡[6]。Peng等提出了一種結合密集連接和全卷積網絡思想的新結構[7]。Chen等提出了一種基于全卷積網絡的像素級分類模型,通過自適應閾值算法來調整每類Jaccard索引的閾值[8]。然而,這些更深更大的卷積神經網絡在提升分割精度的同時伴隨著參數量和計算量大幅提升,網絡模型在一定程度上減緩了推理速度。為了克服計算開銷和內存容量限制語義分割任務的效率,Paszke等提出一種有效的輕量化神經網絡ENet,采用舍棄下采樣最后階段減少參數來得到輕量級網絡,但此操作的缺點是感受野不足以覆蓋大的物體,導致上下文信息提取不好[9]。Wu等提出對輸入圖像進行降采樣以降低計算復雜度,然而這種操作會使空間信息丟失[10]。Zhao等提出圖像級聯網絡ICNet用于實時語義分割,充分利用低分辨率語義信息和高分辨率圖像的細節信息,以較低的計算成本完成語義分割[11]。可以發現,這些方法往往采用丟失信息的方法來加快推理速度,導致分割精度嚴重下降。
本文針對這一問題,提出一種基于分支合并策略的輕量級遙感圖像分割網絡,所設計的網絡能夠在降低模型參數量及計算量的同時準確地分割高分辨率遙感圖像。此外,還研究了網絡訓練過程中加權的多尺度交叉熵損失函數對分割精度的影響,通過消融實驗發現,該損失函數有利于提升對小目標的分割效果。本文方法在國際攝影測量和遙感學會所提供的Potsdam和Vaihingen數據集上進行實驗,先對遙感圖像進行裁剪以獲得訓練和測試圖像,然后訓練圖像經過數據增強輸入到所構建的網絡,通過反向傳播不斷調整參數進行網絡訓練來得到最優參數,最后依據評價指標對所構建的網絡及其它先進網絡進行對比分析。
模型中不同層次的特征都有助于圖像語義分割。高級語義特征可以更好地識別區域類別,而低級特征可以捕捉更清晰、更詳細的邊界紋理。為了同時獲取高級和低級特征,本文設計了一種基于分支合并策略的輕量級遙感圖像語義分割網絡,所包含的全局語境分支和空間信息分支分別用來提取圖像的上下文紋理信息和空間信息,網絡整體結構如圖1所示,圖中Conv指的是卷積、批標準化和PReLU激活操作。CAM即通道注意力模塊,其定義請參見文獻[12]。FFM即特征融合模塊,其定義請參見文獻[13]。本章將詳細介紹基于分支合并策略的輕量級語義分割網絡的結構組成。

圖1 網絡整體框架
在高分辨率遙感圖像中,需要足夠的上下文信息來充分提取圖像的特征。上下文信息對于分割具有很大的影響,局部信息加全局信息更有助于提高分割準確性。以往的研究表明,上下文信息的提取依賴于深層網絡結構,而大量的卷積層和池化層可以有效地擴大感受野。因此,需要一個可以獲取上下文信息的輕量級主干網絡來滿足這一要求。本文引入能夠學習局部特征和周圍環境上下文聯合特征的CGNet[14]的思想構建主干網絡來搭建全局語境分支。相比全卷積神經網絡FCN結構,所構建的網絡考慮了上下文信息。相比Encoder-Decoder類型的網絡結構,所構建的網絡包含了編碼上下文信息。全局語境分支網絡可以獲取包含像素級別和分割級別的上下文紋理信息。該網絡的CG模塊利用全局上下文來提高聯合特征,全局上下文用來逐通道地對特征圖的權重進行調整,以此來突出有用的部分,而壓制沒有用的部分。CGNet的網絡架構遵循了“深而淺”的原則,且CG模塊采用的是逐通道卷積的方式,能夠有效降低計算的成本。
CG模塊的結構如圖2所示,輸入圖像首先經過1×1卷積處理,然后分別經過3×3的標準卷積和3×3的膨脹卷積處理,分別得到局部特征和全局特征。特征融合后,經過BN+PReLU得到融合后的特征,再經過一個通道維度的全局特征處理后得到最終的結果。從圖中可以看出主要包含4個部分,分別是局部特征提取器、周圍上下文特征提取器、聯合特征提取器、全局特征提取器。局部特征提取器采用一個標準的3×3卷積層(Conv),周圍上下文特征提取器采用一個3×3的空洞卷積層(DConv),聯合特征提取器將局部特征和周圍上下文特征進行拼接,接著后面加上BN層和PReLU激活函數層,全局特征提取器是全局池化層后面跟兩個全連接層抽取特征,得到一個權重向量,以此向量來指導聯合特征的融合。CG模塊的設計能夠學習局部特征和周圍環境上下文的聯合特征。

圖2 CG模塊
在全局語境分支,網絡主要包含51層,相比空間分支的層數要深,感受野更大,主要為了獲得更好的上下文信息。該分支分3個階段。第一個階段是3個Conv-BN-PReLU操作,第二個階段包含3個CG模塊,CG模塊中的周圍上下文特征提取器采用空洞率為2的3×3空洞卷積層,第三個階段包含21個CG模塊,CG模塊中的周圍上下文特征提取器采用空洞率為4的3×3空洞卷積層。3個階段的通道數分別為32,64,128。另外,在全局語境分支增加了通道注意力機制,強化了有效信息的傳遞,該分支最終輸出圖像大小為64×64。
在高分辨率遙感圖像中,提取豐富的空間信息同樣也是實現高精度語義分割的關鍵。空間信息分支的目標是為了更好地提取空間信息,保持特征圖的分辨率。由于提取過程是獨立的,因此不必關心深度和感受野。本文采用簡單的三層卷積結構,避免破壞邊緣信息且降低計算量,直接從輸入圖像中提取空間信息,經過批標準化(batch normalization,BN)和PReLU激活函數從高分辨率特征圖中提取豐富的空間信息,輸出大小為輸入圖像的1/8。
通道注意力模塊CAM的結構如圖3所示,輸入特征首先經過全局平均池化處理,再經全連接層、ReLU、全連接層及Sigmoid層生成每個通道的權重。該模塊運用通道相關性來突出重要信息,從而提升語義信息。從結構圖可以看出其結構非常簡單,不必過多考慮網絡參數及計算量的影響。

圖3 通道注意力模塊

圖4 特征融合模塊
特征融合模塊FFM用來融合兩個分支。由于不同層次的語義信息相差較大,直接Concat融合得到的特征圖不利于網絡后續的學習,而通過特征融合模塊會使得網絡在學習特征的時候有所側重,讓地物分割結果更加精細。如圖4所示,首先將兩個分支的輸出特征圖拼接,然后經過1×1卷積層來壓縮通道數,接著連一個通道注意力模塊,最后使用殘差連接來實現特征復用。
文獻[15]闡述了先前的一些網絡在解碼后使用Softmax分類得到的分割精度較差。本文通過應用加權的多尺度交叉熵損失函數來增強小目標分割效果。相比傳統的輸出結構,本文網絡輸出融合了上下文信息和空間信息,并基于加權的多尺度交叉熵損失函數更新參數,使最終分割結果更加準確。
實驗是在 Windows 10 操作系統上使用 Python3.6和PyTorch深度學習框架來實現的,硬件配置為Nvidia GTX 1080Ti GPU(11GB RAM)。
1980年至2015年,在臺北舉辦的個人演唱會共計810場,數量總體呈上漲趨勢,雖然部分年份有些微滑落(表4)。此外,由表 5可知,在臺北歷年的流行音樂個人演唱會中,臺 灣本土歌手一直占最大比重。
為了全面的評估遙感圖像語義分割網絡性能,本文采用了4個不同的語義分割評價標準,分別是精確率Precision、召回率Recall、F1和總體準確率OA,公式如式(1)所示

(1)
其中,TP指被模型預測為正的正樣本,TN指被模型預測為負的負樣本,FP指被模型預測為正的負樣本,FN指被模型預測為負的正樣本。


圖5 Vaihingen數據集不同類別占比
Potsdam數據集是德國歷史名城Potsdam的場景。它由38幅分辨率為6000×6000像素的圖像組成,其中24幅圖像用于訓練,14幅圖像用于測試。每幅圖像包含紅、綠、藍、近紅外(IR)四通道數據,以及相應的數字表面模型(digital surface model,DSM)。
Vaihingen數據集是德國一個相對較小的村莊Vaihingen的場景。它由33幅分辨率約為2500×2500像素的圖像組成,其中16幅圖像用于訓練,17幅圖像用于測試。每幅圖像包含紅、綠、近紅外(IR)三通道數據,以及相應的數字表面模型。
原始數據集為高分辨率遙感圖像,圖像尺寸過大。現有的實驗配置條件有限,無法使原始圖像直接作為網絡的輸入,本文設定的網絡輸入為512像素×512像素,因此先對數據進行預處理,將所有遙感圖像及標注圖切片為512像素×512像素大小,除了最后一行和最后一列圖片小塊之間有重疊外,其它小塊之間無重疊。裁剪后的圖像可以參照網絡整體框架圖中的輸入圖像,圖中的標注圖為變換后的RGB圖像。
本實驗中的優化器采用了Adam優化器,批處理大小batch size為6,對于學習率,實驗使用poly策略,初始學習率lrinit為0.01,學習率變化如式(2)所示
(2)
式中:Tcur為當前迭代次數,Tmax為總迭代次數,總迭代次數為100 000次。設置動量power為0.9。
網絡訓練過程中,不僅需要設定超參數,還需要設計損失函數。損失函數在訓練過程中直接決定著最終的訓練效果。本文使用加權的多尺度交叉熵損失函數來增強小目標分割效果,雙分支網絡融合后的損失函數用來指導整個網絡訓練,而全局語境分支后面的損失函數可以進一步增強該分支中參數的優化,從而增強小目標分割效果。本文將這兩個損失的權重設置為λ1和λ2, 表達式如式(3)所示
(3)

為了驗證本文所提出方法的有效性,在相同條件下與典型的模型U-Net[16]、DeepLab-v3+[17]以及前面所提到的輕量化網絡ENet、ICNet進行對比。U-Net是先編碼后解碼的U型網絡結構,區別于語義分割的開創性網絡全卷積神經網絡逐點相加的融合方式,將特征在通道維度拼接在一起。DeepLab-v3+是目前精度最高的通用分割網絡,采用空洞空間金字塔池化以及編碼解碼器搭建的深度網絡。ENet是基于語義分割網絡SegNet改進的輕量化網絡,給低功耗移動設備上的實時語義分割提供了實際操作的可能性。ICNet是基于語義分割網絡PSPNet改進的實時語義分割網絡,利用低分辨率快速獲取語義信息、高分辨率獲取細節信息,將兩者融合得到一個折中的模型。表1和表2分別顯示了本文方法與上述提到的網絡在Potsdam和Vaihingen數據集上的對比。可以看出,本文模型在兩個數據集上的精度優于輕量化網絡ENet、ICNet及編解碼結構的U-Net,相比于最先進的DeepLab-v3+精度差距也較小。
為了直觀比較不同網絡的分割結果,分別從兩個數據集中選取典型預測圖作對比,預測結果如圖6和圖7所示。對于Potsdam數據集,ENet、ICNet及U-Net 3種方法對雜類區域預測不佳,而本文方法和DeepLab-v3+方法基本能準確分割雜類區域,說明本文方法使用通道注意力模塊和加權的多尺度交叉熵損失函數,能夠強化類別特征,解決類別不均衡問題。對于Vaihingen數據集,ENet、ICNet及U-Net 3種方法容易將地面和其它類別區域混淆,而本文方法和DeepLab-v3+方法基本能準確分割不同區域,說明本文方法通過雙分支結構添加空間信息,保持特征圖的分辨率,更好地保留細節信息。

表1 不同網絡在Potsdam數據集上的結果對比

表2 不同網絡在Vaihingen數據集上的結果對比

圖6 不同網絡在Potsdam數據集上的分割效果
研究表明,當神經網絡層數加深時,可以更好地提取語義信息。但網絡加深的同時,模型的計算復雜度和參數量也在不斷加大,會消耗更多的資源。為了比較各模型的參數指標,在GTX 1080Ti GPU平臺配置下,通過PyTorch-Opcounter模塊獲得各個模型的計算復雜度及參數量,并選取Potsdam測試數據集中的單張512像素×512像素的圖片測試預測時間。表3顯示了不同模型的參數指標,分別為計算復雜度、參數量及Potsdam單張測試圖的預測時間。結合圖表可以發現,本文模型在兩個數據集上的精度和速度均優于U-Net和ICNet。相比于ENet,本文模型在單張預測速度降低15 ms的情況下精度提升了10個百分點左右。相比DeepLab-v3+,本文模型在降低少量精度下網絡參數和計算復雜度分別為DeepLab-v3+的十五分之一和七分之一。

表3 不同模型的參數指標對比
總體而言,DeepLab-v3+在精度上具有優勢,但計算復雜度、參數量比較大,預測速度相對較慢。ENet速度快但精度并不理想。本文的目標是在達到實時速度的同時保證一定的精度。對比分析來看,所提出的基于分支合并策略的輕量級分割網絡具有相對較低的計算復雜度和參數量,且能達到較高的精度,更具有實際應用價值。
此外,本文加入了消融實驗來探究加權的多尺度交叉熵損失函數對網絡分割結果的影響。由于本文雙分支結構的復雜性,傳統的網絡末端的單尺度損函數不足以優化所有層,尤其是全局語境分支中的層。因此,為了更好地指導訓練過程,本文設置了多尺度損失函數,并通過設置帶權重的交叉熵損失函數解決數據集中類不平衡的問題。為了驗證加權的多尺度損失函數Lwm的有效性,分別與單尺度損失函數Ls、多尺度損失函數Lm、交叉熵損失函數Le和加權的交叉熵損失函數Lw在兩個數據集上進行對比實驗。如表4和表5所示,使用加權的多尺度交叉熵損失函數訓練的模型在測試時達到了最佳的分割精度。

表4 消融實驗在Potsdam數據集上的結果對比

表5 消融實驗在Vaihingen數據集上的結果對比
高精度的語義分割效果依賴于日益深入的網絡,增加了計算開銷和參數,不利于在移動設備上部署。本文為了在達到實時分割速度的同時獲得較高的精度,提出了基于分支合并策略的輕量級語義分割網絡,分別在Potsdam和Vaihingen數據集上測試,結果表明,本文方法在具有相對較低的計算復雜度和參數量的同時能達到較高的分割精度。此外,通過消融實驗分析,發現加權的多尺度交叉熵損失函數可以進一步增強參數的優化,從而達到改善小目標分割效果的目的。本文所提出的方法綜合考慮了速度和精度,在兩者之間做了最優權衡。與主流的方法的比較結果表明,本文方法在輕量化條件下具有較好的性能。