羅會(huì)蘭 黎 宵
語義分割是計(jì)算機(jī)視覺基本任務(wù)之一,其研究目的是為圖像中的每一個(gè)像素點(diǎn)分配與之相對(duì)應(yīng)的類別標(biāo)記,所以可以認(rèn)為其屬于像素級(jí)分類.它主要用在多個(gè)具有挑戰(zhàn)性的應(yīng)用領(lǐng)域,例如:自動(dòng)駕駛、醫(yī)療圖像分割、圖像編輯等.因?yàn)檎Z義分割涉及像素級(jí)分類和目標(biāo)定位,所以如何獲取有效的語義上下文信息和如何利用原始圖像中的空間細(xì)節(jié)信息是處理語義分割問題必須考慮的兩個(gè)因素.
目前,語義分割最流行的算法是采用類似全卷積網(wǎng)絡(luò)(Fully convolutional network,FCN)[1]的形式,如圖1(a)所示,采用這種形式的分割網(wǎng)絡(luò)模型是將研究的重點(diǎn)放在提取圖像的豐富語義上下文信息上.在深度卷積網(wǎng)絡(luò)中,感受野大小決定著網(wǎng)絡(luò)可以獲得多大范圍的語義上下文信息,擴(kuò)張卷積被用來增加網(wǎng)絡(luò)感受野從而提升分割性能[2?4].為了捕捉到圖像中不同尺度的目標(biāo),PSPNet (Pyramid scene parsing network)[5]通過空間金字塔方式的全局池化操作來獲取多個(gè)不同大小的子區(qū)域的特征信息,DeepLabV3[6]則采用空間金字塔方式的擴(kuò)張卷積.全卷積網(wǎng)絡(luò)結(jié)構(gòu)雖然能有效獲得語義上下文信息,但它是通過池化操作或帶有步長(zhǎng)的卷積來獲得,這會(huì)導(dǎo)致空間細(xì)節(jié)信息的丟失,從而影響語義分割的精度.
為了彌補(bǔ)空間細(xì)節(jié)信息的丟失,許多研究工作采用編碼器?解碼器結(jié)構(gòu)[7?9],如圖1(b)所示.編碼端通常是分類網(wǎng)絡(luò),它采用一系列下采樣操作來編碼語義上下文信息,而解碼端通過使用上采樣處理來恢復(fù)空間細(xì)節(jié)信息.為了更好地恢復(fù)編碼過程丟失的空間細(xì)節(jié)信息,一些工作[10?12]采用了U 型網(wǎng)絡(luò)結(jié)構(gòu),如圖1(c)所示,LRN (Label refinement network)[10]和FC-DenseNet[11]在解碼端通過橫向連接的方式,使用各編碼塊的特征信息,聯(lián)合高層語義信息恢復(fù)出圖像的空間細(xì)節(jié)信息,SegNet[12]則是使用各編碼塊產(chǎn)生的最大池化索引來輔助解碼端上采樣特征信息.這種結(jié)構(gòu)的編碼端采用傳統(tǒng)的分類網(wǎng)絡(luò)完成特征提取,沒有顯式上下文信息提取模板,學(xué)習(xí)到的特征可能缺少語義分割任務(wù)所須的屬性.同時(shí),根據(jù)可視化卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)[13],網(wǎng)絡(luò)高層特征含有極少空間細(xì)節(jié)信息,所以在解碼端過度使用編碼端高層特征,不僅不能有效地利用編碼端的空間信息,還會(huì)提升網(wǎng)絡(luò)模型的復(fù)雜度以及計(jì)算冗余,不利于分割算法的實(shí)時(shí)應(yīng)用.
基于以上分析,本文提出了一種基于上下文和淺層空間編解碼網(wǎng)絡(luò)的圖像語義分割方法,如圖1(d)所示.整個(gè)模型采用編解碼框架,本文的動(dòng)機(jī)是在編碼端即能獲取高質(zhì)量的語義上下文信息,同時(shí)又能充分保留原始圖像中的空間細(xì)節(jié)信息.受BiSeNet[14]啟發(fā),本文在編碼端使用二分支策略,上下文路徑用于獲取有效的上下文語義信息,而空間路徑則充分保留圖像的空間細(xì)節(jié)信息,將語義上下文信息的提取與空間細(xì)節(jié)信息的保留進(jìn)行分離.根據(jù)可視化深度卷積神經(jīng)網(wǎng)絡(luò)[13],深度卷積網(wǎng)絡(luò)的淺層攜帶大量的空間細(xì)節(jié)信息,而高層特征基本不包含空間細(xì)節(jié)信息.本文將空間路徑設(shè)計(jì)為反U 型結(jié)構(gòu),這樣能將編碼網(wǎng)絡(luò)的淺層和中層特征進(jìn)行從上到下的融合,以充分利用編碼網(wǎng)絡(luò)淺中層特征所攜帶的空間細(xì)節(jié)信息.受MobileNetV2[15]啟發(fā),本文設(shè)計(jì)了鏈?zhǔn)椒粗脷埐钅K,對(duì)編碼網(wǎng)絡(luò)淺中層特征所攜帶的空間細(xì)節(jié)信息進(jìn)行處理,達(dá)到保留空間信息的同時(shí)提升特征的語義表達(dá)能力.在編碼網(wǎng)絡(luò)的上下文路徑,本文設(shè)計(jì)了語義上下文模塊,它由混合擴(kuò)張卷積模塊和殘差金字塔特征提取模塊組成.使用混合擴(kuò)張卷積模塊是為了進(jìn)一步提升網(wǎng)絡(luò)感受野,而殘差金字塔特征提取模塊可以獲取多尺度特征信息.在解碼端,首先對(duì)編碼端的空間信息和語義上下文信息進(jìn)行融合,受R2U-Net[16]啟發(fā),本文設(shè)計(jì)了帶有殘差的循環(huán)卷積網(wǎng)絡(luò)優(yōu)化模塊對(duì)融合的特征進(jìn)一步優(yōu)化,最后采用可學(xué)習(xí)的反卷積將優(yōu)化的分割圖還原到原始圖像大小.

