王囡,侯志強*,蒲磊,馬素剛,程環(huán)環(huán)
1.西安郵電大學計算機學院,西安 710121;2.空軍工程大學信息與導航學院,西安 710077
圖像語義分割(青晨 等,2020)是計算機視覺領域的一個重要研究內(nèi)容,廣泛應用于自動駕駛、場景識別與理解和機器人等領域。在圖像語義分割任務中,深度卷積神經(jīng)網(wǎng)絡的使用大幅提高了分割的準確性。Zhao等人(2017)提出的金字塔池化模塊能夠聚合不同區(qū)域的上下文信息,從而提高全局信息的獲取能力;Chen等人(2017,2018)提出了采用不同速率的空洞卷積提取多尺度特征,在增大空間分辨率的同時不改變參數(shù)數(shù)量;Kirillov 等人(2019)和Lin等人(2017)采用特征金字塔網(wǎng)絡進行特征提取,利用多尺度金字塔結(jié)構(gòu)構(gòu)建網(wǎng)絡。但是上述網(wǎng)絡的規(guī)模、推理速度限制了它們在實際中的應用。因此,如何設計一個容量小、速度快并且高效的實時語義分割網(wǎng)絡是一個亟需解決的問題。
針對這個問題,已經(jīng)出現(xiàn)許多輕量級的網(wǎng)絡平衡語義分割的準確度和實時性,這些網(wǎng)絡大致分為網(wǎng)絡修剪和卷積分解兩類。網(wǎng)絡修剪方法中,Han等人(2016)通過修剪技術(shù)去除預先訓練模型的冗余以提高效率;Wen等人(2016)對深度神經(jīng)網(wǎng)絡進行稀疏化,達到加速的目的;Paszke等人(2016)通過修剪大量卷積濾波器以減少計算量。卷積分解方法中,Zhao等人(2018a)提出了一種包含多分辨率分支的圖像級聯(lián)網(wǎng)絡,使用圖像級聯(lián)加速語義分割方法;Ma等人(2018)、Howard等人(2017)和Sandler 等人(2018)用深度可分離卷積替代標準卷積解決卷積網(wǎng)絡計算效率和參數(shù)量的問題,將標準卷積分解成一個深度卷積和一個點卷積;Romera等人(2017)通過將2D卷積分解成兩個1D因子分解卷積,在獲得與2D卷積相似準確率的情況下減少了參數(shù)量,達到實時的要求;Mehta等人(2018)不僅將標準卷積進行分解,還引入了一個高效的空間金字塔,提升了速度和性能。Wang等人(2019)將深度可分離卷積與空洞卷積(Yu和Koltun,2016)相結(jié)合,在保持參數(shù)數(shù)量不變的同時產(chǎn)生大的感受野,獲得參數(shù)量小、精度高的實時分割效果,但是在每個分支采用了空洞率大小相同的空洞卷積,不能獲取不同大小的感受野信息。
注意力機制最早用于自然語言處理(Nadkarni等,2011)。隨后因為注意力機制的有效性,相關(guān)人員將注意力機制引入語義分割任務(Zhao等,2018b;Yuan等,2021;Fu等,2019)并獲得不錯的表現(xiàn)。注意力機制在獲取整個輸入特征時也具有選擇性,目的是使網(wǎng)絡將重點放在某些關(guān)鍵信息上增強特征的表達。Hu等人(2018)提出了一種有效的通道注意力模塊,提升有用通道的重要性,抑制無用通道的重要性,取得了良好的性能。Woo等人(2018)借鑒了通道注意力模塊的設計思想,將通道注意力模塊與空間注意力模塊相結(jié)合,增強對特征的通道信息和空間信息的表達。
基于上述分析,對于實時語義分割任務來說,在有限的資源下追求更好的分割準確性仍有進一步改進空間。本文提出了一種新的網(wǎng)絡結(jié)構(gòu)用于實時語義分割,主要工作如下:1)為了有效獲取不同大小的感受野信息,設計了一個結(jié)合深度可分離卷積和不同大小空洞率的空洞卷積模塊,將深度可分離卷積和不同空洞率的空洞卷積相結(jié)合,在減少模型計算量的同時,可以更高效地提取特征。2)在網(wǎng)絡輸出端,先引入通道注意力模塊,獲取特征不同通道之間的重要性,再采用級聯(lián)的方式,將空間注意力模塊進行結(jié)合,增強了特征的空間信息和通道信息的表達,并與原始特征融合以進一步提高對特征的表達能力。3)在Cityscapes數(shù)據(jù)集和CamVid數(shù)據(jù)集上進行測試,并與近幾年類似方法進行比較,結(jié)果表明本文方法在準確度和實時性之間取得了有效平衡。
本文提出的基于空洞可分離卷積模塊和注意力機制的實時語義分割主要分為特征提取階段和特征增強階段,如圖1所示。其中,特征提取階段由下采樣模塊(down-sampling unit)和空洞可分離卷積模塊(dilated separable convolution module,DSCM)組成。特征增強階段由通道注意力模塊(channel attention module,CAM)、空間注意力模塊(spatial attention module,SAM)、全局平均池化(global average pooling,GAP)和上采樣(upsampling)組成。
圖1 網(wǎng)絡總體框架圖Fig.1 Overall framework of the network
在特征提取階段,輸入圖像先經(jīng)過下采樣操作,該下采樣操作由步長為2的3×3卷積和2×2的最大池化組成。因為下采樣操作減小了特征圖的大小,對最終的預測結(jié)果產(chǎn)生影響。為了保留空間信息細節(jié),本文模型首先使用3次下采樣操作,獲得原圖1/8的特征圖分辨率,然后采用本文設計的空洞可分離卷積模塊密集提取特征。該模塊使用通道分離操作將通道數(shù)分為原來的一半,分成兩個分支。每個分支用深度可分離卷積代替標準卷積,以此減少參數(shù)量,并在每個分支的卷積層使用不同空洞率的空洞卷積擴大感受野,有效獲取多尺度上下文信息。
在特征增強階段,對提取的特征進行了重新整合,增強特征信息表達,具體操作如下:首先,本文在模型中同時引入通道注意力模塊和空間注意力模塊分支,增強特征的通道信息和空間信息的表達。其次,為了進一步提高語義分割性能,引入全局平均池化分支整合全局上下文信息。最后,將所有分支特征進行融合,并使用上采樣操作匹配輸入圖像的分辨率。
通過深度可分離卷積和殘差連接的組合提取網(wǎng)絡特征是輕量級網(wǎng)絡常用的方法。如Romera等人(2017)提出的Non-bottleneck-1D模塊和Wang等人(2019)提出的SS-nbt模塊,如圖2所示。Non-bottleneck模塊采用兩組1維分解卷積代替標準卷積,使精度和參數(shù)量獲得一個平衡,是一個單分支模塊。SS-nbt模塊采用雙分支結(jié)構(gòu),每個分支使用兩組1維卷積,在最后一組卷積中使用相同空洞率(dilation rate,D)的空洞卷積,最后合并兩個分支。然而這些方式在網(wǎng)絡學習能力和效率方面依然會有一些限制,沒有考慮到多尺度信息的獲取。在Chen等人(2018)對多尺度信息工作研究的啟發(fā)下,在本文的模塊(DSCM)中,同樣采用雙分支結(jié)構(gòu),并且在每個分支結(jié)合了不同大小空洞率(D1,D2)的空洞卷積,有效獲取多尺度信息,如圖2(c)所示。
圖2 不同類型模塊的比較(w為通道數(shù))Fig.2 Comparison of different types of modules (w is the number of channels)((a)Non-bottleneck-1D;(b)SS-nbt;(c)DSCM)
首先,對于輸入,使用通道分離操作將通道數(shù)分為原來的一半,分成兩個分支。針對每個分支采用一組可分離卷積代替標準卷積,以此減少參數(shù)量。然而,簡單地使用深度可分離卷積代替標準卷積會導致性能下降,并且在語義分割中多尺度信息的獲取同樣重要。所以本文將深度可分離卷積與空洞卷積相結(jié)合,在每個分支上的卷積層使用不同大小空洞率的空洞卷積擴大感受野,有效獲取多尺度信息。在第1個分支采用空洞率為D1的空洞卷積,在第2個分支采用空洞率為D2的空洞卷積。在結(jié)構(gòu)參數(shù)的選擇上,與Yu和Koltun(2016)的選擇相同,每個分支采用不同空洞率的空洞卷積大小依次以2、4、8、16為基準進行設計,按此順序逐漸擴大感受野。然后,使用concat操作將兩個分支進行合并,恢復原有通道數(shù)。因為兩個分支考慮了不同大小感受野信息,所以使用1 × 1卷積促進融合兩個分支之間的信息,加強信息之間的交流,增強特征表達,并且將輸入特征和兩個分支融合后的特征進行殘差連接操作,便于訓練。
與其他可分離卷積模塊(圖2(a)(b))相比,本文模塊不僅具有足夠的感受野,密集地利用多尺度信息,而且具有更少的參數(shù)量和更強的特征表達能力。
圖像經(jīng)過卷積操作之后,特征圖的各通道往往表達不同的特征,這些特征對于分割的影響存在差異。其中,特征圖中的每個通道都保持相同的權(quán)重,沒有考慮每個通道之間的重要性關(guān)系,不利于增強目標的特征信息。而通道注意力模塊可以獲取特征圖不同通道間的重要程度,并賦予每個通道相應的權(quán)重,能夠更好地利用權(quán)重高的特征并抑制權(quán)重低的特征,增強特征之間的表達。
通道注意力模塊如圖3所示。首先,對于輸入的特征圖F,在空間維度上使用平均池化和最大池化操作提取空間和通道權(quán)重,得到兩個不同的特征描述,分別表示平均池化特征和最大池化特征。然后,將兩個描述特征送到多層感知(multi-layer perceptron,MLP)中,將MLP輸出的特征進行融合操作。具體為
圖3 通道注意力模塊Fig.3 Channel attention module
Favg=MLP(AvgPool(F))
(1)
Fmax=MLP(MaxPool(F))
(2)
Fm=Favg+Fmax
(3)
式中,F(xiàn)avg表示平均池化后進行MLP后的特征,F(xiàn)max表示最大化池化后進行MLP后的特征,F(xiàn)m表示將MLP輸出的特征進行加權(quán)操作,F(xiàn)表示輸入的特征圖。
最后,再經(jīng)過sigmoid激活函數(shù)生成通道注意力特征圖,將注意力特征圖與輸入特征圖相乘得到具有通道關(guān)注的特征圖。具體為
Fc=σ(Fm)·F
(4)
式中,F(xiàn)表示輸入特征圖,F(xiàn)c表示加入通道注意力之后的特征圖。
不同于通道注意力模塊,空間注意力模塊更加側(cè)重于關(guān)注空間位置信息,由于卷積運算通過將通道和空間信息混合在一起提取特征,因此在分割任務中起著重要作用。本文采用空間注意力模塊,如圖4所示,在獲取特征圖的不同通道間的重要程度時,還能獲取特征圖的空間位置信息的重要程度,突出關(guān)鍵特征的位置,從而增強特征圖表示能力。
圖4 空間注意力模塊Fig.4 Spatial attention module
首先,對經(jīng)過通道注意力模塊得到的特征圖Fc在通道維度上進行平均池化和最大池化,得到兩個不同信息表示的特征圖。具體為
(5)
(6)
其次,使用concat操作將這兩個不同表示的特征圖進行直接拼接,再使用大小為7 × 7的卷積層進行卷積,再經(jīng)過sigmoid激活函數(shù)得到空間注意力特征圖。具體為
(7)
最后,將Fss與輸入特征Fc相乘即可得到具有空間關(guān)注的特征圖Fs。
本文實驗中采用兩個數(shù)據(jù)集進行結(jié)果分析比較,分別是Cityscapes數(shù)據(jù)集和CamVid數(shù)據(jù)集。
Cityscapes是一個大型城市街道場景數(shù)據(jù)集,在語義分割領域廣泛使用,包含5 000幅精細標注的圖像和20 000幅粗略標注的圖像。本文實驗只使用精細標注的圖像,包含2 975幅用于訓練的精細注釋圖像、1 525幅用于測試的圖像和500幅用于驗證的圖像。
CamVid數(shù)據(jù)集是從駕駛汽車的角度來看的一個街景數(shù)據(jù)集,包含701幅圖像,其中367幅用于訓練,101幅用于驗證,233幅用于測試。數(shù)據(jù)集包含11個語義類別。
本文采用的評價指標為平均交并比(mean intersection over union,mIoU)和每秒處理幀數(shù)(frames per second,F(xiàn)PS),這兩種評價指標為當前語義分割應用較多的標準度量。
mIoU計算兩個集合為真實值和預測值的交集與并集之比,用于評價算法精度。IoU(intersection over union)是每一個類別的交集與并集之比,而mIoU則是所有類別的平均IoU,具體計算為
(8)
式中,k是前景對象的個數(shù),pij是指原本屬于第i類卻分類到第j類的像素的數(shù)量。
FPS用于評價算法速度,具體計算為
(9)
式中,N表示圖像數(shù)量,Tj表示算法處理第j幅圖像的時間。
2.2.1 算法消融實驗
為了驗證模塊的性能,對各模塊分別進行實驗,由于本文方法采用的通道注意力模塊和空間注意力模塊均為輕量級,幾乎不增加參數(shù)量,因此采用mIoU和FPS為評價標準,同步進行分析,驗證各模塊對提升整體方法的性能表現(xiàn),實驗結(jié)果如表1所示。包括空洞可分離卷積模塊(dilated separable convolution module,DSCM)、通道注意力模塊(channel attention module,CAM)、空間注意力模塊(spatial attention module,SAM)以及全局平均池化(global average pooling,GAP)。
表1 引入各模塊的性能比較Table 1 Performance comparison of the introduced modules
首先,僅采用空洞可分離卷積模塊(DSCM)提取圖像特征并上采樣進行輸出,得到69.2%的精度和73幀/s的速度。然后,在此基礎上僅引入通道注意力模塊(DSCM + CAM),對特征不同通道間的信息進行增強,得到69.9%的精度和72幀/s的速度。隨后,考慮空間注意力模塊(DSCM + SAM),增強特征的空間位置信息,在特征提取后,僅引入空間注意力模塊,得到69.8%的精度和72幀/s的速度。受Woo等人(2018)將通道注意力模塊和空間注意力模塊組合使用的啟發(fā),將通道注意力模塊和空間注意力模塊(DSCM + CAM + SAM)級聯(lián)使用,在特征提取后,先引入通道注意力模塊,再通過級聯(lián)的方式引入空間注意力模塊,同時增強通道和空間特征之間的表達,得到70.2%的精度和71幀/s的速度。最后,引入全局平均池化模塊(DSCM + CAM + SAM + GAP)以獲得一個大的感受野,最終得到70.4%的精度和71幀/s的速度。
為了更加直觀地顯示各模塊的性能,圖5給出了加入不同模塊的分割結(jié)果圖??梢钥闯觯尤胪ǖ雷⒁饬δK后,當圖像中有相似目標出現(xiàn)時,不會互相造成干擾,減少了分割錯誤;加入空間注意力模塊后,對于一些細小類別可以在一定程度上正確分割出來;因此同時引入通道注意力模塊和空間注意力模塊,可以對圖像中重要目標的位置和特征種類有所側(cè)重,能夠更好地理解圖像中的內(nèi)容;最后在此基礎上加入全局平均池化模塊,獲得圖像中的全局信息,有效改善分割結(jié)果。
圖5 引入各模塊的結(jié)果比較Fig.5 Comparison of results with introduced modules((a)input images;(b)DSCM;(c)DSCM + CAM;(d)DSCM + SAM;(e)DSCM + CAM + SAM;(f)DSCM + CAM + SAM + GAP)
上述實驗證明,算法中各模塊對整體分割精度都有提升作用,算法結(jié)構(gòu)設計合理。訓練出的模型性能得到有效提升。
2.2.2 Cityscapes數(shù)據(jù)集上的結(jié)果
為了驗證本文方法的性能,在Cityscapes數(shù)據(jù)集中選取4幅圖像與CGNet(context guided network)(Wu等,2020)、ERFNet(efficient residual factorized ConvNet)(Romera等,2017)、ICNet(image cascade network)(Zhao等,2018a)、ESPNetV2(efficient spatial pyramid network V2)(Mehta等,2019)和LEDNet(light encoder-decoder network)(Wang等,2019)等實時語義分割方法分別進行定性和定量實驗對比,結(jié)果如圖6和表2所示。
從圖6的定性對比結(jié)果可以看出,第1行圖像中,與其他方法相比,本文方法對路中間的人可以很清晰地分割出來;第2行圖像中,本文方法對圖像中的一群人能很好地進行分割,不會互相造成干擾;第3行圖像中,本文對一些細小類別,比如電線桿、路標具有更好地分割效果;第4行圖像中,對比方法對車輛分割存在相似類別信息干擾,而本文方法可以避免相似類別信息干擾。實驗結(jié)果表明,本文方法具有良好的語義分割能力和識別能力。
從表2的定量實驗結(jié)果可以看出,與對比方法相比,本文方法的分割精度分別提升了5.6%、2.3%、0.9%、4.2%和1.2%。在模型參數(shù)量上,雖然CGNet有較小的參數(shù)量,略低于本文方法,但本文方法的分割精度明顯高于CGNet,比CGNe提升了5.6%。在分割速度上,CGNet為50幀/s,本文方法達到71幀/s。與基準算法LEDNet相比,在保持分割速度相等的情況下,本文方法的分割精度提高了1.2%,參數(shù)量降低了0.28 MB。通過實驗比較,本文方法在準確度和實時性之間取得了有效平衡。
表2 不同方法在Cityscapes數(shù)據(jù)集上的對比結(jié)果Table 2 Comparison of results among different methods on the Cityscapes dataset
2.2.3 CamVid 數(shù)據(jù)集上的結(jié)果
在CamVid數(shù)據(jù)集上同樣選取4幅圖像進行實驗驗證,與CGNet(Wu等,2020)、ICNet(Zhao等,2018a)和LEDNet(Wang等,2019)等實時語義分割方法分別進行定性和定量實驗對比,結(jié)果如圖7和表3所示。
表3 不同方法在CamVid數(shù)據(jù)集上的對比結(jié)果Table 3 Comparison of results among different methods on the CamVid dataset
從圖7的定性對比結(jié)果可以看出,本文方法基本能夠準確識別圖像中物體位置并且分割出物體,而CGNet在第1、2行的圖像中未能識別出路燈,ICNet和LEDNet在第3行的圖像中未能很好地分割出廣告牌,在第4行的圖像中對比方法對路面以及遠距離小物體路燈未能很好地識別出來。實驗結(jié)果表明,本文方法具有良好的語義分割能力和識別能力。
圖7 不同方法在CamVid數(shù)據(jù)集上的實驗結(jié)果對比Fig.7 Comparison of experimental results among different mothods on the CamVid dataset((a)input images;(b)ground truth;(c)CGNet;(d)ICNet;(e)LEDNet;(f)ours)
從表3的定量實驗結(jié)果可以看出,與對比方法相比,本文方法的分割精度分別提升了2.2%、0.6%和1.2%。在模型參數(shù)量上,CGNet有較小的參數(shù)量,而本文方法的參數(shù)量略高于CGNet,但本文方法的分割精度比CGNet提升了2.2%。與基準算法LEDNet相比,在保持分割速度相等的情況下,本文方法的分割精度提高了1.2%,參數(shù)量降低了0.28 MB,在保持實時的情況下提升分割精度。從實驗結(jié)果分析可以發(fā)現(xiàn),本文方法在參數(shù)量較少的條件下,具有較高的分割精度,同時保持了較好的分割速度。可見,本文方法在圖像語義分割的實時性和準確性之間取得了很好的平衡,是一種性能優(yōu)良的實時語義分割算法。
為滿足對語義分割算法準確度和實時性的要求,本文提出一種基于空洞可分離模塊和注意力機制的實時語義分割方法。基于考慮到多尺度信息的獲取,本文方法將深度可分離卷積與不同空洞率的空洞卷積有效結(jié)合,在每個深度可分離卷積分支上采用不同空洞率的空洞卷積獲取不同大小的感受野,并且引入通道注意力模塊和空間注意力模塊,增強特征的表達。在Cityscapes和CamVid數(shù)據(jù)集上進行實驗驗證,精度分別為70.4%和67.8%,分割速度達到71幀/s,模型參數(shù)量僅為0.66 MB。本文方法在參數(shù)量較少的條件下,具有較高的分割精度,同時保持了較好的分割速度,在語義分割實時性和準確度之間取得了很好的平衡。在下一步工作中,將考慮使用更深的網(wǎng)絡模型和引入上下文聚合模塊進行實時語義分割,進一步提高語義分割算法的性能。