商建東 劉艷青 高 需
1(鄭州大學(xué)(河南省)超級計算中心 河南 鄭州 450052) 2(鄭州大學(xué)信息工程學(xué)院 河南 鄭州 450000)
圖像語義分割是圖像分割和圖像語義識別相結(jié)合的圖像處理方法,在圖像分割的基礎(chǔ)上結(jié)合目標(biāo)識別技術(shù),不僅可以做到對目標(biāo)的提取,還可以判斷目標(biāo)的種類,對于后續(xù)的圖像理解、場景分析、目標(biāo)追蹤有著至關(guān)重要的作用。圖像語義分割在多個領(lǐng)域有著廣泛的應(yīng)用,如智能家居、智慧醫(yī)療、自動駕駛等。其中,在自動駕駛領(lǐng)域中,基于道路場景的語義分割為其提供了重要的技術(shù)支撐,通過對車體前方場景的語義分割可以精確定位建筑物、道路、車輛和行人等信息,從而提升自動駕駛的安全性[1]。
在深度學(xué)習(xí)出現(xiàn)之前,傳統(tǒng)的語義分割算法利用手工標(biāo)注特征,實施過程比較繁瑣、效率低、準(zhǔn)確度不高,并且很多方法具有局限性,同一種算法很難同時適用于多個研究任務(wù)。近年來,卷積神經(jīng)網(wǎng)絡(luò)得到了研究人員的廣泛關(guān)注,并且提出了AlexNet[2]、GoogLeNet[3]、ResNet[4]、VGG[5]等先進(jìn)模型,此類模型能夠從大量的樣本中自動學(xué)習(xí)有用特征,具有較高的準(zhǔn)確率。但是,在高級的自動駕駛?cè)蝿?wù)中,卷積神經(jīng)網(wǎng)絡(luò)也難以滿足復(fù)雜交通場景的需求,對于一些障礙物難以準(zhǔn)確地識別出來。近些年,對于道路場景的語義分割任務(wù),卷積神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)也在不斷的優(yōu)化,其中FCN[6]首次實現(xiàn)了端到端的語義分割,展現(xiàn)出了卷積神經(jīng)網(wǎng)絡(luò)在語義分割任務(wù)中強大的泛化能力。為了改善分割效果,提高精度,在FCN的基礎(chǔ)上開展了一系列相關(guān)的研究。SegNet[7]的池化層能夠記錄最大值的空間位置,引導(dǎo)解碼器中的反卷積進(jìn)行上采樣操作,從而大大提高了分割的精度。DeepLabv1[8]在FCN的基礎(chǔ)上,加入了全連接條件隨機場(CRF)[9]用于優(yōu)化邊界。DeepLabv2[10]引入了并行的多個空洞卷積層(Atrous Spatial Pyramid Pooling,ASPP),使精度有了很大的提高。DeepLabv3[11]繼續(xù)對ASPP結(jié)構(gòu)進(jìn)行優(yōu)化,進(jìn)一步提取表征力強的特征。為了提取更加多樣化的特征,很多論文中采用了并行化的網(wǎng)絡(luò)結(jié)構(gòu),PSPNet[12]構(gòu)造了金字塔池化模塊,充分利用全局上下文信息,有效地提高了語義分割的質(zhì)量。ICNet[13]提出了一種綜合性的方法,使用低分辨率特征捕捉語義,使用高分辨率特征獲取細(xì)節(jié),因此獲得了良好的分割效果。在多尺度特征融合方面,RefineNet[14]將深層特征與淺層特征相結(jié)合,最后輸出包含所有層的信息,所以獲得了很高的精度。
道路場景中環(huán)境復(fù)雜,物體的尺度差異較大,F(xiàn)CN在提取特征的同時削弱了類別的可區(qū)分性,特征的表達(dá)能力不足,導(dǎo)致分割效果較差,甚至出現(xiàn)分割錯誤的現(xiàn)象。另外,直接上采樣8倍,使得分割輪廓不清晰。針對這些問題,本文提出一種新的多尺度特征提取網(wǎng)絡(luò)MFNet,在FCN的基礎(chǔ)上,從以下三個方面進(jìn)行改進(jìn):1) 利用多尺度的圖片作為輸入,采用并行的特征提取模塊,然后對提取到的不同尺度下的特征進(jìn)行融合,增加特征的多樣性,增強特征的表達(dá)能力,從而改善分割效果。2) 利用分層的反卷積網(wǎng)絡(luò)對特征圖進(jìn)行上采樣,恢復(fù)細(xì)節(jié)信息,細(xì)化分割的邊緣部分。3) 網(wǎng)絡(luò)層數(shù)的增加必然會致使訓(xùn)練的難度增加,為了更加充分地訓(xùn)練網(wǎng)絡(luò),本文采用分級訓(xùn)練的方式,并且優(yōu)化了loss函數(shù)。
本文提出一種多尺度特征提取語義分割算法MFNet,對于給定的道路場景進(jìn)行語義分割,獲取道路場景中的各類物體(如建筑物、行人、天空等)的位置和類型。算法的整體框架如圖1所示,MFNet由一個多尺度特征提取的編碼器和一個基于反卷積的解碼器構(gòu)成。編碼器使用池化層逐步縮減特征圖的大小,解碼器通過逐層的反卷積逐步地放大特征圖的尺寸,直至與輸入圖像的大小一致。編碼器中,采用并行的特征提取模塊,使用VGG進(jìn)行特征提取,將圖像縮放為n個不同的尺度,作為網(wǎng)絡(luò)的輸入,其中,Scale-n(n=1,2,…,N)代表N個不同的尺度的輸入圖像,不同尺度的圖像經(jīng)過網(wǎng)絡(luò)都會產(chǎn)生一個特征圖,通過多尺度融合(fusion模塊)層生成輸出特征。圖1中的Decoder表示解碼器,對特征進(jìn)行解碼,生成分割結(jié)果,其利用逐層反卷積的方式,每次將特征圖上采樣至原來的2倍,直至原圖像的像素空間,使得網(wǎng)絡(luò)能夠更好地恢復(fù)分割結(jié)果的細(xì)節(jié),網(wǎng)絡(luò)最終通過Softmax層輸出逐像素的分類結(jié)果。
圖1 算法框圖
本文編碼器中除了使用并行的VGG網(wǎng)絡(luò)作為特征提取部分還使用到了如圖2所示的特征融合模塊,其中不同尺度的輸入圖片經(jīng)過VGG之后輸出的特征圖大小是不一樣的,分別為Input-1,Input-2,…,Input-N,為了方便融合,需要將不同尺度的特征圖統(tǒng)一上采樣到相同的大小,Rescale的作用就是調(diào)整特征圖的大小,便于后續(xù)的融合。與FCN中相加融合的方式不同,本文中的方法使用了通道維度上拼接融合,融合過程中信息不會損失,拼接融合后的輸出(Output)送入解碼器中進(jìn)行后續(xù)的操作。
圖2 特征融合模塊
利用深度卷積神經(jīng)網(wǎng)絡(luò)對圖像中的每個像素進(jìn)行分類預(yù)測時,需要讓輸出的預(yù)測圖像與輸入圖像在分辨率上保持一致,所以需要對特征圖進(jìn)行上采樣。直接采用雙線性插值的方式把特征圖上采樣8倍,會導(dǎo)致區(qū)域語義模糊,對細(xì)節(jié)不敏感,容易丟失目標(biāo)。反卷積雖然不能還原特征圖,但具有相似的效果,能夠有效地將小部分丟失的信息最大化的恢復(fù)。卷積、反卷積的過程如圖3所示。因此,本文使用反卷積取代雙線性插值來重新構(gòu)建上采樣層,每一個上采樣層向上采樣圖像至原來的2倍,在每個上采樣層之后,對應(yīng)的卷積塊被鏡像成VGG卷積層。
圖3 卷積、反卷積的過程
本文方法為了獲得更加細(xì)化的語義特征,在上采樣的過程中增加了更多的卷積層恢復(fù)特征圖的分辨率,隨著網(wǎng)絡(luò)的層數(shù)增加,需要訓(xùn)練的參數(shù)也越來越多,使得網(wǎng)絡(luò)的訓(xùn)練變得更加困難。為了更加充分地訓(xùn)練網(wǎng)絡(luò),本文采用了分級訓(xùn)練的方式,優(yōu)化loss函數(shù),在訓(xùn)練階段,使用不同分辨率的標(biāo)簽,分級地計算損失函數(shù),進(jìn)行監(jiān)督學(xué)習(xí)。
本文選用二元交叉熵?fù)p失作為整個分割網(wǎng)絡(luò)總的損失函數(shù),計算方法如下:
(1)
實驗中,把上采樣部分分為三級進(jìn)行訓(xùn)練,訓(xùn)練的過程如圖4所示,其中Deconv×2表示使用反卷積將特征圖上采樣至原來的2倍。首先第一級為上采樣至原圖大小1/16的位置,輸出一個預(yù)輸出層,把標(biāo)簽縮小為原來的1/16,作為監(jiān)督學(xué)習(xí)標(biāo)簽,計算loss函數(shù)用于引導(dǎo)訓(xùn)練,經(jīng)過多次的迭代訓(xùn)練,loss值收斂,逐漸縮小趨于穩(wěn)定狀態(tài);然后接入第二部分的網(wǎng)絡(luò),第二級的監(jiān)督標(biāo)簽的大小為原標(biāo)簽的1/4,輸出第二個預(yù)輸出層,再次進(jìn)行訓(xùn)練,學(xué)習(xí)率設(shè)置相對上一級較小,進(jìn)行更加精細(xì)的訓(xùn)練;最后接上第三級的網(wǎng)絡(luò)進(jìn)行訓(xùn)練,進(jìn)行整體的訓(xùn)練。每一層的loss函數(shù)計算方式如下:
(2)
式中:n取1、2、3,分三級進(jìn)行訓(xùn)練。
圖4 分級訓(xùn)練
實驗采用目前主流的深度學(xué)習(xí)框架TensorFlow1.4作為開發(fā)環(huán)境,硬件配置為:GPGPU:Nvidia Tesla P100,內(nèi)存:192 GB,顯存:32 GB。軟件環(huán)境:CUDA9.1,DUDNN8.0,Python3.5。
為了評估本文方法的有效性,分別在Camvid和Cityscapes兩個道路場景數(shù)據(jù)集上對MFNet進(jìn)行了評估。關(guān)于實驗中用到數(shù)據(jù)集的具體細(xì)節(jié)如表1所示。
表1 數(shù)據(jù)集比較
為了防止訓(xùn)練過程中過擬合現(xiàn)象的發(fā)生,實驗中采用隨機旋轉(zhuǎn)、隨機裁剪、對比度增強、增加噪聲等多種手段對數(shù)據(jù)集進(jìn)行擴(kuò)充,增加數(shù)據(jù)的多樣性。訓(xùn)練過程中,超參數(shù)的設(shè)置如表2所示。
表2 訓(xùn)練過程中設(shè)置的超參數(shù)
本文所采用的評價指標(biāo)為Miou(平均交并比),Miou是語義分割領(lǐng)域比較高權(quán)威的評價指標(biāo)值之一,它用來衡量分割的精度。Miou的計算方法如下:
(3)
式中:i表示標(biāo)簽類別;j表示預(yù)測類別;pij表示將i類預(yù)測為j類。以Miou為評價標(biāo)準(zhǔn),驗證算法的整體性能。
本實驗為了探究多尺度輸入對分割精度的影響,選擇不同的尺寸輸入比,在Camvid和Cityscapes數(shù)據(jù)集上進(jìn)行學(xué)習(xí)和測試。用S表示輸入圖片尺寸的比值,實驗結(jié)果如表3所示,其中:S=1表示原始圖像;S=0.5表示圖像縮小為原圖像的1/2倍;S=0.25表示圖像縮小為原來的1/4;S=0.125表示圖像縮小為原圖像的1/8。由于Camvid數(shù)據(jù)集中的原始圖片分辨率較小,激進(jìn)的下采樣會出現(xiàn)相反的效果,因此最小將其下采樣為原來的1/4。
表3 多尺度輸入下的平均交并比結(jié)果對比(%)
續(xù)表3
可以看出,在Camvid數(shù)據(jù)集中,輸入從原來的一個分支,逐漸增加為3個,分割的準(zhǔn)確度也從原來的62.1%增加到67.1%,很好地證明了多尺度的特征模塊的有效性,多尺度的輸入可以增加特征的表達(dá)能力,從而改善分割的效果。同樣,在Cityscapes數(shù)據(jù)集上進(jìn)行驗證,由于Cityscapes數(shù)據(jù)集中圖片的原始尺寸較大,所以最小將其縮小為原來的1/8。增加多個并行的分支,精確度也在逐漸的提高,最終達(dá)到了72.3%的準(zhǔn)確度,達(dá)到了語義分割領(lǐng)域較高的水平,證明了本文方法的有效性。
為了驗證本文方法的可行性,將MFNet與一些優(yōu)秀語義分割算法分別進(jìn)行了對比,分析算法的性能表現(xiàn),實驗結(jié)果如表4所示。FCN、SegNet、PSPNet、Deeplabv3都是當(dāng)前主流的語義分割算法。
表4 與先進(jìn)語義分割方法的平均交并比對比(%)
與一些先進(jìn)語義分割方法的對比,在Camvid數(shù)據(jù)集中,本文算法獲得了67.1%的Miou,在與SegNet和FCN的對比中,本文方法在精確度上明顯優(yōu)于其他兩種,充分地證明了本文方法對像素的分類更加準(zhǔn)確,模型的分割性能得到了提升。與一些精度較高的算法如Deeplabv3和PSPNet相比,本文方法還是略有不足,但是PSPNet和Deeplabv3的網(wǎng)絡(luò)較深,層數(shù)比較多,結(jié)構(gòu)設(shè)計復(fù)雜,而本文方法網(wǎng)絡(luò)結(jié)構(gòu)相對來說比較簡單。在Citycapes數(shù)據(jù)集上進(jìn)行測試,本文方法同樣取得了不錯的效果,由于Cityscapes中訓(xùn)練集的圖片較多,且分辨率大,所以分割效果相對較好。
為了更加直觀地證明本文方法的有效性,從Camvid驗證集中選取了2幅圖片,對預(yù)測的結(jié)果進(jìn)行了比較,可視化的結(jié)果如圖5所示。
(a) (b)圖5 可視化結(jié)果
從可視化的結(jié)果來看,道路場景中環(huán)境復(fù)雜,識別難度較大,對于行人、指示牌等目標(biāo)物體,F(xiàn)CN無法準(zhǔn)確地分割出來,分割效果較差,甚至還會出現(xiàn)錯誤分割的現(xiàn)象,改進(jìn)后的算法明顯改善了分割效果,圖5(a)中騎行者的輪廓變得更加清晰,圖5(b)中的建筑物部分識別更加準(zhǔn)確,充分地證明了本文方法的有效性。
針對道路場景語義分割任務(wù),本文提出一種多尺度特征提取網(wǎng)絡(luò)(MFNet),設(shè)計了并行的特征提取模塊,通過逐層反卷積恢復(fù)細(xì)節(jié),并且優(yōu)化了loss函數(shù),采用分級訓(xùn)練的方式訓(xùn)練模型。實驗結(jié)果表明,MFNet能夠有效地提升分割的準(zhǔn)確度,提高分割的質(zhì)量,細(xì)化分割邊緣。但是,MFNet對于路燈、指示牌等一些小的物體還是存在難以識別的情況,未來工作將主要研究如何提升小目標(biāo)物體的識別精度。