圖1 本文提出的網(wǎng)絡(luò)結(jié)構(gòu)與其他網(wǎng)絡(luò)結(jié)構(gòu)Fig.1 The network structures of our method and other methods
本文主要貢獻(xiàn)為:
1)提出了基于上下文和淺層空間信息結(jié)合的編解碼網(wǎng)絡(luò)用于圖像語義分割,即能獲取高質(zhì)量的上下文語義信息又能保留有效的空間細(xì)節(jié)信息.
2)為了獲得高效的語義上下文信息,本文組合混合擴(kuò)張卷積模塊和殘差金字塔特征提取模塊,以提升網(wǎng)絡(luò)感受野以及獲取周圍特征信息和多尺度特征信息;對(duì)于淺層空間信息的使用,本文設(shè)計(jì)了反U 型結(jié)構(gòu)的空間路徑以利用編碼端淺中層特征所攜帶的大量空間信息.針對(duì)編碼端不同層的特征差異,在空間路徑中設(shè)計(jì)了鏈?zhǔn)椒粗脷埐钅K以保留空間細(xì)節(jié)信息并提升特征的語義表達(dá)能力,這樣不僅可以彌補(bǔ)高層語義信息中丟失的位置信息還使得模型輕量化.
3)本文設(shè)計(jì)了殘差循環(huán)卷積模塊,對(duì)語義特征和空間信息融合后的分割特征進(jìn)一步優(yōu)化,提升分割性能.本文方法在3 個(gè)基準(zhǔn)數(shù)據(jù)集CamVid、SUN RGB-D 和Cityscapes 上取得了有競(jìng)爭(zhēng)力的結(jié)果.
編碼器?解碼器網(wǎng)絡(luò)已經(jīng)在語義分割任務(wù)中得到廣泛應(yīng)用,它由編碼器模塊和解碼器模塊組成,編碼器模塊逐漸減小特征圖來編碼高層語義信息,而解碼器模塊是逐漸恢復(fù)空間細(xì)節(jié)信息.ENet[7]沒有使用任何來自于編碼端的信息,直接在解碼端恢復(fù)空間信息.文獻(xiàn)[11?12,17]則是通過跳層連接在解碼端使用編碼端特征恢復(fù)空間信息.G-FRNet[18]通過門控機(jī)制對(duì)編碼端各相鄰模塊特征進(jìn)行門控選擇,再用于解碼端恢復(fù)出空間信息.為了更有效地利用編碼端空間信息,本文設(shè)計(jì)了一種反U 型結(jié)構(gòu)的空間路徑,以充分利用編碼端淺中層特征信息中所攜帶的空間細(xì)節(jié)信息,有效地提升分割性能.
最近的一些研究工作[14,19?20]采用二分支網(wǎng)絡(luò)結(jié)構(gòu),即將空間信息保留和上下文信息提取放在網(wǎng)絡(luò)中的不同分支.網(wǎng)絡(luò)的深層分支采用可分離卷積等輕量化操作來獲取語義上下文信息,淺層分支采用簡(jiǎn)單的卷積操作以保留有效的空間細(xì)節(jié)信息.這種結(jié)構(gòu)的網(wǎng)絡(luò)模型更輕量化,推動(dòng)了語義分割的實(shí)時(shí)應(yīng)用,但很難提取到有效的語義上下文信息,再加上兩種特征信息差距較大,進(jìn)行融合并不能產(chǎn)生很好的效果.為此,本文使用參數(shù)適中、分類表達(dá)能力較好的ResNet-34[21]作為骨干網(wǎng)絡(luò),結(jié)合本文的語義上下文模塊以獲取更強(qiáng)的語義表達(dá)能力.對(duì)于空間細(xì)節(jié)信息,本文充分利用編碼端淺層和中層特征中所攜帶的空間細(xì)節(jié)信息,而不使用高層來恢復(fù)空間細(xì)節(jié)信息,這樣能高效地使用編碼端有用的空間細(xì)節(jié)信息,并且有利于與語義上下文信息融合,同時(shí)減小了模型復(fù)雜度.
空間金字塔模塊是一種學(xué)習(xí)上下文語義信息的有效模塊,利用平行的空間金字塔池化以捕獲多尺度的語義信息,成功用于不同計(jì)算機(jī)視覺任務(wù)中,如目標(biāo)檢測(cè)和語義分割等.PSPNet[5]以空間金字塔方式的池化操作,來獲取特征圖中不同子區(qū)域的全局信息.由于池化是一種下采樣操作,會(huì)嚴(yán)重丟失特征信息,DeepLabV3[6]以并聯(lián)的方式利用不同擴(kuò)張率的擴(kuò)張卷積來獲取多尺度上下文信息,有效提升了分割性能,但由于使用的擴(kuò)張卷積的擴(kuò)張率非常大,最大為18,這使得擴(kuò)張卷積稀疏化嚴(yán)重,提取到的特征缺少細(xì)節(jié)信息.與他們利用空間金字塔結(jié)構(gòu)的方式不同,本文設(shè)計(jì)了混合擴(kuò)張卷積模塊和殘差金字塔特征提取模塊,先使用混合擴(kuò)張卷積模塊提升網(wǎng)絡(luò)感受野,在獲取上下文信息的同時(shí)減少擴(kuò)張卷積稀疏化,再使用殘差金字塔特征提取模塊,以并聯(lián)較小擴(kuò)張率的擴(kuò)張卷積來獲取多尺度信息,避免特征信息的丟失,即可以增加網(wǎng)絡(luò)感受野又可以獲取高質(zhì)量的多尺度特征信息.
本文提出了一種新的語義分割方法,稱為基于上下文和淺層空間編解碼網(wǎng)絡(luò)的圖像語義分割方法,能夠?qū)W習(xí)豐富的上下文語義信息以及獲取更加有效的空間信息.在解碼端采用了優(yōu)化模塊進(jìn)一步優(yōu)化語義上下文信息與空間信息的融合特征,幫助解碼端恢復(fù)更加精準(zhǔn)的像素級(jí)預(yù)測(cè)分割圖.整個(gè)網(wǎng)絡(luò)結(jié)構(gòu)如圖2 所示.第2.1 節(jié)對(duì)提出的網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行整體闡述,第2.2 節(jié)論述其中的混合擴(kuò)張卷積模塊(Hybrid atrous convolution block,HAB),第2.3節(jié)對(duì)殘差金字塔特征提取模塊(Residual pyramid feature block,RPB)進(jìn)行論述,第2.4 節(jié)闡述了鏈?zhǔn)椒粗脷埐钅K(Chain inverted residual block,CRB),最后,第2.5 節(jié)論述了殘差循環(huán)卷積模塊(Residual recurrent convolution block,RRB).

