?

融合累積分布函數和通道注意力機制的DeepLabV3+圖像分割算法

2023-03-24 13:25何雪東宣士斌王款陳夢楠
計算機應用 2023年3期
關鍵詞:池化空洞注意力

何雪東,宣士斌,2*,王款,陳夢楠

(1.廣西民族大學 人工智能學院,南寧 530006;2.廣西混雜計算與集成電路設計分析重點實驗室(廣西民族大學),南寧 530006)

0 引言

語義分割是計算機視覺中最重要的密集預測任務之一[1]。它將圖像或視頻幀劃分為多個片段和對象,并在醫學圖像分析(如腫瘤邊界提取和組織體積測量)、自動駕駛汽車(如可導航的表面和行人檢測)、視頻監控、增強現實等領域[2-5]中應用廣泛。

近些年來,全卷積網絡(Fully Convolutional Network,FCN)[6]使語義分割技術快速發展,大量語義分割模型相繼被提出。分析近些年著名的語義分割模型后發現,大部分工作集中在整合豐富的上下文信息以及對注意力機制的使用[1,5,7-15]。尤其是對通道注意力的使用,引起了廣泛的關注。其中最具代表性的是SENet[10],它通過SE(Squeeze-and-Excitation)模塊建立通道特征之間的依賴關系以提高網絡模型精度,之后的一些研究大多通過更復雜的通道依賴改進SE 模塊。CBAM(Convolutional Block Attention Module)[16]和ECA-Net(Efficient Channel Attention for deep convolutional neural Network)[15]又相繼提出加入最大值池化的通道注意力和更輕量的通道注意力。但是這些通道注意力模塊仍然需要少量參數進行訓練,增加了網絡的訓練負擔。文獻[17]中提出將自適應注意力機制加入主干網絡,以增強主干網絡提取特征的能力,但忽略了高分辨率的低級特征。

DeepLab 系列網絡[11-14]是整合上下文信息的代表模型,并且目前仍是最流行的語義分割網絡模型之一。DeepLabV1[11]將空洞卷積引入主干網絡,以減少一系列卷積操作導致有效信息丟失的問題。因為基于優化卷積結構的空洞卷積可以在不損失分辨率的前提下擴大卷積核的感受野[18],DeeplabV2 引入空洞空間金字塔池化(Atrous Spatial Pyramid Pooling,ASPP)聚合不同空洞率的空洞卷積生成的多尺度特征,以增強網絡對不同尺度目標的預測能力[12]。DeepLabV3+[14]擁有簡單有效的解碼模塊以及聚合多尺度特征的ASPP 模塊,因此在DeepLab 系列中更有效,并且多次被應用于實際應用。

經過多次實驗發現,DeepLabV3+在解碼階段只使用了主干網絡多階段淺層特征中的一個用作解碼模塊的融合,因此會造成部分信息丟失、分割不連續以及大尺度物體錯誤分割等問題。而直接將高級特征與主干網絡中的低級特征進行拼接融合,顯然會忽略不對齊的高低級特征向特征圖中引入噪聲的問題[19],影響語義分割的精度。

因此,本文提出累積分布通道注意力DeepLabV3+(Cumulative Distribution Channel Attention DeepLabV3+,CDCA-DLV3+)模型以提高DeepLabV3+的語義分割效果。本文的主要工作為:1)在高低特征跨層融合前加入一種注意力機制,即本文提出的累積分布通道注意力(Cumulative Distribution Channel Attention,CDCA)模塊,在減少噪聲干擾的同時對特征通道進行加權,抑制通道信息冗余,整合更加豐富的上下文信息;2)在解碼階段進行多次高低級特征融合,充分利用特征提取階段中的淺層特征,阻止圖像還原時圖像邊緣和紋理信息丟失,以提高模型細節的表征能力。本文提出的改進策略能有效強化重要特征學習,增強網絡學習能力,且只少量增加模型參數。

1 相關工作

