商建東 劉艷青 高 需
1(鄭州大學(河南省)超級計算中心 河南 鄭州 450052) 2(鄭州大學信息工程學院 河南 鄭州 450000)
圖像語義分割是圖像分割和圖像語義識別相結合的圖像處理方法,在圖像分割的基礎上結合目標識別技術,不僅可以做到對目標的提取,還可以判斷目標的種類,對于后續的圖像理解、場景分析、目標追蹤有著至關重要的作用。圖像語義分割在多個領域有著廣泛的應用,如智能家居、智慧醫療、自動駕駛等。其中,在自動駕駛領域中,基于道路場景的語義分割為其提供了重要的技術支撐,通過對車體前方場景的語義分割可以精確定位建筑物、道路、車輛和行人等信息,從而提升自動駕駛的安全性[1]。
在深度學習出現之前,傳統的語義分割算法利用手工標注特征,實施過程比較繁瑣、效率低、準確度不高,并且很多方法具有局限性,同一種算法很難同時適用于多個研究任務。近年來,卷積神經網絡得到了研究人員的廣泛關注,并且提出了AlexNet[2]、GoogLeNet[3]、ResNet[4]、VGG[5]等先進模型,此類模型能夠從大量的樣本中自動學習有用特征,具有較高的準確率。但是,在高級的自動駕駛任務中,卷積神經網絡也難以滿足復雜交通場景的需求,對于一些障礙物難以準確地識別出來。近些年,對于道路場景的語義分割任務,卷積神經網絡的結構也在不斷的優化,其中FCN[6]首次實現了端到端的語義分割,展現出了卷積神經網絡在語義分割任務中強大的泛化能力。為了改善分割效果,提高精度,在FCN的基礎上開展了一系列相關的研究。SegNet[7]的池化層能夠記錄最大值的空間位置,引導解碼器中的反卷積進行上采樣操作,從而大大提高了分割的精度。DeepLabv1[8]在FCN的基礎上,加入了全連接條件隨機場(CRF)[9]用于優化邊界。DeepLabv2[10]引入了并行的多個空洞卷積層(Atrous Spatial Pyramid Pooling,ASPP),使精度有了很大的提高。DeepLabv3[11]繼續對ASPP結構進行優化,進一步提取表征力強的特征。為了提取更加多樣化的特征,很多論文中采用了并行化的網絡結構,PSPNet[12]構造了金字塔池化模塊,充分利用全局上下文信息,有效地提高了語義分割的質量。ICNet[13]提出了一種綜合性的方法,使用低分辨率特征捕捉語義,使用高分辨率特征獲取細節,因此獲得了良好的分割效果。在多尺度特征融合方面,RefineNet[14]將深層特征與淺層特征相結合,最后輸出包含所有層的信息,所以獲得了很高的精度。
道路場景中環境復雜,物體的尺度差異較大,FCN在提取特征的同時削弱了類別的可區分性,特征的表達能力不足,導致分割效果較差,甚至出現分割錯誤的現象。另外,直接上采樣8倍,使得分割輪廓不清晰。針對這些問題,本文提出一種新的多尺度特征提取網絡MFNet,在FCN的基礎上,從以下三個方面進行改進:1) 利用多尺度的圖片作為輸入,采用并行的特征提取模塊,然后對提取到的不同尺度下的特征進行融合,增加特征的多樣性,增強特征的表達能力,從而改善分割效果。2) 利用分層的反卷積網絡對特征圖進行上采樣,恢復細節信息,細化分割的邊緣部分。3) 網絡層數的增加必然會致使訓練的難度增加,為了更加充分地訓練網絡,本文采用分級訓練的方式,并且優化了loss函數。
本文提出一種多尺度特征提取語義分割算法MFNet,對于給定的道路場景進行語義分割,獲取道路場景中的各類物體(如建筑物、行人、天空等)的位置和類型。算法的整體框架如圖1所示,MFNet由一個多尺度特征提取的編碼器和一個基于反卷積的解碼器構成。編碼器使用池化層逐步縮減特征圖的大小,解碼器通過逐層的反卷積逐步地放大特征圖的尺寸,直至與輸入圖像的大小一致。編碼器中,采用并行的特征提取模塊,使用VGG進行特征提取,將圖像縮放為n個不同的尺度,作為網絡的輸入,其中,Scale-n(n=1,2,…,N)代表N個不同的尺度的輸入圖像,不同尺度的圖像經過網絡都會產生一個特征圖,通過多尺度融合(fusion模塊)層生成輸出特征。圖1中的Decoder表示解碼器,對特征進行解碼,生成分割結果,其利用逐層反卷積的方式,每次將特征圖上采樣至原來的2倍,直至原圖像的像素空間,使得網絡能夠更好地恢復分割結果的細節,網絡最終通過Softmax層輸出逐像素的分類結果。

