李紅
(東北大學理學院 遼寧省沈陽市 110819)
圖像語義分割是AI 領域中一個重要的分支[1],是機器視覺技術中關于圖像理解的重要一環。語義分割是根據一些特征把圖像劃分成若干個互不相交的區域,使得這些特征在同一區域內表現出明顯不同。由于深度卷積神經網絡(DCNN)[2]的迅速發展,基于深度卷積網絡的圖像語義分割技術因其不僅可以實現端對端的訓練,而且能獲得更準確的結果的優點,引起了各界學者們的廣泛關注。
從全卷積神經網絡(FCN,Fully Convolutional Networks)的出現開始,圖像語義分割任務的主要方法也逐漸變成了卷積神經網絡。PSPNet 通過聚合多種尺度特征從而獲取更多感受視野信息,并在網絡中添加了附加損失,提升了算法對場景解析和語義分割的能力。Deeplab v2 算法則是使用空洞金字塔池化網絡結構避免下采樣并且取得多感受視野信息。SegNet 模型則是使用最大池化定位從而快速并準確的位置信息。而Dilated -Convolutions 可以不通過池化層也能達到增大感受野的效果。RefineNet 則改進編碼解碼結構,通過上采樣方式融合底層和高層語義特征。殘差注意力網絡(ResNet)通過堆疊殘差注意力模塊來使網絡能夠更深,其通過修飾特征圖可以更好地優化和學習,不僅對噪音具有很高的魯棒性,而且具有很高的準確率。
雙重注意力機制(DualAttention)對ResNet 進行了改進,將最后的下采樣取消,采用空洞卷積來達到即擴大感受野又保持較高空間分辨率的目的,然后進行兩個并行的位置注意力機制和通道注意力機制操作,最終將兩個模塊的結果進行element-wise 操作。為了解決緣分割不均勻遠距離像素類別之間的關系不能得到充分利用的問題,本文在原有的雙注意力機制模型中引入了邊緣增強模塊,解決網絡在相近的類別分割不準確和邊緣區域無法提取弱特征的問題。在原有的損失函數上進行改進,采用了一個新的損失函數,能很好的調節類別不平衡問題,對于相近的類別和小的物體有更好的區分度,提高訓練的準確度。
首先將圖像輸入到改進的ResNet 中,生成的特征映射的大小為原圖的1/8,然后將結果分別輸入到兩個注意力模塊中去,然后將兩個模塊的處理結果進行整合。該模型較之前提出的一些機制相比提升效果比較明顯,但是仍存在以下兩點局限:一是邊緣特征處理的比較粗糙;二是采用了簡單的損失函數,忽略了小物體對整體分割的影響。

表1:不同模型在Cityscapes 上的分割效果
圖像邊緣特征是圖像最基本的特征之一,往往攜帶著一幅圖像的大部分信息,一幅圖像的邊緣結構與特點往往是決定圖像特質的重要部分。由此我們引進了一個包含3 個卷積層的邊緣增強模塊,它由16→32→2 通道和ReLU 激活組成(除了最后一層,它有SoftMax 激活)。增加模塊之后的整體框架如圖1 所示,該模塊可以加強邊緣特征的提取,更有利于接下來的分割工作。

圖1:改進后的整體框架
交叉熵損失函數逐像素對比了模型預測向量與one-hot 編碼后的groundtruth,多分類分割的交叉熵損失函數公式如下:

由此可以出來,預測分布越接近真實分布,反之亦然。交叉熵損失函數易于理解,但忽略了同類樣本(像素)在樣本空間的數量比例。隨著樣本數量的增加,新數據點的帶來的好處會減少。新添加的樣本極有可能是現有樣本的近似副本,所以我們對交叉熵損失函數Lce乘以一個樣本系數來調節。

其中ny表示在真實類y 中的樣本數量。另外,從數學形態學[2]操作得到啟發,為了解決邊緣粗糙的問題,我們試著在公式(2)中增加距離加權項,即在邊緣不同的像素點在損失函數中獲得很大的權重,即得到如下公式:

本文中ω0=10,σ=5,β 是超參數,n 為有效樣本數量,d1表示某個像素點到最近區域邊界的距離,d2表示某個像素點到第二近的區域邊界的距離。
本文的編程語言采用Python 3.6,PyTorch 作為深度學習框架。操作系統為Ubuntu16.2,cuda 版本是10.2,采用了poly 學習率策略,Cityscapes 數據集的基本學習率設置為0.01,動量和重量衰減系數分別為0.9 和0.0001。我們用同步BN 來訓練我們的模型。使用隨機梯度下降法SGD[3]優化損失函數。訓練中,每次輸模型的batch size 設置為16,epoch 設置為240。
cityscapes 數據集擁有從50 個不同城市捕獲的5000 幅圖像。每幅圖像像素為2048×1024,具有19 個語義類的高質量像素級標簽。訓練集中有2975 幅圖像,驗證集中有500 幅圖像,測試集中有1525 幅圖像,是圖像語義分割任務中的重要數據庫,我們在實驗中不使用粗糙的數據。
衡量算法優劣的指標并不唯一,本文僅采用平均交并比(MIoU)作為算法性能的指標。平均交并比(MIoU)就是真實值和預測值的交集與并集的比值在每個類上求平均值。
β 的選取:上式中β 為一超參數,選取適合的β 值可以重新加權之間的類平衡項。本文驗證集為500 張圖片,而N 代表有效樣本數量,即N=500,根據可得β=0.998,而損失函數(3)中是由兩項組成的。為了消除BaseNet 對網絡的影響,如表1,本文選取的同BaseNet-Resnet101[4]在同一cityscapes 數據集上進行訓練。
全局卷積濾波器進行上下文信息聚合,簡寫為“+GCN”;金字塔池化法(Pyramid pooling)是捕獲全局上下文信息的簡單而有效的方法,簡寫“+PSP”;使用不同的擴張卷積[5]來獲取不同范圍的像素上下文信息,為“+ASPP”;對于本文改進后的模型訓練的MIoU 比原來分別提高了約2.96%。這代表了改進后的損失函數與邊緣模塊的有效性。
如表1 所示,本模型由于考慮了分割圖像中的類別之間的不平衡關系,添加了邊緣增強模塊這一部分,引進損失函數距離調節項,對于邊緣和小物體的分割,取得的效果比較好。改進后的雙重注意力分的圖像語義分割模型頗為有效,這是由邊緣特征和相似類間距離這兩個因素對于圖像分割的重要決定的,因此能夠更好地理解圖像中的內容。
本文算法在雙注意力機制模型的基礎上充分利用了邊緣細節特征加強和調節類間類內距離,對原DANet 模型進行了改進,并在公開場景數據集cityscapes 上進行了實驗。實驗結果表明,和之前未改進的模型相比,改進后的模型分割精度提高,因此可以廣泛用于自動駕駛、場景分析、醫療影像、圖像搜索等領域。