作為DeepLabV3 的改進網絡,DeepLabV3+在解碼階段增加一個簡單的解碼器模塊來提取分割結果,該模塊通過逐步恢復空間信息以捕獲更清晰的目標邊界[14]。實際上,對于邊界特征的提取可以通過注意力機制提高表征能力,像人類一樣關注視野中的重要部分,忽略不重要的干擾物[16]。

1.1 DeepLabV3+網絡

DeepLabV3+網絡結構如圖1 所示,主要分為用于特征提取、還原的編碼層與解碼層,R為空洞率。

編碼層,即下采樣編碼部分,用于提取輸入圖像的高級語義信息。目前主流的主干網絡有ResNet(Residual Network)[20]、MobileNet[21-23]、Xception[24]、VGG(Visual Geometry Group)[25]等。又因為空洞卷積[18,26]可以在與普通卷積具有相同參數量的情況下獲得更大的感受野并且不損失特征圖的分辨率,所以DeepLabV3+對ResNet-101 進行改進,即在特征提取的最后的位置使用了空洞率分別為2、4、8的空洞卷積以提高特征提取的效果。主干網絡下采樣完成之后,經過ASPP 模塊處理后得到編碼層最終輸出的特征圖。

解碼層,即DeepLabV3+網絡的解碼部分,首先對編碼層最終的輸出特征圖直接進行4 倍上采樣并與ResNet-101 下采樣操作所產生的1/4 大小的特征圖經過一次1×1 的卷積(Conv)后在通道維度進行拼接(Concat),然后對所得特征圖進行兩次3×3 的卷積,最后經過一次4 倍上采樣所得到特征圖即該網絡的最終預測結果。

本文使用全新的通道注意力以獲得更加有效的低級特征,并且采用特征金字塔網絡(Future Pyramid Network,FPN)逐步還原特征圖,以避免多次大倍數上采樣造成的特征缺失,最終得到更加精準的分割效果。

1.2 通道注意力機制

注意力機制可以看作一種根據特征圖的重要性重新分配資源的機制[7],并且效果顯著,因此注意力機制近幾年被大量應用于深度卷積神經網絡(Deep Convolutional Neural Network,DCNN)。在SENet 中首次使用通道注意力(Channel Attention,CA)[10],它利用了通道之間的關系生成通道注意圖。隨后,許多研究將它應用于視覺任務。Wang等[15]基于SENet 在ECA-Net 提出一種高效通道注意力(Efficient Channel Attention,ECA)模塊,使用一維卷積來規避SENet 中的降維操作,實驗結果表明不僅提升了模型的性能,并且降低了復雜度。SENet 只使用平均池化獲取通道中的空間聚合信息,但最大池化也可以收集獨特的物體特征,因此在CBAM 中提出了同時使用最大池化和平均池化的通道注意力結構[16]。但這些模塊仍然存在一定量的參數需要進行訓練。為解決這一問題,本文基于上述通道注意力機制提出了一種不需要任何參數的通道注意力。

1.3 空間金字塔池化

空洞空間金字塔池化[12]模塊基于空間金字塔池化(Spatial Pyramid Pooling,SPP)[27]思想,采用不同大小、空洞率的空洞卷積獲得圖像的精確特征,之后通過1×1 卷積將通道數降低到合理范圍。ASPP 模塊對語義分割網絡的特征提取部分尤為重要。文獻[28]中提出一種采用不同空洞率組合的ASPP 模塊,并在實驗中取得了明顯的改進效果。本文在改進的模型中分別采用上述兩種ASPP 模塊進行對比實驗。

2 CDCA-DLV3+網絡模型

原始DeepLabV3+只是通過簡單的卷積與拼接進行空間信息恢復以及邊界特征提取。而文獻[28]中改進的DeepLabV3+雖然結合了1/8 和1/16 大小的特征圖并將它融入解碼模塊中,但由于只是通過簡單的金字塔結構拼接且沒有對編碼階段的特征圖作特征選擇,編碼階段的噪聲也融入了解碼模塊。在實驗中發現這些模型存在許多錯誤分割以及漏分割部分,為此本文在原始DeepLabV3+的解碼部分加入基于通道注意力機制和累積分布函數的CDCA 模塊,并將模型命名為CDCA-DLV3+。