圖1 算法框圖

本文編碼器中除了使用并行的VGG網絡作為特征提取部分還使用到了如圖2所示的特征融合模塊,其中不同尺度的輸入圖片經過VGG之后輸出的特征圖大小是不一樣的,分別為Input-1,Input-2,…,Input-N,為了方便融合,需要將不同尺度的特征圖統一上采樣到相同的大小,Rescale的作用就是調整特征圖的大小,便于后續的融合。與FCN中相加融合的方式不同,本文中的方法使用了通道維度上拼接融合,融合過程中信息不會損失,拼接融合后的輸出(Output)送入解碼器中進行后續的操作。

圖2 特征融合模塊
利用深度卷積神經網絡對圖像中的每個像素進行分類預測時,需要讓輸出的預測圖像與輸入圖像在分辨率上保持一致,所以需要對特征圖進行上采樣。直接采用雙線性插值的方式把特征圖上采樣8倍,會導致區域語義模糊,對細節不敏感,容易丟失目標。反卷積雖然不能還原特征圖,但具有相似的效果,能夠有效地將小部分丟失的信息最大化的恢復。卷積、反卷積的過程如圖3所示。因此,本文使用反卷積取代雙線性插值來重新構建上采樣層,每一個上采樣層向上采樣圖像至原來的2倍,在每個上采樣層之后,對應的卷積塊被鏡像成VGG卷積層。

圖3 卷積、反卷積的過程
本文方法為了獲得更加細化的語義特征,在上采樣的過程中增加了更多的卷積層恢復特征圖的分辨率,隨著網絡的層數增加,需要訓練的參數也越來越多,使得網絡的訓練變得更加困難。為了更加充分地訓練網絡,本文采用了分級訓練的方式,優化loss函數,在訓練階段,使用不同分辨率的標簽,分級地計算損失函數,進行監督學習。
本文選用二元交叉熵損失作為整個分割網絡總的損失函數,計算方法如下:
(1)

實驗中,把上采樣部分分為三級進行訓練,訓練的過程如圖4所示,其中Deconv×2表示使用反卷積將特征圖上采樣至原來的2倍。首先第一級為上采樣至原圖大小1/16的位置,輸出一個預輸出層,把標簽縮小為原來的1/16,作為監督學習標簽,計算loss函數用于引導訓練,經過多次的迭代訓練,loss值收斂,逐漸縮小趨于穩定狀態;然后接入第二部分的網絡,第二級的監督標簽的大小為原標簽的1/4,輸出第二個預輸出層,再次進行訓練,學習率設置相對上一級較小,進行更加精細的訓練;最后接上第三級的網絡進行訓練,進行整體的訓練。每一層的loss函數計算方式如下:
(2)
式中:n取1、2、3,分三級進行訓練。

圖4 分級訓練
實驗采用目前主流的深度學習框架TensorFlow1.4作為開發環境,硬件配置為:GPGPU:Nvidia Tesla P100,內存:192 GB,顯存:32 GB。軟件環境:CUDA9.1,DUDNN8.0,Python3.5。
為了評估本文方法的有效性,分別在Camvid和Cityscapes兩個道路場景數據集上對MFNet進行了評估。關于實驗中用到數據集的具體細節如表1所示。

