張文博, 瞿 玨, 王 崴, 胡 俊, 王慶力
(空軍工程大學,西安 710000)
圖像的語義分割結(jié)合了圖像分類、目標檢測和圖像分割,是計算機視覺系統(tǒng)中一個基礎(chǔ)且長期存在的問題。深度卷積神經(jīng)網(wǎng)絡(Deep Convolution Neural Network,DCNN[1])在語義分割方面是非常有效的,即用一類目標或非目標標記每個區(qū)域或像素。語義分割在圖像理解中起著重要作用,是圖像分析任務的基礎(chǔ)。深度卷積神經(jīng)網(wǎng)絡的優(yōu)勢在于具有比傳統(tǒng)的手工表示學習更強的學習能力,它在計算機視覺和人工智能——自動駕駛[2-3]、機器人導航[4]、工業(yè)檢測[5]、遙感[6]、軍事[7]和醫(yī)學影像分析等領(lǐng)域均具有較高的實用價值和發(fā)展前景。
Deeplab系列在基于深度神經(jīng)網(wǎng)絡的語義分割模型中是成功且非常流行的。CHEN等[8]提出的Deeplab v1模型,首次提出并采用了空洞卷積,在增加圖像感受野的同時保證了特征圖尺寸不變,從而替代上采樣和下采樣;還采用了條件隨機場(Conditional Random Field,CRF)平滑分割邊界,以此來減小邊緣噪聲。Deeplab v2[9]在Deeplab v1的基礎(chǔ)上增加了空洞空間金字塔池化(Atrous Spatial Pyramid Pooling,ASPP),保持特征圖不變,結(jié)合擴張卷積、ASPP和全連接CRF,利用到了多尺度信息,通過不同的空洞率獲取圖像多尺度特征,增強了對圖像不同尺度的預測能力。Deeplab v3[10]在Deeplab v2的基礎(chǔ)上,將主干網(wǎng)絡替換成了殘差網(wǎng)絡ResNet,串行的空洞卷積加深,并去除了條件隨機場(Conditional Random Field,CRF),模型更加簡潔、易懂,融合了改進的ASPP、批歸一化和更好的多尺度上下文編碼方法,從而進一步提高了模型的分割性能。但是Deeplab v3只是通過對深度神經(jīng)網(wǎng)絡提取到的圖像淺層特征和ASPP聚合上下文信息得到的深層特征拼接,對得到的融合特征進行分類直接得到分類結(jié)果,而這種方法得到的最終結(jié)果,由于獲取的淺層特征只是主干網(wǎng)絡多層淺層特征中的一個,導致部分有效信息的丟失,出現(xiàn)分割不連續(xù)和分割邊界粗糙等現(xiàn)象。在Deeplab v3+的眾多改進算法中,文獻[11]提出增加邊界提取模塊緩解邊界模糊問題,且在實驗結(jié)果上實現(xiàn)了算法的提升,緩解了邊界模糊問題,提高遠距離目標邊界預測的準確性。
針對語義分割出現(xiàn)的圖像邊緣部分信息的“丟失”,甚至出現(xiàn)的錯誤分割、遺漏分割等現(xiàn)象,本文借鑒Deeplab v3+語義分割框架并針對其不足之處提出改進:1) 針對主干網(wǎng)絡ResNet引入多尺度卷積,集合多尺度信息,增加感受野,結(jié)合注意力機制,用來自動學習注意力權(quán)重,獲取編碼器隱藏狀態(tài)(候選狀態(tài))和解碼器隱藏狀態(tài)(查詢狀態(tài))之間的相關(guān)性,豐富語義信息;2) 在空洞空間池化卷積金字塔中,引入深度可分離卷積,在對結(jié)果影響不大的前提下可減小模型大小,減少模型參數(shù)量,提高訓練效率,甚至可使模型在較低配置的服務器上運行;3) 在解碼器設計多尺度特征提取結(jié)構(gòu),有助于獲取全局和局部環(huán)境,通過將多個尺度的特征融合,獲取更豐富的全局語義信息,在與淺層特征合并前,使用注意力機制,在較少干擾的同時,獲取更多的通道權(quán)重,增強模型的學習能力。
改進的Deeplab v3+網(wǎng)絡結(jié)構(gòu)如圖1所示,主要結(jié)構(gòu)依然是編碼器-解碼器結(jié)構(gòu),原始算法所采用的主干網(wǎng)絡為ResNet[12],改進網(wǎng)絡目的在于改善在語義分割任務中出現(xiàn)的信息“丟失”,錯誤分割、遺漏分割等現(xiàn)象。

