張富財,許建龍,包曉安
(浙江理工大學 信息學院,杭州 310018)
圖像語義分割是為圖像中的每一個像素分配一個具體的類別標簽,達到像素級別的分類,是計算機視覺中的一項基礎性工作.圖像語義分割具有廣泛的實際應用場景,如自動駕駛、城市遙感地圖測繪、醫(yī)學影像分析等.在這些實際應用中,高精度的分割結果至關重要.
隨著卷積神經(jīng)網(wǎng)絡的發(fā)展,基于深度學習的圖像語義分割模型的精度得到空前的提高.Shelhamer 等提出的FCN 模型[1],奠定使用深度學習處理圖像語義分割任務的一般性過程,即先使用主干網(wǎng)絡對圖像做特征編碼降低分辨率,然后使用特定的解碼器解碼,還原圖像分辨率,最終產(chǎn)生密集型的像素類別預測結果.基于FCN 編解碼架構,圖像語義分割模型得到廣泛的發(fā)展.編碼器主要使用高精度的圖像分類網(wǎng)絡,如VGGNet[2]、GoogleNet[3]、ResNet[4]、DenseNet[5]、PeleeNet[6]等,這些主干網(wǎng)絡具有很高的圖像分類精度,將最后的全連接分類層更換為卷積層便可以直接遷移到語義分割模型中使用.在解碼器方面,主要關注特征圖的語義信息和分割對象的空間位置信息,出現(xiàn)許多處理全局特征的技術,本質都是擴大感受野,使模型感知全局信息,如Yu 等的DilationConv[7]提出擴張卷積的概念,在不降低圖像空間分辨率的基礎上聚合圖像中不同尺寸的上下文信息并且擴大感受野的范圍,精確定位分割對象;Chen 等的DeepLab[8]提出擴張空間卷積金字塔池化(atrous spatial pyramid pooling,ASPP)模塊,采用多個不同擴張率卷積的平行架構,關注不同感受野下的對象分割;Zhao 等的PSPNet[9]提出金字塔池化模塊(pyramid pooling module,PPM),使用平行的自適應池化操作獲取不同感受野的分割對象.
除了通過擴大模型的感受野提高模型性能,視覺注意力機制同樣被引入圖像分割任務中,如Fu 等提出DANet[10],同時使用位置注意力和通道注意力提高解碼器的分割性能,使模型有重點的關注分割對象,但是注意力機制會耗費相當大的算力.后來,為了兼顧模型分割精度與推理速度,許多模型使用輕量級的編碼器和簡易的解碼器構建模型,如Paszke 等提出ENet[11]和Zhao 等提出ICNet[12],雖然推理速度達到了實時要求,但是精度還有待提高.本文對前述技術進行綜合考慮,認為分割精度是語義分割模型首要考慮的因素.本文對上述模型進行復現(xiàn)實驗,發(fā)現(xiàn)PSPNet、DeepLab等模型僅使用主干網(wǎng)絡提取到的語義信息最豐富的最后一層特征圖,因為淺層的高分辨特征圖依然富含大量的空間位置特征和語義特征[13],所以通過合理的結合多級特征圖依然可以提升模型性能.因為上述模型沒有充分利用淺層低級特征圖的空間位置特征,導致他們的模型雖然可以捕獲豐富的高級語義特征,但是缺乏分割對象的空間位置信息,鑒于此,本文提出基于編解碼結構的高精度圖像語義分割模型.
本文使用已有工作的主干網(wǎng)絡ResNet[4]提取圖像特征,獲得4 級不同分辨率的特征圖(De1,De2,De3和De4),在此基礎上提出編解碼架構的高精度語義分割模型:雙分支多層級語義分割網(wǎng)絡(double branch multi-stage network,DBMSNet),使用雙分支同時處理分割對象的空間位置特征和高級語義特征.
本文主要工作為:(1)提出特征精煉模塊(feature refine,FR),通過融合高級語義特征與淺層的空間位置特征,使模型捕獲豐富的空間位置信息及全局上下文信息,強化模型的空間位置感知能力;(2)提出混合擴張卷積模塊(mixed dilation module,MDM),使用已有的深度可分離卷積[14]搭建稠密型連接模塊(輕量級模塊),充分混合不同擴張率的擴張卷積,獲取不同尺度的感受野,強化模型對不同尺度對象的感知能力,增強空間位置特征的解碼能力,使模型獲取全局上下文信息;(3)提出雙分支的解碼器,第1 個分支使用FR和MDM 解碼淺層特征的空間位置特征,第2 個分支使用已有的PPM 模塊解碼高級語義特征;(4)與對比方法相比,本文提出的雙分支多層級語義分割網(wǎng)絡在公開數(shù)據(jù)集上達到更高的精度.
在這個小節(jié),介紹雙分支多層級語義分割網(wǎng)絡的整體結構.DBMSNet 由特征精煉模塊、混合擴張卷積模塊及金字塔池化模塊構成.目的是充分利用多層次特征,通過學習豐富的空間位置特征和全局上下文特征完成高精度的圖像分割任務.如圖1所示.
圖1 DBMSNet 網(wǎng)絡的整體結構
輸入3 通道圖像經(jīng)過Backbone 產(chǎn)生4 級特征圖,分別為不同的分辨率(De1、De2、De3、De4的分辨率為輸入圖像的1/4、1/8、1/16、1/16).然后使用雙分支進行處理,第1 個分支為空間位置特征處理分支,首先將De1和De3 經(jīng)過FR 模塊,產(chǎn)生與De1 分辨率一致的特征圖,然后經(jīng)過MDM 模塊處理產(chǎn)生第1 個分支的輸出.第2 個分支為語義特征處理分支,使用PPM模塊處理De4 特征圖產(chǎn)生第2 個分支的輸出.最終,將兩個分支產(chǎn)生的輸出進行加權合并操作,使用雙線性插值算法將合并的輸出上采樣至輸入圖片的原始分辨率作為最終輸出,完成端到端的模型搭建,既捕獲抽象的高級語義特征,又級聯(lián)淺層的空間位置特征.
當輸入圖像的分辨率為512×512×3 時,OS=16 時(OS表示output stride),主干網(wǎng)絡提取到的各級特征圖分辨率如表1所示.特征精煉模塊細節(jié)如圖2.
表1 主干網(wǎng)絡的各級特征圖分辨率
圖2 特征精煉模塊細節(jié)
特征精煉模塊如式(1):
其中,Up(·)為雙線性插值上采樣函數(shù),C(·,·)為特征圖通道級聯(lián)函數(shù).
1.3.1 稠密型擴張卷積
稠密型擴張卷積(dense dilation convolution,DDC)是混合擴張卷積模塊的基本組成部分,并且深度可分離卷積[14]和分組卷積[15]與標準卷積的性能相似,但是效率更高.因此,使用深度可分離卷積來構建輕量級DDC 模塊,如圖3所示的DDC 模塊細節(jié)圖.
圖3 稠密擴張卷積模塊的細節(jié)圖
首先,給定一個輸入圖片IH×W×C0,H為高,W為寬,C0為通道數(shù).使用通道降維(channel reduce,CR)層進行通道降維,該層使用1×1 分組卷積使通道數(shù)降低為C0×α,α為通道降低率,得到特征圖I′H×W×(C0×α);其次輸入到4 個平行的深度可分離卷積層,其中卷積操作后都進行BatchNorm和ReLU 操作,以加速模型的收斂速度、提高穩(wěn)定性及解決梯度消失問題,分別生成4 個使用不同擴張率卷積處理的特征圖,如式(2)所示.
其中,i為正整數(shù),ri為不同的擴張率,li為各分支的特征圖.使用不同擴張率卷積的平行架構可以捕獲不同尺度感受野對象,在多個尺度上合并上下文信息.雖然上述4 個平行分支可以捕獲多尺度局部語義特征,但是缺少全局感知信息.為了克服這個缺點,設計自適應平均池化分支捕獲全局上下文信息,通過I′H×W×(C0×α)產(chǎn)生G1×1×(C0×α)(G為池化分支的輸出).全局平均池化是通過計算輸入的高度H和寬度W的平均值來進行下采樣操作,然后,同樣使用1×1 深度可分離卷積降低通道數(shù),接著使用雙線性插值算法恢復分辨率,以便與4 個平行分支產(chǎn)生的特征圖進行通道合并.最下面一個數(shù)據(jù)流表示殘差連接.
另外,直接將上述5 個分支的特征圖通道合并會削弱特征表達,所以設計通道隨機打亂操作(channel shuffle,CS),使特征的泛化表達性更高.整個DDC 模塊的操作如式(3)所示.
其中,S(·)為通道隨機混合函數(shù),C(·,·)為通道合并函數(shù),L為4 個不同擴張率卷積分支產(chǎn)生的特征圖,G′為自適應平均池化分支上采樣產(chǎn)生的特征圖,⊕為元素級相加,H為特征圖的高,W為特征圖的寬,C0為特征圖通道數(shù),α為通道縮減率,n為特征圖數(shù)量1,2,3,4.
DDC 模塊的詳細參數(shù)如表2所示,設輸入為H×W×C0,通道縮減率為α.其中,k為卷積核的大小,ri(i=1,2,3,4)為不同的擴張率,BN為BatchNorm,H,W,C0為特征圖的高、寬和通道數(shù).
表2 稠密擴張卷積模塊參數(shù)
1.3.2 混合擴張卷積模塊
混合擴張卷積模塊由上述DDC 模塊組成,細節(jié)展示如圖4所示.MDM 模塊分為兩部分,分別為DDC組成的稠密連接分支以及全局池化分支,用來捕獲多尺度對象語義特征以及空間位置特征.稠密連接分支使用3 個DDC 模塊的堆疊方式而不是平行架構,即外部為稠密連接方式,內部為多級平行架構.這樣充分利用不同尺度的感受野,通過對特征圖的最大化利用從而達到最好的效果且有更少的參數(shù).
圖4 混合擴張卷積模塊細節(jié)圖
每個DDC 模塊擁有明確的對象捕獲尺度,第1個DDC 模塊使用的擴張率組合為Ds={1,3,5,7},主要捕獲小尺度對象;以Ds的輸出作為輸入,第2 個DDC模塊的擴張率組合為Dm={5,7,11,13},主要捕獲中等尺寸對象;最后一個DDC 模塊的擴張率組合為Dl={13,15,17,19},主要捕獲大尺度對象.因為在輸入的時候進行通道降維操作,并且特征圖的分辨率較小,所以設置較大的擴張率不會增加太多的計算開銷.最后,將每一個DDC 模塊產(chǎn)生的輸出進行元素級別的求和操作,共同編碼多層次語義.MDM 模塊的輸出如式(4)所示.
其中,C(·,·)為特征圖通道合并操作,F1為稠密型連接分支的輸出,F2為全局平均池化上采樣后的輸出.感受野的計算如式(5)所示,其中,A為感受野尺寸,K為卷積核尺寸,D為擴張率.
最終,堆疊三級DDC 模塊可以在理論上獲得最大的感受野,如式(6)所示.
表3 混合擴張卷積模塊參數(shù)
借鑒PSPNet 中的PPM,使用自適應平均池化操作,處理第2 個分支,自適應即為將特征圖分別池化為(1,1)、(2,2)、(3,3)、(6,6)的尺寸,增強局部與全局特征的表達能力,最后與輸入圖進行通道合并,融合全局先驗知識,如圖5所示.
圖5 金字塔模塊的細節(jié)圖
模型的所有配置參數(shù)如表4所示,以輸入為(512,512,3)的圖像為例.表中:conv為卷積操作,[k×k,conv,Number]表示卷積核大小為k,卷積核的數(shù)量為Number,[k×k,dwconv,r={1,2,3,5}]表示深度可分離卷積操作,卷積核尺寸為k,r為擴張率,global_pooling為全局池化操作,num_classes為分割的類別數(shù).
表4 DBMSNet 參數(shù)
DBMSNet 模型的優(yōu)勢在于對分割對象空間位置特征的捕獲和高級語義特征的融合,為了驗證提出的DBMSNet的有效性,在公開數(shù)據(jù)集中進行廣泛的實驗.
(1)Cityscapes 城市場景數(shù)據(jù)集[16].這是一個流行的用于城市場景對象解析的數(shù)據(jù)集,它包含25 000 張分辨率為2048×1024的標注圖片.其中精細化標注的圖片數(shù)量為5 000 張并且包含19 個類別,如行人、汽車、天空、建筑物等.實驗時使用2 975 張圖片作為訓練集,500 張圖片作為驗證集,1 525 張圖片作為測試集.由于硬件設備的限制,訓練時將圖片裁剪為1024×512的尺寸.
(2)CelebAMask-HQ 人臉分割數(shù)據(jù)集[17].該數(shù)據(jù)集包含30 000 張高分辨率的人臉圖片,每一張圖片擁有詳細的標注信息.該數(shù)據(jù)集的標注圖的尺寸為512×512 并且分為19 個類別,分別為面部皮膚、鼻子、眼鏡、左右眼、左右眉毛、左右耳朵、牙齒、上下嘴唇、頭發(fā)、帽子、耳環(huán)、項鏈、脖子和衣服.提取了一部分數(shù)據(jù)進行DBMSNet的實驗,其中訓練集24 184張,驗證集300 張,測試集2 824 張.為了驗證模型的泛化能力,繼續(xù)在城市場景解析數(shù)據(jù)集中進行了廣泛的實驗.
(1)語義精度.mIoU平均交并比是一個廣泛用于圖像分割領域的評價分割精度的指標.假設b代表語義分割的類別數(shù),則mIoU如式(7)所示.
其中,pvz為真實值為z,被預測為v的數(shù)量,b+1為類別個數(shù)(包含背景忽略類).pzz為正確的數(shù)量.pzv、pvz分別為假正和假負.
(2)像素精度(pixel accuracy,PA).預測正確的像素數(shù)占總像素數(shù)的比例,如式(8)所示.
其中,pzv為像素總數(shù),pzz為預測正確的像素數(shù),b為類別數(shù).
實驗中使用開源深度學習框架PaddlePaddle[18]搭建DBMSNet 模型,實驗設備為Tesla V100 單卡32 GB顯存,操作系統(tǒng)為Ubuntu 16.04.在訓練之前,進行數(shù)據(jù)預處理操作:① 使用步長為0.25,范圍為0.75 到1.5的隨機尺寸縮放;② 設置隨機水平翻轉與隨機垂直翻轉概率為0.5;③ 設置隨機旋轉角度為(-10,10);④ 設置隨機對比度變化范圍0.4,隨機亮度變化范圍0.4,隨機色彩飽和度變化范圍0.4;⑤ 像素歸一化處理.
在訓練時使用“Poly”學習率衰減策略,power為0.9,終止學習率為0,如式(9)所示.
其中,lr為學習率,iter為迭代次數(shù),max_iter為最大迭代次數(shù),使用隨機梯度下降(stochastic gradient descent,SGD)優(yōu)化算法,動量為0.9,權重衰減為4e-5.對于兩個分支的輸出,第1 個分支的權重為0.4,第2 個分支的權重為1.最后使用像素級的交叉熵損失為損失函數(shù).本文在Cityscapes 數(shù)據(jù)集中進行廣泛的消融實驗,設置Batch_Size=6,iters=40000.
2.3.1 雙分支的有效性消融實驗
為驗證本文提出的雙分支模型的有效性,首先構造只使用De4 特征圖,并使用PPM 解碼的單分支模型作為Baseline.實驗結果如表5所示.
表5 雙分支有效性實驗
表5中,De4(PPM) 表示只使用De4 特征圖,用PPM 處理;De3(Two)表示De3 使用TwoDecoder 處理,TwoDecoder 表示本文提出的FR和MDM 組合的解碼器;De32 表示FR 模塊的輸入為De3和De2;Params表示模型的參數(shù)量;FLOPs 表示模型的浮點運算總量(輸入為360×640 估算).例如De4(PPM)+De321(Two)表示:De4 分支使用PPM 處理,De321為第1 個分支的輸入,使用TwoDecoder 處理.
實驗結果表明,在單獨使用De4(PPM) 分支的Baseline的基礎上,添加第1 個分支會對模型性能產(chǎn)生影響.其中,添加De3 或De32為第1 個分支的輸入時會對Baseline 產(chǎn)生負面影響,精度分別降低0.22和0.23;添加De31 或De321為第1 個分支的輸入時會對Baseline 產(chǎn)生正面影響,精度分別提高0.51和0.29;并且,添加De31 作為第1 個分支的輸入取得最好性能75.78,相比Baseline 精度提升0.51,證明本文提出的雙分支解碼器是有效的.
2.3.2 PP_Out 參數(shù)的消融實驗
為相對減少模型參數(shù),分別設置PP_Out=1024、512、256和128 進行對比實驗,PP_Out 表示PPM 模塊的輸出通道數(shù),選擇的基準模型為實驗1 中的最佳配置:De4(PPM)+De31(Two),結果如表6所示.
表6 PP_Out 參數(shù)影響
實驗結果表明,在基準模型一致的前提下,設置不同的PP_Out 會對模型產(chǎn)生不同的影響.設置PP_Out=128的參數(shù)量為PP_Out=1024的50%,FLOPs為PP_Out=1024的61%,證明PP_Out 設置為128 可以取得更好的結果,且擁有更少的Params和FLOPs.
2.3.3 TwoDecoder的消融實驗
TwoDecoder 表示第1 個分支的解碼器(由FR和MDM 組成).在實驗1 證明De4(PPM) 基礎上添加De31(Two)取得最佳性能后,充分調試TwoDecoder的最佳配置,實驗中設置PP_Out=128,結果如表7所示.
表7中,設置第1 個分支為De31,依次驗證TwoDecoder的配置,Small 表示MDM 模塊中DDC 小擴張率r=[1,3,5,7],Middle 表示MDM 模塊DDC 中擴張率r=[5,7,11,13],Large 表示MDM 模塊中DDC 大擴張率r=[13,16,18,20],Global_Pooling 表示MDM 中的全局池化層,Attention 表示MDM 中的注意力層,在實驗中增加注意力機制進行實驗效果的探索;第2 個分支De4(PPM) 保持不變.如De31+Small+Middle 表示:第2 個分支保持De4(PPM)不變,第1 個分支使用De31為輸入,MDM 模塊包含Small和Middle 兩個擴張率組合.
表7 TwoDecoder 最佳配置
實驗結果表明,通過改變不同TwoDecoder 配置,在De4(PPM)和De31 兩個分支保持不變的前提下,第1 個分支TwoDecoder 配置為Small+Middle+Large+Global_Pooling 時精度最高為76.37,相反,添加Attention層后的精度下降0.39.
2.3.4 單分支的消融實驗
在實驗1、2 得出PP_Out=128,第1 個分支輸入為De31 時,模型得到最高精度后,繼續(xù)驗證單分支的性能,Two的配置為實驗3 中的最佳配置,實驗結果如表8所示.
表8 單分支消融性實驗
表8中,De4(PPM)表示只使用De4 分支,PPM 解碼;De31(Two)表示只使用第1 個分支,De31 作為輸入,使用TwoDecoder 解碼;設置PP_Out=128.實驗結果表明,單獨使用De4 分支比單獨使用De31 分支的精度高0.65,結合兩個分支取得最佳精度76.37,均高于單獨使用一個分支的精度,證明兩個分支結合的有效性.
2.3.5OS的消融實驗
OS為主干網(wǎng)絡的輸出步長,表示提取特征圖的縮放比例.在基準模型為De4(PPM)+De31(Two)的前提下,測試不同OS對模型精度的影響.PP_Out 設置為128,實驗結果如表9所示.
表9 OS 消融性實驗
實驗結果表明,在基準模型相同的情況下,OS=16 取得最佳精度76.37%,比OS=8 高0.35,實驗數(shù)據(jù)表明OS的改變不會影響模型的參數(shù)量,但是會影響浮點運算總量,OS=16的浮點運算總量僅為OS=8的40%,且精度更高,所以設置模型OS=16.
2.3.6 主干網(wǎng)絡消融實驗
通過改變不同的Backbone 網(wǎng)絡,驗證本文模型可以得到的最佳精度.結果如表10所示.
表10 主干網(wǎng)絡的影響
該實驗使用上述實驗得出的最佳模型配置:De4(PPM)+De31(Two),Two為Small+Middle+Large+Glo-bal_Pooling.實驗結果表明,使用主干網(wǎng)絡ResNet101取得最佳精度78.29%,比ResNet50 高1.32,比ResNet152高0.14.
(1)與當前主流的高精度圖像語義分割模型對比性能,Cityscapes 實驗結果如表11所示,其他模型的數(shù)據(jù)均來自公開論文中的數(shù)據(jù).實驗結果表明,本文提出的模型精度均高于對比模型.Cityscapes 數(shù)據(jù)集可視化結果如圖6所示.
圖6 Cityscapes 可視化結果
表11 其他模型性能對比數(shù)據(jù)
(2)模型參數(shù)量對比.為體現(xiàn)本文提出的模型的先進性,繼續(xù)對比模型的參數(shù)量與浮點運算總量,對比結果如表12所示.
表12 模型參數(shù)對比
實驗結果表明,本文提出的模型取得最高的精度78.29,擁有最少的參數(shù)量33.4 M和浮點運算數(shù)421.8 G,充分證明本文提出模型的先進性.
(3)CelebAMask-HQ 實驗結果.
CelebAMask-HQ 數(shù)據(jù)集中的實驗結果如表13所示.首先在自己的實驗環(huán)境中復現(xiàn)了表中所有的對比模型,并且使用相同的訓練準則進行模型訓練.通過實驗數(shù)據(jù)可以清晰地觀察到,DBMSNet 模型在捕獲左眼和右眼、左眉毛和右眉毛、左耳和右耳的類別IoU 方面取得了絕對的領先,這歸功于提出的特征精煉(FR)模塊以及混合空洞卷積(MDM)模塊,不但可以提取多尺度的高級抽象語義信息,而且可以完美地獲取解析對象的空間位置信息,在其他的類別預測精度相差無幾的情況下,精確的空間位置信息可以完美地反應人臉中對稱的對象,如左右眉毛、左右眼睛等,這些對象具有絕對相似的外觀,但是空間位置不同,DBMSNet模型完美地解決了這個難題.與PSPNet 相比精度提升了0.76%,像素精度提升了0.02%,達到了最高的分數(shù).
表13 CelebAMask-HQ 實驗結果 (%)
可視化結果比較如圖7所示.通過可視化的比較結果,可以清晰地看到,UNet、DeepLab v3+等模型由于特征表達能力不夠,會出現(xiàn)類別混淆、對象空間位置混淆、對象類別錯分的現(xiàn)象,并且對于大多數(shù)對象的空間位置預測出錯.而PSPNet 雖然也達到了很高的分割精度,但是在空間位置準確度預測方面依然不如本文的模型.
圖7 CelebAMask-HQ 可視化結果
使用作者本人的圖片進行模型測試,結果如圖8所示.可以看到,UNet、DeepLab v3+等模型無法做到語義類別的準確預測,無法清晰的辨別對象空間位置信息;FCN、PSPNet 由于未充分使用主干網(wǎng)絡的特征圖,對于空間位置的解析不夠精確;DBMSNet 達到了最佳的預測結果,兼具語義類別的準確性與空間位置的精確性.
圖8 真人輸入可視化結果
本文提出一種高精度語義分割網(wǎng)絡稱為雙分支多層級語義分割網(wǎng)絡(DBMSNet).首先使用殘差網(wǎng)絡提取到4 級分辨率由大到小的特征圖(De1,De2,De3和De4);其次將De1和De3 通過本文提出的FR 模塊與MDM 模塊,充分混合空間位置特征的同時編碼上下文信息及多尺度感受野,此輸出為第一分支;然后將De4通過PPM 模塊,目的是提取高級語義信息,此輸出為第二分支;最后將兩個分支進行融合輸出,達到空間位置特征與高級語義信息融合的目的,完成高精度的圖像分割任務.文中多組消融實驗充分表明了本文所提模塊的有效性.最終實驗結果表明,本文所提模型在相同數(shù)據(jù)集的精度明顯優(yōu)于文中列出的現(xiàn)有模型,在人臉解析數(shù)據(jù)集CelebAMask-HQ 取得最高精度74.64%,在Cityscapes 數(shù)據(jù)集取得78.29%的精度.所提模型兼顧分割對象的空間位置特征與高級語義特征,具有較好的性能.
在后續(xù)的研究中,繼續(xù)兩方面的內容:(1)加快模型的推理速度,同時需保持高的解析精度,本文認為分割精度是語義分割工作的核心要義.(2)提升分割對象的邊界準確率,邊界問題仍然存在于本文提出的模型中,需要進一步改進.