表1 數據集比較
為了防止訓練過程中過擬合現象的發生,實驗中采用隨機旋轉、隨機裁剪、對比度增強、增加噪聲等多種手段對數據集進行擴充,增加數據的多樣性。訓練過程中,超參數的設置如表2所示。

表2 訓練過程中設置的超參數
本文所采用的評價指標為Miou(平均交并比),Miou是語義分割領域比較高權威的評價指標值之一,它用來衡量分割的精度。Miou的計算方法如下:
(3)
式中:i表示標簽類別;j表示預測類別;pij表示將i類預測為j類。以Miou為評價標準,驗證算法的整體性能。
本實驗為了探究多尺度輸入對分割精度的影響,選擇不同的尺寸輸入比,在Camvid和Cityscapes數據集上進行學習和測試。用S表示輸入圖片尺寸的比值,實驗結果如表3所示,其中:S=1表示原始圖像;S=0.5表示圖像縮小為原圖像的1/2倍;S=0.25表示圖像縮小為原來的1/4;S=0.125表示圖像縮小為原圖像的1/8。由于Camvid數據集中的原始圖片分辨率較小,激進的下采樣會出現相反的效果,因此最小將其下采樣為原來的1/4。

表3 多尺度輸入下的平均交并比結果對比(%)

續表3
可以看出,在Camvid數據集中,輸入從原來的一個分支,逐漸增加為3個,分割的準確度也從原來的62.1%增加到67.1%,很好地證明了多尺度的特征模塊的有效性,多尺度的輸入可以增加特征的表達能力,從而改善分割的效果。同樣,在Cityscapes數據集上進行驗證,由于Cityscapes數據集中圖片的原始尺寸較大,所以最小將其縮小為原來的1/8。增加多個并行的分支,精確度也在逐漸的提高,最終達到了72.3%的準確度,達到了語義分割領域較高的水平,證明了本文方法的有效性。
為了驗證本文方法的可行性,將MFNet與一些優秀語義分割算法分別進行了對比,分析算法的性能表現,實驗結果如表4所示。FCN、SegNet、PSPNet、Deeplabv3都是當前主流的語義分割算法。

表4 與先進語義分割方法的平均交并比對比(%)
與一些先進語義分割方法的對比,在Camvid數據集中,本文算法獲得了67.1%的Miou,在與SegNet和FCN的對比中,本文方法在精確度上明顯優于其他兩種,充分地證明了本文方法對像素的分類更加準確,模型的分割性能得到了提升。與一些精度較高的算法如Deeplabv3和PSPNet相比,本文方法還是略有不足,但是PSPNet和Deeplabv3的網絡較深,層數比較多,結構設計復雜,而本文方法網絡結構相對來說比較簡單。在Citycapes數據集上進行測試,本文方法同樣取得了不錯的效果,由于Cityscapes中訓練集的圖片較多,且分辨率大,所以分割效果相對較好。
為了更加直觀地證明本文方法的有效性,從Camvid驗證集中選取了2幅圖片,對預測的結果進行了比較,可視化的結果如圖5所示。

(a) (b)圖5 可視化結果
從可視化的結果來看,道路場景中環境復雜,識別難度較大,對于行人、指示牌等目標物體,FCN無法準確地分割出來,分割效果較差,甚至還會出現錯誤分割的現象,改進后的算法明顯改善了分割效果,圖5(a)中騎行者的輪廓變得更加清晰,圖5(b)中的建筑物部分識別更加準確,充分地證明了本文方法的有效性。
針對道路場景語義分割任務,本文提出一種多尺度特征提取網絡(MFNet),設計了并行的特征提取模塊,通過逐層反卷積恢復細節,并且優化了loss函數,采用分級訓練的方式訓練模型。實驗結果表明,MFNet能夠有效地提升分割的準確度,提高分割的質量,細化分割邊緣。但是,MFNet對于路燈、指示牌等一些小的物體還是存在難以識別的情況,未來工作將主要研究如何提升小目標物體的識別精度。