桑永龍,韓 軍
(1.上海大學通信與信息工程學院,上海 200000;2.上海先進通信與數(shù)據(jù)科學研究院,上海 200000)
隨著深度學習的廣泛應用,語義分割作為圖像處理中的重要算法,已經(jīng)成為近年來研究的熱點。傳統(tǒng)的圖像分割算法主要分析低階語義來分割不同目標,常用的語義信息包括形狀、顏色、紋理等。但是這些低階信息不僅缺失像素的對比度、方向度等中級語義,而且缺少像素之間的實體類別之間的高級語義,從而給聚類分析帶來一定挑戰(zhàn)。
為了改善傳統(tǒng)圖像分割的不足,語義分割研究者們提出一種以卷積神經(jīng)網(wǎng)絡為核心的像素分類方法,解析圖像的深層次語義信息。文獻[1]提出了基于全卷積網(wǎng)絡(Fully Convolutional Networks,FCN)的語義分割算法,該方法的優(yōu)點在于,輸入圖像的尺寸不再固定,可以為不同大小,同時不再局限于塊級別輸入,使計算復雜度大大降低,但是圖像下采樣操作也直接導致特征的分辨率降低,目標的邊界變得非常模糊,使分割不夠精確?;贔CN的思路,文獻[2]提出SegNet網(wǎng)絡,首先使用same卷積從編碼端提取分辨率較低的語義特征,然后根據(jù)編碼器中最大池化層得到的提示信息定位目標位置,最后在解碼端同樣使用same卷積,將在池化過程中丟失的信息重新學習到,從而生成高分辨率預測圖。在此基礎(chǔ)上,文獻[3]提出U-Net網(wǎng)絡模型,該模型主要采用U型的“編解碼”結(jié)構(gòu),此結(jié)構(gòu)的反卷積層同時整合了前一層的輸出特征和對應下采層捕捉到的語義信息,從而對目標進行精確定位,此方法可以較好地處理大分辨率圖像,但不能很好地解決尺度變化的問題。2016年,谷歌提出的DeepLab網(wǎng)絡模型以其優(yōu)越的分割效果成為語義分割領(lǐng)域經(jīng)典的算法之一。DeepLabV1[4]采用深度卷積網(wǎng)絡和全連接條件隨機場完成語義分割,但是最大池化和下采樣操作壓縮了圖像分辨率,降低了圖像的分辨率,同時空間不變性也限制了此模型的精度,使獲得的概率圖變模糊。在此基礎(chǔ)上,DeepLabV2[5]結(jié)合空洞卷積實現(xiàn)語義分割,允許有效地擴大卷積核的視場來整合更多的上下文信息,從而確保了訓練階段能夠?qū)W習到多尺度目標的信息,且不需要增加額外的參數(shù)或者計算量。DeepLabV3[6]將空洞卷積改進為空洞空間金字塔池化(Atrous Spatial Pyramid Pooling,ASPP)結(jié)構(gòu)模型,ASPP使用多個采樣率和有效視場的卷積核來檢測傳入的卷積特征,能夠在多個尺度上捕獲目標和圖像的上下文內(nèi)容。CHEN等[7]提出了DeepLabV3+網(wǎng)絡,該網(wǎng)絡采用編解碼器模型,將V3版本的網(wǎng)絡作為網(wǎng)絡編碼器,輸出不同尺度的高層特征,設置解碼器將低層特征與編碼器高層特征相結(jié)合,并通過雙線性插值進行上采樣恢復物體細節(jié)和空間信息。近年來,ZHONG等[8]提出的SANet(Squeeze and Attention Networks)通過引入“注意力”卷積通道將像素組注意力強加于常規(guī)卷積上,從而考慮了空間通道的相互依賴性,最終合并來自SANet的4個不同層次階段的信息輸出預測結(jié)果,然而注意力機制對于目標的位置捕獲能力較差,很難學習序列中的順序關(guān)系。ZHANG等[9]提出了一種跨空間和尺度的特征交互網(wǎng)絡FPT(Feature Pyramid Transformer),該網(wǎng)絡通過使用了3個自上而下和自下而上transformer將特征金字塔轉(zhuǎn)換為具有更豐富上下文信息的特征金字塔,但使網(wǎng)絡的局部信息獲取不足,造成位置編碼不準確。
本文提出的改進的DeepLabV3+網(wǎng)絡模型算法不僅優(yōu)化主干殘差單元,同時重新設計了ASPP結(jié)構(gòu),并在解碼端融合多個尺度的編碼信息,提高了網(wǎng)絡的識別準確度與分割精度。
DeepLabV3+網(wǎng)絡主要由主干網(wǎng)絡(特征提取網(wǎng)絡)、ASPP模塊[10-12]和上采樣模塊組成。在此網(wǎng)絡的基礎(chǔ)上,本文首先用ResNest網(wǎng)絡[13]替換了主干網(wǎng)絡中的ResNet網(wǎng)絡[14],使得各訓練目標的權(quán)重比值不同,同時使用密集連接的空洞卷積金字塔模塊重構(gòu)ASPP,增大感受野,提高對特征信息的復用效率。最后在解碼端引入了編碼端不同降采樣層輸出的特征信息,增加網(wǎng)絡對細粒度特征的感知。改進后的網(wǎng)絡結(jié)構(gòu)如圖1所示。
圖1 改進DeepLabV3+網(wǎng)絡原理圖Fig.1 Schematic diagram of improved DeepLabV3+ network
DeepLabV3+網(wǎng)絡中的主干網(wǎng)絡,包括ResNet和其他基礎(chǔ)的殘差網(wǎng)絡,是針對于圖像分類而設計的,由于有限的感受野大小以及缺乏跨通道之間的相互作用,這些網(wǎng)絡并不適合于目標檢測、圖像分割等領(lǐng)域。因此,為改善ResNet網(wǎng)絡對目標特征提取的限制,本文受分組卷積[15]的啟發(fā),采用了可分組的ResNest網(wǎng)絡替換ResNet。首先將特征圖按照網(wǎng)絡超參數(shù)K分成幾個固定的分組,并將由此得到的特征圖組稱之為基數(shù)組,如圖2(c)所示,則對應的變換公式為
(1)
式中:y表示分組網(wǎng)絡的輸出特征;x表示輸入特征;Τi(x)表示第i個分組對應的變換關(guān)系。對于一個未分組的網(wǎng)絡來說,若輸入特征圖尺寸為C×W×H,卷積核數(shù)量為N,每個卷積核尺寸為C×M×M,輸出特征圖數(shù)量也為N,如圖2(a)所示,則需要學習的參數(shù)個數(shù)為N×C×M×M。若分成K個分組,如圖2(b)所示,則對應需要學習的參數(shù)個數(shù)為N×(1/K)×M×M,由此可見,需要學習到的參數(shù)為原來的1/K,降低了網(wǎng)絡學習參數(shù)。
圖2 分組網(wǎng)絡原理圖Fig.2 Schematic diagram of grouped network
ResNest的另一個改進之處在于對基數(shù)組的二次分割。將基數(shù)組劃分成R組,則總的特征組數(shù)量為G=KR,則對于每個基數(shù)組輸出的特征信息可以表示為
(2)
(3)
由式(3)可知,分組后的網(wǎng)絡在訓練時每個分組可以得到不同的權(quán)重,因此對于輸入圖像,不同分組學習到的特征不同,從而提高了學習效率和特征提取的準確性。最終ResNest模塊的設計方式為V=Concat{V1,V2,…,VK},表示將所有的基數(shù)組沿著通道維度連接起來構(gòu)成一個整體。
在卷積神經(jīng)網(wǎng)絡中,為了保留圖像卷積的細節(jié)特征,同時增大感受野,DeepLabV3+采用空洞卷積和空洞空間金字塔池化模塊來融合圖像的多尺度特征。當空洞卷積的卷積核大小為k,擴張率為r′時,其能夠提供的感受野大小為
R=(r′-1)×(k-1)+k。
(4)
由式(4)可知,感受野大小與擴張率成正比。雖然較大的擴張率可以帶來更大的感受野,并捕獲更多的全局特征,但是這并不意味著,擴張率越大越好。因為擴張率會使得局部特征的提取難度增加,如圖3(a)所示,對于一個一維的圖像空洞卷積來說,若其擴張率為6,則在此次卷積過程中只有3個像素被用來計算,導致邊緣細節(jié)信息提取不足,這種現(xiàn)象若被拓展到二維,則情況會變得更糟。
為解決ASPP模型中增大感受野導致信息丟失問題,本文根據(jù)DenseNet網(wǎng)絡[16]設計了重構(gòu)后的密集連接ASPP結(jié)構(gòu)(見圖1)。在密集連接的ASPP中,隨著擴張率的逐層增加,下層的特征會被上層卷積所利用,使得像素的采樣更加密集,與并聯(lián)ASPP相比可以利用更多的圖像像素。圖3(b)說明,對于一個擴張率為6的卷積層,在其卷積層之下設置一個擴張率為3的卷積層可以使得其參與計算的像素從原來的3個像素增加到7個。如圖3(c)所示,拓展到二維的效果更加明顯,參與計算的像素由9個增加到49個。這種擴張率卷積層密集連接的方式不僅提高了像素的利用,也將目標細節(jié)特征傳遞到更深的網(wǎng)絡層,提高了目標的分割能力。
圖3 空洞卷積采樣圖Fig.3 Astrous convolution sampling
在感受野計算方面,密集連接的ASPP得到的感受野大小是各層卷積網(wǎng)絡輸出感受野大小的累加,而并聯(lián)ASPP只是各層輸出感受野的最大值。傳統(tǒng)的Deep-LabV3+網(wǎng)絡中ASPP使用的擴張率大小分別為6,12和18,則最大感受野表示為:Rmax=max(R3,6,R3,12,R3,18)=R3,18=37。
本文使用的密集連接ASPP的擴張率分別為6,12,18和24,則最大感受野表示為:Rmax=R3,6+R3,12+R3,18+R3,24-3=122。其中:Rk,r表示當卷積核大小為k的情況下,空洞擴張率為r時,卷積核所能提供的感受野大小。因此在特征卷積過程中,可以利用式(5)衡量感受野和信息利用率β之間的關(guān)系,即
(5)
密集連接前后空洞卷積在特征圖中表現(xiàn)如表1所示。
表1 ASPP連接方式對空洞卷積的影響Table 1 Effect of ASPP connection methods on astrous convolution
從表1中可知,并聯(lián)方式的ASPP感受野大小取決于最大擴張率的空洞卷積,但是隨著空洞卷積的增加,有效利用的像素個數(shù)并沒有增加,所以像素利用率下降。相比而言,密集連接的ASPP不僅在感受野方面有著較大提升,而且像素利用率也有明顯提高。
圖像細節(jié)特征的丟失和圖像的下采樣有直接的關(guān)系,為了獲得更多的細節(jié)特征,本文在DeepLabV3+網(wǎng)絡的基礎(chǔ)上引入更多的低層語義特征,此處主要融合了采樣系數(shù)為1/4,1/8 和1/16的低層語義特征,同時為了不影響編碼端輸出的高階語義特征,將輸出的3種低層語義特征降維成64,32和16,降維操作的主要作用是防止低層語義信息過多,影響高層語義信息的表達,造成目標分割不準確。
實驗的硬件配置為:Intel Xeon E5-2620處理器,16 GiB內(nèi)存,NVIDIA GTX1080Ti顯卡,系統(tǒng)配置主要基于Ubuntu16.04操作系統(tǒng),采用Pytorch1.3框架,Python版本是3.6。訓練的基本網(wǎng)絡是DeepLabV3+,其主干部分采用ResNest網(wǎng)絡,采用密集連接的ASPP,解碼端采用多尺度語義特征融合方法。
實驗流程可以分成3個部分:數(shù)據(jù)集準備、數(shù)據(jù)訓練和數(shù)據(jù)驗證。實驗主要采用公開的CityScape數(shù)據(jù)集[17],該數(shù)據(jù)集提供了5000 張精細標注的圖像,被劃分為訓練集2975張、驗證集500張、測試集1525張,有19個類別用于語義分割驗證,根據(jù)類別屬性將其分為天空、人物、車輛等7大類。訓練網(wǎng)絡參數(shù)如下:學習率為0.012 5、輸出步長為16、batch_size設置為4,共訓練500次。
本文采用語義分割的評價標準有2種,平均像素精度 (MPA)和平均交并比 (MIoU)。若數(shù)據(jù)集含有k+1個類別,pi j表示真值為第i類的像素被預測為第j類像素的數(shù)目,則pi i表示為真正的像素數(shù)量(TP),pj j為假負的像素數(shù)量(FN),pj i為假正的像素數(shù)量(FP)。
MPA是計算每類被正確分類的像素比例,再取平均,即
(6)
MIoU是真實標簽與預測標簽的交集與其并集之比,計算每個類的 IoU,再取平均,即
(7)
2.3.1 不同主干對比實驗與分析
本節(jié)基于DeepLabV3+網(wǎng)絡,對比了3種不同主干網(wǎng)絡在CityScape數(shù)據(jù)集上測試的數(shù)據(jù)結(jié)果,如表2所示。
表2 不同主干網(wǎng)絡對實驗的影響對比Table 2 Comparison of the influence of different backbone networks on the experiment
由表2可以看出,在只改變主干殘差單元的情況下,不同的主干網(wǎng)絡對于CityScape數(shù)據(jù)集檢測結(jié)果不同,其中以ResNest為主干的網(wǎng)絡,在MIoU和MPA兩個性能上的表現(xiàn)要優(yōu)于其他兩種網(wǎng)絡,但是由于改進的DeepLabV3+網(wǎng)絡更為復雜,所以單幀圖像預測時間有了一定增加。
2.3.2 改進ASPP對比實驗與分析
本節(jié)實驗主要驗證ASPP連接方式和不同擴張率對實驗結(jié)果的影響。其中,表3記錄了主干為ResNest情況下,不同的ASPP連接方式和擴張率組對網(wǎng)絡性能的影響。
表3 不同的ASPP連接方式和擴張率對實驗結(jié)果影響對比Table 3 Influence of different ASPP connection methods and expansion rates on experimental results
由表3可以看出,在連接方式相同的情況下,隨著感受野的增大,網(wǎng)絡的MIoU也越高,其中,并聯(lián)方式提升了0.8%,密集連接的方式提升了1.2%,但是擴張率組的增加會導致網(wǎng)絡越復雜,單幀預測時間越增大。在相同擴張率的情況下,密集連接的方式相比于并聯(lián)方式在MIoU方面提升較大,最高可以提升3.3%,但是單幀預測時間基本相同,此結(jié)果不僅說明具有更大感受野的密集連接ASPP在CityScape數(shù)據(jù)集上分割更加準確,而且證實增加的1×1卷積層能夠降低網(wǎng)絡參數(shù),從而有效防止單幀檢測時間升高。
2.3.3 改進網(wǎng)絡和原網(wǎng)絡對各類目標檢測結(jié)果對比
本節(jié)實驗主要對比以不同主干的原DeepLabV3+網(wǎng)絡和改進后的網(wǎng)絡,在測試集中對每一類對象的檢測結(jié)果的影響,結(jié)果如表4所示。
表4 不同網(wǎng)絡在CityScape數(shù)據(jù)集上每一類別的MIoU統(tǒng)計結(jié)果Table 4 The MIoU statistical results of each category on the CityScape dataset of different networks
從表4統(tǒng)計結(jié)果可知,本文模型對除天空之外的其他類別都有不同程度的提升,其中對于行人和交通標識等較小目標的識別能力提升較大。為了驗證改進和未改進的DeepLabV3+網(wǎng)絡在目標識別準確度和邊界優(yōu)化上的效果,圖4記錄了各種網(wǎng)絡出在CityScape數(shù)據(jù)集上的檢測結(jié)果圖。
圖4 不同網(wǎng)絡預測結(jié)果對比圖Fig.4 Comparison of different network prediction results
從圖4中可以看出,以ResNet101為主干的網(wǎng)絡對大目標(如植物)和小目標(如行人和交通標識)的分割效果相對較差。以ResNet152系列為主干的網(wǎng)絡在對大目標分割時效果有所提升,但是對于目標細節(jié)的分割仍然沒有明顯的提高,例如部分騎手被錯誤地識別成為行人。改進DeepLabV3+網(wǎng)絡既保證了大目標的分割準確度,同時也能達到對小目標的精確分割,例如圖4中白框表示部分,交通標識和車輛的輪廓細節(jié)更加清晰,人物分割更加準確。
本文主要針對室外道路場景,提出了一種改進DeepLabV3+語義分割網(wǎng)絡。此網(wǎng)絡主要通過替換主干網(wǎng)絡為ResNest,在單個網(wǎng)絡中結(jié)合了分組卷積結(jié)構(gòu),使網(wǎng)絡能夠保留大部分的空間信息,同時設計密集連接ASPP模塊,實現(xiàn)不犧牲特征空間分辨率的同時擴大感受野和提高信息復用率。解碼端融合3種不同低層語義特征,增加了目標細粒度特征信息的感知。相比于DeepLabV3+網(wǎng)絡,本文提出的算法在CityScape數(shù)據(jù)集上的MIoU和MPA兩種指標上都有較大的提升,同時較好地解決了小目標分割不準確和邊界模糊問題。