高軍禮,周 華,宋海濤,郭 靖,張 慧
(1.廣東工業(yè)大學(xué) 自動(dòng)化學(xué)院, 廣東 廣州 510006; 2.華南理工大學(xué) 工商管理學(xué)院, 廣東 廣州 510640)
圖像語義分割是對圖像中的每個(gè)像素進(jìn)行分類、將不同的實(shí)體分類為不同標(biāo)簽的像素級(jí)別的分割,已廣泛應(yīng)用于多個(gè)領(lǐng)域。例如,在自動(dòng)駕駛領(lǐng)域,汽車需要具備必要的圖像識(shí)別與分割能力才能充分理解其行駛過程中的環(huán)境變化;在醫(yī)療圖像診斷領(lǐng)域,可以幫助醫(yī)生對病人的患病處圖像進(jìn)行分析,從而提高對病患的診斷效率。
隨著卷積神經(jīng)網(wǎng)絡(luò)(Convolution Neural Network, CNN)的發(fā)展,采用CNN的圖像語義分割方法在精度和效率方面得到顯著改善?;贑NN的方法一般是將提取的特征圖作為目標(biāo),在特征圖中再次提取不同尺度的特征并進(jìn)行多尺度融合,但是僅僅針對最終輸出的特征圖不足以提取充分的多尺度特征,而且也缺乏像素級(jí)的信息[1]。越深層的CNN對圖像特征提取的能力越強(qiáng),但是當(dāng)網(wǎng)絡(luò)達(dá)到一定的深度時(shí),模型對圖像的預(yù)測精度反而會(huì)迅速下降,出現(xiàn)梯度消失現(xiàn)象[2],而且網(wǎng)絡(luò)越深,梯度消失現(xiàn)象越明顯。ResNet[3-4]中的殘差模塊則能有效解決深層網(wǎng)絡(luò)中出現(xiàn)的梯度消失現(xiàn)象,且能進(jìn)一步提高網(wǎng)絡(luò)的特征提取和識(shí)別能力。因此多數(shù)語義分割算法使用了殘差模塊,或基于ResNet-101[5-6]作為特征提取的主干網(wǎng)絡(luò)。編解碼器的結(jié)構(gòu)采用逐級(jí)下采樣方式以增大感受野(Receptive Field),但在感受野增大的過程中會(huì)丟失原始圖像的空間信息。而上采樣能夠?qū)⒎直媛手鸩竭€原到原圖大小,不過仍然會(huì)丟失部分細(xì)節(jié)信息。對于將所有像素平等對待的語義分割算法顯然和人類的視覺機(jī)制不同。
為了加強(qiáng)對圖像中感興趣區(qū)域的影響,削弱無關(guān)背景,注意力機(jī)制在圖像語義分割中得到了關(guān)注。該機(jī)制模仿生物觀察行為的過程,著重增加對某部分區(qū)域的關(guān)注度。通過注意力機(jī)制保留圖像中關(guān)鍵信息的代表性網(wǎng)絡(luò)為JADERBERG等[7]所提出的STN(spatial transformer networks)。雖然可以通過增加注意力模塊來提取不同尺度的特征,但過多的注意力模塊會(huì)導(dǎo)致網(wǎng)絡(luò)層次過深而出現(xiàn)梯度消失現(xiàn)象。對于金字塔池化模塊,通過全局平均池化和特征融合引入更多的上下文信息,能有效提升模型的場景識(shí)別能力,但對低維度的語義特征利用得不充分。它將后端提取的特征直接接入到金字塔池化模塊中,對多層信息尤其是淺層細(xì)節(jié)信息利用較少。
2015年,LONG等[8]通過全卷積神經(jīng)網(wǎng)絡(luò)(Fully Convolution Neural Network, FCN)進(jìn)一步促進(jìn)了語義分割技術(shù)的發(fā)展。RONNEBERGER等[9]在FCN的基礎(chǔ)上提出U-Net,采用編解碼器框架,將上采樣和下采樣進(jìn)行融合,既能提取低分辨率信息又結(jié)合了高層語義信息。2015年,何凱明團(tuán)隊(duì)提出殘差網(wǎng)絡(luò)(Residual Neural Network, ResNet),與傳統(tǒng)的簡單堆疊網(wǎng)絡(luò)方式不同,其在神經(jīng)網(wǎng)絡(luò)的上一層和下一層之間加入了恒等映射,使得上一層神經(jīng)網(wǎng)絡(luò)在傳遞信息時(shí),能夠直接傳遞給下一層,使得信息傳遞的層次更深,又能減少普通CNN在傳遞過程中的損失,且網(wǎng)絡(luò)層數(shù)可高達(dá)101層。2019年,HU等[10]提出注意力輔助網(wǎng)絡(luò)(Attention Complementary Network, ACNet),利用圖像深度信息對室內(nèi)場景下的RGBD圖像進(jìn)行語義分割,獲得了良好的分割效果。CHEN等[11]認(rèn)為不同尺度的特征圖對預(yù)測結(jié)果會(huì)產(chǎn)生不同的影響,并基于注意力機(jī)制設(shè)計(jì)了一種可學(xué)習(xí)的權(quán)重圖,實(shí)現(xiàn)對不同尺度的預(yù)測結(jié)果分別加權(quán)處理。HU等[12]提出SE-Net,通過Squeeze和Excitation兩個(gè)關(guān)鍵的操作,學(xué)習(xí)特征圖通道之間的相關(guān)性,篩選出對特征影響更大的通道,精度提升明顯,但計(jì)算量也相對較大。針對圖像目標(biāo)檢測,HE等[13]提出空間金字塔池化(Spatial Pyramid Pooling, SPP)模塊,通過使用不同步長的池化層,將輸入的特征圖轉(zhuǎn)化為多個(gè)尺度,實(shí)現(xiàn)對輸入特征的多尺度學(xué)習(xí),但由于其最終融合的特征是單個(gè)向量,對于圖像語義分割而言不具備物體的空間關(guān)系。ZHAO等[14]對其進(jìn)行改進(jìn),提出金字塔場景解析網(wǎng)絡(luò)(Pyramid Scene Parsing Network, PSPNet),通過金字塔池化模塊獲取不同區(qū)域的語義信息,在進(jìn)行特征融合后得到全局的場景信息,加強(qiáng)了對象間的上下文關(guān)系,能夠有效地解決不同場景中誤分割的問題。Google團(tuán)隊(duì)[15-18]結(jié)合深度CNN相繼提出DeepLab系列算法,其核心是空洞空間金字塔池化(Atrous Spatial Pyramid Pooling, ASPP),并將神經(jīng)網(wǎng)絡(luò)特征提取部分作為編碼器,上采樣過程作為解碼器,分割準(zhǔn)確率得到較大提升。LIU等[19-20]利用空洞卷積和空洞金字塔池化的方式在不降低特征圖大小的同時(shí)獲得更大的感受野,既保留了圖像中的空間信息,又得到了高層語義信息,但由于計(jì)算量較大,容易產(chǎn)生網(wǎng)格效應(yīng)。
在對前述成果進(jìn)行研判的基礎(chǔ)之上,針對深度CNN容易出現(xiàn)的梯度消失問題,本文基于ResNet-101主體網(wǎng)絡(luò),引入ResNet[3-4]中的殘差模塊;基于U-Net網(wǎng)絡(luò),提出將注意力模型拼接在殘差模塊之后而構(gòu)成殘差注意力模型。通過注意力機(jī)制訓(xùn)練出權(quán)重圖,以重點(diǎn)關(guān)注特征圖中權(quán)重較大的部分,使其在提取深度語義特征的同時(shí)也能關(guān)注圖像的細(xì)節(jié)信息。為了有效恢復(fù)圖像中的空間信息又不產(chǎn)生過大的計(jì)算量,基于金字塔池化機(jī)制,提出聯(lián)合金字塔上采樣模塊。最后,基于VOC 2012和Cityscape數(shù)據(jù)集,對本文所設(shè)計(jì)的圖像語義分割網(wǎng)絡(luò)和相應(yīng)的算法進(jìn)行實(shí)驗(yàn)驗(yàn)證,并與FCN-8s、SegNet、Deeplab-v2、PSPNet等方法進(jìn)行對比分析。結(jié)果表明,本文所提出的方法在語義分割準(zhǔn)確度(如mIoU、mPA)和分割效果(如類別、對象輪廓、邊緣細(xì)節(jié)等)方面有著顯著的提升和改善。
在編解碼器結(jié)構(gòu)的基礎(chǔ)之上,結(jié)合殘差注意力模型和金字塔上采樣機(jī)制,本文所設(shè)計(jì)的圖像語義分割網(wǎng)絡(luò)如圖1所示。編碼器的輸入為RGB彩色圖像,結(jié)構(gòu)上包含1個(gè)卷積層、1個(gè)池化層和由殘差模塊及注意力模塊重復(fù)堆疊構(gòu)成的殘差注意力模塊。經(jīng)由每個(gè)殘差注意力模塊輸出分辨率呈階梯狀變化的特征圖作為解碼器的輸入,以獲得4種不同尺度的特征圖。對于原始的ResNet-101網(wǎng)絡(luò),只能得到最后的特征圖,其后續(xù)的操作都基于該特征圖進(jìn)行,雖然可以獲得高層的語義特征,但對低層的細(xì)節(jié)特征提取卻不足。因此,本文將ResNet-101分為4個(gè)階段,在每一個(gè)階段后再拼接殘差注意力模塊,對特征圖中的像素進(jìn)行加權(quán)處理,從而得到不同尺度的特征。
圖1 網(wǎng)絡(luò)整體結(jié)構(gòu)Fig. 1 The overall network structure
解碼器參考Deeplab-v3+中的結(jié)構(gòu),負(fù)責(zé)將不同尺度的特征圖恢復(fù)至原圖大小。第一條支路的輸入為含有豐富細(xì)節(jié)特征的低層次特征圖,對其進(jìn)行單獨(dú)上采樣,以在解碼過程中恢復(fù)盡可能多的細(xì)節(jié)特征;另一條支路的輸入是3個(gè)層次較高的不同尺度的語義信息特征圖,采用雙線性插值上采樣后再與另一支路的低層次特征進(jìn)行融合,經(jīng)過卷積和Softmax函數(shù)后,輸出與原圖分辨率大小相同的像素級(jí)別的特征圖,進(jìn)而對圖中每個(gè)像素進(jìn)行分類,輸出最終的分割結(jié)果。
下面對本文所提出的圖像語義分割網(wǎng)絡(luò)的殘差注意力模型和聯(lián)合金字塔上采樣兩個(gè)最為關(guān)鍵的部分進(jìn)行深入探討。
通道注意力能夠建立起圖像通道維度的特征,輸出每個(gè)特征通道的權(quán)重分布圖,進(jìn)而可以根據(jù)不同場景學(xué)習(xí)到不同通道的重要性。本文所采用的注意力機(jī)制模塊如圖2所示,其輸入為特征圖,先對特征圖進(jìn)行全局平均池化,以降低輸入特征圖的維度。然后經(jīng)過1×1卷積層和Relu激活函數(shù)組成非線性映射,輸出數(shù)值范圍在1和0之間的權(quán)重特征圖,表示不同尺度和像素位置的重要性,最后和原始輸入的特征圖進(jìn)行加權(quán)后輸出相應(yīng)的權(quán)重圖。
圖2 注意力機(jī)制模塊Fig. 2 Attention mechanism module
若U表示輸入特征圖(uc為某一通道特征),H和W分別為特征圖的高度和寬度,C為維度,則其大小為H×W×C。z∈Rc表示池化后的信息量,c為通道數(shù),則經(jīng)過全局平均池化后的信息量可表示為:
(1)
基于ResNet的殘差模塊如圖3所示,若殘差模塊的輸出為:
y=F(x,{Wi})+x,
(2)
其中:x為輸入向量,Wi為第i層神經(jīng)網(wǎng)絡(luò),y為輸出向量,函數(shù)F(x,{Wi})表示需要學(xué)習(xí)的殘差映射。
圖3 殘差模塊示意圖Fig. 3 Schematic diagram of the residual module
若殘差模塊中有兩層CNN,則函數(shù)F可表示為:
F=W2σ(W1x),
(3)
其中:σ表示Relu激活函數(shù),W1和W2分別表示第1層和第2層神經(jīng)網(wǎng)絡(luò)。輸入向量x和F的維度必須相等,如果改變了輸入或輸出的維度導(dǎo)致兩者不相等,則可以用一個(gè)線性映射Ws來表示短連接:
y=F(x,{Wi})+Wsx。
(4)
基于注意力和殘差機(jī)制,本文將注意力模型拼接在殘差模塊之后,所構(gòu)成的殘差注意力模型的結(jié)構(gòu)如圖4所示。
圖4 殘差注意力模型結(jié)構(gòu)圖Fig. 4 Structure diagram of residual attention model
首先,輸入的特征圖進(jìn)入殘差模塊,殘差模塊中第一個(gè)和第三個(gè)卷積核大小為1×1,第二個(gè)大小為3×3。其次,在卷積層之后,激活函數(shù)之前加入批正則化層,對輸入數(shù)據(jù)進(jìn)行歸一化操作,防止輸入數(shù)據(jù)發(fā)生偏移。然后,將數(shù)據(jù)輸入到注意力模塊,經(jīng)過全局池化和 1×1卷積后,再通過Sigmoid函數(shù)進(jìn)行像素權(quán)重的劃分,得到的特征圖和原始的輸入特征進(jìn)行加權(quán),并輸出至解碼器。
金字塔模型可用于對同一圖像按照金字塔的形狀逐步降低分辨率,形成圖像金字塔,從不同尺度的特征圖中提取多尺度的語義信息,并且結(jié)合淺層的細(xì)節(jié)特征,使模型能獲得更好的性能。PSP-Net中所提出的金字塔池化模塊如圖5所示,包含4層,輸入為特征提取階段產(chǎn)生的特征圖,經(jīng)過不同步長(如1、2、3、6)的池化層,產(chǎn)生4種不同尺度的特征圖。為了對特征圖進(jìn)行重新映射,金字塔中每一層使用1×1大小的卷積核進(jìn)行卷積,將特征圖的大小降低到原來的1/N,其中N為金字塔的層數(shù);然后將得到的特征圖進(jìn)行上采樣,使用雙線性插值將圖像還原至原始分辨率;最后與原始輸入的特征圖進(jìn)行融合。
圖5 金字塔池化模塊示意圖Fig. 5 Schematic diagram of pyramid pooling module
為了恢復(fù)圖像中的空間信息又不至于產(chǎn)生過大的計(jì)算量,受金字塔池化的啟發(fā),本文所提出的聯(lián)合金字塔上采樣模塊如圖6所示。首先將不同尺度的特征圖作為輸入經(jīng)過上采樣后進(jìn)行融合,以提取多尺度特征,用以提高模型的預(yù)測效果;然后采用不同空洞率的深度可分離卷積捕獲不同級(jí)別的特征,圖1中空洞率為1的卷積層用以捕獲低層次的語義特征,而空洞率為2、4、8的卷積層則用于學(xué)習(xí)不同尺度的特征轉(zhuǎn)換;最后將這些金字塔式的特征圖進(jìn)行拼接,以融合目標(biāo)圖像的細(xì)節(jié)和全局特征。
圖6 聯(lián)合金字塔上采樣模塊Fig. 6 Joint pyramid upsample module
系統(tǒng)實(shí)驗(yàn)環(huán)境采用Ubuntu 16.04,計(jì)算平臺(tái)采用顯卡GTX1080Ti 8 G,CPU E5-26890 2.6 GHz,內(nèi)存16 G,Tensorflow 1.13深度學(xué)習(xí)框架。以平均像素精度與平均交并比作為評(píng)價(jià)指標(biāo),設(shè)數(shù)據(jù)集中可供分割的對象類別為k,則總的類別為k+1,其中1代表背景。設(shè)Pij表示屬于i類的像素被錯(cuò)誤的識(shí)別為j類的像素點(diǎn)的個(gè)數(shù),Pii表示被正確判斷為i類的像素點(diǎn)個(gè)數(shù),Pjj表示被正確判斷為j類的像素點(diǎn)個(gè)數(shù)。平均像素精度 (mean Pixel Accuracy, mPA)如式(5)所示,表示每個(gè)類別被正確分類的比例的平均值。
(5)
平均交并比(mean Intersection over Union, mIoU)如式(6)所示,其含義為圖像中分割結(jié)果與真實(shí)值的交集和并集之比。
(6)
實(shí)驗(yàn)中,首先對Pascal VOC2012[21]和Cityscape[22]數(shù)據(jù)集進(jìn)行數(shù)據(jù)增強(qiáng),即將圖像數(shù)據(jù)和對應(yīng)的標(biāo)注圖像進(jìn)行同步隨機(jī)垂直鏡像和水平翻轉(zhuǎn),然后再采用最近鄰插值算法,進(jìn)行比例在0.5~2.0之間的隨機(jī)整體縮放。模型訓(xùn)練過程中的優(yōu)化器采用Adam[23]。與傳統(tǒng)的隨機(jī)梯度下降算法相比,Adam能夠動(dòng)態(tài)調(diào)整算法內(nèi)超參數(shù)的學(xué)習(xí)率,使模型訓(xùn)練過程中的參數(shù)變化更加平穩(wěn),而且對內(nèi)存的需求相對較小。批大小的設(shè)定和實(shí)驗(yàn)的硬件環(huán)境有關(guān),如設(shè)置過大則會(huì)超過圖形處理單元(GPU)顯存容量,本實(shí)驗(yàn)分別設(shè)定為12和6。采用多項(xiàng)式Poly衰減學(xué)習(xí)率策略,學(xué)習(xí)率會(huì)隨著訓(xùn)練批次的變化而逐漸減小。設(shè)lr為學(xué)習(xí)率,power為衰減系數(shù),iter為批次大小,則衰減公式如式(7)所示:
(7)
PASCAL VOC2012數(shù)據(jù)集廣泛用于物體識(shí)別、目標(biāo)檢測等領(lǐng)域,也是圖像語義分割中常用的數(shù)據(jù)集之一。該數(shù)據(jù)集包含1464張訓(xùn)練圖片和1449張驗(yàn)證圖片。實(shí)驗(yàn)中隨機(jī)裁剪圖像的大小為256×256,模型的損失 (loss) 與精度(acc)隨迭代次數(shù)(step) 的變化過程如圖7所示。
從圖7中可看出,經(jīng)過約230次的迭代,模型損失與精度達(dá)到收斂。為進(jìn)一步驗(yàn)證本文所提出網(wǎng)絡(luò)和算法實(shí)現(xiàn)的效果,以mIoU與mPA為評(píng)價(jià)指標(biāo),與FCN-8s、SegNet、Deeplab-v2、PSPNet等進(jìn)行分析比較。在VOC2012數(shù)據(jù)集上的語義分割性能如表1所示,相比其他4種方法,本文所提出的方法具有最佳的分割準(zhǔn)確率(mIoU和mPA指標(biāo)值均為最高),最高分別提高15.9%、3.57%,達(dá)到78.1%、92.67%。
圖7 訓(xùn)練過程中模型損失與精度的變化Fig. 7 Model loss and accuracy during training
表1 基于VOC2012的mIoU與mPATab. 1 mIoU and mPA based on VOC2012
與FCN-8s、PSPNet、GroundTruth相比,語義分割的效果如圖8所示。其中,黑色部分表示背景,不同的顏色區(qū)域則對應(yīng)不同的類別。
圖8 在VOC2012中的分割效果Fig. 8 Segmentation effect on VOC2012
FCN-8s在語義分割中存在分割遺漏的問題,如第2組(行)忽略了圖像邊緣的顯示器,第4組(行)對后面汽車的分割明顯不完整;PSPNet的分割效果與本文所提出網(wǎng)絡(luò)的效果較為接近,在第2組(行)PSPNet能夠正確識(shí)別出其中的顯示器,但類別識(shí)別錯(cuò)誤,而本文所提出的方法則能夠正確地識(shí)別出對象的類別;第3組(行),F(xiàn)CN-8s無法精細(xì)分割人物的手部,PSPNet人物的手部粘連在一起,而本文所提出的方法能夠清晰地辨識(shí)出人物的手部,即對物體的類別識(shí)別和細(xì)節(jié)邊緣上有所提升,也驗(yàn)證了所提出的殘差注意力模型的有效性。
Cityscape數(shù)據(jù)集是擁有50多個(gè)城市街道場景的大型數(shù)據(jù)集,并以無人駕駛的視角用視頻序列的方式記錄街道上的圖像,共有5000張圖片,包括2975張訓(xùn)練圖片、500張驗(yàn)證圖片和1525張測試圖片。該數(shù)據(jù)集中圖像的分辨率為2048×1024,受計(jì)算資源的限制,實(shí)驗(yàn)中將其隨機(jī)裁剪為713×713。不同于VOC2012,Cityscape擁有更多的圖像用于學(xué)習(xí),同時(shí)也存在更加復(fù)雜的場景和類別,要求模型對場景的理解能力更高。針對該數(shù)據(jù)集的實(shí)驗(yàn)結(jié)果如表2所示。與其他 4種方法相比,本文所提出的方法具有最佳的分割準(zhǔn)確率(mIoU和mPA指標(biāo)值均為最高),最高分別提高17.8%、13.3%,達(dá)到66.5%、88.7%。另外,由于Cityscape數(shù)據(jù)集本身類別較多、場景復(fù)雜、每種類別和細(xì)小物體也多,所以在該數(shù)據(jù)集上的mIoU普遍比在VOC2012數(shù)據(jù)集中的低。
表2 基于Cityscape的mIoU與mPATab. 2 mIoU and mPA based on Cityscape
與SegNet、PSPNet、GroundTruth相比,在Cityscape數(shù)據(jù)集中的語義分割效果如圖9所示。SegNet傾向于識(shí)別對象的類別, 但不能很好地處理對象的輪廓,尤其是對車、樹林、建筑等物體。如第1組(行)中道路旁邊的圓柱,其邊緣明顯比PSPNet和本文所提出方法的分割效果差,第2組(行)中的紅綠燈也是類似;在第2組中,由于嬰兒車上的小孩和車處于粘連狀態(tài),PSPNet無法正確分辨兩者的正確位置,而本文所提出方法的分割效果與真實(shí)標(biāo)簽更為接近;在第3組(行)中,由于燈柱部分很細(xì),PSPNet的分割中產(chǎn)生斷層現(xiàn)象,而本文所提出的方法則可以很好地分割出這類細(xì)小的物體。
圖9 基于Cityscape的語義分割效果Fig. 9 Semantic Segmentation Effect based on Cityscape
隨著深度學(xué)習(xí)的崛起,圖像語義分割成了近幾年的研究熱點(diǎn)。在編解碼結(jié)構(gòu)的基礎(chǔ)上,對語義分割領(lǐng)域中分割類別邊緣粗糙、多尺度物體識(shí)別能力不強(qiáng)的等問題進(jìn)行研究,提出基于殘差注意力和金字塔上采樣的圖像語義分割網(wǎng)絡(luò)。其中,殘差注意力模型,可增強(qiáng)對圖像細(xì)節(jié)特征的關(guān)注度,加強(qiáng)不同尺度特征圖之間的關(guān)系,從而得到更加精細(xì)和準(zhǔn)確的分割效果。通過設(shè)計(jì)聯(lián)合金字塔上采樣模塊,提高了網(wǎng)絡(luò)對多尺度物體和復(fù)雜場景的識(shí)別能力。最后基于Pascal VOC 2012和Cityscape數(shù)據(jù)集,通過實(shí)驗(yàn)對不同網(wǎng)絡(luò)的語義分割效果進(jìn)行對比驗(yàn)證。結(jié)果表明,本文所提出的網(wǎng)絡(luò)和方法在分割準(zhǔn)確度(mIoU、mPA)和分割效果方面有著較好的表現(xiàn)。接下來,我們將聚焦于基于語義分割的語義理解及其在人機(jī)交互領(lǐng)域中的應(yīng)用。