圖2 本文網(wǎng)絡(luò)框架(HAB:混合擴(kuò)張卷積模塊;RPB:殘差金字塔特征提取模塊;CRB:鏈?zhǔn)綒埐钅K;RRB:殘差循環(huán)卷積模塊;Deconv:轉(zhuǎn)置卷積;R:擴(kuò)張率)Fig.2 The network framework of our method (HAB:hybrid atrous convolution block;RPB:residual pyramid feature block;CRB:chain inverted residual block;RRB:residual recurrent convolution block;Deconv:transposed convolution;R:atrous rate)
本文網(wǎng)絡(luò)模型采用編解碼網(wǎng)絡(luò)框架,在編碼端采用兩分支方式分別獲取有效的高層上下文信息和低層的空間信息.由于深度卷積網(wǎng)絡(luò)隨著網(wǎng)絡(luò)層數(shù)的不斷加深會(huì)產(chǎn)生梯度消失或爆炸的現(xiàn)象,這不利于深度卷積網(wǎng)絡(luò)的學(xué)習(xí)和訓(xùn)練,而ResNet[21]網(wǎng)絡(luò)通過在每個(gè)模塊之間添加跳層連接方式,避免了梯度消失問題同時(shí)加速了網(wǎng)絡(luò)的收斂.所以在編碼端,本文的骨干網(wǎng)絡(luò)使用了在ImageNet[22]數(shù)據(jù)集上預(yù)訓(xùn)練的ResNet-34,去除了最大池化層和全連接層以適應(yīng)語義分割任務(wù).為了區(qū)分ResNet-34 的層級(jí)特征,本文將ResNet-34 分為5 個(gè)模塊,其結(jié)構(gòu)如圖3 所示,用Conv、Block 1 表示淺層,Block 2 表示中層,Block 3 和Block 4 表示高層和特高層特征提取模塊,淺層和中層特征用于空間信息提取路徑,而高層特征作為語義上下文信息提取模塊的輸入特征.為了提升網(wǎng)絡(luò)的感受野,本文將ResNet-34 網(wǎng)絡(luò)的后兩個(gè)模塊Block 3 和Block 4 中的普通卷積替換為擴(kuò)張卷積,這里擴(kuò)張卷積與普通卷積具有相同的參數(shù),擴(kuò)張率分別為2 和4.在骨干網(wǎng)絡(luò)Res-Net-34 中,除Block 1 外,其他各模塊存在一個(gè)步長(zhǎng)為2 的卷積,使得骨干網(wǎng)絡(luò)最終輸出的特征圖大小為輸入圖像的1/16.

圖3 ResNet-34 骨干網(wǎng)絡(luò)結(jié)構(gòu)Fig.3 The backbone structure of ResNet-34
為了獲取高質(zhì)量的語義上下文信息,本文設(shè)計(jì)了語義上下文信息模塊,它由混合擴(kuò)張卷積模塊和殘差金字塔特征提取模塊組成.在利用空間信息方面,與U 型結(jié)構(gòu)不同的是,本文沒有利用編碼端不含有細(xì)粒度空間信息的高層特征來恢復(fù)空間信息,這樣不僅高效利用了編碼端空間細(xì)節(jié)信息還節(jié)省了模型內(nèi)存開銷,也不需要像ContextNet[19]一樣去另外設(shè)計(jì)空間信息獲取路徑,而是共享編碼端淺、中層特征,使得獲取的空間信息最有效.本文將空間信息路徑設(shè)計(jì)為反U 型結(jié)構(gòu),結(jié)合本文設(shè)計(jì)的鏈?zhǔn)椒粗脷埐钅K,在保留淺層空間信息的同時(shí)提升特征的語義信息.在解碼端,將編碼端的高級(jí)語義上下文信息進(jìn)行雙線性上采樣與空間細(xì)節(jié)信息以逐像素點(diǎn)求和方式進(jìn)行融合,再對(duì)融合的特征進(jìn)一步優(yōu)化,設(shè)計(jì)了殘差循環(huán)卷積網(wǎng)絡(luò)優(yōu)化模塊,最后對(duì)得到的分割圖使用轉(zhuǎn)置卷積恢復(fù)出原始圖像大小.
為了使網(wǎng)絡(luò)有效地收斂,與PSPNet[5]和BiSeNet[14]類似,本文在上下文語義路徑的末端加入監(jiān)督信息,即引入額外的輔助損失函數(shù)對(duì)上下文語義路徑產(chǎn)生的初始分割結(jié)果進(jìn)行監(jiān)督學(xué)習(xí).輔助損失函數(shù)和最終分割結(jié)果的主損失函數(shù)均是使用多元交叉熵?fù)p失函數(shù),如式(1),其中softmax為函數(shù),pred是預(yù)測(cè)分割圖,Y是真值分割圖,Cost表示多元交叉熵?fù)p失函數(shù),其定義如式(2)所示,其中N是樣本數(shù).