2.1 模型總體架構

CDCA-DLV3+網絡結構如圖2 所示,依舊分為編碼層與解碼層。在編碼層的特征提取部分的主干網絡與原網絡相同均采用ResNet-101。受CBAM 和ECA-Net[15]以及累積分布函數在圖像增強方面應用的啟發,提出了CDCA,該模塊的優點在于提升網絡性能的同時不增加網絡的復雜度。在編碼部分下采樣的每個階段都會產生不同尺度的特征圖,最終輸出的特征圖分辨率為原圖1/16 大小。首先將1/16 大小的特征圖送入ASPP 模塊中進行處理,然后將ASPP 中所得到的所有特征圖經過Concat 進行融合,最后對融合后的特征圖使用1×1 卷積操作進行降維,至此編碼部分完成。

圖2 CDCA-DLV3+網絡結構Fig.2 CDCA-DLV3+network structure

原始DeepLabV3+網絡在解碼部分沒有充分結合高分辨率特征,并且經過兩次4 倍上采樣得到最終預測的這種較大倍數的上采樣會丟失一些重要像素,從而使網絡最終的輸出結果不準確。而文獻[28]雖然在解碼模塊中結合高分辨率特征,但會將噪聲融入解碼模塊,導致精度下降。因此本文提出一個更有效且靈活的解碼模塊,并且提出全新的CDCA。因為原網絡只應用了下采樣階段1/4 的特征圖,但是在編碼層下采樣操作時所產生的每一個特征圖都會對網絡的分割結果有影響,所以CDCA-DLV3+網絡利用特征金字塔思想在應用1/4 大小的特征圖的同時又加入1/8 和1/16 大小的特征圖,即將1/8 以及1/16 的特征圖先后與ASPP 模塊輸出的特征圖進行拼接作為解碼部分特征融合的重要部分,具體操作如圖3 所示。其中:A、B為編碼層下采樣時產生的特征圖,大小分別為1/8、1/16,通道數分別為512、1 024;C為ASPP 模塊輸出的特征圖進行1×1 卷積降維后得到的1/16 大小的特征圖。將B輸入CDCA 模塊得到特征圖B各個通道的權重,并與B相乘,再與C拼接得到大小為1/16 的特征圖D。對D使用1×1 卷積進行降維,然后通過2 倍上采樣得到分辨率為原圖1/8 的特征圖E。特征圖A與A經過CDCA 的輸出值進行相乘,再與E拼接得到新的特征圖,對它使用1×1 卷積降維,再使用2 倍上采樣,得到分辨率為原圖1/4 的特征圖F。最后,對圖1 中下采樣過程中1/4 大小的特征圖進行一次1×1 卷積后與特征圖F拼接,所得結果再經過兩個3×3 卷積和一個4 倍上采樣得到的輸出即網絡預測結果。

圖3 CDCA-DLV3+網絡結構細節Fig.3 CDCA-DLV3+network structure details

相較于文獻[28]中直接將1/8 和1/16 大小特征圖通過特征金字塔網絡(FPN)[29]融合后與編碼層的輸出特征圖拼接的操作,本文的解碼模塊更加靈活,可以只對1/8 或1/16 大小的特征圖進行處理;并且相較于文獻[28]提出的改進模型,本文的改進策略擁有更少的參數以及浮點運算量,且精度更高,具體對比將會在實驗部分列出。

2.2 累積分布通道注意力

