蘇曉東,李世洲,趙佳圓,亮洪宇,張玉榮,徐紅巖
(1.哈爾濱商業(yè)大學(xué) 計(jì)算機(jī)與信息工程學(xué)院,哈爾濱 150028;2.黑龍江省電子商務(wù)與智能信息處理重點(diǎn)實(shí)驗(yàn)室,哈爾濱 150028)
語(yǔ)義分割是計(jì)算機(jī)視覺的一項(xiàng)主要任務(wù),根據(jù)存在的真實(shí)目標(biāo)對(duì)圖像中的每個(gè)像素進(jìn)行類別標(biāo)注,廣泛應(yīng)用于醫(yī)療影像[1]、VR 技術(shù)[2]、地理信息系統(tǒng)[3]、無(wú)人駕駛[4-5]等領(lǐng)域。以無(wú)人駕駛為例,無(wú)人駕駛需要在不斷變化的環(huán)境中進(jìn)行空間信息感知,即時(shí)規(guī)劃路徑和執(zhí)行行駛指令,因此需要利用語(yǔ)義分割技術(shù)識(shí)別以圖像方式獲取的空間信息,如車道標(biāo)記、交通標(biāo)志、周邊車輛以及行人等,從而對(duì)精確識(shí)別圖像中不同尺度目標(biāo)提出了更高的要求。
早期的語(yǔ)義分割技術(shù)主要是通過隨機(jī)森林(RF)[6]、支持向量機(jī)(SVM)[7]等技術(shù)實(shí)現(xiàn)特征提取,再使用匹配分類器進(jìn)行逐像素分類。CHANDRA等[8]提出全卷積網(wǎng)絡(luò)(FCN)并將該網(wǎng)絡(luò)用于語(yǔ)義分割,從此深度學(xué)習(xí)技術(shù)在語(yǔ)義分割領(lǐng)域得到快速推廣。SHELHAMER 等[9]和RONNEBERGER 等[10]提出U-Net 網(wǎng)絡(luò)模型,它是一個(gè)對(duì)稱的編解碼網(wǎng)絡(luò)結(jié)構(gòu),通過復(fù)制剪裁的方式在解碼過程中有效融合深層語(yǔ)義信息和淺層語(yǔ)義信息。之后還出現(xiàn)了DeepLab系列[11-13]和CRFasRNN[14-15]等深度 神經(jīng)網(wǎng)絡(luò)。DeepLab 系列中 的DeepLabv3+[16-17]通過使用空洞空間卷積池化金字塔(ASPP)[18]模塊增大感受野,增強(qiáng)了像素之間的聯(lián)系,從而更好地獲取上下文信息,但這類網(wǎng)絡(luò)往往容易丟失小尺度目標(biāo),邊界分割也不連續(xù)。
本文構(gòu)建基于DeepLabv3+的多級(jí)疊加和注意力機(jī)制的圖像語(yǔ)義分割網(wǎng)絡(luò)模型(DmsefNet),通過多級(jí)疊加的方式增強(qiáng)模型對(duì)局部特征的獲取能力,并采用注意力機(jī)制模塊對(duì)有意義的特征進(jìn)行適度增強(qiáng),從而提高小尺度目標(biāo)和局部邊界的分割精度。
DeepLabv3+是經(jīng)典的語(yǔ)義分割網(wǎng)絡(luò)結(jié)構(gòu),是在使用DeepLabv3 網(wǎng)絡(luò)作為編碼器的基礎(chǔ)上在其后面添加解碼器而得到的新網(wǎng)絡(luò)。DeepLabv3+的編碼器部分從深度卷積神經(jīng)網(wǎng)絡(luò)(DCNN)[19]中提取圖像的特征信息,利用ASPP 模塊中的不同擴(kuò)張率(r)的空洞卷積來(lái)獲得不同大小感受野的特征圖。解碼器部分將從DCNN 中提取的低分辨率特征與上采樣的高分辨率特征進(jìn)行融合,以聚合不同區(qū)域的上下文信息,再利用3×3 卷積和4 倍雙線性插值的方法恢復(fù)空間信息和細(xì)化目標(biāo)邊界,得到精度較高的預(yù)測(cè)圖像。DeepLabv3+網(wǎng)絡(luò)結(jié)構(gòu)如圖1 所示。
圖1 DeepLabv3+網(wǎng)絡(luò)結(jié)構(gòu)Fig.1 DeepLabv3+network structure
主干網(wǎng)絡(luò)采用MSRA 團(tuán)隊(duì)設(shè)計(jì)的輕量級(jí)網(wǎng)絡(luò)Xception,其作用是進(jìn)行特征提取。在Xception 的結(jié)構(gòu)中采用深度可分離卷積代替FCN 結(jié)構(gòu)中的常規(guī)卷積[20-21],深度可分離卷積的方式是逐通道卷積,即一個(gè)通道只被一個(gè)卷積核卷積,之后使用1×1 卷積進(jìn)行通道整合。將深度可分離卷積應(yīng)用于深度神經(jīng)網(wǎng)絡(luò),可在保持常規(guī)卷積效果的同時(shí)大量減少網(wǎng)絡(luò)參數(shù)。Xception 網(wǎng)絡(luò)結(jié)構(gòu)如圖2所示[22]。
圖2 Xception 網(wǎng)絡(luò)結(jié)構(gòu)Fig.2 Xception network structure
DeepLabv3+網(wǎng)絡(luò)中的ASPP 模塊的主要功能是對(duì)主干網(wǎng)絡(luò)提取的特征圖進(jìn)行多尺度特征提取。由于ASPP 模塊中采用的3×3 卷積造成了模型參數(shù)量較大,且使用的常規(guī)卷積還存在許多重疊信息的冗余計(jì)算,而使用不同擴(kuò)張率的空洞卷積來(lái)增大感受野時(shí),還會(huì)使許多有價(jià)值的全局特征和上下文信息不能被充分獲取,不利于網(wǎng)絡(luò)分割精度的提高。此外,對(duì)于輸入特征層中有效采樣點(diǎn)的稀疏性,ASPP空洞卷積常常會(huì)使大量的局部細(xì)節(jié)特征丟失,導(dǎo)致網(wǎng)絡(luò)對(duì)于小尺度目標(biāo)和局部邊界的分割效果不佳。為此,建立基于多級(jí)疊加和注意力機(jī)制的圖像語(yǔ)義分割模型,通過構(gòu)造多尺度疊加模塊和多尺度平均池化模塊實(shí)現(xiàn)多級(jí)疊加,充分利用上下文信息補(bǔ)充局部細(xì)節(jié)特征。引入注意力機(jī)制模塊使網(wǎng)絡(luò)更多地關(guān)注特征信息中有意義的特征,抑制無(wú)意義的特征,從而提高網(wǎng)絡(luò)分割能力。
所提模型的基本結(jié)構(gòu)如圖3 所示,整體采用編碼器-解碼器結(jié)構(gòu)。編碼器部分包含主干網(wǎng)絡(luò)Xception、多尺度平均池化模塊、由不同擴(kuò)張率的空洞卷積組成的多尺度疊加模塊以及注意力機(jī)制模塊。在解碼器部分,采用雙線性插值法對(duì)特征圖進(jìn)行上采樣,并結(jié)合通道維度信息進(jìn)行像素填充,最后使用Softmax 激活函數(shù)進(jìn)行結(jié)果預(yù)測(cè),輸出預(yù)測(cè)圖像。
圖3 基于多級(jí)疊加和注意力機(jī)制的圖像語(yǔ)義分割模型結(jié)構(gòu)Fig.3 Structure of image semantic segmentation model based on multi-level superposition and attention mechanism
多尺度平均池化模塊通過采用不同尺度的平均池化對(duì)主干網(wǎng)絡(luò)輸出的特征圖做進(jìn)一步的信息提取,分別得到4×4、6×6 和8×8 像素的新特征圖。這是對(duì)目標(biāo)特征進(jìn)行逐步細(xì)化的過程,通過對(duì)特征分塊平均池化可以得到更精細(xì)的局部信息,結(jié)構(gòu)如圖4 所示。由于網(wǎng)絡(luò)在訓(xùn)練過程中學(xué)習(xí)了過多的參數(shù),增加了訓(xùn)練復(fù)雜度,容易發(fā)生過擬合現(xiàn)象。針對(duì)過擬合問題,在深度可分離卷積層后增加了L2正則化操作,使網(wǎng)絡(luò)權(quán)重參數(shù)盡可能少,以解決過擬合問題。
圖4 多尺度平均池化模塊結(jié)構(gòu)Fig.4 Multi-scale average pooling module structure
在DeepLabv3+網(wǎng)絡(luò)中,由于ASPP 空洞卷積在輸入特征層中的采樣點(diǎn)分布相對(duì)稀疏,大量的局部細(xì)節(jié)特征很容易被丟失,導(dǎo)致網(wǎng)絡(luò)對(duì)于小尺度目標(biāo)和局部邊界的分割效果不佳。除此之外,使用不同擴(kuò)張率的空洞卷積增大感受野來(lái)提取上下文特征,使許多有價(jià)值的全局特征和上下文信息不能被充分獲取,降低了網(wǎng)絡(luò)的分割能力。針對(duì)以上問題,多尺度疊加模塊采用了不同尺度的空洞卷積進(jìn)行級(jí)聯(lián),用不同擴(kuò)張率的空洞卷積得到不同的感受野,有效提取分布在不同范圍內(nèi)的細(xì)節(jié)信息。多尺度疊加模塊結(jié)構(gòu)如圖5 所示。首先,在第一層的結(jié)構(gòu)中采用擴(kuò)張率為2、3、4、5、7 的空洞卷積和全局池化操作進(jìn)行初步的多尺度特征提取,得到不同范圍內(nèi)的細(xì)節(jié)信息,采用跳躍連接的方式將主干網(wǎng)絡(luò)中的兩個(gè)不同尺度的特征信息與多尺度特征輸出進(jìn)行通道連接,補(bǔ)充丟失的細(xì)節(jié)信息,再將得到的特征進(jìn)行通道融合,形成特征圖。然后,使用擴(kuò)張率依次為1、3、4、5、6 等不同的空洞卷積核對(duì)特征圖進(jìn)行局部和多尺度特征提取,使卷積核的采樣更加密集,從而有助于進(jìn)一步獲取局部和小尺度目標(biāo)特征的相關(guān)信息。最后,通過多尺度平均池化模塊將上層提取到的特征圖與下層特征信息進(jìn)行通道融合。在多尺度疊加模塊中,將常規(guī)的3×3 卷積層用深度可分離卷積層來(lái)替換,進(jìn)一步減少網(wǎng)絡(luò)設(shè)計(jì)中的參數(shù)量。
圖5 多尺度疊加模塊結(jié)構(gòu)Fig.5 Multi-scale superposition module structure
從多尺度平均池化模塊和多尺度疊加模塊中得到的特征圖包含目標(biāo)位置、目標(biāo)邊緣等細(xì)節(jié)特征信息,但其中也存在很多無(wú)意義的特征信息,這些信息極大地影響了語(yǔ)義分割效果。注意力機(jī)制模塊可以使網(wǎng)絡(luò)更多地關(guān)注有意義的特征,抑制無(wú)意義的特征,從而提高分割效果。注意力機(jī)制模塊結(jié)構(gòu)如圖6所示。
圖6 注意力機(jī)制模塊結(jié)構(gòu)Fig.6 Attention mechanism module structure
首先,通道注意力模塊對(duì)輸入特征圖進(jìn)行全局平均池化(GAP)和全局最大池化(GMP),將特征圖轉(zhuǎn)化為C×1×1 的張量,同時(shí)將其送入具有兩層隱藏層的感知機(jī)。然后,將得到的兩個(gè)特征通過Sigmoid非線性激活函數(shù)計(jì)算出通道注意力權(quán)重Mc。最后,通過乘法計(jì)算把逐點(diǎn)通道注意力加權(quán)映射到原通道特征圖,從而得到一個(gè)新的通道注意力的特征圖(Re-weight),完成通道注意力對(duì)原始特征的重新標(biāo)定。計(jì)算表達(dá)式如式(1)所示:
其中:σ(?)表示Sigmoid 非線性激活函數(shù);Mc(F)表示由通道注意力機(jī)制得到的特征圖,Mc(F) ?R,F(xiàn)為輸入的特征圖;Fc,avg是對(duì)通道進(jìn)行平均池化得到的特征圖,F(xiàn)c,max是對(duì)通道進(jìn)行最大池化得到的特征圖;W0和W1是感知機(jī)的權(quán)重。
空間注意力模塊將通道注意力模塊的輸出特征圖作為輸入。首先基于通道維度分別進(jìn)行全局最大池化操作和平均池化操作。之后經(jīng)過卷積核為7×7的卷積層做特征提取,同時(shí)將其通道數(shù)變?yōu)镠×W×1,其中,H為特征圖的高度,W為特征圖的寬度,經(jīng)過Sigmoid 非線性激活函數(shù)的計(jì)算得出空間注意力的權(quán)重Mc。最后通過逐像素乘法計(jì)算,將Mc映射到輸入特征圖,完成空間注意力的標(biāo)定。計(jì)算表達(dá)式如式(2)所示:
其中:f7×7表示卷積核大小為7×7 的卷積運(yùn)算;Fs,max是對(duì)空間進(jìn)行最大池化得到的特征圖;Fs,avg是對(duì)空間進(jìn)行平均池化得到的特征圖。
解碼器模塊結(jié)構(gòu)如圖7 所示。解碼器模塊的功能是對(duì)特征圖進(jìn)行分辨率恢復(fù)和特征信息補(bǔ)充。解碼器部分將多尺度疊加模塊和注意力機(jī)制模塊得到的特征圖與低層特征圖進(jìn)行融合,實(shí)現(xiàn)對(duì)在編碼器中進(jìn)行下采樣操作時(shí)丟失的信息進(jìn)行補(bǔ)償,豐富圖像的特征信息。使用雙線性上采樣重構(gòu)與輸入圖像分辨率相同的特征圖,最后用Softmax 激活函數(shù)進(jìn)行結(jié)果預(yù)測(cè),輸出預(yù)測(cè)圖像。
圖7 解碼器模塊結(jié)構(gòu)Fig.7 Decoder module structure
實(shí)驗(yàn)使用PASCAL VOC2012 和SUIM 數(shù)據(jù)集,其中,PASCAL VOC2012 用于模型訓(xùn)練和精度評(píng)估,SUIM 用于泛化性能測(cè)試。PASCAL VOC2012 數(shù)據(jù)集包含1 464 張訓(xùn)練和1 449 張驗(yàn)證圖片,訓(xùn)練集和驗(yàn)證集都公開了對(duì)應(yīng)的標(biāo)簽圖,對(duì)于語(yǔ)義分割所使用的數(shù)據(jù)集有1 個(gè)背景類別和20 個(gè)目標(biāo)類別。SUIM 數(shù)據(jù)集包含1 525 張訓(xùn)練和110 張測(cè)試圖片,對(duì)于語(yǔ)義分割所使用的數(shù)據(jù)集有人、魚、沉船等8 個(gè)類別。
采用精度評(píng)價(jià)指標(biāo)平均交并比(Mean Intersection over Union,MIoU)[23-24]對(duì)實(shí)驗(yàn)結(jié)果進(jìn)行評(píng)價(jià),MIoU是對(duì)每一類的交并比(Intersection over Union,IoU)進(jìn)行求和再求平均。IoU 和MIoU 的計(jì)算表達(dá)式如式(3)和式(4)所示:
其中:IIoU表示網(wǎng)絡(luò)對(duì)某一類別的預(yù)測(cè)值與真實(shí)值之間的交集,再與并集之間的比值;c表示類別數(shù);TP是真正例,即預(yù)測(cè)值是正例,真實(shí)值也是正例;FP表示偽正例,即預(yù)測(cè)值是正例,真實(shí)值是反例;FN表示偽反例,即預(yù)測(cè)值是反例,真實(shí)值是正例。
實(shí)驗(yàn)在TensorFlow 框架上實(shí)現(xiàn),所用操作系統(tǒng)為Windows 10 64 位操作系統(tǒng),處理器 為Intel?CoreTMi7-10700KF CPU @ 3.80 GHz,顯卡為NVDIA GeForce RTX 2080 Ti,在網(wǎng)絡(luò)超參數(shù)設(shè)置中,輸入圖像分辨率為512×512 像素,每輪訓(xùn)練的批量為4,訓(xùn)練輪數(shù)為100。
損失函數(shù)使用交叉熵函數(shù),用于圖像語(yǔ)義分割任務(wù)的常用損失函數(shù)是像素級(jí)別的交叉熵?fù)p失,這種損失會(huì)逐個(gè)檢查每個(gè)像素,對(duì)每個(gè)像素類別的預(yù)測(cè)結(jié)果與標(biāo)簽向量進(jìn)行比較,表達(dá)式如式(5)所示:
整個(gè)圖像的損失就是對(duì)每個(gè)像素的損失求平均值,yp是預(yù)測(cè)的結(jié)果,yt是正確的結(jié)果。
在實(shí)驗(yàn)中,學(xué)習(xí)率初始值設(shè)置為0.001。主干網(wǎng)絡(luò)采用MSRA 團(tuán)隊(duì)設(shè)計(jì)的輕量級(jí)網(wǎng)絡(luò)Xception 進(jìn)行特征提取,并對(duì)Xception 結(jié)構(gòu)的權(quán)重進(jìn)行凍結(jié)用于遷移學(xué)習(xí)。隨著網(wǎng)絡(luò)訓(xùn)練輪數(shù)的不斷增加,當(dāng)驗(yàn)證集的損失值在連續(xù)3 輪訓(xùn)練不發(fā)生變化時(shí),學(xué)習(xí)率變到原來(lái)的1/2,同時(shí)設(shè)置了提前結(jié)束訓(xùn)練的參數(shù)。當(dāng)驗(yàn)證集的損失值10 輪訓(xùn)練不發(fā)生變化時(shí),結(jié)束訓(xùn)練。在數(shù)據(jù)增強(qiáng)方面,采用[0.7,1.1]的隨機(jī)縮放和隨機(jī)水平翻轉(zhuǎn)以及對(duì)圖像進(jìn)行[-10°,10°]的隨機(jī)旋轉(zhuǎn)操作,進(jìn)一步增強(qiáng)網(wǎng)絡(luò)魯棒性。
對(duì)于編碼器中的主干網(wǎng)絡(luò),分別選用VGG16、ResNet50、MobileNetv2 和Xception 網(wǎng)絡(luò)進(jìn)行實(shí)驗(yàn)得出預(yù)測(cè)結(jié)果,并用多級(jí)疊加模塊結(jié)構(gòu)進(jìn)行實(shí)驗(yàn)比較,結(jié)果如表1 所示,可以看出Xception 網(wǎng)絡(luò)精度最高,因此選取Xception 網(wǎng)絡(luò)作為主干網(wǎng)絡(luò)。
表1 不同主干網(wǎng)絡(luò)實(shí)驗(yàn)結(jié)果對(duì)比 Table 1 Comparison of experimental results of different backbone networks
在實(shí)驗(yàn)過程中,通過對(duì)各個(gè)模塊進(jìn)行消融實(shí)驗(yàn)驗(yàn)證本文設(shè)計(jì)模塊的有效性,實(shí)驗(yàn)結(jié)果如表2 所示,其中,√為加入對(duì)應(yīng)模塊的操作,CBAM、SE、Coordinate Attention 分別為卷積注意力機(jī)制、通道注意力機(jī)制和坐標(biāo)注意力機(jī)制。由表2 可以看出,DeepLabv3+模型在融合了多級(jí)疊加和注意力機(jī)制模塊后,分割效果得到顯著提升。
表2 消融實(shí)驗(yàn)結(jié)果 Table 2 Ablation experiment results %
在PASCAL VOC2012 數(shù)據(jù)集上將DmsefNet 與11 種典型的語(yǔ)義分割模型進(jìn)行比較,各模型在PASCAL VOC2012 數(shù)據(jù)集上的MIoU 指標(biāo)如表3 所示。由表3 可以看出,DmsefNet 的MIoU 指標(biāo)相比于PspNet 提升了3.0 個(gè)百分點(diǎn),相比于DeconNet 和FCN 分別提升了10.8 和23.4 個(gè)百分點(diǎn),可見DmsefNet 在MIoU 上優(yōu)于其他模型。
表3 不同模型在PASCAL VOC2012 數(shù)據(jù)集上的MIoU 比較 Table 3 MIoU comparison of different models on the PASCAL VOC2012 dataset %
DmsefNet 與FCN 和DeconvNet 的可視化結(jié)果如圖8 所示,每行的第1 幅圖像為輸入原圖,第2 幅圖像為標(biāo)簽,第3~5 幅圖像分別為FCN、DeconvNet和DmsefNet 的分割結(jié)果。由圖8 可以看出:DmsefNet 相比于FCN 和DeconvNet 在牛角和鳥尾等的局部分割上效果更好并實(shí)現(xiàn)了邊界的連續(xù)性;DmsefNet 相比于DeconvNet 在椅子的分割上,沒有誤分割的情況發(fā)生,并且提高了對(duì)局部目標(biāo)邊界的分割效果,同時(shí)相對(duì)FCN 保留了對(duì)椅子腿的正確分割。DmsefNet 在驗(yàn)證集上的分割可視化結(jié)果如圖9所示,可以直觀地看出DmsefNet 能夠較好地分割出小尺度目標(biāo)。
圖8 不同模型在PASCAL VOC2012 數(shù)據(jù)集上的分割可視化結(jié)果Fig.8 Segmentation visualization results of different models on the PASCAL VOC2012 dataset
圖9 DmsefNet 分割可視化結(jié)果Fig.9 Segmentation visualization results of DmsefNet
總而言之,通過構(gòu)建多尺度平均池化模塊、多尺度疊加模塊和注意力機(jī)制提高了局部特征的獲取能力,進(jìn)一步增強(qiáng)了上下文信息的聯(lián)系,提升了對(duì)圖像局部目標(biāo)和小尺度目標(biāo)的分割效果。實(shí)驗(yàn)結(jié)果表明,DmsefNet 基于多級(jí)疊加和注意力機(jī)制能夠獲得較好的圖像語(yǔ)義分割結(jié)果,并且提高了圖像語(yǔ)義分割精度,同時(shí)對(duì)于分割的局部視覺效果也有所提升。
為了證明DmsefNet 的泛化能力,采用SUIM 數(shù)據(jù)集進(jìn)行泛化實(shí)驗(yàn),DmsefNet 與DeepLabv3+和U-Net 模型在SUIM 數(shù)據(jù)集上的MIoU 結(jié)果如表4 所示,可以看出DmsefNet 在DeepLabv3+和U-Net 模型上分別提高了19.1 和16.4 個(gè)百分點(diǎn)。DmsefNet 與DeepLabv3+和U-Net 的可視化結(jié)果如圖10 所示,可以看出DmsefNet 在目標(biāo)邊界的連續(xù)性上明顯優(yōu)于另外兩種模型。
表4 3 種模型在SUIM 數(shù)據(jù)集上的MIoU 比較 Table 4 MIoU comparison of three models on the SUIM dataset %
圖10 不同模型在SUIM 數(shù)據(jù)集上的分割可視化結(jié)果Fig.10 Segmentation visualization results of different models on the SUIM dataset
本文在DeepLabv3+網(wǎng)絡(luò)結(jié)構(gòu)的基礎(chǔ)上進(jìn)行改進(jìn),保持其原有的編碼器-解碼器結(jié)構(gòu),建立基于多級(jí)疊加和注意力機(jī)制的圖像語(yǔ)義分割模型。在編碼器中將原有的ASPP 模塊加以修改并串聯(lián)一個(gè)含有不同擴(kuò)張率的擴(kuò)張卷積組成的多尺度疊加模塊,運(yùn)用不同尺度的平均池化獲得特征圖像中不同尺度的信息,使模型能夠充分利用上下文信息,補(bǔ)充丟失的局部細(xì)節(jié)特征。采用注意力機(jī)制模塊聚焦于目標(biāo)區(qū)域特征,有助于獲取更明確的上下文語(yǔ)義信息的特征圖。在解碼器中運(yùn)用雙線性插值恢復(fù)圖像分辨率。實(shí)驗(yàn)結(jié)果表明,所提模型對(duì)小尺度目標(biāo)以及局部邊界具有相對(duì)較強(qiáng)的分割性能,同時(shí)相比于現(xiàn)有的語(yǔ)義分割模型,在整體分割精度上也有一定的提升。后續(xù)將對(duì)所提模型進(jìn)行輕量化設(shè)計(jì),進(jìn)一步減少網(wǎng)絡(luò)參數(shù),使其適用于自動(dòng)駕駛及醫(yī)學(xué)分割領(lǐng)域。