網(wǎng)絡(luò)訓(xùn)練時(shí),總的損失函數(shù)如式(3) 所示,loss1是主損失函數(shù),loss2 是輔助損失函數(shù),引入輔助損失函數(shù)有助于優(yōu)化學(xué)習(xí)過程,并且為輔助損失函數(shù)添加權(quán)重因子α來平衡輔助損失與主損失函數(shù)對(duì)網(wǎng)絡(luò)的表達(dá)能力.本文實(shí)驗(yàn)中將權(quán)重因子設(shè)為0.05.

擴(kuò)張卷積根據(jù)擴(kuò)張率在卷積核中相鄰兩個(gè)權(quán)值之間插入相應(yīng)的零,因此通過增加擴(kuò)張率可以增大卷積核對(duì)特征圖的局部計(jì)算區(qū)域,從而可以識(shí)別更大范圍的圖像特征信息.擴(kuò)張卷積在二維信號(hào)中的定義如式(4),其中輸入特征圖x(m,n) 與卷積核w(i,j)進(jìn)行卷積操作產(chǎn)生輸出y(m,n),卷積核的長(zhǎng)度和寬度為M、N,r是擴(kuò)張率,后面部分出現(xiàn)的r都表示擴(kuò)張率,它控制卷積核對(duì)輸入x的采樣大小,這相當(dāng)于在卷積核中相鄰兩個(gè)權(quán)值之間插入r?1個(gè)零.當(dāng)r=1 時(shí)就是普通卷積,擴(kuò)張卷積通過修改擴(kuò)張率可以自適應(yīng)地改變感受野大小.不同擴(kuò)張率的擴(kuò)張卷積如圖4 所示.相比于傳統(tǒng)卷積,擴(kuò)張卷積在沒有增加網(wǎng)絡(luò)參數(shù)的情況下就可以獲得更大的感受野.擴(kuò)張卷積是一種稀疏計(jì)算,即當(dāng)擴(kuò)張率很大時(shí),卷積核的參數(shù)數(shù)量沒有變化,但對(duì)特征圖的作用區(qū)域卻很大,這就導(dǎo)致擴(kuò)張卷積從特征圖中提取到的有用信息量很少,從而使擴(kuò)張卷積失去了建模能力.


圖4 3 種不同擴(kuò)張率的擴(kuò)張卷積,從左到右分別為 r=1,3,4Fig.4 Illustrations of the atrous convolution with three different atrous rates,r=1,3,4
本文提出的混合擴(kuò)張卷積模塊的設(shè)計(jì)動(dòng)機(jī)是獲取像素點(diǎn)周圍特征信息的同時(shí)可以提升網(wǎng)絡(luò)感受野,并且減少特征信息的丟失.根據(jù)CGNet[23],通過融合小感受野和大感受野特征能夠獲取同一像素點(diǎn)的周圍特征信息.受Inception-v4[24]啟發(fā),本文提出了混合擴(kuò)張卷積模塊,通過混合疊加的方式來獲取周圍特征信息以及增加網(wǎng)絡(luò)感受野.如圖5 所示,整個(gè)模塊分為兩個(gè)分支,首先特征圖通過一個(gè)1×1的卷積,目的是減少特征通道數(shù),從而減少網(wǎng)絡(luò)參數(shù).然后,一個(gè)分支通過 3×3 的卷積,另一分支進(jìn)入5 種不同的擴(kuò)張卷積:擴(kuò)張率為2 的 3×3 卷積層、擴(kuò)張率為4 的 3×3卷積層以及擴(kuò)張率為3 的5×5卷積層進(jìn)行融合,再融合擴(kuò)張率為2 的 5×5 卷積層與擴(kuò)張率為2 的 7×7 卷積層,目的是獲取像素點(diǎn)的周圍特征信息.最后將兩個(gè)分支進(jìn)行融合,最終可以獲得周圍特征信息和大感受野的同時(shí),信息丟失較少.這里每一個(gè)卷積層后面跟著批歸一化處理(Batch normalization)[25]和Relu(x)max(0,x)激活函數(shù).

圖5 混合擴(kuò)張卷積模塊Fig.5 Hybrid atrous convolution block
在語義分割場(chǎng)景中,物體大小存在多樣性,如果使用單一尺寸的圖像特征,可能丟失圖像中小物體或不顯著物體的特征信息.為了分割不同尺度的物體,本文提出殘差金字塔特征提取模塊來獲得具有判別力的多尺度特征,通過使用多個(gè)不同感受野大小的擴(kuò)張卷積來提取不同尺度的圖像特征信息,從而識(shí)別不同大小的物體.本文采用了4 個(gè)不同擴(kuò)張率的擴(kuò)張卷積,它們的擴(kuò)張率分別為:2,3,5,7.同時(shí),為了利用全局場(chǎng)景上下文信息,本文將全局池化操作擴(kuò)展到擴(kuò)張卷積空間金字塔池化中.
本文提出的殘差金字塔特征提取模塊結(jié)構(gòu)如圖6 所示,輸入特征首先進(jìn)入擴(kuò)張卷積金字塔模塊,它由4 個(gè)不同擴(kuò)張率的擴(kuò)張卷積和全局平局池化以并聯(lián)的方式組成,其中4 個(gè)擴(kuò)張卷積輸出特征通道數(shù)都相同.對(duì)全局平均池化的結(jié)果進(jìn)行 1×1 卷積操作和雙線性上采樣操作,使其與擴(kuò)張卷積的輸出大小相同.然后對(duì)它們進(jìn)行拼接操作以獲取多尺度特征信息.最后與殘差進(jìn)行融合,提升語義表達(dá)能力的同時(shí)加速梯度反向傳播.