在ECA 模型中,只使用了平均池化以聚合空間信息,卻忽略了最大池化這一重要線索。因為最大池化可以收集對象不同的重要特征[16],以此推斷出更加精確的通道注意力。并且文獻[16]通過實驗證實,同時利用這兩種特征可以極大地提高網絡的表示能力,所以為了獲得更豐富特征信息,在提出的CDCA 模塊中使用平均池化和最大池化來獲得更加精細的通道注意力。由于通道注意力最終輸出的數值為每個特征圖的權重,目的是強調某些特征圖的重要性。而累積分布函數可以增加圖像的對比度,為了增強通道注意力中參數的作用,即令重要特征圖的權重更大且減小不重要特征圖的權重,最終決定使用累積分布函數分別重新計算平均池化和最大池化后的數據,實驗結果表明CDCA 能有效提升模型精度。CDCA 模塊的結構如圖4 所示。

圖4 累積分布通道注意力模塊結構Fig.4 Structure of CDCA module

CDCA的輸入特征圖Fin∈RH×W×C,通過通道維度的最大池化 和平均 池化可 以分別得到Fmp∈R1×1×C和Fap∈R1×1×C:

其中:Squeeze(·)代表降維操作;P表示降維后的張量;F表示最大池化和平局池化后1× 1×C的張量;pj表示張量P在j位置的數值;rj表示pj映射為[0,255]的數值;nk表示灰度值小于等于rk的像素數;n表示張量中數據的總數;L表示張量中可能的灰度級;pr(rk)為灰度值小于等于rk的像素在該張量中的概率;Rep(·)為替換操作,即將張量P中像素值為rk的所有像素替換為pr(rk)的數值;Unsqueeze(·)為升維操作。

CDCA 模塊使用累積分布函數,每使用一個CDCA 只增加少量參數。但是CDCA 本身并不存在參數,增加的參數為處理特征圖通道數的卷積操作,因此CDCA 是一個輕量級的模塊,可以通過只增加少量參數就提升網絡的分割精度。累積分布函數對平均池化和最大池化后的數據重新賦值,所以每一個通道的權重會發生改變。使用累積分布函數不會使下采樣后得到特征圖信息缺失,也可以抑制噪聲對輸出結果的影響,同時會提高權重較大的通道的重要性,并且整個操作過程運算量很小,對于整個網絡模型速度的影響并不大。

2.3 特征金字塔思想

FPN 如圖5 所示,可以融合不同分辨率的特征圖(主要為主干網絡中的特征圖與ASPP 模塊輸出的特征圖)。圖5左側是4 個由下向上分辨率由大變小的特征圖,虛線部分為FPN 進行融合操作的具體過程,使用對應通道相加的方式進行融合。不同的是,本文模型均在通道維度采用Concat 操作完成特征融合。因為原始的FPN 使用對應通道相加的方式進行特征圖融合,有可能導致重要特征缺失,然而使用Concat 操作會保留所有特征圖,因此特征更加豐富且不會造成信息缺失。本文將編碼層下采樣階段中的特征圖B,即大小和通道數分別為1/16、1 024 的特征圖通過CDCA 與ASPP的輸出進行拼接正是使用這一思想。雖然這兩部分都是1/16 大小,但因為主干網絡中特征圖經過更少的卷積和下采樣,所以會留存一些更精細的語義信息。通過圖2 網絡中的兩次橫向連接,自底向上的語義信息得到了增強。

圖5 特征金字塔網絡結構Fig.5 Feature pyramid network structure

3 實驗與結果分析

3.1 數據集

本文實驗使用Pascal VOC(Pascal Visual Object Classes)2012 標準數據集和SBD(Semantic Boundaries Dataset)組合成的Pacal 加強數據集[30]以及Cityscapes[31]數據集。其中Pacal加強數據集的標準數據集中訓練、驗證、測試的圖像數分別為1 464、1 449、1 456;SBD 中訓練和驗證所用圖像數分別為8 498 和2 857,將合并后的數據集用于訓練、驗證、測試圖像數分別為10 582、1 449、1 456。所有圖像的分語義分類有21個,其中有20 個前景分類以及1 個背景分類。Cityscapes 數據集包含5 000 幅高質量像素級注釋的圖像(訓練集、驗證集和測試集數量分別為2 975、500 和1 525)和2× 104張粗注釋圖像,共分30 個類別。

3.2 實驗環境

