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