圖6 殘差金字塔特征提取模塊Fig.6 Residual pyramid feature block
本文提出鏈?zhǔn)椒粗脷埐钅K構(gòu)造從編碼端到解碼端的空間路徑,實(shí)現(xiàn)原始圖像的空間信息與高層語義上下文信息融合.考慮到高層特征已經(jīng)不包含細(xì)粒度的空間信息,本文將空間路徑設(shè)計(jì)為反U 型結(jié)構(gòu),只將含有豐富空間信息的低中層特征與語義信息進(jìn)行融合.受MobileNetv2[15]啟發(fā),本文提出的鏈?zhǔn)椒粗脷埐钅K的結(jié)構(gòu)如圖7 所示.每個(gè)鏈?zhǔn)椒粗脷埐钅K將多個(gè)反置殘差結(jié)構(gòu)以鏈?zhǔn)浇Y(jié)構(gòu)相結(jié)合,目的是保留空間信息的同時(shí)提升特征圖的語義表達(dá)能力.反置殘差結(jié)構(gòu)由兩個(gè) 1×1 點(diǎn)級(jí)卷積層和一個(gè) 3×3分組卷積層組成.輸入特征首先進(jìn)入1×1點(diǎn)級(jí)卷積層來增加特征通道數(shù),再進(jìn)入 3×3 的分組卷積層,其中分組數(shù)等于輸入通道數(shù),最后經(jīng)過一個(gè) 1×1 點(diǎn)級(jí)卷積層來降低特征通道數(shù).需要注意的是本文所用的3 個(gè)鏈?zhǔn)綒埐钅K的鏈長(zhǎng)不一樣,如圖1 所示,連接低層特征的CRB_1 的鏈長(zhǎng)為3,即由3 個(gè)反轉(zhuǎn)殘差結(jié)構(gòu)鏈接而成,CRB_2 的鏈長(zhǎng)為2,而連接中層特征的CRB_3 鏈長(zhǎng)為1.通過鏈長(zhǎng)的不同設(shè)置,可以有針對(duì)性地提升淺層特征的語義表達(dá)能力.反置殘差結(jié)構(gòu)使用點(diǎn)級(jí)卷積和分組卷積,將通道操作和空間操作進(jìn)行分離,避免通道操作對(duì)空間信息的影響.分組卷積與普通卷積相比,參數(shù)量也更少.同時(shí),設(shè)計(jì)了殘差學(xué)習(xí)以避免梯度消失和爆炸.整個(gè)鏈?zhǔn)綒埐顑?yōu)化模塊可以抽象為

圖7 鏈?zhǔn)椒粗脷埐钅KFig.7 Chain inverted residual block

其中,f(·) 表示反置殘差塊的函數(shù)形式,從函數(shù)形式中可以發(fā)現(xiàn),下一層特征信息除了與反轉(zhuǎn)殘差模塊有關(guān),還與上一層特征信息相關(guān),這樣既可以保留空間信息又可以提升特征的語義信息.
在解碼端,需要將編碼端產(chǎn)生的高級(jí)語義信息與空間細(xì)節(jié)信息進(jìn)行融合,本文以簡(jiǎn)單的求和方式進(jìn)行融合.為了對(duì)融合后的特征進(jìn)一步優(yōu)化,本文設(shè)計(jì)了優(yōu)化模塊.如圖8 所示,優(yōu)化模塊由兩個(gè)3×3的循環(huán)卷積網(wǎng)絡(luò)以及殘差組成,其中每個(gè)3×3循環(huán)卷積都含有批歸一化處理和Relu 激活函數(shù).循環(huán)卷積網(wǎng)絡(luò)有助于特征積累,相當(dāng)于一個(gè)自學(xué)習(xí)的過程,用于提升網(wǎng)絡(luò)的表達(dá)能力.除此之外,循環(huán)卷積相當(dāng)于對(duì)卷積層的重復(fù)利用,減少了參數(shù)量.整個(gè)模塊在提升語義識(shí)別能力的同時(shí)保留了空間信息.再是使用殘差結(jié)構(gòu)加速網(wǎng)絡(luò)的信息流動(dòng),同時(shí)有助于梯度的反向傳播.優(yōu)化模塊可以抽象為式(6),其中,f(·) 為循環(huán)卷積的函數(shù)表示.


圖8 殘差循環(huán)卷積模塊Fig.8 Residual recurrent convolution block
本文提出的方法在3 個(gè)基準(zhǔn)數(shù)據(jù)集上進(jìn)行評(píng)估:CamVid[26]、SUN RGB-D[27]和Cityscapes[28].實(shí)驗(yàn)環(huán)境配置:操作系統(tǒng)為64 位的Windows10、CPU為Intel(R) Xeon(R) CPU E5-2690 v4 @ 2.60 GHz,內(nèi)存為512 GB,顯卡是16 GB 的NVIDIA Tesla P100-PCIE.本文實(shí)驗(yàn)系統(tǒng)實(shí)現(xiàn)是基于深度學(xué)習(xí)開源框架Pytorch.
除預(yù)訓(xùn)練的ResNet-34 外,網(wǎng)絡(luò)的語義上下文模塊參數(shù)初始化是基于Kaiming[29]初始化方法.對(duì)于訓(xùn)練過程,本文使用Adam[30]優(yōu)化器來優(yōu)化網(wǎng)絡(luò)模型參數(shù),按照之前的工作PSPNet[5]和DeepLabV3[6],采用Poly 學(xué)習(xí)率策略動(dòng)態(tài)改變網(wǎng)絡(luò)學(xué)習(xí)率大小.Poly 學(xué)習(xí)策略的定義是其中,initial_lr,max_iter,iter分別表示初始學(xué)習(xí)率、最大迭代次數(shù)、當(dāng)前迭代次數(shù),初始化學(xué)習(xí)率設(shè)為0.0001,power 設(shè)為0.9,在CamVid 數(shù)據(jù)集上訓(xùn)練迭代150 次,在SUN RGB-D 數(shù)據(jù)集上訓(xùn)練迭代80 次,在Cityscapes 數(shù)據(jù)集上訓(xùn)練迭代250 次.本文使用像素級(jí)交叉熵?fù)p失函數(shù)作為目標(biāo)函數(shù)來優(yōu)化網(wǎng)絡(luò)參數(shù),同時(shí)忽略未標(biāo)記的像素點(diǎn).
本文使用當(dāng)前最有效且普遍使用的平均交并比(Mean of class-wise intersection over union,MIoU)作為語義分割評(píng)估指標(biāo)[1],它用于計(jì)算預(yù)測(cè)分割圖與真實(shí)標(biāo)記圖之間的相似度,也就是通過計(jì)算預(yù)測(cè)分割圖與真實(shí)標(biāo)記圖之間的交集除于它們的并集,計(jì)算式為

