陳喬松,段博鄰,官暘珺,范金松,鄧 欣,王 進
(重慶郵電大學(xué) 數(shù)據(jù)工程與可視計算重慶市重點實驗室,重慶 400065)
圖像語義分割技術(shù)廣泛應(yīng)用于人工解析、虛擬現(xiàn)實、自動駕駛汽車等領(lǐng)域。語義分割目標是區(qū)分圖像場景所包含的具有不同語義的目標和區(qū)域,并對它們進行像素級別的標注,它隱含地涉及了圖像分類、對象定位和邊界描繪等問題,復(fù)雜場景中的分割目標種類多而且尺度變化大。因此,圖像語義分割是一項需要多尺度和多層次識別的計算機視覺任務(wù)。隨著卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural networks,CNNs)的快速發(fā)展,一種全卷積神經(jīng)網(wǎng)絡(luò)(fully convolutional network,F(xiàn)CN)[1]方法逐漸代替了傳統(tǒng)的圖像分割方法,因其具有層次特征提取和實現(xiàn)了端到端訓(xùn)練結(jié)構(gòu),后來很多基于全卷積神經(jīng)網(wǎng)絡(luò)的方法在像素級別的語義分割任務(wù)中都取得了不錯的效果。
語義分割任務(wù)面臨的一個挑戰(zhàn)是圖像中存在多尺度的目標,神經(jīng)網(wǎng)絡(luò)需要同時學(xué)習到大尺度的顯著目標和較小尺度的非顯著目標,而深度卷積神經(jīng)網(wǎng)絡(luò)善于學(xué)習到整個圖像的抽象特征表示,這導(dǎo)致圖像的每個區(qū)域里更加顯著的目標特征更容易被學(xué)習到,同時起主導(dǎo)性的作用來影響網(wǎng)絡(luò)對鄰近的微弱目標特征進行學(xué)習,從而不利于對具有很多細小尺度目標的復(fù)雜場景進行語義分割,現(xiàn)有的一些語義分割方法在利用編碼器提取語義特征過程中,采用多尺度卷積來兼顧對大尺度和小尺度目標特征的學(xué)習,取得了不錯的效果。但沒有特殊考慮小尺度的非顯著目標特征點容易受到周圍顯著特征點支配的問題,為使網(wǎng)絡(luò)能夠提取區(qū)分周圍特征的局部感知特征,我們在編碼結(jié)構(gòu)的基礎(chǔ)上,提出局部特征增強模塊(local feature enhanced, LFE)并作用在基礎(chǔ)特征網(wǎng)絡(luò)的末端,將局部的特征與周圍的多尺度多層次的特征形成對比,從而起到局部特征增強的作用。
完整的卷積神經(jīng)網(wǎng)絡(luò)各層分工明確,較淺層負責提取邊緣、紋理、形狀等信息,而較深層負責在前面提取的特征基礎(chǔ)上獲得更加具體的個體目標特征,更接近實際場景中的完整事物,由此可見,網(wǎng)絡(luò)中深層特征圖與淺層特征圖的差異性。另外,隨著網(wǎng)絡(luò)層的加深,特征圖分辨率減小,包含空間細節(jié)信息越少,得到分割結(jié)果前要進行分辨率的重建,成為語義分割任務(wù)的另一個難點。目前一類U形網(wǎng)絡(luò)(編碼器-解碼器)方法,將深層特征圖與前面編碼階段的淺層特征圖進行簡單融合來解碼更多的空間細節(jié)信息。但這些方法沒有考慮深淺層特征圖之間的特征表示差異,從而可能導(dǎo)致最終同類像素預(yù)測的不一致。淺層特征圖融合前需要更多的全局上文信息來過渡,采用全局池化方法設(shè)計全局特征增強模塊(global feature enhanced, GFE)來改善解碼階段的深淺層特征圖的融合,考慮深層特征圖每個通道實際上是對不同類別特征的響應(yīng),利用各通道的全局信息形成影響因子來增強淺層特征圖中對應(yīng)類別的特征,保證對融合后特征圖中同一類別像素的預(yù)測一致。
復(fù)雜場景中的分割目標具有多尺度的特點,為實現(xiàn)針對每個尺度目標進行特征學(xué)習,出現(xiàn)了DeepLab系列[2-3]方法,采用不同比率的空洞卷積(atrous conv)實現(xiàn)多尺度結(jié)構(gòu),PSPNet[4]利用空間金字塔池化(spatial pyramid pooling,SPP)來提取多尺度的目標特征,但空洞卷積和金字塔池化可能導(dǎo)致像素定位信息的丟失。另一種解決方法是將輸入圖像調(diào)整為多種分辨率分別送入網(wǎng)絡(luò)中進行訓(xùn)練,將輸出的各特征圖進行融合達到多尺度學(xué)習的效果,例如ICNet[5]等結(jié)構(gòu),但大量的計算和網(wǎng)絡(luò)對圖像輸入尺寸的限制也成為了該類方法的弊端。
隨著卷積網(wǎng)絡(luò)層數(shù)的加深,網(wǎng)絡(luò)層得到的特征圖更加抽象,分辨率減少導(dǎo)致大量空間信息即細節(jié)信息丟失,為重建分辨率直到特征圖恢復(fù)到輸入圖像尺寸,出現(xiàn)一種編碼器加解碼器的U形結(jié)構(gòu),最早由Ronneburger等[6]提出U-Net,在解碼過程中將每個階段上采樣過后的特征圖與前面的編碼器對應(yīng)階段特征圖進行融合,用淺層特征圖來幫助深層特征圖恢復(fù)細節(jié)信息,但直接融合操作可能導(dǎo)致網(wǎng)絡(luò)對同一目標的分類結(jié)果不一致。類似的編碼解碼網(wǎng)絡(luò)如RefineNet[7],GCN[8],DDSC[9],都是分辨率重建過程中設(shè)計復(fù)雜的解碼模塊來提升分割效果,但也增加了網(wǎng)絡(luò)的學(xué)習復(fù)雜度。其他輕量的U型結(jié)構(gòu)如SegNet[10],ENet[11],DeconvNet[12],則是編碼器和解碼器的結(jié)構(gòu)比較平衡,但也只能獲得中等的分割效果。為實現(xiàn)同時提取語義特征和空間細節(jié)特征,也出現(xiàn)了BiseNet[13]等兩分支網(wǎng)絡(luò)的結(jié)構(gòu)。針對以上問題,本文方法同樣采用U形結(jié)構(gòu),從方法[14]談及的神經(jīng)網(wǎng)絡(luò)淺層和深層表達特征的差異性出發(fā),設(shè)計類似SE模塊[15]的結(jié)構(gòu)來改善特征圖融合,同時為改善小尺度目標分割,采用差值卷積[16]方法來增強小尺度目標的局部感知特征。
模型的整體框架如圖1,分為編碼和解碼2個過程,輸入圖片經(jīng)過編碼器中的基礎(chǔ)網(wǎng)絡(luò)被提取不同層次的特征,再到達局部特征增強模塊(LF進行局部感知特征突出,隨后逐層通過全局特征增強模塊進行上采樣和特征融合,最終得到預(yù)測結(jié)果。圖1中,左側(cè)分數(shù)代表ResNet不同階段特征圖相比原輸入縮放的比率,藍色線和紅色線分別代表下采樣和上采樣操作,黑色線不改變特征圖尺寸。
圖1 模型整體框架Fig.1 Overview of framework
編碼器提取特征的基礎(chǔ)網(wǎng)絡(luò)采用ImageNet[17]數(shù)據(jù)集上預(yù)訓(xùn)練過的ResNet-50[18],同時采用了比率為2的空洞卷積替換Res5層中的常規(guī)卷積,解決去掉池化層引起的單元感受野縮小,所以基礎(chǔ)網(wǎng)絡(luò)ResNet輸出特征圖尺寸為輸入圖片的1/16而不是原始的1/32,不同于圖像整體分類任務(wù),增加特征圖分辨率有利于模型在解碼階段的分辨率重建。接著采用LFE模塊作用于ResNet的輸出,這一步通過卷積操作來增強特征圖的局部感知特征,但不再改變特征圖大小。下一步將尺度縮小到1/16的特征圖逐層地與經(jīng)過3×3卷積和GFE模塊處理后的ResNet各層特征圖進行融合,最終對最后一個GFE模塊輸出的特征圖直接進行4倍上采樣恢復(fù)到原輸入尺寸得到模型的預(yù)測結(jié)果。其中的上采樣操作采用雙線性插值方法,不同于GCN中用到的反卷積操作,線性插值可以準確恢復(fù)像素點,同時沒有引入復(fù)雜的計算。
在圖像級分類任務(wù)當中,深層卷積神經(jīng)網(wǎng)絡(luò)能夠生成用于對象識別的相對高級的語義特征。這種特征具有全局化和上下文語義相關(guān)的特點,不完全適用于需要對每個像素進行標記的精細化場景語義分割任務(wù)。由于對整體圖像進行內(nèi)容理解所需要的上下文語義特征表現(xiàn)在圖像中的主要對象上,即一些尺寸較大的特征顯著的前景目標,往往忽略小尺度目標的非顯著特征。況且復(fù)雜場景圖像包含更豐富的目標類別以及目標間存在復(fù)雜的連接,不加選擇地收集某一目標周圍的特征信息可能引入有害噪聲,為解決以上問題,設(shè)計了局部特征增強模塊來更加關(guān)注于提取非顯著目標的局部感知特征,如圖2。
圖2 局部特征增強模塊Fig.2 Local feature enhancement module
圖2中輸入圖片經(jīng)過卷積后,黃色邊框位置的任一像素A屬于特征圖中的非顯著事物,不斷的常規(guī)卷積操作會收集像素A周圍的上下文語義來生成區(qū)別性像素點特征,導(dǎo)致在一些同A類似的特征點位置上,特征表達會被鄰近的對更大范圍語義表達起主導(dǎo)作用的目標區(qū)域所影響,導(dǎo)致該點缺乏類別區(qū)分性,在最后的預(yù)測結(jié)果中該位置的像素標注錯誤。因此,LFE采用一種平行結(jié)構(gòu)[14]:常規(guī)3×3卷積提取局部特征,一定比率(rate)的空洞卷積(atrous conv)提取粗糙的全局上下文特征,2種特征形成對比來獲得增強的局部感知特征,具體地,差值卷積計算為
EL=Fconv(x,wl)-FAconv(x,wc)
(1)
(1)式中:x表示輸入特征圖;Fconv和FAconv分別表示常規(guī)卷積和空洞卷積操作;wl和wc表示卷積核參數(shù),將2種卷積操作結(jié)果做相減運算,得到的EL即為增強的局部感知特征,將小卷積核和大卷積核提取到的特征形成對比,將小目標點的局部特征信息從周圍的主導(dǎo)性語義特征中凸顯出來,原理上類似于人眼聚焦于一個關(guān)鍵時,主動模糊其周圍的信息,相減的操作起到一個削弱關(guān)鍵點周圍引入噪聲的作用,使該方法更加聚焦于小尺度對象的非顯著特征。圖2中,整體的LFE模塊采用比率為3,5的2種空洞卷積來實現(xiàn)對多尺度特征的關(guān)注。最后將LFE模塊輸出的所有特征圖進行concatenate操作,即通道維度的特征圖疊加,最后經(jīng)過1×1卷積操作整合特征得到模塊的輸出。
在基礎(chǔ)網(wǎng)絡(luò)的編碼器結(jié)構(gòu)中,根據(jù)特征圖的大小可以將ResNet分為幾個階段,圖1中,每個階段具有不同的識別能力,低階段的淺層網(wǎng)絡(luò)對圖像的空間細節(jié)信息進行編碼,很少關(guān)注全局語義信息;高階段的深層特征圖是經(jīng)過多層次卷積來不斷擴大感受野,聚合了豐富的語義信息,但空間信息會減少。RefineNet ,GCN等方法的解碼器先將較深層特征圖上采樣,再與較淺層特征圖進行通道堆疊或像素相加等簡單的融合操作,其目的是在像素重建過程中兼得空間和語義信息,但忽略了深淺層特征圖之間的差異性。深層特征圖的每個通道可以視為對不同目標類別的響應(yīng),而淺層特征圖通道關(guān)注的是各種形狀細節(jié)信息,直接對2部分按通道融合,可能削弱了各目標類別間的區(qū)分性特征,導(dǎo)致融合結(jié)果中對同類別像素預(yù)測的不一致。
為改善深淺層特征的融合,采用全局池化的方法設(shè)計全局特征增強模塊,加入到融合操作當中,如公式(2)
E=Upsample(A)+FGFE(A,B)
(2)
(2)式中:A代表解碼器中當前層特征圖;B則是A在編碼器中對應(yīng)階段的上一層特征圖,文中分別稱之為深、淺層特征圖。A經(jīng)過上采樣與GFE模塊輸出進行逐像素相加得到融合結(jié)果E,其中,GFE模塊的具體操作如圖3,對深層特征圖的每個通道進行全局池化(global pooling)獲得全局上下文信息,經(jīng)過1×1卷積和Sigmoid函數(shù)形成影響系數(shù),通過乘積作用于淺層特征圖。其中,在乘積操作之前,淺層特征圖經(jīng)過了3×3×C卷積,C代表特征通道數(shù)且等于分割類別數(shù)。GFE模塊的目的是用深層特征圖各通道的全局上下文信息,來增強淺層特征圖自身的類間區(qū)別性特征,從而縮小淺層特征圖與深層特征圖之間差異來改善融合操作,有助于對同一類目標像素預(yù)測的一致性。
圖3 全局特征增強模塊Fig.3 Local feature enhancement module
實驗中給基礎(chǔ)網(wǎng)絡(luò)ResNet-50加載ImageNet數(shù)據(jù)集上預(yù)訓(xùn)練過的參數(shù),再用城市街道場景數(shù)據(jù)集Cityscapes[19]和CamVid[20]上來訓(xùn)練并評測本文提出的完整模型,對比驗證提出模塊的有效性,并與其他語義分割方法進行了實驗結(jié)果的比較。
實驗所用GPU型號為NVIDIA TESLA V100(內(nèi)存32 GByte) ,軟件采用深度學(xué)習框架Tensorflow配合python,模型訓(xùn)練過程中采用RMSProp(均值平方根)自適應(yīng)學(xué)習率優(yōu)化算法,配合初始學(xué)習率1e-4,學(xué)習率衰減0.995,根據(jù)輸入尺寸調(diào)整batchsize(處理圖片批量),并隨機對輸入圖片進行旋轉(zhuǎn),仿射變換,亮度調(diào)節(jié)等數(shù)據(jù)增強操作。訓(xùn)練損失函數(shù)采用交叉熵損失(cross-entropy loss)。
由于實驗數(shù)據(jù)集屬于復(fù)雜場景分割數(shù)據(jù)集,樣本具有包含目標類別多且數(shù)量不均衡的特點,導(dǎo)致模型不能平均地學(xué)習每個類別的特征,保證每一類的分割精度。這里采用類別平衡方法,計算每個類別的出現(xiàn)頻率fqi,即該類別像素數(shù)目除以數(shù)據(jù)中總像素數(shù)目,其中,i代表第i類,求出所有類別出現(xiàn)頻率fqs的median 值,除以該類別對應(yīng)的頻率得到該類的權(quán)重,計算公式為
weighti=median(fqs)/fqi
(3)
用生成的類別權(quán)重作用于損失函數(shù),使其對出現(xiàn)頻率小的類別更加敏感,增加權(quán)重后的損失函數(shù)公式為
(4)
(4)式中:wi為第i類的權(quán)重;yi,ti分別為圖像中所有第i類的預(yù)測值和標簽值,語義分割任務(wù)是對像素類別和空間位置進行預(yù)測,本文實驗采用評價指標為平均交并比(mean intersection-over-union,mIOU),評估網(wǎng)絡(luò)輸出的像素預(yù)測結(jié)果和真實的像素級圖像標簽之間的差距。
為驗證各模塊的有效性,分別在CamVid和Cityscapes數(shù)據(jù)集的訓(xùn)練集上依次對基礎(chǔ)網(wǎng)絡(luò)組合不同模塊進行訓(xùn)練,并在2個數(shù)據(jù)集各自的驗證集上進行評估,得到相應(yīng)的mIOU測評值,實驗結(jié)果如表1。首先,只用基礎(chǔ)網(wǎng)絡(luò)Res-50進行實驗,對網(wǎng)絡(luò)輸出進行簡單上采樣和特征融合得到最終輸出,計算相應(yīng)的評價指標值。接著將局部特征增強模塊作用在基礎(chǔ)網(wǎng)絡(luò)末端來驗證該模塊的有效性,在2個數(shù)據(jù)集上的mIOU值較基礎(chǔ)網(wǎng)絡(luò)分別提高了2.2%和1.4%,以CamVid的驗證集為例,增加LFE模塊前后的分割效果如圖4,網(wǎng)絡(luò)對電線桿和行人等具有細微局部特征的目標分割更加清晰,起到了局部特征增強作用。接著在前面結(jié)構(gòu)基礎(chǔ)上加入GFE模塊指導(dǎo)上采樣和融合工作,得到的mIOU值較加入GFE模塊前網(wǎng)絡(luò)提高了1.9%和2.1%,以Cityscapes驗證集為例,分割效果如圖5,其中,紅色虛線框顯示在對同類別目標像素分類的一致性上,GFE模塊起到了作用。最后對完整的網(wǎng)絡(luò)模型訓(xùn)練采用CB(類別平衡)操作,使得模型在CamVid和Cityscapes的驗證集上mIOU評測值得到進一步提升,同時為了驗證基礎(chǔ)網(wǎng)絡(luò)層數(shù)對模型分割性能的影響,實驗又將模型的基礎(chǔ)網(wǎng)絡(luò)Res-50替換為Res-101,增加了一倍網(wǎng)絡(luò)層數(shù)的模型在Camvid驗證集上的mIOU測評值提高到了66.1%,考慮Cityscapes圖片尺寸較大,硬件內(nèi)存有限等因素,沒有將本文方法的基礎(chǔ)網(wǎng)絡(luò)改為ResNet-101在Cityscapes上進行實驗。同時保留ResNet-50作為本文方法的基礎(chǔ)網(wǎng)絡(luò)。
圖4 增加LFE模塊前后CamVid數(shù)據(jù)集的分割結(jié)果(Ground truth為標簽)Fig.4 Results of LFE moduleon CamVid (Ground truth is the label)
圖5 增加GFE模塊前后Cityscapes數(shù)據(jù)集的分割結(jié)果(Ground truth為標簽)Fig.5 Results of GFE moduleon Cityscapes (Ground truth is the label)
表1 模塊有效性驗證實驗結(jié)果
CamVid數(shù)據(jù)集是從劍橋街道場景視頻中提取出的少量圖片數(shù)據(jù)集,圖片大小為720×960個像素,分為訓(xùn)練集367張,驗證集100張,測試集233張圖片,其中包含11類用于語義分割的目標對象。本實驗訓(xùn)練中不對輸入圖片進行剪切操作,保持圖片原尺寸,采用較小的batchsize 值6。3.2節(jié)中我們在驗證集上評估了模型,本節(jié)將在測試集上對模型進行實驗,與近幾年代表方法的實驗對比結(jié)果如表2,本文方法FEUNet的mIOU值達到了65.4%,分割效果優(yōu)于SegNet和Deeplab-v2,與近兩年方法BiSeNet和CGNet[21]相近,遜于ICNet。綜合來看,F(xiàn)EUNet在CamVid數(shù)據(jù)集上取得了可觀的效果。
表2 不同方法在CamVid測試集上的表現(xiàn)
Cityscapes數(shù)據(jù)集包含30類目標,其中19類用于語義分割任務(wù),提供5 000張精準標記圖片,19 998張粗糙標記圖片,本節(jié)將精準標記圖片分成2 979張訓(xùn)練集圖片,500張驗證集和1 525張測試集圖片進行實驗。同樣地,對輸入圖片不進行裁剪操作,保留原尺寸1 024×2 048,根據(jù)GPU內(nèi)存限制,batchsize值設(shè)為3。表3列舉了本文方法和其他典型方法的模型參數(shù)量及mIOU測評值,本文提出的FEUNet參數(shù)量為25.6 M(M為百萬),mIOU值達到73.2%,都處于居中水平。雖參數(shù)量多于ICNet,但mIOU值更高。對比類似結(jié)構(gòu)GCN和RefineNet,本文方法mIOU較低,但在參數(shù)量上優(yōu)于RefineNet。對比結(jié)構(gòu)差異大的BiSeNet,本模型具有更少的參數(shù)。在3.3節(jié)實驗結(jié)果中,F(xiàn)EUNet和DeepLabv2在Camvid數(shù)據(jù)集上的mIOU測評值低于ICNet,而在Cityscapes上的表現(xiàn)優(yōu)于ICNet,經(jīng)分析,ICNet采用多分支結(jié)構(gòu)和多尺度輸入的級聯(lián)訓(xùn)練方法,對各367張的Camvid訓(xùn)練集樣本和標簽進行不同尺度的縮放,輸送網(wǎng)絡(luò)的不同分支進行級聯(lián)訓(xùn)練和監(jiān)督,增加了訓(xùn)練樣本數(shù)量,即增加模型對多尺度目標學(xué)習的泛化性;而Cityscapes數(shù)據(jù)集包含2 979張訓(xùn)練圖片,其中富含更多場景,目標尺度變化更大,所以ICNet在Cityscapes數(shù)據(jù)集下的多尺度級聯(lián)訓(xùn)練優(yōu)勢減弱,同時ICNet在2個數(shù)據(jù)集的mIOU測評值為67.1%和69.5%,提升值比較FEUNet和DeepLabv2更小,也證明了結(jié)構(gòu)優(yōu)勢的減小。綜合來看,本文提出的FEUNet模型在Cityscapes數(shù)據(jù)集上的分割性能具有一定競爭力。
表3 方法的參數(shù)量及Cityscapes測試集表現(xiàn)對比
本文提出了一種有效的增強局部特征和全局特征的編碼器-解碼器結(jié)構(gòu),其中局部特征增強模塊對局部特征和周圍特征進行差值提取,獲得了增強的局部感知特征,改善非顯著目標的分割效果。全局特征增強模塊提取了上文特征圖通道間的全局信息,用于對下文特征圖進行全局特征增強,改善2部分特征圖間的融合,增加了同語義目標分類的一致性。實驗在具有多尺度多類別的復(fù)雜場景數(shù)據(jù)集CamVid和Cityscapes上驗證了模塊的有效性,并對比其他現(xiàn)有方法,本文提出方法在IOU評測上表現(xiàn)并非最突出,但在模型體積上更加輕量化,優(yōu)勢在于更加適用于GPU內(nèi)存或計算力性能有限的硬件環(huán)境。對比具有相似結(jié)構(gòu)的現(xiàn)有方法GCN和RefineNet,本文方法改善了原有的特征圖融合方式,解碼器網(wǎng)絡(luò)參數(shù)計算更加簡單。同時在不降低網(wǎng)絡(luò)分割性能的前提下,可以對網(wǎng)絡(luò)進行寬度上的壓縮剪枝。