張 娣,陸建峰
(南京理工大學 計算機科學與工程學院,南京 210094)
圖像語義分割[1]是計算機視覺領(lǐng)域的熱點問題之一,其任務(wù)是為圖像中每個像素分配類別標簽。語義分割技術(shù)對機器人和無人駕駛系統(tǒng)[2]的場景理解至關(guān)重要,如分割出道路與障礙物的位置等,為其安全行駛提供指導(dǎo)。
圖形處理器(Graphics Processing Unit,GPU)具有強大的并行計算能力,在大規(guī)模像素級標注數(shù)據(jù)集出現(xiàn)后,基于深度學習的圖像語義分割技術(shù)[1]得到進一步發(fā)展。2014年SHELHAMER等人[3]提出的全卷積網(wǎng)絡(luò)(Fully Convolutional Networks,FCN)首次將深度學習應(yīng)用于語義分割。FCN開創(chuàng)性地將目標分類網(wǎng)絡(luò)中的全連接層替換為卷積層,并引入反卷積概念,實現(xiàn)了對任意尺寸圖像的像素級語義分割。與傳統(tǒng)非深度學習方法相比,FCN的分割準確率更高且運行時間更短。但是從本質(zhì)上來看,FCN通過池化層逐漸縮小圖像尺寸、擴大感受野,并利用卷積層提取不同層次的特征,然后采用反卷積將縮小后的特征圖恢復(fù)至原始尺寸,圖像在由大變小再變大的過程中,會丟失很多細節(jié)信息。因此,研究人員提出多種方法來提升語義分割對圖像細節(jié)區(qū)域的處理能力。
文獻[4]提出空洞卷積在不縮減特征圖大小的情況下擴大感受野。部分研究者試圖將不同尺度的特征進行融合。文獻[5]設(shè)計了一種適合醫(yī)學圖像的U形對稱網(wǎng)絡(luò)(U-Net),采用跳躍連接的方法在通道維度上將不同特征圖進行串聯(lián)。文獻[6]提出空間金字塔結(jié)構(gòu),通過聚合多尺度上下文特征獲取全局信息。文獻[7-9]將空洞卷積與空間金字塔相結(jié)合提出多孔金字塔池化,同時采用多個不同采樣率的并行空洞卷積獲取多尺度信息。文獻[10]指出各尺度特征關(guān)注的信息層次不同,并采用多種方法加強高低層次特征之間的融合。由于透視成像過程丟失了深度信息[11],且單目圖像缺乏足夠的三維結(jié)構(gòu)信息,因此大部分單目語義分割網(wǎng)絡(luò)對三維結(jié)構(gòu)特征顯著的區(qū)域處理效果較差。
在RGB-D相機誕生后,研究者們利用額外的深度信息提升語義分割效果。早期的方法[12]是簡單地將深度信息串聯(lián)到RGB圖像上,形成1個四通道數(shù)據(jù)并將其輸入到神經(jīng)網(wǎng)絡(luò)中。文獻[13]使用2個編碼器分支分別提取RGB特征和深度特征,然后在特定節(jié)點將深度特征嵌入到RGB分支中,改變了原有特征提取網(wǎng)絡(luò)的結(jié)構(gòu)。此外,由于RGB-D相機測量范圍太小,易受日光干擾,因此其僅適用于室內(nèi)環(huán)境。為在更廣泛的環(huán)境下利用深度信息,研究人員試圖直接從成對的雙目圖像中提取深度信息。文獻[14]提出的3SP-Net利用已有視差估計網(wǎng)絡(luò)預(yù)測出深度信息,再將其與不同尺度的RGB特征融合。由于從雙目圖像得到深度信息計算量很大,這使整個網(wǎng)絡(luò)不僅龐雜而且無法端到端地訓練網(wǎng)絡(luò)。文獻[15]對已有的卷積神經(jīng)網(wǎng)絡(luò)進行微調(diào),利用L1距離[16]匹配其左、右特征圖之間的對應(yīng)點,從而間接挖掘深度特征。該方法具有一定啟發(fā)性,但是由于其在深度信息和二維圖像信息融合上大量使用串聯(lián)操作,因此結(jié)構(gòu)不太合理且特征融合效率較低。
本文受文獻[15]啟發(fā),利用已有的單目孿生網(wǎng)絡(luò)提取雙目圖像二維信息,采用雙目圖像特征點在不同視差等級下的相似度間接表征深度信息,在不改變網(wǎng)絡(luò)結(jié)構(gòu)的前提下,通過少量計算提取雙目圖像的深度信息,以實現(xiàn)對環(huán)境三維特征的準確描述。
本文方法的網(wǎng)絡(luò)結(jié)構(gòu)包括編碼器和解碼器,如圖1所示。其中:編碼器的基礎(chǔ)網(wǎng)絡(luò)通過堆疊卷積層(Conv)和殘差層(Res)構(gòu)造2個完全相同的ResNet50[17],以同步提取其左、右輸入圖像的二維信息。色彩深度融合模塊(Color Depth Fusion Module,CDFM)用來提取不同尺度的深度特征,并將其與二維圖像特征進行融合。解碼器最頂層的融合特征應(yīng)用注意力機制(Attention)[18-19]進行特征篩選以專注于更有用的信息,跨級特征注意力模塊(Cross-level Feature Attention Module,CFAM)在高層語義信息的指導(dǎo)下,可獲取更準確的低層邊緣信息。將反卷積(Deconv)后的特征圖與CFAM跨級融合后的特征圖元素相加,并通過1×1卷積調(diào)整通道數(shù)可得到最終的分割圖。
圖1 網(wǎng)絡(luò)整體框架Fig.1 Overall network framework
為從二維圖像特征中恢復(fù)深度特征,本文引入立體視覺的塊匹配概念[20]來計算不同視差等級下對應(yīng)點之間的相似度,并使用該間接相關(guān)的相似度表示深度特征。受ParallelNet[15]啟發(fā),本文設(shè)計立體相似塊(Stereo Similarity Block,SSB)提取更準確的深度信息。
具體地,令Fl、Fr分別為雙目視角下獲得的左、右特征圖,其維度均為h×w×c,其中,h為高度,w為寬度,c為通道數(shù)。以Fl為例,該特征圖可表示為:
(1)
l(x,y)=[l(x,y)1,l(x,y)2,…,l(x,y)i,…,
l(x,y)c]1×c
(2)
其中,l(x,y)為雙目左特征圖在(x,y)位置處的特征向量,其維度為1×1×c,d為視差偏移值。Fr的表達式與Fl類似,其中,r(x,y)為雙目右特征圖在(x,y)位置處的特征向量,其維度為1×1×c。
SSB的計算過程具體如下:
1)水平右移
(3)
2)相似度計算
(4)
距離L2越小表明特征之間的差異性越小,特征相關(guān)性越高,所有特征對之間的相似性構(gòu)成相似度圖。相較于ParallelNet[15]的距離L1,距離L2能更客觀準確地描述2個特征向量之間的相似度。
3)串聯(lián)
將dm個相似度圖串聯(lián)可得到最終的深度特征。與ParallelNet[15]中設(shè)置固定dm值不同的是,本文實驗為了保證網(wǎng)絡(luò)能夠在給定的搜索范圍內(nèi)正確地找到匹配點,將dmax設(shè)置足夠大,使其等于當前特征圖的寬度。
值得注意的是,SSB模塊提取的是不同視差等級下左、右特征圖之間的相似度,而深度信息實際上只與具有最高相似度的視差值有關(guān)。如果在實驗中利用argmin操作[16]手動選擇可能性最大的視差值(即差異性最小時對應(yīng)的視差值),實驗結(jié)果(見2.2.2節(jié))顯示該操作無效果,推測這是因為argmin操作壓縮過多維度,導(dǎo)致較多有用信息丟失。
色彩深度融合模塊結(jié)構(gòu)如圖2所示。輸入1對左、右特征圖,先通過SSB模塊獲取深度特征,再對深度特征執(zhí)行1×1卷積,使其通道數(shù)與二維圖像特征通道數(shù)相等,然后分別對左特征圖和深度特征圖執(zhí)行卷積、批量歸一化(Batch Norm)和ReLU非線性化操作,然后將元素D與其相加以獲得融合的RGB-D特征。
圖2 色彩深度融合模塊結(jié)構(gòu)Fig.2 Color depth fusion module structure
語義分割網(wǎng)絡(luò)通常由編碼器和解碼器組成。編碼器直接使用ResNet[17]、VGGNet[21]等已有的卷積神經(jīng)網(wǎng)絡(luò)來獲取分辨率逐漸降低、語義性逐漸增強的不同級別特征,解碼器利用這些特征恢復(fù)不同類別像素的位置,從而預(yù)測出圖像分割結(jié)果。
圖像的高層特征和低層特征本質(zhì)上是互補的。其中:高層特征用來指示圖像中的語義信息,如道路、行人、汽車等類別信息;低層特征用來表征圖像中的邊緣、紋理、位置等信息?;诖?本文提出跨級特征注意力模塊,以在高層語義信息指導(dǎo)下更準確地恢復(fù)低層的類別邊界信息。
跨級特征注意力模塊結(jié)構(gòu)如圖3所示。先對高層特征圖執(zhí)行窗口大小為(H2,W2)的全局池化(Global Pooling)操作以獲得全局語義信息,再對全局語義特征執(zhí)行1×1卷積、批量歸一化和ReLU非線性化操作,使其通道數(shù)與低層特征圖的通道數(shù)相等。同樣對低層特征執(zhí)行3×3卷積、批量歸一化和ReLU非線性化操作,以獲取更具表達力的低層特征。最后利用壓縮后的全局語義信息指導(dǎo)低層特征在通道維度上的加權(quán)選擇。該模塊能夠以高層特征為引導(dǎo),選擇性地保留低層特征中的有用信息,有助于融合跨級特征及提高語義邊界定位準確率。
圖3 跨級特征注意力模塊結(jié)構(gòu)Fig.3 Cross-level feature attention module structure
本文實驗所用系統(tǒng)環(huán)境為ubuntu 16.04、python 3.6.8和tensorflow 1.5.0[22],顯卡為NVIDIA TITAN Xp 12 GB,CPU為Intel?E5-2620 2.10 GHz。使用Cityscapes數(shù)據(jù)集[23],該數(shù)據(jù)集為目前少有的提供雙目圖像及語義標注的大型數(shù)據(jù)集。Cityscapes數(shù)據(jù)集包含5 000 張精確標注的圖像和20 000 張粗略標注的圖像,這些圖像是在不同季節(jié)和不同天氣下從50個城市采集的街道場景。由于只有精確標注的圖像提供了雙目數(shù)據(jù),因此本文使用5 000張精確標注的圖像,并將這些圖像分為訓練集、驗證集和測試集,數(shù)量分別為2 975 張、500 張和1 525 張。將平均交并比(mean Intersection over Union,mIoU)和像素精度(Pixel Accuracy,PA)作為語義分割的評價指標,計算公式如下:
(5)
(6)
其中,k為類別數(shù)量,pij為本屬于類i但被預(yù)測為類j的像素數(shù)量。
本文對訓練數(shù)據(jù)進行增強,通過圖像歸一化隨機做高斯濾波使圖像模糊。為保證正確學習雙目特征點之間的匹配規(guī)則,未應(yīng)用旋轉(zhuǎn)、縮放、翻折等操作改變像素位置。圖像隨機裁剪為512×512大小。編碼器部分的基礎(chǔ)網(wǎng)絡(luò)為ResNet50[17],并加載在ImageNet[24]上預(yù)訓練的參數(shù)。為更好地適配ReLU激活函數(shù),網(wǎng)絡(luò)中其他參數(shù)使用He初始化[25]方法,并使用focal loss[26]來減輕由于待測目標類別不平衡引起的分類困難問題。實驗優(yōu)化器為Adam,使用多項式衰減的學習率策略,其中,基礎(chǔ)學習率設(shè)置為0.000 1,冪數(shù)為0.9。受顯卡容量限制,batch size取3,最大迭代次數(shù)設(shè)為50 000。此外,采用早停策略以防止過擬合,每60次迭代后就在驗證集上評估當前訓練網(wǎng)絡(luò)的性能,如果準確率在連續(xù)100次的驗證過程中沒有得到提高,則提前結(jié)束訓練。
2.2.1 深度信息有效性評估
為評估深度信息的影響,在單目FCN[3]結(jié)構(gòu)的基礎(chǔ)上,將CDFM作用于原始特征圖,并對融合深度后的特征圖進行反卷積等操作以獲取分割圖。該網(wǎng)絡(luò)稱為FCN+Depth,其具體結(jié)構(gòu)和添加深度信息后不同方法的評價指標結(jié)果分別如圖4與表1所示。由表1可知,添加深度信息后,語義分割性能得到明顯提升。與基準模型FCN相比,采用本文提出的FCN+Depth方法得到的mIoU和PA分別提高2.06和2.60個百分點。
圖4 FCN+Depth網(wǎng)絡(luò)結(jié)構(gòu)Fig.4 FCN+Depth network structure
2.2.2 特征篩選評估
由于SSB模塊提取的是不同視差等級下左、右特征圖之間的相似度,而深度信息只與具有最高相似度的視差值有關(guān),因此本文實驗嘗試對CDFM模塊采用不同方法進行RGB-D特征篩選并消除冗余信息,結(jié)果如表2所示。
表2 不同特征篩選方法的評價指標結(jié)果Table 2 Evaluation index results of different feature screening methods %
具體操作過程如下:
1)采用FCN+Depth+argmin方法,直接對SSB提取的深度特征實施argmin操作以選取可能性最大的視差值。由表2可知,采用argmin操作后評價指標均降低,這是因為在光照、視角、噪聲等干擾因素下,匹配點之間的相似度不一定最高,而argmin操作將深度信息壓縮至僅1個通道,所以會丟失很多有用信息。
2)采用FCN+Depth+SE+RGB方法,應(yīng)用SENet[18]提出的SE Attention機制學習自動獲取每個特征通道的重要程度,以實現(xiàn)深度特征的重標定,并將其與二維圖像特征進行融合。由表2可知,該方法并未改善分割效果。
3)采用FCN+Depth+RGB+SE方法,先融合RGB-D特征,再對融合后的特征應(yīng)用SE Attention[18]。由表2可知,與未應(yīng)用特征篩選的FCN+Depth方法相比,采用該方法得到的mIoU和PA分別提高1.41和1.27個百分點。
4)采用FCN+Depth+RGB+CBAM方法,將SE Attention替換為在通道和空間2個維度上基于注意力機制的卷積塊注意力模塊(Convolutional Block Attention Module,CBAM)[19]。由表2可知,SE Attention較CBAM分割效果更好。
2.2.3 跨級特征模塊評估
為進一步評估跨級特征注意力模塊CFAM的效果,先對最高層的RGB-D融合特征應(yīng)用SE Attention,再應(yīng)用CFAM實現(xiàn)高層語義信息對低層邊界信息的引導(dǎo),網(wǎng)絡(luò)框架如圖1所示。將應(yīng)用和未應(yīng)用CFAM的方法分別記為FCN+RGBD+SE+CFAM和FCN+RGBD+SE,得到的評價指標結(jié)果如表3所示??梢钥闯?引入CFAM后,mIoU和PA分別提高0.80和0.58個百分點,有效提高了分割效果。
表3 2種方法的評價指標結(jié)果Table 3 Evaluation index results of the two methods %
本文選取單目語義分割網(wǎng)絡(luò)FCN[3]和雙目語義分割網(wǎng)絡(luò)ParallelNet[15]作為基準方法,在ResNet50[17]的基礎(chǔ)上重新搭建FCN和ParallelNet,并在Cityscapes數(shù)據(jù)集[22]上將這2種基準方法與本文所提方法進行對比。
2.3.1 準確性評估
語義分割模型性能優(yōu)劣主要通過其分割準確性來體現(xiàn)。優(yōu)秀的分割模型對不同類別圖像的辨識度更強,對語義邊界刻畫更細致。表4為采用FCN方法、ParallelNet方法和本文方法得到的評價指標結(jié)果??梢钥闯?由于本文方法引入了間接深度信息,采用的雙目語義分割網(wǎng)絡(luò)比單目語義分割網(wǎng)絡(luò)FCN效果更好。此外,由于本文方法考慮了特征篩選和跨級特征融合,與ParallelNet[15]相比,mIoU和PA分別提高3.67和3.32個百分點。表5為3種語義分割方法對不同類別的像素精度對比,可以看出本文方法在交通標志、柵欄、行人、自行車上的分割準確率明顯更高。
表4 3種語義分割方法的評價指標結(jié)果Table 4 Evaluation index results of three semantic segmentation methods %
表5 3種語義分割方法對不同類別的PA對比Table 5 Comparison of PA of three semantic segmentation methods for different categories %
圖5是Cityscapes數(shù)據(jù)集原始圖與不同方法在該數(shù)據(jù)集上的分割效果圖,其中第1列、第2列分別為原始圖與真值圖,第3列~第5列分別為FCN方法、ParallelNet方法和本文方法在Cityscapes數(shù)據(jù)集上的分割效果圖。可以看出:FCN方法對于相似類別圖像的分辨力較差,如第2行示例場景中,其將屬于交通標志類別的物體分類為柵欄;和FCN方法相比,ParallelNet方法改善了深度特征與周圍差別明顯的部分區(qū)域分割效果,如樹干、欄桿等邊緣分割得更精細;本文方法由于采用深度信息和跨級特征融合的方式,對圖像細節(jié)及邊緣的處理更準確細致。
圖5 不同方法得到的分割效果圖Fig.5 Segmentation effect images obtained by different methods
2.3.2 魯棒性評估
為了評估模型的魯棒性[27],本文對驗證集中圖像加入不同程度干擾項,觀測并評估模型的分割效果。加入不同干擾項后,FCN方法、ParallelNet方法和本文方法在驗證集上分割結(jié)果的mIoU如表6所示。
表6 不同干擾項對mIoU的影響Table 6 Influence of different interference terms on mIoU %
首先對輸入圖像加入椒鹽噪聲[28],噪點數(shù)量占整幅圖像像素點的0.5%。加入椒鹽噪聲后,FCN方法、ParallelNet方法和本文方法的mIoU與未加干擾項相比,分別降低6.28、6.16和3.81個百分點。然后通過伽馬變換[29]調(diào)節(jié)輸入圖像亮度以模擬場景的照度變化:將驗證集圖像調(diào)亮后,FCN方法、ParallelNet方法和本文方法的mIoU與未加干擾項相比,分別降低5.92、5.97和3.01個百分點;將驗證集圖像調(diào)暗后,FCN方法、ParallelNet方法和本文方法的mIoU與未加干擾項相比,分別降低5.35、5.27和2.31個百分點。由以上分析可知,對輸入圖像的數(shù)據(jù)加入干擾項后,模型性能在不同程度上均有所下降,但是本文方法較其他2種方法性能下降幅度更小,抗干擾能力更強。
%
圖6為加入不同干擾項后不同方法在驗證集部分場景下的分割結(jié)果魯棒性對比情況。圖6(a)~圖6(c)分別表示加入椒鹽噪聲、圖像調(diào)亮和圖像調(diào)暗3種干擾情況,從上至下分別為加入干擾的輸入左圖像、手工標注圖、FCN方法分割結(jié)果、ParallelNet方法分割結(jié)果以及本文方法分割結(jié)果。由圖6(a)可以看出,當輸入圖像中存在大量隨機出現(xiàn)的噪點時,由于FCN方法依賴局部區(qū)域內(nèi)的顏色特征,因此其分割結(jié)果中會出現(xiàn)塊狀誤判區(qū)域,而ParallelNet方法和本文方法由于考慮了雙目圖像的深度信息,因此均未出現(xiàn)明顯的誤判區(qū)域。在椒鹽噪聲干擾下,ParallelNet方法在不同語義類別的邊界處呈現(xiàn)毛躁的鋸齒形態(tài),而本文方法在語義邊界區(qū)域分割更流暢。由圖6(b)可以看出,將輸入圖像調(diào)亮后,由于場景中欄桿與天空顏色接近,因此FCN方法未識別出欄桿,ParallelNet方法分割出部分低矮的欄桿,而本文方法分割出大部分欄桿。由圖6(c)可以看出,將輸入圖像調(diào)暗后,FCN方法將建筑物部分區(qū)域誤判為天空,本文方法的分割結(jié)果更準確。3種方法對右下角光線較暗騎行者的分割結(jié)果均不太理想,對行人和騎行者2種類別的分辨力有待加強。光線太暗也弱化了騎行者與自行車不同部位之間的辨識度,這也是可見光傳感器在夜間性能較差的原因。
圖6 加入不同干擾項后不同方法的魯棒性對比Fig.6 Robustness comparison of different methods after adding different interference terms
總體而言,由于FCN方法過分依賴圖像的顏色特征,在加入干擾項后,會出現(xiàn)部分塊狀的誤判區(qū)域。ParallelNet方法考慮了深度信息,對圖像顏色的依賴程度降低,但是對不同類別物體的邊界識別不精細。本文方法由于不僅考慮了深度信息,還加強了對邊界的關(guān)注,因此分割準確性更高且魯棒性更強。
本文提出一種結(jié)合雙目圖像深度信息與跨級特征的語義分割模型。設(shè)計使用色彩深度融合模塊計算雙目特征向量對的不同視差等級相似度以間接表征圖像深度信息,并與原始特征圖通過元素相加獲得融合的深度特征。同時,通過跨級特征注意力模塊利用富含語義信息的高層特征對低層特征進行加權(quán)選擇,以更準確地恢復(fù)語義邊緣。實驗結(jié)果表明,該模型能更細致準確地分割圖像邊緣以及深度特征明顯的區(qū)域。下一步將構(gòu)建更多任務(wù)模型進行深度估計和語義分割,為三維場景建模提供更全面的信息。