其中,nc表示圖像中包含的類別總數(shù),nij表示實(shí)際類別為i而被預(yù)測(cè)為類別j的像素點(diǎn)數(shù)目,ti表示實(shí)際類別為i的像素點(diǎn)數(shù)目.MIoU的取值范圍為[0,1],當(dāng)MIoU的值越大,說明預(yù)測(cè)分割圖與真值標(biāo)記圖的重疊部分越大,也即預(yù)測(cè)的分割圖越準(zhǔn)確.
CamVid 數(shù)據(jù)集是自動(dòng)駕駛領(lǐng)域中的道路場(chǎng)景數(shù)據(jù)集,這個(gè)數(shù)據(jù)集包含376 幅訓(xùn)練圖片、101 幅驗(yàn)證圖片、233 幅測(cè)試圖片,圖片分辨率為360×480像素,共有11 個(gè)語義類別.按照ENet[7],本文使用帶權(quán)類別交叉熵?fù)p失以彌補(bǔ)數(shù)據(jù)集中小數(shù)目的類別,即為每個(gè)語義類別分配不同的權(quán)重,用于解決CamVid數(shù)據(jù)集中類別不平衡問題.類別權(quán)重計(jì)算如式(8),其中,class表示類別,pclass表示類別class在圖像像素中出現(xiàn)的概率,t是超參數(shù),這里設(shè)置為1.02.

本文方法在CamVid 測(cè)試集上的結(jié)果與當(dāng)前分割方法的比較如表1 所示,本文方法在測(cè)試時(shí)沒有采用后置處理以及一些測(cè)試技巧,像多尺度.從實(shí)驗(yàn)結(jié)果可以看出,本文方法比使用U 型結(jié)構(gòu)和二分支結(jié)構(gòu)的語義分割方法的性能要好,說明本文方法能夠獲取高質(zhì)量的上下文語義特征和有效使用淺層的空間細(xì)節(jié)信息.從圖9 中的實(shí)驗(yàn)效果圖可以看出,本文方法基本能夠準(zhǔn)確識(shí)別圖像中物體位置并且分割出物體,而SegNet 在第1 行第3 列的分割圖中未能識(shí)別出路燈;CGNet 在第2 行第4 列的分割圖中將建筑物錯(cuò)誤識(shí)別為樹木以及BiSeNet (xception)在第2 行第5 列的分割圖中將道路錯(cuò)誤識(shí)別為汽車類型以及對(duì)遠(yuǎn)距離小物體路燈未能識(shí)別出來.

圖9 在Camvid 測(cè)試集上本文方法與SegNet[12]、CGNet[23]和BiSeNet (xception)[14]方法的定性比較Fig.9 Qualitative comparisons with SegNet[12],CGNet[23] and BiSeNet (xception)[14] on the CamVid test set

表1 本文方法與其他方法在CamVid 測(cè)試集上的MIoU 比較(%)Table 1 Comparison of MIoU between our method and the state-of-the-art methods on the CamVid test set (%)
為了比較本文方法的效率,在表2 中比較了本文模型與其他方法的參數(shù)量,以及在NVIDIA Tesla P100 顯卡上測(cè)試的處理速度.如表2 中結(jié)果所示,相比SegNet,本文方法在分割精度上有很大的提升.對(duì)比BiSeNet (xception),本文方法在分割精度上取得了明顯的提升.相比BiSeNet (ResNet18),本文方法參數(shù)量更少.

表2 在CamVid 數(shù)據(jù)集上的性能比較Table 2 Performance comparisons of our method and the state-of-the-art methods on the CamVid dataset
SUN RGB-D 是一個(gè)非常大的室內(nèi)場(chǎng)景數(shù)據(jù)集,它包含5 285 幅訓(xùn)練圖片和5 050 幅測(cè)試圖片,并且有37 個(gè)室內(nèi)物體類別,如墻壁、地板、桌子、椅子、沙發(fā)、床等.由于圖片中的物體有多個(gè)不同的形狀、大小以及擺放的位置,這些因素對(duì)語義分割來說是一個(gè)很大的挑戰(zhàn).本文只使用了RGB 數(shù)據(jù)而沒有用深度信息.在實(shí)驗(yàn)過程中,本文從訓(xùn)練集中抽出1 000 幅圖片作為驗(yàn)證數(shù)據(jù)集,用于檢測(cè)模型性能并選擇泛化能力最好的訓(xùn)練模型.
本文方法在SUN RGB-D 測(cè)試集上的實(shí)驗(yàn)結(jié)果與當(dāng)前分割方法的比較如表3 所示.可以看出,本文方法在SUN RGB-D 數(shù)據(jù)集上有比較大的性能提升,從而驗(yàn)證了本文方法的有效性.可視化分割結(jié)果如圖10 所示,可以發(fā)現(xiàn)本文方法可以有效地分割圖像中的物體.

