歐陽柳,賀 禧,瞿紹軍,2+
1.湖南師范大學 信息科學與工程學院,長沙410081
2.湖南師范大學 湖南湘江人工智能學院,長沙410081
語義分割(semantic segmentation)是計算機視覺核心研究熱點之一,其目的是為圖像劃分成具有語義信息的區(qū)域,并給每個區(qū)域塊分配一個語義標簽,最終得到每個像素都被語義標注的分割圖像。語義分割是室內導航、地理信息系統、人機交互、自動駕駛、虛擬增強現實系統、場景理解、醫(yī)學圖像處理以及目標分類等視覺分析的基礎。復雜環(huán)境的非結構化、目標多樣化、形狀不規(guī)則化以及光照變化、物體遮擋等各種因素都給語義分割帶來巨大的挑戰(zhàn)。近年來,深度學習在計算機視覺領域的應用越來越廣泛,卷積神經網絡的分割算法(convolutional neural network,CNN)在圖像分割領域取得了突破性的進展。語義分割是圖像理解中的常用技術,它可以預測圖像中每個像素的類別,實現對圖像的分割歸類,對圖像進行細致的理解。Long 等人提出的全卷積網絡(fully convolutional network,FCN)在圖像分割任務上表現出巨大的潛力。在深度學習的發(fā)展之下,借用深層次卷積神經網絡可以從圖像中學習具有不同層次的特征表示方法。全卷積網絡將分類網絡應用到卷積網絡中,將傳統卷積神經網絡中的全連接層替換為卷積層,使用跳躍層的方法組合中間卷積層產生的特征圖,然后進行轉置卷積。由于跳躍層和轉置卷積的原因,FCN 的預測結果和原始圖像相同。FCN 兼顧全局語義信息和局部語義信息,將圖像級別分類延伸到了像素級分類。FCN使用卷積層替換了CNN 中的全連接層,存在兩個問題:(1)隨著卷積池化,分辨率在不斷縮小,造成部分像素丟失;(2)沒有考慮特征圖原有的上下文的信息。因此,大量的研究人員在此基礎上提出了改進的語義分割模型,如PSPNet(pyramid scene parsing network)中金字塔池化模塊能夠融合多尺度的上下文信息,有效利用了上下文信息。Ronneberger 等人提出了一種編碼器-解碼器的網絡模型U-Net(U 型網絡)。U-Net 由收縮路徑和擴展路徑組成,收縮路徑利用下采樣捕捉上下文信息,提取特征,擴展路徑是一個解碼器,使用上采樣操作還原原始圖像的位置信息,逐步恢復物體細節(jié)和圖像分辨率。OCNet(object context network)通過計算每個像素與所有像素的相似度,形成一個目標上下文特征圖,然后通過聚合所有像素的特征來表示該像素。DeepLab-v3 網絡中將帶孔卷積和空洞金字塔池化方法結合,構建了空洞空間金字塔池化模塊(atrous spatial pyramid pooling,ASPP)。通過使用不同空洞率的卷積來捕獲多尺度的上下文信息,有效增強了感受野,提高分割結果的空間精度。
受到OCNet 和DeepLab-v3 的啟發(fā),本文提出了空洞空間金字塔注意力模塊(atrous spatial pyramid pooling attention module,ASPPAM)和位置注意力模塊(position attention module,PAM),在多個并行分支中使用多個不同空洞率的卷積來獲取不同尺度的上下文信息,加入一個計算像素之間相關性的模塊,用以增強像素之間相關度。高層特征涉及整個場景的理解,保留了物體的綜合特征,低級語義信息具有非常豐富的空間信息,保留了很多細節(jié),PAM 將高級信息和低級信息進行融合,可以很好地處理圖像的邊緣和細節(jié),以解決高級語義信息丟失的問題。
本文的主要貢獻如下:
(1)為了學習像素之間的相關性,提出了PSAM(pixel similarity attention module),并將其嵌入ASPP模塊,增強了像素之間的聯系,得到新的ASPPAM,豐富ASPP 上下文信息。
(2)提出了PAM,通過融合低層特征和高級特征,突出低層特征細節(jié)信息和邊緣信息,提高分割效果。
(3)將ASPPAM 和PAM 結合,提出一種新的基于注意力感知的全卷積網絡CANet(context attention network),并在Cityscapes測試集中取得了較好的結果。
FCN 極大地推動了圖像語義分割的發(fā)展,并且成為許多神經網絡的基本模型。目前提高語義分割的方法有:Deeplab-v1 中使用空洞卷積代替池化層,加上條件隨機場(conditional random fields,CRFs),目的是改善深度神經網絡的輸出結果,捕捉邊緣細節(jié)。該方法的缺點是沒有注意圖像的多尺度信息,對小物體分割的分割效果不明顯。進而在DeepLabv2 中加入了空洞空間金字塔池化模塊(ASPP)。使用不同的空洞率的卷積來得到不同的感受野,空洞率小的感受野小,對小物體識別效果較好,空洞率大的感受野大,對大物體的識別效果好,解決了物體的多尺度信息的問題。但是隨著空洞率的增大,卷積核的有效參數越來越少,最終會退化成1×1 的卷積核。在PSPNet中,作者提出了一個全局先驗結構,將輸入劃分為不同大小的區(qū)域塊,分別對這些塊進行特征提取,然后上采樣到和輸入尺寸一樣大小,將所有得到的特征在通道上進行合并,將不同尺度的特征信息進行融合,提高了分割的性能。
空洞空間金字塔池化是在金字塔池化模塊基礎之上引入了空洞卷積而形成。語義分割中池化層增大感受野的同時,也會減少圖像的尺寸,然后在上采樣擴大圖像尺寸來獲取分割圖。在通過池化層時,整個圖像分辨率會變小,隨后進行上采樣,分辨率會擴大,整個過程中必然會丟失一些信息。如何在不通過池化層也能達到增大感受野的效果,空洞卷積是一個很好的方案??斩淳矸e在傳統的卷積核的每個像素之間填充一定的像素,目的是可以增大感受野??斩淳矸e存在一定的缺陷,在空洞率(填充像素變量)越來越大的同時,卷積核中的不連續(xù)會造成卷積核中參數不能全部用于計算,這會導致卷積核退化成1×1 的卷積核,提取特征效果會降低,空洞空間金字塔的解決方案是:將輸入的特征圖進行全局平均池化,外加一個1×1 的256 通道的卷積層和批處理化層。
在圖像分割領域要解決“池化操作后特征圖分辨率不斷降低,部分像素空間位置信息丟失”等問題,除了對卷積結構進行優(yōu)化之外,另一類方法是使用編碼器-解碼器結構。編碼器通常由多個卷積層和池化層組成,作用是從原圖中獲取含有位置信息和語義信息的特征圖,解碼器通常由反卷積層和反池化層構成,作用是恢復特征圖中丟失的空間維度信息和位置信息,生成稠密的預測圖。編碼器使用卷積或者池化等操作來獲取圖像的空間位置信息和圖像的特征信息,卷積或者池化都會使得圖像的分辨率降低,為了得到和原圖像相同分辨率大小的分割圖,解碼器就是為了恢復圖像分辨率存在的,解碼器使用轉置卷積或者上池化,使得縮小的特征圖恢復原圖像的分辨率的大小,還原原始圖像的空間位置信息和圖像細節(jié)信息。U-Net 就是典型的編碼器和解碼器結構。在編碼器過程使用下采樣操作,縮小分辨率,在解碼器使用上采樣操作,逐步恢復物體的空間位置信息和圖像分辨率。
注意力機制的基本思想是在運算中忽略無關信息而關注重點信息,通過注意力機制學習上下文信息,并且進行優(yōu)化得到自我注意力模塊,捕獲數據或者特征的內部相關性。PANet(path aggregation network)中作者認為高層的特征信息可以對低層的特征信息進行指導,因此注意力機制必須發(fā)生在不同的層之間。解碼器的作用在于恢復像素類別的位置信息,經過編碼器提取的特征帶有充分的分類信息可以作為指導低層的信息。Woo 等人提出了一種輕量、通用的注意力模塊(convolutional block attention module,CBAM)。該模塊分別在特征圖的空間和通道上引入注意力模塊,在不顯著增加計算量和參數量的前提下能提升網絡模型的特征提取能力。文獻[19]提出了自我注意力機制,并將其運用到視頻動作識別任務,自我注意力機制可以有效地捕捉不同位置之間的遠程依賴關系,每個位置都可以在不造成特征圖退化的情況下獲得全局感受野。OCNet中,使用自我注意力機制來計算像素之間的相似度,通過利用同一目標的其他像素來為當前像素分類,獲取目標上下文,并且在金字塔池化模塊和空洞空間金字塔池化模塊上做了實驗,結果在Cityscapes和ADE20K數據集上取得了SOTA(state of the art)的結果。
本章首先介紹論文提出的語義分割網絡CANet的整體結構,然后分別詳細介紹ASPPAM 和PAM,損失函數采用常用的交叉熵損失函數。
本文的整體網絡結構如圖1 所示,該模型由擴展的FCN、ASPPAM 和PAM 三個摸塊組成。采用在ImageNet 上預先訓練的ResNet-101的擴展為主干網絡,并且去掉ResNet 最后的全連接層,圖1 中每個帶有“Res”字樣的藍色塊的詳細結構如表1 所示,“7×7,64,stride:2”表示卷積核為7×7,輸出通道數為64,步長為2。Res 每個大塊都包含一個基本結構(Baseblock:包含殘差(residual)結構),具體結構如表1 中Res 塊的矩陣所示,“1×1,64”表示卷積核為1×1,輸出通道數為64。矩陣外的“×3”表示輸入數據將會執(zhí)行這個矩陣結構3 次,后續(xù)結構以此類推。在Res4 塊后添加ASPPAM(空洞空間金字塔注意力模塊)來提取深度特征,獲得高級語義信息,此時特征映射的大小減小到原始圖像的1/8。同時,將低級語義信息傳到PAM(位置注意力模塊),PAM 主要關注低級語義信息中的邊緣信息和細節(jié)信息,補充高級語義信息丟失的空間信息,最后將兩個注意力模塊的輸出特征進行融合,經過上采樣恢復成最終的預測分割圖。
圖1 CANet網絡結構圖Fig.1 CANet network structure diagram
表1 ResNet-101 四個塊的結構Table 1 Four blocks structure of ResNet-101
ASPPAM 結構將深度神經網絡的部分卷積層替換為空洞卷積,在不增加參數的情況下,擴大了感受野,從而獲得更多的特征信息。1×1 Conv 卷積的目的是防止空洞率過大造成卷積核參數不能完全利用的問題。針對空洞卷積造成的空間信息丟失的問題,DeepLab-v3 采用的是引入解碼器結構來恢復目標的空間信息??臻g信息的丟失不利于像素級的分類任務,本文采用的是在提取特征的并列結構上加入上下文注意力模塊來解決這個問題。像素注意力模塊的作用是增強像素之間的聯系,注意力機制的作用就是將重點放在所注意的目標像素上,增強目標像素的權重,ASPPAM 模塊中的空洞卷積則是獲取不同尺度的上下文信息。原始圖片如圖2 所示,大小和通道數分別為(1 024,2 048)和3,將經過ResNet-101 提取的高級特征圖可視化,高級特征圖大小和通道數分別為(128,256)和512,橫縱坐標為分辨率,高級特征的通道可以看作特定類的響應,將高級特征圖可視化為512張單通道的圖片,圖3為未使用ASPPAM模塊得到的高級特征圖,圖中部分特征圖因丟失像素嚴重和相關類別像素的缺失導致提取特征為空,可視化結果為黑色,這個問題不利于后續(xù)像素預測任務。圖4 為使用了ASPPAM 模塊可視化的高級特征圖,相關類別的特征更加聚集,特征為空的現象減少了很多(可視化結果為黑的特征圖),丟失像素的問題得到了解決。從圖4 中可以看出,所提出ASPPAM 模塊起到了一定的作用。SENet(squeeze-and-excitation network)通過特征圖學習特征權值,然后通過單位乘的方式得到一個加權后的新的特征圖,采用池化操作來傳播注意力特征圖,但是忽略了像素本身就具有一定的關系。
圖2 原始圖片Fig.2 Original picture
圖3 未使用ASPPAM 提取的高級特征圖可視化結果Fig.3 Visualization results of advanced feature map extracted without ASPPAM
圖4 使用ASPPAM 提取的高級特征圖可視化結果Fig.4 Visualization results of advanced feature map extracted with ASPPAM
PSAM 通過計算特征圖中每個像素之間的聯系,得到一個經過細化之后的特征圖。并列結構的四個分支通過收集來自不同感受域的信息獲得更多的上下文信息,然后和經過PSAM 得到的細化特征圖合并,最終目的是通過結合細化特征圖和全局特征圖來增強像素之間的依賴性和類之間的區(qū)分。該模塊結構如圖5 所示,計算方法如式(1)~(3):
圖5 像素相似注意力模塊Fig.5 Pixel similar attention module
把上述得到特征圖融入到ASPP 模塊,該結構如圖6 所示,計算方法如式(4)~(7):
圖6 空洞空間金字塔注意力模塊Fig.6 Atrous spatial pyramid pooling attention module
高級特征具有非常豐富的語義信息,低級語義信息保留了更多的細節(jié),融合高級特征和低級特征可以更好地處理圖像的邊緣和細節(jié),DeepLab-v3+中提出了一種有效的解碼結構。SENet 提出的SE 模塊在通道維度上做聚合操作,這種注意力機制可以更加注重信息量最大的通道特征,抑制不重要的通道特征。受到CBAM 和SENet 啟發(fā),本文提出的PAM模塊,將高級特征和跳躍層的低級特征通過相應點的像素的Hadamard 積(矩陣中對應元素相乘)融合,利用高級信息指導低級信息,可以得到很好的分割性能。設計結構如圖7 所示,圖7 中“l(fā)ow feature”的藍色塊是來自ResNet第二個塊的特征圖,“high feature”綠色塊是經過ASPPAM 處理過的高級特征圖。相對應的計算方法如式(9):
圖7 位置注意力模塊Fig.7 Position attention module
本章先介紹實驗使用的數據集、評估指標和網絡參數設置,然后與現有的注意力語義分割網絡進行對比,最后進行實驗分析。
本文使用常用的公共數據集Cityscapes 語義分割數據集,從全世界50 個不同城市的街道場景中收集5 000 幅高質量的像素級標注的大型數據集,其中訓練集、驗證集和測試集分別由2 975、500 和1 525張圖像組成。數據集分為大類和小類,大類包括地面、建筑、人、天空、自然、背景、道路標志和車輛。小類包含33 個類別,本文只使用了19 個類別,圖片分辨率均為2 048×1 024,彩色圖片均為RGB 3 通道。數據集還提供20 000 張粗注釋的圖像用于訓練弱監(jiān)督分類網絡的性能。
本文使用常用的語義分割評估指標mIoU(mean intersection over union),圖像像素每個類的IoU 的值累加后的平均值。詳細的計算公式如下:
其中,表示像素的類別數;p表示實際類別為,實際預測類別也為的像素的數目;t表示類別為像素的總數;p表示實際類別為,實際預測類別為的像素的數目。
本文使用深度學習框架Pytorch-1.4,并實現了文章所提出的網絡模型。圖片預處理使用了隨機尺度調整、隨機裁剪和隨機翻轉等方法對訓練數據進行處理,并將圖像的大小調整為769×769 作為網絡輸入,將經過PAM 模塊和ASPPAM 模塊處理后的特征圖和標簽間的像素級交叉熵損失相加作為網絡的損失函數。在兩個Tesla-T4 GPU 上使用帶動量的隨機梯度下降優(yōu)化算法訓練本文網絡,批處理大小為2,初始學習率設為0.01,動量和衰減系數為0.9和0.000 5。
將ASPPAM 模塊和PAM 嵌入到FCN 上,計算像素之間的依賴關系,本文所提結構ASPPAM 和PAM在Cityscapes 驗證集上的結果如表2 所示。為了驗證注意力模塊的性能,本文對兩個模塊進行消融實驗,ResNet-baseline 的mIoU 為68.1%,ResNet-baseline 的FPS(每秒傳輸幀數)為25。與基本的ResNet-baseline相比,在ResNet-baseline 基礎上加入ASPPAM 模塊的mIoU 為73.8%,提高了5.7 個百分點,因為ASPPAM增加了計算量,所以FPS 降低了3 幀。而PAM 模塊目的是細化邊緣與細節(jié),分割性能提升不明顯,在ResNet-baseline 基礎上加入PAM 的mIoU 為69.3%,提高了1.2 個百分點,PAM 的計算消耗小,FPS 降低1幀。本文也將沒有經過任何改進的ASPP模塊進行了實驗,其mIoU 為70.7%,FPS 為23 幀。實驗結果表明,ASPPAM模塊對場景分割有很大的幫助,FPS幀數變化較小。考慮到計算成本,最終使用下采樣率為8的ResNet-101為骨干網絡,表2結果均來自Cityscapes官方提供的工具包Cityspacescripts計算得出。
表2 兩個模塊對網絡性能的影響Table 2 Impact of two modules on network performance
與當前先進的網絡進行了比較,數據集為Cityscapes 的測試集,將官方提供的測試集圖片通過本文網絡預測出分割圖,經過官方測試,結果如表3 所示。
表3 與各種先進網絡的比較Table 3 Comparison with various advanced networks
表3中,本文提出的注意力機制的mIoU為69.30%,顯著改善了以往FCN 網絡的性能。ASPPAM 模塊在該數據集的驗證集上比基準網絡提高了5.7 個百分點。同時,本文與當前比較流行的網絡進行了比較:相比于原始的Dilated FCN-16,本文模型提高了接近22個百分點的性能;和含有ASPP 的DeepLab-v3 相比,本文性能提升了5 個百分點;和最新的雙邊注意網絡BiANet 相比,本文性能提升了3 個百分點。本文網絡兩個模塊強調了像素之間的依賴性和低層次空間的細節(jié)。該方法在Cityscapes測試集獲得了更好的性能。在數據集上預測的19 個類別的準確率如表4所示,CANet的Bus和Train的分割精度顯著提高,一些細小物體相比于其他網絡分割精度有所提升。
表4 Cityscapes驗證集上各個類別的準確率Table 4 Accuracy of each category on Cityscapes verification set %
本文提出的兩個模塊對網絡性能影響的可視化圖如圖8 所示,可見ResNet-baseline 中有誤分的模塊,并且一些邊緣細節(jié)分割不是很連貫。誤分造成的原因是ResNet-baseline 中沒有多尺度信息,造成比較大的物體會產生誤分的現象。比如:綠化帶里面混有人行道、天空里面混有植物等,加入了ASPPAM模塊后,誤分的現象減少了,原因是增強了像素之間的依賴信息,并且由于空洞卷積的原因,增加了多尺度的上下文信息,這樣誤分的信息大大減少。添加PAM 模塊后,低級特征圖保留了邊緣信息,補充缺少的邊緣信息,經過上采樣后進行預測,對物體邊緣預測提供了一定的幫助。如交通標識牌等在分割圖中可以得到直觀的比較。
圖8 消融實驗結果可視化Fig.8 Visualization of ablation experimental results
網絡的參數分析:網絡主干網絡采用的是ResNet-101,網絡輸入為3 通道的769×769 的彩色圖片,分析整個網絡的參數(MB)和計算復雜度(GFLOPS),Else 表示最后改變通道數所用卷積和ResNet-101 開始所用卷積的參數量和計算復雜度,括號內百分數為該項在整個網絡中的占比,整個網絡的參數量和計算復雜度如表5所示。數據是在一張Tesla-T4 GPU顯卡上測試的本文模型,輸入為3 通道的769×769 的彩色圖片,FPS 為20 幀。
表5 網絡參數表Table 5 Network parameters
本文提出了一種改進的全卷積網絡(FCN)語義分割方法,并且提出了兩個注意力模塊:空洞空間金字塔注意力模塊(ASPPAM)和位置注意力模塊(PAM)。空洞空間金字塔注意力模塊增加了用以計算像素之間的依賴性的模塊,提高分割精度,位置注意力模塊用以融合低級語義信息,補充下采樣時丟失的信息。評估和實驗結果表明,與PSPNet、OCNet、DeepLab-v3、BiANet等網絡相比,采用ASPPAM 模塊和PAM 模塊具有更好的性能。未來考慮怎樣改進骨干網絡ResNet來進一步提高分割效果。