圖1 改進的Deeplab v3+網(wǎng)絡結(jié)構(gòu)圖Fig.1 The improved Deeplab v3+ network structure
主要改進點如下:
1) 在編碼層,對主干網(wǎng)絡進行改進,引入PyConv[13],可以在主干網(wǎng)絡不同層使用不同深度的卷積核,將輸入特征劃分為不同的組并獨立地進行卷積計算;
2) 將空洞空間卷積池化金字塔(Atrous Spatial Pyramid Pooling,ASPP)中的普通卷積替換為深度可分離卷積,即將所有3×3的卷積層變?yōu)?×3的深度可分離卷積,減少網(wǎng)絡層的參數(shù),在對運行結(jié)果影響不大的前提下加快訓練效率;
3) 在解碼層,主要通過合并主干殘差網(wǎng)絡不同階段的輸出,對原先算法進行改進。
由于主干網(wǎng)絡每一層產(chǎn)生的特征圖都對最后的分割圖起到關(guān)鍵的作用,而原始分割網(wǎng)絡Deeplab v3+只使用了第1層的高分辨率特征,即使用1/4大小的特征圖。本文利用第2層和第3層輸出的特征圖,特征圖大小分別為1/8,1/16和1/16,其通道數(shù)分別為512,1024和2048,先將各個特征層輸出的結(jié)果進行雙線性插值操作并上采樣;利用1×1的卷積將其通道數(shù)都降為64,將輸出的3個特征圖進行通道疊加變成1/4大小、通道數(shù)為128的特征圖,將其通過注意力機制模塊CBAM[14],使網(wǎng)絡更容易關(guān)注到提取特征的關(guān)鍵位置,增加網(wǎng)絡對邊緣特征的提取度;將注意力機制處理后的特征圖和淺層特征、4倍上采樣后的深層特征疊加,通過3×3的卷積調(diào)整通道數(shù)為256;最后通過上采樣將特征圖恢復原始圖片大小,通過分類器將特征圖分為預先設定的類別輸出。
Deeplab v3+使用的主干網(wǎng)絡為ResNet,原始殘差塊采用3×3的卷積核。
由于在ResNet中增加卷積核的大小會帶來參數(shù)量和計算復雜度的巨大成本,針對此,本文使用文獻[12]提出了金字塔卷積(PyConv),它包含不同大小和深度的不同級別的卷積核。除此之外,PyConv非常高效,它可以保持與標準卷積相似的參數(shù)數(shù)量和計算成本,在不影響計算效率的同時增加模型的表現(xiàn)效果。
本文使用了引入金字塔卷積的殘差塊,新殘差塊如圖2所示,其中,金字塔卷積核結(jié)構(gòu)如圖2上部所示,金字塔卷積過程在圖中也已經(jīng)給出。

圖2 引入金字塔卷積的殘差塊Fig.2 The residual block introduced with pyramidal convolution
引入PyConv的主要思想是對金字塔卷積(PyConv)將輸入特征劃分為不同的組并獨立地進行卷積計算,與主干網(wǎng)絡結(jié)合時,考慮到特征圖的空間尺寸減小,分支數(shù)逐漸減少。最初階段特征圖通過4個分支,最后階段特征圖通過1個分支。與標準卷積相比,PyConv可以在不增加計算成本的情況下擴大核的接受域,它還可以并行應用不同類型的核處理輸入,具有不同的空間分辨率和深度,因此,新的殘差塊可以捕獲更詳細的信息。金字塔卷積核在網(wǎng)絡第1層將輸出的通道分為4組,每組使用卷積核大小分別為3×3,5×5,7×7,9×9,輸出通道數(shù)分別為64,64,64,64,對應的分組卷積組數(shù)分別為1,4,8,16;第2層將輸出的通道分為3組,每組使用卷積核大小分別為3×3,5×5,7×7,輸出通道數(shù)分別為128,128,256,對應的分組卷積組數(shù)分別為1,4,8;第3層將輸出的通道分為2組,每組使用卷積核大小分別為3×3,5×5,輸出通道數(shù)分別為512,512,對應的分組卷積組數(shù)分別為1,4;第4層使用3×3卷積核對所有通道進行卷積,分組數(shù)為1。
深度可分離卷積[15]分為兩步,通過其操作可以在僅損失少量精度的前提下,大幅減少模型參數(shù)量,提高所應用模型的訓練效率。深度可分離卷積將傳統(tǒng)卷積分解為一個深度卷積和一個1×1卷積。
在空洞空間池化金字塔中,將普通卷積替換為深度可分離卷積。先對輸入特征圖進行逐通道3×3卷積,使其通道分離,之后通過1×1卷積進行特征拼接,改進的ASPP模塊在圖1的ASPP模塊中體現(xiàn),最后將輸出的特征圖拼接,通過深度可分離卷積降低其通道數(shù),去除無用特征。替換深度可分離卷積的ASPP模塊可以減少模型參數(shù),并可在對模型精度影響不大的前提下,提高模型的訓練效率。
近年來,改進模型鑒別能力、提升圖像邊緣分割能力的手段包括采用多尺度融合的方法。一個典型例子就是ZHAO等[16]提出的一種金字塔網(wǎng)絡,通過聚合多個膨脹卷積塊生成的特征圖,充分利用不同尺度的語義信息。