圖10 本文方法在SUN RGB-D 測(cè)試集上的定性結(jié)果Fig.10 Qualitative results of our method on the SUN RGB-D test set

表3 本文方法與其他方法在SUN RGB-D 測(cè)試集上的MIoU 比較 (%)Table 3 Comparison of MIoU between our method and the state-of-the-art methods on the SUN RGB-D test set (%)
Cityscapes 數(shù)據(jù)集是一個(gè)高分辨率城市道路場(chǎng)景分析數(shù)據(jù)集,每幅圖像的分辨率為2 048×1 024像素,具有19 個(gè)語義類別,包含5 000 幅高質(zhì)量標(biāo)記圖和2 萬幅粗略標(biāo)記圖,本文只使用具有5 000幅精準(zhǔn)標(biāo)記圖的圖像用于實(shí)驗(yàn).按照官方標(biāo)準(zhǔn),這個(gè)數(shù)據(jù)集分成3 個(gè)子集,2 975 幅訓(xùn)練集、500 幅驗(yàn)證集、1 525 幅測(cè)試集.在訓(xùn)練時(shí),本文將圖像裁剪為512×768 像素大小,然后在驗(yàn)證集上評(píng)估性能,并將測(cè)試集上得到的結(jié)果提交到官方評(píng)估系統(tǒng)中.
本文方法在Cityscapes 測(cè)試集上的實(shí)驗(yàn)結(jié)果與當(dāng)前分割方法的比較如表4 所示,可以看出本文取得了有競(jìng)爭(zhēng)的分割結(jié)果,本文沒有采用任何測(cè)試技巧,像PSPNet 中多尺度.雖然PSPNet 取得了最好的分割效果,但其使用ResNet101 作為骨干網(wǎng)絡(luò),這導(dǎo)致它的網(wǎng)絡(luò)復(fù)雜度最高,達(dá)到了65 MB 參數(shù)量,在一般設(shè)備中基本無法運(yùn)行.本文采用參數(shù)量適中的ResNet34 作為骨干網(wǎng)絡(luò)并取得較好的性能,雖然BiSeNet (ResNet18)的骨干網(wǎng)絡(luò)只采用了ResNet18,但它使用了多尺度訓(xùn)練的前置處理,還使用了通道注意力機(jī)制模塊來優(yōu)化語義特征,所以也取得了比本文更好一些的性能.而且由于本文提出的模型使用了分組卷積和點(diǎn)級(jí)卷積等輕量型模塊,參數(shù)量比BiSeNet (ResNet18)更少.圖11 是在驗(yàn)證集上的可視化分割圖效果,可以看出本文方法基本可以準(zhǔn)確地分割圖像中的物體.

圖11 本文方法在Cityscapes 驗(yàn)證集上的定性結(jié)果Fig.11 Qualitative results of our method on the Cityscapes val set

表4 本文方法與其他方法在Cityscapes 測(cè)試集上的比較Table 4 Comparisons of our method with the state-ofthe-art methods on the Cityscapes test set
為了驗(yàn)證所提出模塊的有效性,本小節(jié)對(duì)所提出的方法在CamVid 數(shù)據(jù)集上進(jìn)行了消融實(shí)驗(yàn).
3.5.1 驗(yàn)證混合擴(kuò)張卷積模塊和殘差金字塔特征提取模塊的有效性
本文采用4 種方案來評(píng)估混合擴(kuò)張模塊和殘差金字塔特征提取模塊性能:1)在編碼端的上下文路徑只使用混合擴(kuò)張卷積模塊;2)在編碼端的上下文路徑只使用殘差金字塔特征提取模塊;3)在編碼端上下文路徑?jīng)]有混合擴(kuò)張卷積和殘差金字塔特征提取模塊;4)在編碼端上下文路徑使用混合擴(kuò)張卷積模塊和殘差金字塔特征提取模塊.實(shí)驗(yàn)結(jié)果如表5所示,從表中可以看出,同時(shí)使用混合擴(kuò)張卷積模塊和殘差金字塔特征提取模塊時(shí)獲得的分割性能最好,說明這兩個(gè)模塊能獲取有效的周圍特征信息以及多尺度特征,從而提升網(wǎng)絡(luò)分割性能.

表5 混合擴(kuò)張卷積和殘差金字塔特征提取模塊對(duì)性能的影響 (HAB:混合擴(kuò)張卷積模塊;RPB:殘差金字塔特征提取模塊)Table 5 The influence of HAB and RPB on performance (HAB:hybrid atrous convolution block;RPB:residual pyramid feature block)
3.5.2 驗(yàn)證混合擴(kuò)張卷積的有效性
本文采用4 種方案來評(píng)估混合擴(kuò)張卷積的有效性:1)只使用所有分支擴(kuò)張率為1 的混合擴(kuò)張卷積模塊;2)只使用分支擴(kuò)張率分別為2,3,4 的混合擴(kuò)張卷積模塊;3)所有分支擴(kuò)張率為1 的混合擴(kuò)張卷積模塊加殘差金字塔特征提取模塊;4)本文方法,即分支擴(kuò)張率分別為2,3,4 的混合擴(kuò)張卷積模塊加殘差金字塔特征提取模塊.實(shí)驗(yàn)結(jié)果如表6 所示,只使用所有分支擴(kuò)張率為1 的混合擴(kuò)張卷積模塊雖然比只使用分支擴(kuò)張率分別為2,3,4 的混合擴(kuò)張卷積模塊分割性能好,但加入殘差金字塔特征提取模塊后,本文設(shè)計(jì)的分支擴(kuò)張率分別為2,3,4 的混合擴(kuò)張卷積模塊加殘差金字塔特征提取模塊的模型獲得了最好的效果.

