高世偉,張長柱,王祝萍
(同濟(jì)大學(xué)電子與信息工程學(xué)院,上海 201804)
圖像語義分割是計(jì)算機(jī)視覺領(lǐng)域的核心問題之一,可被視作像素級(jí)別的分類問題。近些年來,隨著深度卷積神經(jīng)網(wǎng)絡(luò)的顯著發(fā)展,圖像語義分割的預(yù)測準(zhǔn)確度達(dá)到了一定高度;然而自動(dòng)駕駛、機(jī)器人感應(yīng)和增強(qiáng)現(xiàn)實(shí)設(shè)備等極具潛力的現(xiàn)實(shí)應(yīng)用[1-2],對(duì)語義分割算法的實(shí)時(shí)性提出了更高的要求。受計(jì)算和存儲(chǔ)成本的限制,現(xiàn)有的擁有較大網(wǎng)絡(luò)規(guī)模的算法模型很難在保證高預(yù)測準(zhǔn)確度的同時(shí)達(dá)到較高的圖像分割速度。輕量的網(wǎng)絡(luò)模型能夠以較高的速度完成圖像分割,但是缺少對(duì)高級(jí)特征語義信息的提取,模型分割精度得不到很好的保證。如何同時(shí)保持高分辨率圖像的高預(yù)測準(zhǔn)確度和高推理速度是研究人員當(dāng)前階段最為關(guān)心的重要問題。
本文從輕量級(jí)圖像實(shí)時(shí)語義分割算法的關(guān)鍵技術(shù)[3]出發(fā),提出了一種可分離金字塔特征提取單元用于編碼部分獲取語義信息,并構(gòu)建不同模塊應(yīng)用在不同下采樣階段;解碼部分采取基于通道注意力機(jī)制的方法,利用深層語義修改淺層特征圖的通道權(quán)重,彌補(bǔ)淺層特征關(guān)于高級(jí)語義信息的不足,優(yōu)化分割效果。本文的主要工作如下:
1)本文以構(gòu)建輕量級(jí)圖像實(shí)時(shí)語義分割模型為目的,探究了深度可分離卷積、瓶頸結(jié)構(gòu)和分解卷積的應(yīng)用潛力,提出可分離金字塔模塊(Separable Pyramid Module,SPM),有效地獲取多尺度特征和圖像上下文信息。在此基礎(chǔ)上,出于對(duì)復(fù)雜網(wǎng)絡(luò)參數(shù)量、計(jì)算量大的問題的規(guī)避,本文構(gòu)建了輕量的整體算法模型,在準(zhǔn)確度和實(shí)時(shí)性表現(xiàn)之間取得較好的平衡。
2)針對(duì)計(jì)算機(jī)視覺中注意力機(jī)制具有對(duì)相關(guān)特征權(quán)重分布學(xué)習(xí)能力的考慮,本文設(shè)計(jì)了利用深層語義修改淺層特征圖通道權(quán)重的上下文通道注意力(Context Channel Attention,CCA)模塊,并用于上采樣進(jìn)一步提高實(shí)時(shí)圖像語義分割的準(zhǔn)確度,對(duì)于目標(biāo)空間位置和物體邊緣恢復(fù)具有積極作用。
3)在公開數(shù)據(jù)集Cityscapes 和CamVid 上進(jìn)行消融實(shí)驗(yàn)和全局實(shí)驗(yàn),并與其他現(xiàn)有算法對(duì)比分析,驗(yàn)證了本文算法的有效性。
基于深度學(xué)習(xí)的圖像語義分割作為計(jì)算機(jī)視覺中的一項(xiàng)基本任務(wù),旨在估計(jì)給定輸入圖像中所有像素的類別標(biāo)簽,并呈現(xiàn)出不同顏色區(qū)域掩模的分割結(jié)果。
圖像分割最初較為流行的方法是圖像塊分類(patch classification),其基本思想是利用像素周圍的像素塊對(duì)每個(gè)像素進(jìn)行獨(dú)立的分類。但是這種方法存在較為明顯的缺點(diǎn):一方面,劃分像素塊必然意味著特征感受野將受到限制,每個(gè)子塊只能在固定大小的區(qū)域提取特征,全局信息的關(guān)聯(lián)性沒有得到處理;另一方面,圖像中每個(gè)像素點(diǎn)在參與計(jì)算時(shí)都需要使用到一個(gè)子塊,在處理高分辨率輸入圖像的任務(wù)時(shí),這種計(jì)算方式會(huì)極大地消耗計(jì)算資源,給硬件存儲(chǔ)和運(yùn)算帶來負(fù)擔(dān)。此外,在當(dāng)時(shí)流行的分類網(wǎng)絡(luò)只能處理固定尺寸的圖像,在實(shí)際應(yīng)用中仍然存在很大的局限性。
2014 年,Long 等[4]提出全卷積網(wǎng)絡(luò)(Fully Convolution Network,F(xiàn)CN),圖像分割正式進(jìn)入一個(gè)全新的發(fā)展階段。FCN 是深度學(xué)習(xí)首次應(yīng)用于圖像語義分割的算法,與之前所有圖像分割算法最大的不同在于,F(xiàn)CN 丟棄了分類網(wǎng)絡(luò)中所有的全連接層,并用卷積層作相應(yīng)替換,以學(xué)習(xí)像素到像素的映射??紤]到卷積神經(jīng)網(wǎng)絡(luò)中的池化操作在擴(kuò)大感受野、聚合語境的同時(shí)造成空間信息丟失、導(dǎo)致分辨率恢復(fù)所產(chǎn)生的分割圖過于粗糙的問題,F(xiàn)CN 提出了在上采樣階段聯(lián)合不同池化層的結(jié)果優(yōu)化最終輸出的方法。但是FCN 得到的分割結(jié)果仍然不夠準(zhǔn)確,目標(biāo)空間位置信息的丟失問題也未得到很好的解決。
Badrinarayanan 等[5]為了解決下采樣導(dǎo)致信息丟失的問題,采取了帶有坐標(biāo)(index)的池化操作。在最大池化的過程中,網(wǎng)絡(luò)記錄下了所選擇的最大像素在特征圖上的位置,并在反池化時(shí)根據(jù)記錄的坐標(biāo),復(fù)原最大值至對(duì)應(yīng)的位置,更好地恢復(fù)了圖像分割細(xì)節(jié)。
Chen 等[6]基于擴(kuò)張卷積提出了深度卷積網(wǎng)絡(luò)(Deep Convolutional Net,DeepLab)系列語義分割算法,并分為4 個(gè)版本:DeepLabv1 基于VGG-16 網(wǎng)絡(luò)改寫,去掉了最后的全連接層和最后兩個(gè)池化層,加入了擴(kuò)張卷積來擴(kuò)大感受野,條件隨機(jī)場(Conditional Random Field,CRF)也被使用在網(wǎng)絡(luò)中用于提高分類精度;DeepLabv2[7]以更復(fù)雜的、表達(dá)能力更強(qiáng)的殘差網(wǎng)絡(luò)-101(ResNet-101)[8]為基礎(chǔ)網(wǎng)絡(luò),并提出了空洞空間金字塔池化(Atrous Spatial Pyramid Pooling,ASPP),以多比例捕捉上下文信息,解決圖像中存在的目標(biāo)多尺度問題;DeepLabv3[9]在DeepLabv2基礎(chǔ)上舍棄了CRF,同時(shí)在ASPP中加入1×1 卷積防止擴(kuò)張率太高導(dǎo)致的卷積退化問題,另外增加了全局池化來補(bǔ)充全局特征;DeepLabv3+[10]是該系列最后一個(gè)版本,其采用Xception 模型作為主干網(wǎng)絡(luò)并做針對(duì)性改進(jìn),簡單的解碼結(jié)構(gòu)被用于恢復(fù)精細(xì)的物體邊緣;祖朋達(dá)等[11]在DeepLabv2 的基礎(chǔ)上通過優(yōu)化擴(kuò)張卷積,調(diào)整其擴(kuò)張率并添加預(yù)處理卷積,更為充分地融合局部和全局特征;2018 年,Yang 等[12]認(rèn)為ASPP 提取到的特征仍然不夠密集,提出了稠密ASPP(DenseASPP)算法,其用更密集、復(fù)雜的連接方式將每個(gè)擴(kuò)張卷積的輸出集合到一起,覆蓋了大范圍的語義信息并做特征提?。挥鞲龋?3]設(shè)計(jì)一種通過主體網(wǎng)絡(luò)特征共享層學(xué)習(xí)多尺度特征的圖像分割方法,進(jìn)一步約束和優(yōu)化目標(biāo)邊界,得到準(zhǔn)確度更高的分割結(jié)果。
隨著注意力機(jī)制在計(jì)算機(jī)視覺領(lǐng)域的發(fā)展,圖像語義分割開始引入軟注意力用于學(xué)習(xí)特征權(quán)重分布。Fu等[2]提出對(duì)偶注意力網(wǎng)絡(luò)(Dual Attention Network,DANet),綜合了通道注意力和空間注意力的思想,加入兩種類型的注意力模塊分別模擬空間和通道維度的語義依賴,并對(duì)輸出進(jìn)一步融合增強(qiáng)特征表示,顯著改善了分割效果。
近年來,基于深度學(xué)習(xí)的圖像語義分割方法取得了很大的進(jìn)展,在增強(qiáng)現(xiàn)實(shí)、自動(dòng)駕駛、圖像搜索、人機(jī)交互等領(lǐng)域有著很大的應(yīng)用潛力,但縱觀上述方法和近階段其他算法模型[13],大多更關(guān)注對(duì)圖像分割準(zhǔn)確率的提升,其計(jì)算成本和內(nèi)存占用較高,網(wǎng)絡(luò)的實(shí)時(shí)性得不到保證。本文所設(shè)計(jì)的基于可分離金字塔單元的語義分割算法,在保證圖像分割準(zhǔn)確度的同時(shí)兼顧網(wǎng)絡(luò)模型的輕量性和實(shí)時(shí)性。首先,針對(duì)擴(kuò)張卷積有效擴(kuò)大特征提取感受野但內(nèi)存占用較高的問題,采用深度可分離卷積結(jié)構(gòu)縮減計(jì)算量,并構(gòu)建瓶頸式特征金字塔進(jìn)行多尺度信息處理;其次,構(gòu)建三階式的編碼網(wǎng)絡(luò),最多下采樣至輸入圖像1/8分辨率的特征層,保證模型參數(shù)較少;最后,通過上下文通道注意力模塊對(duì)深層特征圖每個(gè)通道的特征權(quán)重進(jìn)行計(jì)算,利用所有通道之間的相互聯(lián)系加權(quán)至淺層特征圖,最終得到通道權(quán)重修改后的淺層特征圖,增強(qiáng)淺層通道依賴性并與深層特征圖融合,優(yōu)化目標(biāo)邊緣分割效果,提高語義分割準(zhǔn)確度。
在深度學(xué)習(xí)發(fā)展早期,He 等[8]為了減少網(wǎng)絡(luò)模型的計(jì)算量和參數(shù)量以加快神經(jīng)網(wǎng)絡(luò)的訓(xùn)練,在ResNet 算法中提出了深度瓶頸結(jié)構(gòu)(Deeper Bottleneck Architecture,DBA),如圖1(a)所示。DBA 是殘差結(jié)構(gòu)的變形,其利用1×1 卷積降低輸入特征圖的通道數(shù),之后的3×3 卷積部分會(huì)由于維度下降使需要計(jì)算的參數(shù)量降低,縮短了訓(xùn)練時(shí)間,在提取特征后再利用1×1 卷積恢復(fù)輸出特征圖的通道數(shù),殘差連接也被采用以允許之前的網(wǎng)絡(luò)層保留一定比例輸出的結(jié)構(gòu)。Romera等[14]提出一維非瓶頸(Non-bottleneck-1D)結(jié)構(gòu),如圖1(b)所示,其本質(zhì)是將3×3卷積分解為3×1卷積和1×3卷積級(jí)聯(lián)的卷積分解方法,可以在降低參數(shù)量、加快網(wǎng)絡(luò)訓(xùn)練的同時(shí)不影響感受野的變化。
圖1 深度瓶頸結(jié)構(gòu)與一維非瓶頸結(jié)構(gòu)Fig.1 Deeper bottleneck structure and non-bottleneck-1D structure
本文結(jié)合DBA 模塊中的瓶頸結(jié)構(gòu)和分解卷積,提出SPM特征提取單元,如圖2所示,N表示特征圖通道數(shù),D表示深度可分離卷積(Depthwise Separable Convolution),R表示擴(kuò)張卷積的擴(kuò)張率(Dilation Rate),其中,不同分支擴(kuò)張卷積的擴(kuò)張率R1、R2、R3 設(shè)置采用依次增大的參數(shù)序列,并行進(jìn)行特征提取,不同參數(shù)序列設(shè)置方法的有效性將在實(shí)驗(yàn)部分詳細(xì)論證。每個(gè)SPM 單元首先將輸入特征圖的通道數(shù)減為原來的1/2,通過最后的逐點(diǎn)卷積恢復(fù)通道數(shù)量??紤]到盡管1×1 卷積的參數(shù)少于3×3 卷積,但ResNet 的目的是建立一個(gè)足夠深的網(wǎng)絡(luò)模型(100 層以上)以擴(kuò)大感受野并捕捉更多更復(fù)雜的高級(jí)語義信息,然而層數(shù)的增加通常伴隨著更多的運(yùn)行時(shí)間和極高的內(nèi)存需求。為了構(gòu)建輕量的、快速的語義分割網(wǎng)絡(luò)模型,同時(shí)保證分割準(zhǔn)確率,本文改用3×3卷積縮減通道數(shù)至輸入的一半,提取更多圖像全局特征。為了在較淺的網(wǎng)絡(luò)中獲取足夠的多尺度信息,本文采用分支結(jié)構(gòu)構(gòu)造SPM 單元,每個(gè)分支的卷積形式更改為深度可分離卷積[14]以進(jìn)一步減少參數(shù)量提高算法效率。
圖2 所提出的SPM特征提取單元Fig.2 The proposed SPM feature extraction unit
本文在第一個(gè)分支中使用分解的3×3 深度卷積,即級(jí)聯(lián)的3×1 卷積和1×3 卷積,在保持同樣大小感受野的前提下有效降低計(jì)算參數(shù)量,以H×W的同分辨率輸入輸出特征圖為例,當(dāng)卷積核尺寸為k、輸入通道數(shù)為m時(shí),應(yīng)用深度分解卷積后的參數(shù)量與深度可分離卷積的參數(shù)量之比為:
當(dāng)卷積核大小為3×3 時(shí),深度分解卷積的參數(shù)量相較于深度可分離卷積減少了33%;對(duì)其他3 個(gè)分支采用擴(kuò)張卷積,在不降低特征圖像分辨率的同時(shí)擴(kuò)大特征提取的感受野,其構(gòu)造方式同樣為深度分解卷積。不同擴(kuò)張率的擴(kuò)張卷積建立了一個(gè)特征金字塔,具有較大擴(kuò)張率的卷積核能夠提取復(fù)雜或具有空間信息的長跨度特征,其需要較多的圖像參數(shù),而具有較小擴(kuò)張率的卷積核可以處理簡單或包含小尺度信息的短跨度特征,其需要的參數(shù)較少,可分離的特征金字塔結(jié)構(gòu)能夠有效提取多尺度特征和上下文信息。與DeepLab 系列的ASPP相比,本文提出的特征金字塔單元參數(shù)量和計(jì)算量都大幅度減少。特征金字塔輸出的特征圖像在合并之后經(jīng)過逐點(diǎn)卷積使通道數(shù)量減為最初輸入特征圖的一半,并再與第一個(gè)分支融合,融合后的特征圖通過逐點(diǎn)卷積加強(qiáng)通道交互,增強(qiáng)輸出非線性。由于殘差連接的存在,SPM 單元輸出最終特征圖前需要再次經(jīng)過通道隨機(jī)混合操作提升特征通道之間的信息交互。
SPM 單元的構(gòu)建本質(zhì)目的是能夠在較淺的特征層級(jí)上獲取足夠豐富的語義信息用于像素預(yù)測。與ResNet 等復(fù)雜的、深的(100 層以上)網(wǎng)絡(luò)相比,SPM 單元能夠在只具有較少層數(shù)的輕量網(wǎng)絡(luò)中發(fā)揮強(qiáng)大的特征提取能力,在盡可能保證語義分割準(zhǔn)確率的同時(shí)優(yōu)化算法的實(shí)時(shí)性表現(xiàn)。
對(duì)于圖像語義分割任務(wù),深層高級(jí)語義信息和淺層空間位置信息的融合十分重要,但是由于深層的特征圖中包含著高度抽象的語義信息,而淺層特征更多的是點(diǎn)、線、邊緣等存在大量噪聲的信息,簡單地將深淺層信息合并所生成的分割效果實(shí)際上并不理想。本文認(rèn)為深層特征中的語義信息能夠通過通道注意力在不帶來過多額外參數(shù)的情況下引導(dǎo)低級(jí)特征,利用深層語義修改淺層特征的通道權(quán)重,彌補(bǔ)淺層信息缺少的高級(jí)語義,修改后的淺層特征圖再與深層特征圖融合能夠帶來更好地分割效果,因此本文提出上下文通道注意力(Context Channel Attention,CCA)模塊,其結(jié)構(gòu)如圖3所示。
圖3 CCA模塊Fig.3 CCA module
對(duì)于維度為A∈RC×H×W的深層特征圖,首先通過reshape 矩陣維度變換操作將圖像變成RC×N(N=H×W),其與自身的轉(zhuǎn)置進(jìn)行乘積運(yùn)算,通過softmax 計(jì)算得到通道注意力映射結(jié)果X∈RC×C。由于矩陣相乘的內(nèi)部實(shí)質(zhì)是通道對(duì)應(yīng)的特征向量與其他所有通道的特征向量的乘積,因此通道之間的聯(lián)系通過點(diǎn)積相似度成功建模,其公式表述為:
其中:xji表示第i個(gè)通道對(duì)第j個(gè)通道的影響;Ai∈RC×N;Aj為Ai的轉(zhuǎn)置,Aj∈RN×C。隨后,為了獲取全局依賴關(guān)系的特征,將通道特征圖的轉(zhuǎn)置與經(jīng)過reshape 操作降維的淺層特征圖Bi∈RC×N作矩陣乘法,在乘以尺度系數(shù)?后再次reshape 升維變成與輸入同維度的結(jié)果RC×H×W,即淺層特征圖在深層指導(dǎo)下的通道權(quán)重修改結(jié)果。本文提出的網(wǎng)絡(luò)所有卷積層輸出的最大通道數(shù)為128,因此不需要參考擠壓和激勵(lì)網(wǎng)絡(luò)(Squeeze-and-Excitation Network,SENet)[15]等縮減通道數(shù)(例如512、1 024)以減少計(jì)算參數(shù)的設(shè)計(jì)。淺層特征圖通道之間的注意力加權(quán)后生成全局關(guān)聯(lián),與輸入深層特征圖像合并得到更強(qiáng)的語義響應(yīng)特征輸出E∈RC×H×W:
其中:由于注意力機(jī)制在最初訓(xùn)練時(shí)表現(xiàn)并不理想,?初始設(shè)置為0,在訓(xùn)練過程中通過學(xué)習(xí)得到更大的權(quán)重,使CCA 模塊發(fā)揮作用。CCA模塊對(duì)深層特征圖每個(gè)通道的特征權(quán)重進(jìn)行計(jì)算,利用所有通道之間的相互聯(lián)系,加權(quán)至淺層特征,最終得到通道權(quán)重修改后的淺層特征,提高了淺層通道依賴性。指導(dǎo)后的淺層特征與深層特征合并能更好地在融入空間信息的同時(shí)維護(hù)編碼部分的預(yù)測分類,提升最終的圖像分割效果。
為了更好地在準(zhǔn)確度和實(shí)時(shí)性表現(xiàn)之間取得平衡,本文僅在所提出的網(wǎng)絡(luò)模型中采用三次下采樣操作,最深層獲取1/8初始分辨率的特征圖,整體網(wǎng)絡(luò)結(jié)構(gòu)如圖4所示。
圖4 本文所提算法的網(wǎng)絡(luò)模型Fig.4 Network model of the proposed algorithm
本文首先利用3 個(gè)連續(xù)的3×3 卷積提取輸入圖像初始特征,其中第1個(gè)3×3卷積步長為2,第2、3個(gè)3×3卷積步長為1,隨后緊跟一個(gè)以步長為2 的3×3 卷積和2×2 最大池化級(jí)聯(lián)的下采樣層,這之后的下采樣層是一個(gè)步長為2的3×3卷積??紤]到淺層特征圖中包含的語義信息不豐富且分辨率較高,添加SPM 單元的好處不足以補(bǔ)償參數(shù)和計(jì)算量增加帶來的損失,因此本文不考慮在1/2 分辨率的特征圖上應(yīng)用SPM 單元。在隨后兩次下采樣操作之后,將分辨率為初始輸入圖像分辨率1/4 和1/8 的特征圖分別輸入到本文設(shè)計(jì)的SPM Block 1 和SPM Block 2中提取密集特征。
在SPM Block 1 中,本文首先對(duì)SPM 單元進(jìn)行一些簡化。SPM單元在1/4原始分辨率的特征圖上進(jìn)行采樣時(shí),由于特征圖尺寸較大、待處理的特征點(diǎn)過多,其特征金字塔的結(jié)構(gòu)會(huì)產(chǎn)生大量的運(yùn)算,這一情況對(duì)于追求實(shí)時(shí)性的算法網(wǎng)絡(luò)而言是應(yīng)當(dāng)避免的。因此,在SPM Block 1 中采用的SPM 單元,其四分支結(jié)構(gòu)被縮減為兩分支,去除了特征金字塔,僅保留一個(gè)分支的擴(kuò)張卷積。簡化后的SPM單元稱為SPM-s,如圖5所示。
圖5 簡化的SPM-s單元Fig.5 Simplified SPM-s unit
SPM-s 單元能夠以較少的參數(shù)量和計(jì)算量獲取特征信息,其被用于網(wǎng)絡(luò)較淺層時(shí)更關(guān)注特征圖中的邊緣和細(xì)節(jié)信息。本文在SPM Block 1 中插入3 個(gè)連續(xù)的SPM-s 單元,由于SPM Block 2 能夠以不同的特征感受野對(duì)輸入特征圖進(jìn)行多尺度信息處理,因此在SPM Block 1 所處的1/4 原始分辨率特征圖上只需要完成相對(duì)初步的特征提取,所有SPM-s 單元的擴(kuò)張卷積分支擴(kuò)張率都設(shè)置為2。為了加強(qiáng)空間聯(lián)系和特征聚合,第1 個(gè)和最后1 個(gè)單元之間加入了殘差連接,如圖6(a)所示。相似的,在SPM Block 2 中,本文設(shè)置了級(jí)聯(lián)的SPM 單元對(duì)1/8原始輸入圖像分辨率的特征圖進(jìn)行特征提取,結(jié)構(gòu)展示在圖6(b)。
圖6 SPM Block 1和SPM Block 2Fig.6 SPM Block 1 and SPM Block 2
本文在下采樣階段加入了長殘差連接,補(bǔ)償分辨率降低造成的信息損失。為了追求更強(qiáng)的網(wǎng)絡(luò)實(shí)時(shí)性,避免額外參數(shù)和計(jì)算導(dǎo)致訓(xùn)練速度降低,本文在上采樣階段參考DeepLabv3+[9]的解碼思想,保留了SPM Block 1 的輸出特征圖,在分辨率恢復(fù)的過程中作為淺層信息引入CCA 模塊并與兩倍雙線性插值上采樣的最深層特征圖融合,經(jīng)過3×3 卷積調(diào)整通道數(shù)和第2 次上采樣后得到最終的圖像分割結(jié)果。整體網(wǎng)絡(luò)結(jié)構(gòu)的參數(shù)細(xì)節(jié)展示在表1中。
表1 基于SPM單元的整體網(wǎng)絡(luò)的詳細(xì)結(jié)構(gòu)Tab.1 Detailed structure of entire network based on SPM unit
本文實(shí)驗(yàn)的硬件平臺(tái)是Intel i7-9700K CPU,軟件環(huán)境是Ubuntu16.04系統(tǒng),利用單張GeForce GTX 1080Ti GPU 顯卡完成網(wǎng)絡(luò)模型的訓(xùn)練和測試,編程語言使用Python3.6,深度學(xué)習(xí)框架使用PyTorch 1.0,運(yùn)算平臺(tái)使用CUDA 9.0。
在數(shù)據(jù)集的選擇上,本文以Cityscapes數(shù)據(jù)集[16]為主進(jìn)行消融實(shí)驗(yàn),評(píng)價(jià)所提算法的有效性。Cityscapes 數(shù)據(jù)集由包括戴姆勒股份公司在內(nèi)的三家德國單位聯(lián)合提供,包含來自50個(gè)城市的5 000張城市駕駛場景的高質(zhì)量像素級(jí)注釋圖像,其中分為2 975 張訓(xùn)練集圖像、500 張驗(yàn)證集圖像、1 525 張測試集圖像。該數(shù)據(jù)集一共有19 個(gè)目標(biāo)類別,包括人、地面、車輛、建筑等,有1 024×2 048 的高分辨率,同一張圖像中多類別、多目標(biāo)和同一類物體互相遮擋的情況,對(duì)于圖像語義分割任務(wù)而言都是嚴(yán)峻的挑戰(zhàn)。為了便于訓(xùn)練和對(duì)比,本文將原始圖像下采樣至512×1 024的分辨率用于算法實(shí)驗(yàn)。
在Cityscapes數(shù)據(jù)集的訓(xùn)練過程中,本文采用帶動(dòng)量的隨機(jī)梯度下降法(Stochastic Gradient Descent,SGD)用于模型訓(xùn)練,并使用poly學(xué)習(xí)策略,其公式為:
其中:lrbase為初始學(xué)習(xí)率,為了能夠在保證模型學(xué)習(xí)有效性的同時(shí)加快收斂,提高模型運(yùn)算效率[7],本文將初始學(xué)習(xí)率在訓(xùn)練中設(shè)定為0.045;iter為當(dāng)前迭代次數(shù);total_iter為最大迭代次數(shù);power采用默認(rèn)值0.9。由于本文提出的整體網(wǎng)絡(luò)并未使用任何預(yù)訓(xùn)練模型,因此訓(xùn)練中最大迭代次數(shù)設(shè)定為370 000,每次迭代的樣本數(shù)量為8。實(shí)驗(yàn)中采用了隨機(jī)翻轉(zhuǎn)、均值消減和隨機(jī)尺度縮放的數(shù)據(jù)增強(qiáng)方法提升算法的泛化性,在全局實(shí)驗(yàn)上,除了在Cityscapes數(shù)據(jù)集上測試算法性能,在CamVid 數(shù)據(jù)集[17]上同樣也進(jìn)行了實(shí)驗(yàn),并與其他算法作對(duì)比。
本文的準(zhǔn)確度評(píng)價(jià)采用語義分割的標(biāo)準(zhǔn)度量平均交并比(mean Intersection over Union,mIoU),給出所有類別預(yù)測結(jié)果和真實(shí)值兩個(gè)集合交集與并集的比值的平均,計(jì)算如下:
其中pij表示真實(shí)值為i、被預(yù)測為j的像素?cái)?shù)量。
算法效率用運(yùn)算時(shí)間和速度(單位:幀每秒(Frames Per Second,F(xiàn)PS))來衡量,其中:運(yùn)算時(shí)間是指網(wǎng)絡(luò)完成單張圖像分割所需時(shí)間,F(xiàn)PS 表示網(wǎng)絡(luò)每秒完成語義分割的圖像數(shù)量。
本文提出的SPM 單元在降低網(wǎng)絡(luò)參數(shù)和運(yùn)算量的基礎(chǔ)上,采取了多尺度感受野提取特征的方法,對(duì)SPM 結(jié)構(gòu)中的多分支深度可分離擴(kuò)張卷積設(shè)定依次增大的擴(kuò)張率。
表2展示了SPM Block 2的SPM單元設(shè)計(jì)。
表2 SPM Block 2不同參數(shù)設(shè)定的對(duì)比Tab.2 Comparison of different parameter settings of SPM Block 2
方法1 為僅使用一個(gè)SPM 單元進(jìn)行1/8 分辨率圖像輸入的特征提取,其參數(shù)為{4,4,8,8,16,16}(每單個(gè)擴(kuò)張卷積分支被分解為兩個(gè)一維的卷積以降低計(jì)算量,因此有兩個(gè)擴(kuò)張率為4的擴(kuò)張卷積,以此類推)。
方法2 在方法1 的基礎(chǔ)上設(shè)計(jì)了兩個(gè)連續(xù)的SPM 單元,其參數(shù)相同,且加入了短殘差連接。與方法1 相比,方法2 雖然因?yàn)閰?shù)的增加使得網(wǎng)絡(luò)實(shí)時(shí)性略有下降,但在準(zhǔn)確率上提升了2.52個(gè)百分點(diǎn)。
方法3 同樣采用兩個(gè)SPM 單元,但與方法2 的參數(shù)設(shè)定不同,兩個(gè)SPM 單元的其中一個(gè)依然采用{4,4,8,8,16,16}的增長序列,另一參數(shù)序列考慮到相同或等比的擴(kuò)張率可能因“棋盤效應(yīng)”導(dǎo)致采樣時(shí)丟失大量信息,而互質(zhì)的、鋸齒波形的擴(kuò)張率在不改變?nèi)魏螀?shù)量的情況下,覆蓋的感受野在疊加時(shí)能夠提取更多不同的細(xì)節(jié)信息,且提取到的特征更具有泛化性,卷積的表征能力更強(qiáng)[18],因此選擇了互質(zhì)的{3,3,7,7,13,13}參數(shù)序列。綜合方法2和方法3的實(shí)驗(yàn)結(jié)果可見,采取等比和互質(zhì)參數(shù)序列相結(jié)合的設(shè)計(jì)方法更有利于提高圖像分割精度,在參數(shù)量相等、實(shí)時(shí)性不變的情況下,方法3 相比方法2在準(zhǔn)確率上提升了0.46個(gè)百分點(diǎn)。
方法4中,本文嘗試選擇兩組參數(shù)互質(zhì)的SPM 單元,但相比方法2 準(zhǔn)確率反而下降了,這可能是由于在該層特征圖尺寸相對(duì)較大,擴(kuò)張率減小后失去了較大的感受野,對(duì)于特征提取不利。
方法5 考慮級(jí)聯(lián)連續(xù)3 個(gè)SPM 單元,結(jié)果顯示mIoU 略微上升,但是與方法3 相比在速度方面下降了24 FPS。綜上所述,方法3帶來的準(zhǔn)確度與速度的平衡效果最好。
CCA 模塊有助于改善深淺層信息的融合效果,本文將CCA模塊加入到SPMNet上采樣部分訓(xùn)練并測試模型的性能變化。為了便于對(duì)比,本文選取了高效殘差分解卷積網(wǎng)絡(luò)(Efficient Residual Factorized ConvNet,ERFNet)和高效多尺度上下文聚合和特征空間超分辨率實(shí)時(shí)語義分割網(wǎng)絡(luò)(real-time semantic segmentation Network by efficient multi-scale context aggregation and Feature Space Super-resolution,F(xiàn)arSeeNet)[19]的解碼方法,對(duì)SPMNet的最深層輸出特征圖進(jìn)行解碼,實(shí)驗(yàn)結(jié)果如表3所示。
表3 不同解碼設(shè)計(jì)對(duì)于SPMNet性能影響的對(duì)比Tab.3 Comparison of the impacts of different decoding designs on SPMNet performance
ERFNet的核心操作是殘差連接和分解卷積,其解碼部分采用步長為2 的轉(zhuǎn)置卷積進(jìn)行依次、有序的分辨率恢復(fù);FarSeeNet 是由商湯科技和東京大學(xué)共同提出的用于實(shí)時(shí)語義分割網(wǎng)絡(luò)的算法,其構(gòu)建了一個(gè)稱為級(jí)聯(lián)分解空洞空間金字塔池化(Cascaded Factorized Atrous Spatial Pyramid Pooling,CF-ASPP)的解碼模塊,該模塊以任意成熟的網(wǎng)絡(luò)模型(如FCN、ResNet 等)特征提取后輸出的低分辨率圖像作為輸入,利用級(jí)聯(lián)的分解式ASPP 給出預(yù)測結(jié)果。從表3 中可以看到,相較于簡單解碼設(shè)計(jì)的SPMNet,加入ERFNet 和FarSeeNet 解碼器的SPMNet在準(zhǔn)確率上分別有0.26和0.92個(gè)百分點(diǎn)的提升,但是模型的處理速度卻下降到58 FPS 和64 FPS。相比而言,加入CCA 模塊后SPMNet-CCA 的準(zhǔn)確率提升到71.86%,而實(shí)時(shí)性僅下降了5 FPS。SPMNet網(wǎng)絡(luò)所有特征層的最大通道數(shù)僅有128,通道的加權(quán)計(jì)算并不會(huì)引入很多的參數(shù)和計(jì)算量,因此CCA模塊對(duì)于網(wǎng)絡(luò)的實(shí)時(shí)性影響是十分微小的。
圖7 展示了加入CCA 模塊前后的算法分割圖對(duì)比情況。每一行分別為Cityscapes驗(yàn)證集中的原始圖像、人工精細(xì)標(biāo)注的標(biāo)簽圖像、SPMNet的分割結(jié)果和使用了CCA模塊用于上采樣的SPMNet-CCA 的分割結(jié)果。圖中用黑色邊框標(biāo)注了分割前后Cityscapes 數(shù)據(jù)集中差距較大的部分,例如,從圖7(a)中每張圖像左上角對(duì)于交通標(biāo)志(traffic sign)類別像素的預(yù)測結(jié)果可以發(fā)現(xiàn),使用CCA 模塊的SPMNet 分割圖像的邊緣明顯更為精細(xì);圖7(c)原始圖像包含人(person)和摩托車(motorcycle)相互遮擋的場景,SPMNet 的分割結(jié)果中出現(xiàn)了摩托車的像素部分被錯(cuò)誤地分類為人(person)的情況,而圖7(d)中SPMNet-CCA 的分割較好地將道路占據(jù)的像素區(qū)分開來,帶來了更好的可視化效果。此外,對(duì)于其他類別如道路(road)、汽車(car)、樹(tree)等,利用深層語義對(duì)淺層特征圖通道權(quán)重進(jìn)行修改的注意力機(jī)制對(duì)于圖像目標(biāo)邊緣的恢復(fù)效果同樣有顯著作用。
圖7 加入CCA模塊前后的SPMNet分割可視化效果Fig.7 Visualization effect of SPMNet segmentation before and after adding CCA module
綜上所述,本文所提出的基于SPM 單元的輕量級(jí)網(wǎng)絡(luò)模型和上下文通道注意力模塊CCA是十分有效的。
為了進(jìn)一步驗(yàn)證本文提出的輕量級(jí)圖像實(shí)時(shí)語義分割算法的有效性和泛化性,在輸入圖像尺寸、準(zhǔn)確度和速度方面將SPMNet 和加入CCA 模塊后的模型與其他現(xiàn)有語義分割算法進(jìn)行比較,包括深度卷積網(wǎng)絡(luò)(DeepLab)、用于圖像分割的深度卷積編解碼器架構(gòu)(deep convolutional encoder-decoder architecture for image Segmentation,SegNet)、高效殘差分解卷積網(wǎng)絡(luò)(Efficient Residual Factorized ConvNet,ERFNet)、雙邊分割網(wǎng)絡(luò)(Bilateral segmentation Network,BiseNet)[20]、高效多尺度上下文聚合和特征空間超分辨率實(shí)時(shí)語義分割網(wǎng)絡(luò)(FarSeeNet)、深度特征聚合網(wǎng)絡(luò)(Deep Feature Aggregation Network,DFANet)[21]、非局部高效實(shí)時(shí)算法(Light-weighted Network with efficient Reduced non-local operation for real-time semantic segmentation,LRNNet)、圖像級(jí)聯(lián)網(wǎng)絡(luò)(Image Cascade Network,ICNet)[22]。BiseNet 通過對(duì)細(xì)節(jié)特征和語義特征進(jìn)行拼接整合全局語義信息,DFANet利用特征聚合的方式進(jìn)一步細(xì)化特征,ICNet利用低分辨率圖的語義信息和高分辨率圖的細(xì)節(jié)信息進(jìn)行像素分類。這些都是目前十分優(yōu)秀的實(shí)時(shí)語義分割算法。實(shí)驗(yàn)在Cityscapes 數(shù)據(jù)集和CamVid數(shù)據(jù)集上進(jìn)行,對(duì)比結(jié)果展示在表4 和表5 中,“—”表示該數(shù)據(jù)并未在論文中提供或未由開源模型得到。
表4 SPMNet與其他語義分割算法在Cityscapes測試集上的性能對(duì)比Tab.4 Performance comparison of SPMNet and other semantic segmentation algorithms on Cityscapes test set
表5 SPMNet與其他語義分割算法在CamVid測試集上的性能對(duì)比Tab.5 Performance comparison of SPMNet and other semantic segmentation algorithms on CamVid test set
本文的SPMNet 在Cityscapes 精細(xì)標(biāo)注的測試集上以96 FPS 的速度達(dá)到了71.18%mIoU 的準(zhǔn)確度,而插入CCA 模塊后的速度和準(zhǔn)確度分別為91 FPS和71.86%,展現(xiàn)了更好的平衡效果。與ERFNet 相比,SPMNet-CCA 的分割準(zhǔn)確率提高了3.86個(gè)百分點(diǎn),處理速度是其2.2倍;與BiseNet相比,速度比其慢13 FPS,但準(zhǔn)確度比其高3.46 個(gè)百分點(diǎn);與最新的實(shí)時(shí)語義分割算法LRNNet 相比,SPMNet-CCA 的準(zhǔn)確度略低0.34 個(gè)百分點(diǎn),但處理速度上升了20 FPS。本文算法沒有使用任何預(yù)訓(xùn)練模型,同分辨率輸入下,SPMNet-CCA 的速度和準(zhǔn)確度相較于其他算法有著更好的平衡性。在CamVid 測試集上,本文算法同樣取得了較好的結(jié)果。
圖8 展示了本文SPMNet-CCA 模型與ERFNet 在Cityscapes驗(yàn)證集上的分割可視化效果對(duì)比。
圖8 SPMNet-CCA與ERFNet的分割可視化效果對(duì)比Fig.8 Comparison of segmentation visualization effects between SPMNet-CCA and ERFNet
總的來說,經(jīng)過全局實(shí)驗(yàn)的對(duì)比分析可知,本文提出的SPM單元和SPMNet網(wǎng)絡(luò)模型,以及基于通道注意力的CCA模塊,對(duì)于實(shí)現(xiàn)輕量的圖像實(shí)時(shí)語義分割都是十分有效的方法,能夠在提升分割效率的同時(shí)仍然保證圖像分割的準(zhǔn)確度。
本文對(duì)語義分割算法的準(zhǔn)確度和實(shí)時(shí)性表現(xiàn)進(jìn)行深入分析,提出了一種基于可分離金字塔特征提取單元的圖像實(shí)時(shí)語義分割算法,在保證圖像分割準(zhǔn)確度的同時(shí)兼顧算法模型的輕量性和實(shí)時(shí)性,上下文通道注意力模塊用于引導(dǎo)淺層特征與深層高級(jí)語義信息融合,進(jìn)一步優(yōu)化分割效果。實(shí)驗(yàn)證明,本文算法的精度和速度平衡表現(xiàn)優(yōu)于其他對(duì)比算法,所構(gòu)建的特征提取模塊、注意力方法以及輕量級(jí)網(wǎng)絡(luò)模型對(duì)于其他研究者具有參考意義。由于本文算法僅基于兩種數(shù)據(jù)集進(jìn)行深入測試,對(duì)于特定的目標(biāo)類別缺乏針對(duì)性,在后續(xù)研究中,會(huì)考慮結(jié)合具體圖像分割目標(biāo)進(jìn)行網(wǎng)絡(luò)設(shè)計(jì),進(jìn)一步提升模型的實(shí)用性能。