本文中所涉及程序均使用Python+Pytorch 框架實現。表1 為運行環境的配置。

表1 機器軟硬件配置Tab.1 Machine software and hardware configuration

對學習率采用一種“poly”的學習策略,如式(7)所示:

式(7)中各參數在程序中的初始值分別為:base_lr=0.001 4;iter為當前程序運行的次數;max_iter為程序最大可運行次數;power=0.9。原始圖像分辨率會被預處理為513×513 再送入神經網絡,主干網絡為ResNet-101,優化器為隨機梯度下降法,batch size 以及Epochs 分別為16、100。平均交并比(mean Intersection over Union,mIoU)為語義分割領域最重要的指標評價方法,它表示真實值和預測值的重合度,因此本文使用mIoU 進行評估,計算方法如下:

其中:N為數據集的類別數量;Ti為圖像中像素為i類像素的總數;Xii為像素為i類像素并且預測結果也是i類像素的總數;Xji為像素為i類像素但預測結果為j類像素的總數。

3.3 Pacal數據集實驗結果對比

3.3.1 CDCA模塊以及ASPP空洞率對網絡的影響

CDCA 模塊可以只增加少量參數,在下采樣編碼階段提取有效的信息特征,而選擇合適的高分辨率特征圖以及在多個高分辨率特征圖中選擇出合適的細節特征尤為重要。

表2 為CDCA-DLV3+對不同尺度的高分辨率特征圖使用CDCA 模塊的測試結果對比,√表示CDCA 模塊對編碼時所產生的對應尺度特征圖進行處理。對ASPP 采用兩種不同的空洞率,其中:(6,12,18)空洞率組合為原DeepLabV3+提出;(4,8,12,16)空洞率組合為文獻[28]中提出的改進ASPP 的空洞率組合。由于DeepLabV3+沒有對1/8 以及1/16 的特征圖作任何處理,所以將它加入對比實驗。在ASPP 模塊使用(6,12,18)空洞率組合,對1/8 大小的特征圖使用CDCA 模塊并與ASPP 模塊的輸出特征圖進行通道維度的拼接,相較于原模型,mIoU 提高了0.45 個百分點,參數量與浮點運算量增長很??;對1/16 大小的特征圖作同樣處理,mIoU 提高了0.17個百分點;同時使用這兩個階段的特征圖,因此參數量以及浮點運算量有明顯提高,相較于原模型,mIoU 提高了0.71 個百分點。在ASPP 模塊使用(4,8,12,16)空洞率組合,使用CDCA 模塊對1/8 大小的特征圖進行融合,mIoU 值提高了0.95 個百分點;對1/16 大小的特征圖作同樣處理,mIoU 提高了0.15 個百分點;使用CDCA 模塊同時融合兩個階段的特征圖,mIoU 提高了0.66 個百分點。綜上所述,當ASPP 使用(6,12,18)空洞率組合時,對1/8 和1/16 大小的特征圖同時使用CDCA 模塊進行融合可以取得最好結果。當ASPP 使用(4,8,12,16)空洞率組合時,只對1/8 大小的特征圖使用CDCA模塊進行融合可以取得最好結果,優于上述所有結果。

表2 CDCA模塊以及ASPP空洞率對網絡的影響Tab.2 Influence of CDCA module and ASPP atrous rate on network

3.3.2 不同模型對比

如表3 所示,模型1 為CDCA-DLV3+采用(6,12,18)空洞率組合的ASPP 模塊+融合1/8 特征圖的CDCA 模塊,只增加了少量參數和浮點運算量得到了比DeepLabV3+更優秀的性能。模型2 為CDCA-DLV3+使用文獻[28]中所提出的ASPP空洞率組合+融合1/8 特征圖的CDCA 模塊,mIoU 優于所有模型。相較于DeepLabV3+,模型2 的mIoU 提高了1.24 個百分點。由于模型1、2 相較于DeepLabV3+增加了額外的計算量,因此模型訓練時間會隨浮點運算量增加而增加。

表3 不同模型的對比結果Tab.3 Comparison results of different models