(1)
圖3所示為神經(jīng)網(wǎng)絡再融合不同層特征對模型進行預測時的作用展示。由于圖像通過神經(jīng)網(wǎng)絡處理輸出后圖像的通道數(shù)不一致,比如圖3(b),淺層特征通道數(shù)為64,即共有64張和圖3(b)類似的圖片,本文展示部分特征圖像。可以看出神經(jīng)網(wǎng)絡特征層數(shù)越深,圖像越抽象。

圖3 神經(jīng)網(wǎng)絡部分特征層效果
為了確保實驗的有效性,本文實驗分別使用公共數(shù)據(jù)集CityScapes的驗證集完成實驗并驗證模型的泛化能力。
公共數(shù)據(jù)集CityScapes為城市景觀數(shù)據(jù)集,其中包含從50個不同城市的街景中記錄的各種立體視頻序列,除了更大的20 000個弱注釋幀之外,還有高質(zhì)量的5000幀像素級注釋。CityScapes數(shù)據(jù)集中的訓練集、驗證集和測試集總共有5000張精細注釋,2975張訓練圖,500張驗證圖和1525張測試圖,每張圖片大小都是1024 像素×2048 像素。
實驗所用設備CPU為Intel?CoreTMi7-10870H CPU@2.20 GHz,GPU為NVIDIA Geforce GTX 3080,所用操作系統(tǒng)為Windows10,基于Pytorch網(wǎng)絡框架使用Python3.7編寫實現(xiàn),采用Cuda11.1庫加速。
由于設備性能的限制,在CityScapes數(shù)據(jù)集訓練時,使用隨機梯度下降(SGD)優(yōu)化算法,動量(momentum)設置為0.9,權(quán)重衰減(weight decay)設置為0.000 1,基礎(chǔ)學習率設置為0.1,學習率衰減使用“Poly”衰減策略,通過反向傳播進行端到端的訓練。在CityScapes訓練集上訓練時,最大迭代步數(shù)設置為50 000。
本文通過遷移學習的方式,使用PyConvResNet-50在ImageNet訓練好的預訓練模型權(quán)重,對其進行微調(diào)。通過遷移學習,可以有效地預防梯度消失和梯度爆炸問題,并使自己的網(wǎng)絡訓練速度和收斂速度更快,節(jié)省了學習的時間,提高了學習效率。
訓練損失函數(shù)采用交叉熵函數(shù)(Cross-Entropy),主要用于度量兩個概率分布間的差異性。多分類交叉熵損失函數(shù)算式為
(2)
式中:M為類別的數(shù)量;yic為指示變量,如果該類別和樣本i的類別相同就是1,否則就是0;pic為對于觀測樣本i屬于類別c的預測概率。
本文采用的評估方法是平均交并比(Mean Intersection over Union,MIoU),其算式為
(3)
式中:pi i為像素實際類別是i類、真正類別是i類的像素總數(shù);pj i為實際類別是j類、預測類別是i類的像素總數(shù);pi j為像素實際類別是i類、預測類別是j類的像素總數(shù)。
2.3.1 模型性能對比
為了衡量所提出改進方法的性能,驗證其有效性,將本文提出的Z_Deeplab v3+和Deeplab v3,Deeplab v3+這些原始算法比較之外,還與HRNet[18]和CCNet[19]這些最新、最優(yōu)模型在CityScapes驗證集上進行實驗驗證,預測結(jié)果如表1所示,表2為模型參數(shù)和詳細量化信息。

