王兵 瑚琦 卞亞林
關(guān)鍵詞:圖像語義分割;雙分支結(jié)構(gòu);細(xì)節(jié)信息;語義信息
中圖分類號:TP 391 文獻(xiàn)標(biāo)志碼:A
引言
圖像語義分割是計算機視覺的重要研究內(nèi)容之一,其研究發(fā)展經(jīng)歷了3 個階段[1]:傳統(tǒng)方法的研究階段、傳統(tǒng)方法和深度學(xué)習(xí)相結(jié)合的研究階段、基于深度學(xué)習(xí)的研究階段。2015 年Long等[2] 提出了全卷積網(wǎng)絡(luò)(FCN),開創(chuàng)性地將分類網(wǎng)絡(luò)VGG16[3] 中的全連接層改編成卷積層,并在淺層特征和深層特征之間采用跳躍連接,顯著改善了語義分割的性能。FCN 方法的提出促使深度學(xué)習(xí)廣泛應(yīng)用于語義分割領(lǐng)域,大量基于卷積神經(jīng)網(wǎng)絡(luò)( CNN)的語義分割算法隨后相繼出現(xiàn)。
這些算法各有特點,針對性較強,其中的一個重點是改善連續(xù)下采樣操作導(dǎo)致圖像中物體細(xì)節(jié)信息丟失的問題。例如,Noh 等[4] 構(gòu)建編碼器–解碼器網(wǎng)絡(luò)DeconvNet,在解碼器中通過反池化和反卷積操作捕獲物體更精細(xì)的細(xì)節(jié)信息,能夠解決物體的詳細(xì)結(jié)構(gòu)丟失的問題。Badrinarayanan等[5] 提出對稱的編碼器–解碼器網(wǎng)絡(luò)SegNet,編碼器中采用池化索引存儲像素的位置信息,解碼器中使用相應(yīng)編碼器的池化索引執(zhí)行上采樣,進(jìn)而改善了物體的邊緣分割。Yu 等[6] 在Dilation10網(wǎng)絡(luò)中使用空洞卷積進(jìn)行特征提取,在不降低特征圖分辨率的同時擴大了感受野。Chen 等提出的DeepLab[7] 和DeepLabv2[8]網(wǎng)絡(luò)使用全連接條件隨機場(CRF)對分割結(jié)果進(jìn)行后處理,提高了模型捕捉精細(xì)邊緣細(xì)節(jié)的能力。Lin 等[9] 提出的RefineNet 語義分割網(wǎng)絡(luò),為了充分利用下采樣階段的每一層特征,在低級特征和高級特征之間建立多個遠(yuǎn)程連接,用細(xì)粒度的低級特征細(xì)化低分辨率的語義特征。Nekrasov等[10] 在RefineNet的基礎(chǔ)上用內(nèi)核較小的卷積替代內(nèi)核較大的卷積構(gòu)建RefineNet-LW 網(wǎng)絡(luò),有效降低了模型參數(shù)量,同時保持性能基本不變。Paszke 等[11] 提出的ENet 網(wǎng)絡(luò)和Treml 等[12] 提出的SQ 網(wǎng)絡(luò)均采用輕量級的編碼器–解碼器結(jié)構(gòu)進(jìn)行實時語義分割,減少了模型的參數(shù)量卻降低了模型的性能。Pohlen 等[13] 構(gòu)建全分辨率殘差網(wǎng)絡(luò)FRRN,殘差流中以完整圖像分辨率攜帶信息來實現(xiàn)精確的邊界分割。
對圖像進(jìn)行特征提取時,池化層和跨步卷積有效增加了感受野,雖然有利于獲取語義信息,但減小了圖像分辨率,導(dǎo)致物體細(xì)節(jié)信息丟失。上述算法為解決物體細(xì)節(jié)信息丟失的問題,采用了編解碼器網(wǎng)絡(luò)結(jié)構(gòu)、跳躍連接或CRF 后處理等方法,但是這些算法結(jié)構(gòu)仍然冗余繁雜,導(dǎo)致網(wǎng)絡(luò)參數(shù)量大幅增加。
為了在特征提取階段既能有效獲取豐富的語義信息又能減少物體細(xì)節(jié)信息的丟失,同時盡可能降低網(wǎng)絡(luò)的參數(shù)量,本文提出一種雙分支網(wǎng)絡(luò)模型,通過兩個分支分別獲取物體的細(xì)節(jié)信息和語義信息。其中使用淺層網(wǎng)絡(luò)分支來保留圖像中的細(xì)節(jié)信息,生成高分辨率特征,使用深層網(wǎng)絡(luò)分支進(jìn)行下采樣獲取語義信息。淺層網(wǎng)絡(luò)分支能有效減少細(xì)節(jié)信息丟失,提高像素定位的準(zhǔn)確性;深層網(wǎng)絡(luò)分支采用輕量級主干網(wǎng)絡(luò)下采樣,既能提取語義信息又能降低模型參數(shù)量和計算量。最后,將兩個分支獲取的特征信息有效融合,進(jìn)而提升網(wǎng)絡(luò)分割的性能。本文主要工作為:1)提出一種雙分支結(jié)構(gòu)語義分割算法,建立細(xì)節(jié)分支(detail branch,DB)和上下文分支(context branch,CB)分別有效獲取細(xì)節(jié)信息和語義信息;2)構(gòu)建融合模塊(fusion module,F(xiàn)M),將得到的低級細(xì)節(jié)信息和高級語義信息進(jìn)行有效融合;3)在Cityscapes 數(shù)據(jù)集和CamVid 數(shù)據(jù)集上驗證了所提算法的有效性,分別獲得67.4%、58.5% 的均交并比。
1 背景知識
得益于大量已標(biāo)注的公開數(shù)據(jù)集和不斷提高的計算機性能,深度學(xué)習(xí)獲得快速發(fā)展,研究學(xué)者將各種深度學(xué)習(xí)技術(shù)應(yīng)用在不同的計算機視覺任務(wù)中并改善了相應(yīng)任務(wù)的性能。本文提出的雙分支結(jié)構(gòu)語義分割算法涉及密集連接、注意力機制等重要概念,下面對其進(jìn)行簡述。
1.1 密集連接
密集連接網(wǎng)絡(luò)(DenseNet)由Huang 等[14] 在2017 年的CVPR( Computer Vision and? PatternRecognition)會議上提出。DenseNet 主要由密集模塊組成,該模塊中,對于每一層,所有先前層的特征圖用作其輸入,該層的特征圖用作所有后續(xù)層的輸入,這種密集連接的方式改善了網(wǎng)絡(luò)中各層之間的信息流動并有效實現(xiàn)了特征重用。密集模塊的結(jié)構(gòu)圖如圖1 所示,該結(jié)構(gòu)一經(jīng)提出就在圖像分類任務(wù)上展現(xiàn)出了非常出色的結(jié)果。鑒于密集連接能有效實現(xiàn)特征重用的優(yōu)點,本文在細(xì)節(jié)分支中構(gòu)建一個密集模塊來保留物體更多的空間細(xì)節(jié)信息。
1.2 注意力機制
注意力機制的主要功能是對特征圖進(jìn)行特征細(xì)化,以增強信息豐富的特征并抑制無用的特征。注意力模塊具有結(jié)構(gòu)簡單和輕量級的特點,可以很容易地嵌入CNN 相關(guān)網(wǎng)絡(luò)中,因此注意力機制被廣泛應(yīng)用在計算機視覺的許多任務(wù)上,如圖像分類[15]、語義分割[16] 等。通過注意力模塊,網(wǎng)絡(luò)在訓(xùn)練學(xué)習(xí)過程中能獲取到特征圖每個空間位置或每個通道的權(quán)重,按照權(quán)重大小完成對不同空間位置或通道的增強或抑制,從而自適應(yīng)地重新校準(zhǔn)特征圖。
2 雙分支網(wǎng)絡(luò)結(jié)構(gòu)設(shè)計
雙分支網(wǎng)絡(luò)整體的設(shè)計結(jié)構(gòu)圖如圖2 所示。圖2(a)為整體的網(wǎng)絡(luò)結(jié)構(gòu),在輸入圖像之后即分成細(xì)節(jié)分支和上下文分支兩部分,完成各自特征提取后通過融合模塊進(jìn)行特征融合,最后經(jīng)過分類層(classifier)處理得到分割結(jié)果圖。圖2(b)為空間注意力模塊( spatial attention module,SAM),圖2(c)為融合模塊。
2.1 細(xì)節(jié)分支
該分支由一個密集模塊構(gòu)成,密集模塊中包括3 個3×3 的卷積和一個空間注意力模塊,這種設(shè)計既能編碼物體的細(xì)節(jié)信息,以提取物體的邊緣輪廓特征,又能對提取的特征進(jìn)行細(xì)化。3 個卷積和空間注意力模塊之間采用密集方式連接,后續(xù)層可以使用所有先前層的特征,從而有效實現(xiàn)特征重用并彌補細(xì)節(jié)信息的丟失,保留物體更多的空間細(xì)節(jié)特征。為盡可能減少網(wǎng)絡(luò)參數(shù)量,以降低網(wǎng)絡(luò)復(fù)雜度,密集模塊只使用3 個步長為2 的3×3 卷積對圖像進(jìn)行特征提取,每個卷積后面執(zhí)行批標(biāo)準(zhǔn)化(BN) [17] 和ReLU 操作。
在細(xì)節(jié)分支的末端使用空間注意力模塊,能從空間維度細(xì)化所有先前層提取的特征,為特征圖的每個空間位置施加一個權(quán)重以重新校準(zhǔn)特征圖,完成對不同空間位置的增強或抑制,進(jìn)而得到有效的特征信息。最終,細(xì)節(jié)分支得到的特征圖的分辨率為原圖的1/8,能保留圖像的高分辨率細(xì)節(jié)信息。為進(jìn)一步減少網(wǎng)絡(luò)參數(shù)量,空間注意力模塊只使用一個1×1 的卷積計算空間注意力權(quán)重,其結(jié)構(gòu)圖如圖2(b)所示。利用空間注意力模塊重新校準(zhǔn)特征圖時,對于給定的輸入特征圖X,其空間注意力權(quán)重的計算和重新校準(zhǔn)過程可表示為
執(zhí)行卷積和細(xì)化操作過程中,當(dāng)特征圖尺寸不匹配時,采用平均池化操作對先前層的特征圖進(jìn)行下采樣,如圖2(a)中彩色箭頭所示。
2.2 上下文分支
該分支使用輕量級網(wǎng)絡(luò)ResNet18[18] 作為主干網(wǎng)絡(luò),將特征圖下采樣到原圖的1/32,從而獲得豐富的語義信息。語義分割任務(wù)中,圖像中往往存在多種尺度的物體,然而固定大小的感受野會導(dǎo)致物體分類錯誤。雖然DeepLabv3[19] 網(wǎng)絡(luò)中的空洞空間金字塔池化(ASPP)模塊能有效獲取多尺度上下文信息,但是該模塊中使用空洞卷積導(dǎo)致圖像中的像素不能全部用于計算且不利于小尺寸物體的分割[20]。與之不同,本文在主干網(wǎng)絡(luò)的頂端并行使用全局平均池化和1×1、3×3、5×5、7×7 的卷積以獲取全局和局部上下文信息,一方面,使用標(biāo)準(zhǔn)卷積能充分利用所有像素用于計算,避免特征信息的丟失;另一方面,主干網(wǎng)絡(luò)提取的特征圖分辨率較低,使用較大的卷積獲取多尺度上下文信息不會大幅增加網(wǎng)絡(luò)的計算量。隨后,將獲得的多尺度上下文信息進(jìn)行級聯(lián),再經(jīng)過1×1 的卷積對信息進(jìn)行進(jìn)一步融合同時縮減特征圖的通道數(shù)來減少參數(shù)量。最后將特征圖上采樣到原圖的1/8,以匹配細(xì)節(jié)分支特征圖的大小。
2.3 融合模塊
細(xì)節(jié)分支得到的高分辨率空間細(xì)節(jié)信息有助于物體邊緣的分割,上下文分支得到的低分辨率語義信息有助于物體類別識別,將二者獲取的特征信息通過融合模塊進(jìn)行融合互為補充,以實現(xiàn)更好的分割效果。融合模塊的結(jié)構(gòu)圖如圖2(c)所示,該模塊由級聯(lián)操作、一個1×1 的卷積和殘差通道注意力模塊構(gòu)成。
為了更有效捕獲特征圖通道之間的相互依賴性,在殘差通道注意力模塊中使用全局平均池化和全局最大池化兩種池化方式,分別沿空間軸壓縮特征圖計算通道注意力權(quán)重來重新校準(zhǔn)特征圖。利用通道注意力模塊重新校準(zhǔn)特征圖時,對于給定的輸入特征圖X,使用全局平均池化聚合空間信息時,其通道注意力權(quán)重的計算和重新校準(zhǔn)過程可表示為
使用融合模塊進(jìn)行特征融合時,為保留更多提取的原始特征,首先將不同級別的信息進(jìn)行級聯(lián),并通過1×1 的卷積對信息進(jìn)行融合。然后,為了保證信息融合的有效性,采用殘差通道注意力模塊為特征圖的每個通道施加一個權(quán)重以重新校準(zhǔn)融合后的特征圖,有助于網(wǎng)絡(luò)在訓(xùn)練學(xué)習(xí)過程中關(guān)注信息豐富的通道。
2.4 分類層
分類層采用一個3×3 的卷積和一個1×1 的卷積。其中,3×3 的卷積作用是對殘差通道注意力模塊生成的特征圖進(jìn)行特征融合;1×1 的卷積作用是將特征圖的通道數(shù)映射為物體類別數(shù),并得到最終的網(wǎng)絡(luò)預(yù)測圖。
3 實驗
為評估雙分支結(jié)構(gòu)語義分割算法的有效性,選取最常用的Cityscapes[21] 數(shù)據(jù)集和CamVid[22]數(shù)據(jù)集作為運算實驗對象。這里所有運算實驗均在Ubuntu18.04 操作系統(tǒng)上進(jìn)行,實驗的軟件環(huán)境為pytorch1.2,cuda10.0,cudnn7.6.5,硬件環(huán)境采用2 塊GTX 1080Ti GPU 加速。
3.1 數(shù)據(jù)集
Cityscapes 是城市街道場景大型數(shù)據(jù)集,拍攝于50 個不同的城市。該數(shù)據(jù)集共有5 000 張精細(xì)標(biāo)注的圖片和20 000 張粗略標(biāo)注的圖片,本文所有實驗僅使用精細(xì)標(biāo)注的圖片。精細(xì)標(biāo)注的圖片劃分為訓(xùn)練集、驗證集和測試集,分別包含2 975、500 和1 525 張圖片,所有圖片的分辨率為2 048×1 024。像素標(biāo)注包括30 個類別物體,其中19 個類別用于訓(xùn)練和評估。
CamVid 是基于視頻序列的街道場景數(shù)據(jù)集,該數(shù)據(jù)集共有701 張圖片和11 個語義類別的像素標(biāo)注。訓(xùn)練集、驗證集和測試集分別包含367、101 和233 張圖片,所有圖片的分辨率為480×360。
訓(xùn)練網(wǎng)絡(luò)時防止出現(xiàn)過擬合現(xiàn)象,需對數(shù)據(jù)集進(jìn)行增強處理,包括隨機水平翻轉(zhuǎn)、隨機旋轉(zhuǎn)和隨機縮放,其中縮放尺度為{0.5,0.75,1.0,1.25,1.5,1.75,2.0},最后將圖片隨機裁剪至固定大小進(jìn)行訓(xùn)練。
3.2 實驗參數(shù)設(shè)置和評價指標(biāo)
實驗中合理調(diào)節(jié)學(xué)習(xí)率的大小有利于網(wǎng)絡(luò)的訓(xùn)練,例如,Chen 等[8] 采用poly 學(xué)習(xí)率策略調(diào)節(jié)學(xué)習(xí)率大小,網(wǎng)絡(luò)每訓(xùn)練完一個iteration,都會對學(xué)習(xí)率進(jìn)行衰減,直到網(wǎng)絡(luò)訓(xùn)練完成時學(xué)習(xí)率下降為0。學(xué)習(xí)率的迭代更新表達(dá)式為
為了定量評估所提算法的分割精度,選取均交并比(mean intersection over union,mIoU) [23]作為評價指標(biāo)。該評價指標(biāo)是真實標(biāo)簽值和網(wǎng)絡(luò)預(yù)測值兩個集合的交集與并集之比,其計算表達(dá)式為
式中: k 為像素標(biāo)簽類別數(shù);k+1 為包含空類或背景在內(nèi)的總類別數(shù);pii表示正確分類的像素數(shù)量;pi j表示應(yīng)為類別i但被預(yù)測為類別j的像素數(shù)量;p ji表示應(yīng)為類別j但被預(yù)測為類別i的像素數(shù)量。另外,在實驗中還使用參數(shù)量(Parameters)來評估不同網(wǎng)絡(luò)結(jié)構(gòu)的復(fù)雜度。
3.3 消融實驗及結(jié)果分析
為驗證本文提出的雙分支網(wǎng)絡(luò)結(jié)構(gòu)中上下文分支、細(xì)節(jié)分支和融合模塊的有效性,需要進(jìn)行消融實驗,所有消融實驗均在Cityscapes 驗證集上進(jìn)行評估驗證。消融實驗的epoch 均設(shè)置為300,所得實驗結(jié)果如表2 所示,表中列出了不同情況下使用基準(zhǔn)模型( baseline)、上下文分支、細(xì)節(jié)分支和融合模塊進(jìn)行實驗所得分割精度和參數(shù)量。
實驗中首先選取殘差網(wǎng)絡(luò)ResNet18 作為基準(zhǔn)模型。使用殘差網(wǎng)絡(luò)ResNet18 作為主干網(wǎng)絡(luò)進(jìn)行特征提取,提取的特征圖經(jīng)過分類層處理,將網(wǎng)絡(luò)輸出特征圖進(jìn)行32 倍上采樣得到原圖大小。從表2 可知,其在Cityscapes 驗證集上的精度為57.6%。
當(dāng)只使用上下文分支進(jìn)行特征提取時網(wǎng)絡(luò)的性能從57.6% 提升至59.4%,表明多尺度上下文信息有助于不同尺度物體的分割;當(dāng)同時使用上下文分支和細(xì)節(jié)分支進(jìn)行特征提取時,將兩個分支獲得的特征進(jìn)行簡單相加(sum),網(wǎng)絡(luò)的性能從59.4% 提升至61.5%,從而驗證細(xì)節(jié)分支保留的高分辨率細(xì)節(jié)信息有助于分割性能的提升;當(dāng)使用融合模塊將兩個分支提取的特征進(jìn)行融合時,網(wǎng)絡(luò)的性能從61.5% 提升至62.5%,相比簡單相加不同級別的信息,通過融合模塊進(jìn)行有效融合更有利于改善網(wǎng)絡(luò)的性能。通過以上消融實驗表明,同時使用細(xì)節(jié)分支、上下文分支和融合模塊能達(dá)到最佳分割效果,相比基準(zhǔn)模型,網(wǎng)絡(luò)的參數(shù)量只有略微增加。
圖3 展示了不同結(jié)構(gòu)在Cityscapes 驗證集上的部分可視化圖,其中(a)為原始圖像;(b)為真實標(biāo)簽;(c)為基準(zhǔn)模型分割圖;(d)為只使用上下文分支所得分割圖;(e)為同時使用細(xì)節(jié)分支和上下文分支所得分割圖,其中兩個分支的特征只是簡單相加;(f)為同時使用細(xì)節(jié)分支、上下文分支和融合模塊所得分割圖。從圖3 可以看出,隨著細(xì)節(jié)分支的加入,分割效果越來越好,例如交通信號燈(圖中紅框部分),這也表明設(shè)計雙分支網(wǎng)絡(luò)結(jié)構(gòu)可以更好地保留物體的細(xì)節(jié)信息,從而獲得更好的分割效果。
3.4 同其他算法的對比與分析
對于Cityscapes 數(shù)據(jù)集,為實現(xiàn)更好的分割效果,將epoch 增加至500。由于Cityscapes 測試集沒有提供真實標(biāo)簽,因此需將預(yù)測標(biāo)簽圖提交至Cityscapes 官方網(wǎng)站(https://www.cityscapesdataset.com)進(jìn)行評估,才能得到測試集上的分割精度。為了更好地體現(xiàn)本文所提雙分支結(jié)構(gòu)語義分割算法的有效性,選取SegNet[5]、ENet[11]、SQ[12]、FRRN A[13]、DeepLab[7]、FCN-8s[2]、Dilation10[6]、DeepLabv2[8]、RefineNet-LW[10]、RefineNet[9] 等算法與本文算法進(jìn)行性能對比,對比結(jié)果如表3 所示。
從表3 可知,所提雙分支結(jié)構(gòu)語義分割算法相比其他大部分算法在均交并比上有所提升,表明細(xì)節(jié)分支保留的細(xì)節(jié)信息提高了像素定位的準(zhǔn)確性,有助于目標(biāo)物體邊緣輪廓的分割,從而達(dá)到了更好的分割效果。DeepLabv2、RefineNet-LW 和RefineNet 等算法取得了優(yōu)越的均交并比,一方面是使用了結(jié)構(gòu)復(fù)雜的ResNet101 作為主干網(wǎng)絡(luò),其特征提取能力更強;另一方面是在網(wǎng)絡(luò)中使用了跳躍連接或CRF 后處理等方法,改善了下采樣過程導(dǎo)致細(xì)節(jié)信息丟失的問題;然而這三種算法參數(shù)量較大,其中RefineNet 的參數(shù)量是本文所提算法的9 倍。表3 中ENet 參數(shù)量最少,但以犧牲精度為代價,本文所提算法與其相比,參數(shù)量有所增加,但均交并比提升了9.1%。綜合對比,本文算法以較少參數(shù)量實現(xiàn)了較好的分割效果。圖4 展示了所提算法在Cityscapes 驗證集上的部分可視化圖。
對于CamVid 數(shù)據(jù)集,使用訓(xùn)練集和驗證集的圖片一起訓(xùn)練模型,epoch 設(shè)置為1 000,所提算法在CamVid 測試集上的分割精度如表4所示。表4 中對比了DeconvNet[4]、ENet[11]、SegNet[5]、FCN-8s [2]、BiSeNet [25]、文獻(xiàn)[26] 等算法與所提雙分支結(jié)構(gòu)語義分割算法的分割性能。從對比結(jié)果可知,本文算法相比大部分對比算法在均交并比上有所提高,進(jìn)一步驗證了雙分支結(jié)構(gòu)的有效性,而模型參數(shù)量僅比ENet 有所增加。雖然BiSeNet 和文獻(xiàn)[26] 等算法獲得了較高的均交并比,但是其網(wǎng)絡(luò)結(jié)構(gòu)復(fù)雜,參數(shù)量較大。
4 結(jié)論
本文提出一種雙分支結(jié)構(gòu)語義分割算法,在特征提取階段既能有效獲取豐富的語義信息又能保留圖像的高分辨率細(xì)節(jié)信息,將得到的細(xì)節(jié)信息和語義信息通過融合模塊有效融合以充分利用不同級別的信息,進(jìn)而改善語義分割的性能。在Cityscapes 數(shù)據(jù)集和CamVid 數(shù)據(jù)集上驗證了所提算法的有效性,分別獲得67.4% 和58.5%的均交并比,與大部分現(xiàn)有算法相比,所提算法分割精度有所提高且參數(shù)量使用較少。然而,相比輕量級網(wǎng)絡(luò)模型,所提雙分支網(wǎng)絡(luò)模型參數(shù)量還有繼續(xù)減少的空間;相比均交并比較高的網(wǎng)絡(luò)模型,本文網(wǎng)絡(luò)模型分割精度有待提高,如何權(quán)衡網(wǎng)絡(luò)的復(fù)雜度和分割精度將是后續(xù)的一個研究方向。