3.3.3 預測圖對比

如圖6 所示為模型2 與DeepLabV3+輸出預測圖的對比。語義分割的目的是準確分割出圖像中存在的目標,因此網絡最終預測的結果的精細程度與mIoU 正相關。網絡預測結果與標簽越接近,mIoU 越高,最終預測結果的邊緣越清晰。

圖6 PACAL數據集上模型2與DeepLabV3+網絡預測圖對比Fig.6 Prediction graph comparison between Model 2 and DeepLabV3+network on PASCAL dataset

可以看出,在圖像1 中,DeepLabV3+對圖像中的牛存在錯誤預測,且輪廓的預測不夠精細;采用模型2 預測則減少了錯誤預測的像素,尤其是牛的右側,錯誤預測完全消除,且牛的輪廓更加清晰。在圖像2 中,DeepLabV3+分割出來的沙發上存在大塊錯誤識別像素,右側也存在錯誤識別部分;模型2 的輸出結果更優,沙發上的錯誤識別部分更小,右側錯誤像素基本消除。在圖像3 中,DeepLabV3+預測出的電視機基本準確,但是右側存在大塊的錯誤分類部分;模型2 正確預測出電視機,并且右側錯誤分類像素大幅減少。圖像4中,模型2 成功預測出飛機,并且沒有錯誤預測的像素,飛機更加完整;而DeepLabV3+中的飛機尾部預測缺失嚴重。圖像5、6 中,DeepLabV3+存在將人物左上方和汽車的上方背景錯誤分割為人的問題,模型2 則完全避免了這些問題。圖像7 中,DeepLabV3+預測出的電視機輪廓模糊且存在大量錯誤分割,模型2 的預測圖像錯誤分割部分大幅減少且輪廓更加清晰。圖像8 中,DeepLabV3+對于大尺度物體內部存在像素預測錯誤,模型2 則完全解決了這一問題。綜上所述,CDCA-DLV3+模型的mIoU 值更高,預測結果更加準確,邊緣更加清晰、更具魯棒性。

3.4 在Cityscapes數據集上的精度對比

表4 為模型1、2 與DeepLabV3+在Cityscapes 數據集上的mIoU 對比。其中DeepLabV3+的mIoU 結果來源于文獻[32],輸入模型的圖像大小為512×1 024,batch size 為8,epoches 為108,主干網絡依舊使用ResNet-101。采用相同的配置,模型1、2 的mIoU 相較于DeepLabV3+提高了0.59、1.02 個百分點。進一步說明了本文模型的有效性。

表4 在Cityscapes數據集上的mIoU對比 單位:%Tab.4 mIoU comparison on Cityscapes dataset unit:%

4 結語

本文提出一種累積分布函數的通道注意力(CDCA)并結合FPN 加入DeepLabV3+網絡,以利用編碼層下采樣階段產生的有效的低級特征。實驗結果表明通過CDCA 模塊提取低級特征存在的有效信息時,網絡的參數量增加很少,當只融合1/8 特征圖時運算速度也較低。通過兩次2 倍上采樣的操作緩解了大倍數上采樣所造成的圖像中大量有效信息丟失的問題,使最終預測結果更加精確。經過大量實驗結果表明,CDCA-DLV3+優于DeepLabV3+。

在本文中所使用的DeepLabV3+網絡參數較多,不利于終端設備上部署,未來可以考慮對SegFormer[33]網絡使用ASPP 模塊以及其他注意力機制進行改進,在終端設備上獲得更好的精度和預測結果。

猜你喜歡
池化空洞注意力
基于Sobel算子的池化算法設計
讓注意力“飛”回來
卷積神經網絡中的自適應加權池化
設施蔬菜病害識別中的CNN池化選擇
基于卷積神經網絡和池化算法的表情識別研究
“揚眼”APP:讓注意力“變現”
空洞的眼神
A Beautiful Way Of Looking At Things
用事實說話勝過空洞的說教——以教育類報道為例
臭氧層空洞也是幫兇
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合