表1 不同模型在CityScapes驗證集上的性能對比

表2 模型參數(shù)和詳細量化信息
結(jié)合表3、表4可以看出,盡管Deeplab v3+相比于其他語義分割模型有較為優(yōu)異的結(jié)果,但是本文構(gòu)建的模型獲得了更具有競爭力的結(jié)果,MIoU為74.76%,相較于Deeplab v3+高出了2.20%,且由于其改進ASPP模塊的原因,減少了模型參數(shù)量。
相比于Deeplab v3+而言,本文模型參數(shù)量更少,盡管延長了訓練時間,但是本文模型仍獲得了更好的訓練效果。
2.3.2 融合不同尺度效果對比
融合多尺度特征是語義分割中提高準確率的有效方法。由于低層特征分辨率更高,包含更多位置、細節(jié)信息,但是由于經(jīng)過的卷積更少,其語義性更低,噪聲更多。高層特征具有更強的語義信息,但是分辨率很低,對細節(jié)的感知能力較差。因此,本文探究如何將兩者高效融合,并進行實驗。
本文為了驗證融合不同層的特征對模型預測結(jié)果的影響,使用控制變量法驗證各個方案改進后的效果,測試結(jié)果如表3所示。

表3 融合不同尺度效果對比
從表3可以看出,采用主干網(wǎng)絡3個Block的特征融合比采用2層Block的特征融合表現(xiàn)效果好,因此,手動設置網(wǎng)絡選取主干網(wǎng)絡Block2,Block3,Block4的特征進行融合的方法是可取的,并且取得了較好的效果。
2.3.3 采用深度可分離卷積的ASPP模塊訓練時間和模型參數(shù)對比
為了驗證改進的ASPP模塊對實驗結(jié)果的影響和對訓練時間、訓練效率的提升程度,本文對ASPP模塊改進之前和改進后的效果做了比較,實驗結(jié)果如表4所示。

表4 改進ASPP模塊的影響
從表4可以看出,改進的ASPP模塊對減少參數(shù)量和加快模型訓練效率有效果,可以縮短整體模型的訓練時間,并且對實驗最終精度的影響不大。因此,本文選擇引入深度可分離卷積進行模型設計。
2.3.4 本文算法與其他模型方法對比
本文算法與Deeplab v3+模型在CityScapes驗證集上的分割結(jié)果進行對比,如圖4所示。

圖4 CityScapes驗證集分割結(jié)果對比Table 4 Comparison of segmentation results on CityScapes dataset
由圖4可看出,改進的算法精度的高低與模型分割結(jié)果的效果呈現(xiàn)正相關(guān),可用模型精度的高低判斷模型分割結(jié)果的效果。對比第1列圖片,本文算法模型邊界明顯清晰于其他模型,識別出了第1列電線桿上的交通燈并將其分割出來。除此之外,在本文算法模型分割結(jié)果右側(cè)方框內(nèi)沒有出現(xiàn)路標標志,沒有出現(xiàn)錯誤分割和分割模糊的現(xiàn)象。對比第2列,本文算法模型對路牌和路標等圖像信息分割結(jié)果清晰,其余模型錯誤分割了右側(cè)方框內(nèi)的路標,本文算法模型避免了此類分割錯誤,預測結(jié)果更加準確全面。
本文針對Deeplab v3+模型錯誤分割、邊界模糊等現(xiàn)象,提出了相應的改進方案。通過融合多尺度特征和注意力機制,有效地提取了圖像的多尺度特征信息;并通過引入深度可分離卷積,減少了模型參數(shù),提高了模型訓練效率。通過實驗本文提出的模型在公開的數(shù)據(jù)集CityScapes驗證集上的MIoU達到了74.76%,同時,分割結(jié)果也證明了模型對邊界信息提取的有效性。本文算法雖然較之前的算法在精度上有所提升,但是采用的多尺度組合方式為手動設置,沒有探究最優(yōu)的多尺度融合方式,在后續(xù)的工作中,會深入研究如何進一步增強模型表現(xiàn)力,并進一步提升模型在實際數(shù)據(jù)集中的分割效果。