表6 混合擴(kuò)張卷積模塊對(duì)性能的影響 (HAB:混合擴(kuò)張卷積模塊;RPB:殘差金字塔特征提取模塊)Table 6 The influence of HAB on performance (HAB:hybrid atrous convolution block;RPB:residual pyramid feature block)
3.5.3 驗(yàn)證混合擴(kuò)張卷積模塊與殘差金字塔特征提取模塊的結(jié)構(gòu)順序
本文采用4 種方案來驗(yàn)證上下文模塊順序:1)混合擴(kuò)張卷積模塊加混合擴(kuò)張卷積模塊;2)殘差金字塔特征提取模塊加殘差金字塔特征提取模塊;3)殘差金字塔特征提取模塊加混合擴(kuò)張卷積模塊;4)本文方法,即混合擴(kuò)張卷積模塊加殘差金字塔特征提取模塊.實(shí)驗(yàn)結(jié)果如表7 所示,在語義上下文特征提取模塊中同時(shí)使用混合擴(kuò)張卷積模塊和殘差金字塔特征提取模塊能夠獲得最佳的性能,由于殘差金字塔特征提取模塊的拼接操作會(huì)影響處理速度,從處理速度和性能上,混合擴(kuò)張卷積模塊加殘差金字塔特征提取模塊的組合更加有效.

表7 混合擴(kuò)張卷積模塊與殘差金字塔特征提取模塊的結(jié)構(gòu)順序?qū)π阅艿挠绊?(HAB:混合擴(kuò)張卷積模塊;RPB:殘差金字塔特征提取模塊)Table 7 The influence of the structural order of HAB and RPB on performance (HAB:hybrid atrous convolution block;RPB:residual pyramid feature block)
3.5.4 驗(yàn)證空間路徑的有效性
本文采用了5 種方案來評(píng)估編碼端空間路徑的有效性:1)沒有空間路徑;2)使用編碼端骨干網(wǎng)絡(luò)淺層特征作為空間路徑;3)使用編碼端骨干網(wǎng)絡(luò)的高層特征作為空間路徑;4)反U 型結(jié)構(gòu)的空間路徑但其中每個(gè)路徑?jīng)]有鏈?zhǔn)椒粗脷埐钅K;5)本文方法,即反U 型結(jié)構(gòu)的空間路徑,其中每個(gè)路徑使用鏈?zhǔn)椒粗脷埐钅K.實(shí)驗(yàn)結(jié)果如表8 所示,使用空間路徑可以將性能從63.55%提升到66.79%,說明使用反U 型結(jié)構(gòu)能夠非常有效地利用編碼端淺、中層特征,這也說明編碼端的淺、中層特征包含了解碼時(shí)所需的空間細(xì)節(jié)信息.使用鏈?zhǔn)椒粗脷埐顗K能使性能從66.79%提升到68.26%,說明鏈?zhǔn)椒粗脷埐钅K可以保留空間細(xì)節(jié)信息的同時(shí)提升其語義表達(dá)能力,從而提升語義分割性能.

表8 不同空間路徑對(duì)性能的影響 (CRB:鏈?zhǔn)椒粗脷埐钅K;SP:空間路徑;LFP:淺層特征作為空間路徑;HFP:高層特征作為空間路徑;RUP:反U 型空間路徑)Table 8 The influence of different spatial paths on performance (CRB:chain inverted residual block;SP:spatial path;LFP:low-level feature as spatial path;HFP:high-level feature as spatial path;RUP:reverse u-shaped spatial path)
3.5.5 驗(yàn)證鏈?zhǔn)椒粗脷埐钅K鏈長(zhǎng)設(shè)置的合理性
在空間路徑中,本文采用長(zhǎng)度遞減的鏈長(zhǎng)分別處理深度模型的淺、中及高層特征信息,目的是減少融合時(shí)各層的語義差異性.表9 中展現(xiàn)了在CamVid數(shù)據(jù)集上不同鏈長(zhǎng)設(shè)置對(duì)本文提出框架分割性能的影響.從表9 中的結(jié)果可以看出,本文針對(duì)淺、中及高層特征信息分別使用遞減鏈長(zhǎng)的反置殘差模塊更加有效.

表9 鏈?zhǔn)椒粗脷埐钅K不同鏈長(zhǎng)對(duì)性能的影響Table 9 The influence of CRB chain length on performance
3.5.6 驗(yàn)證殘差循環(huán)卷積模塊的有效性
為了表明所提出優(yōu)化模塊的有效性,本文將使用優(yōu)化模塊和不使用優(yōu)化模塊進(jìn)行對(duì)比.如表10所示,使用優(yōu)化模塊能使分割性能提升0.76 %,說明優(yōu)化模塊可以改善融合后的語義特征,從而增強(qiáng)了分割性能.

表10 殘差循環(huán)卷積模塊對(duì)性能的影響Table 10 The influence of RRB on performance
本文深入研究了采用編解碼結(jié)構(gòu)和二分支結(jié)構(gòu)的語義分割方法,提出了一種新的端到端的深度學(xué)習(xí)框架用于語義分割.在編碼端采用二分支結(jié)構(gòu)以獲取高質(zhì)量的上下文語義特征,同時(shí)有效利用編碼端淺中層的空間細(xì)節(jié)信息.本文方法在3 個(gè)語義分割基準(zhǔn)數(shù)據(jù)集上取得了有競(jìng)爭(zhēng)力的結(jié)果,一系列消融實(shí)驗(yàn)也驗(yàn)證了本文提出的各功能模塊的有效性.通過可視化預(yù)測(cè)結(jié)果,發(fā)現(xiàn)本文方法在小物體上的分割還不夠精準(zhǔn),進(jìn)一步的工作擬研究產(chǎn)生這種現(xiàn)象的原因,并進(jìn)一步改進(jìn)分割模型.