宋 宇,王小瑀,梁 超,程 超
(長春工業(yè)大學 計算機科學與工程學院,吉林 長春 130012)
近年來,對于無人駕駛視覺感知系統(tǒng),大多使用語義分割技術來處理感知到的物體。因此語義分割在無人駕駛領域有著極其重要的作用。由于無人駕駛的特殊性,使其不僅對語義分割網(wǎng)絡的準確度有要求,對實時性的需求也非常迫切。
Long等人提出了最原始的語義分割網(wǎng)絡FCN。繼FCN之后應用于無人駕駛的語義分割算法總體來說可以分為兩大類:第一類是基于編碼器-解碼器結(jié)構(gòu)的網(wǎng)絡,例如Ronneberger等人提出的Unet網(wǎng)絡,在進行少類別分割任務時速度快、精確高。但是當分割類別增多,網(wǎng)絡分割速度將大幅度降低;劍橋大學提出的SegNet,網(wǎng)絡中采用最大池化索引指導上采樣存在特征圖稀疏問題,進而導致算法雖然達到了實時分割速度,但分割精度低;Paszke等人提出的Enet網(wǎng)絡通過減少神經(jīng)元權(quán)重數(shù)量以及網(wǎng)絡體積使得網(wǎng)絡可以達到實時分割的要求,但是算法的擬合能力弱導致分割精度較低。第二類是基于上下文信息的網(wǎng)絡,例如Zhao H等人提出的PSPNet網(wǎng)絡,通過引入更多上下文信息提高了網(wǎng)絡的場景解析能力,但是由于多次下采樣操作導致特征圖丟失大部分空間信息。針對這個問題,Zhang H等人提出了EncNet,但是由于采用Resnet101網(wǎng)絡作為主干,參數(shù)量龐大,網(wǎng)絡實時性較差;Chen等人提出的DeepLab網(wǎng)絡,引入了空洞卷積來保持感受野不變。并且后續(xù)又提出了DeepLab v2以及DeepLab v3+網(wǎng)絡,其中DeepLab v3+結(jié)合了兩大類網(wǎng)絡的優(yōu)點,使用DeepLab v3作為編碼器并且在最終特征圖的頂部采用了空洞金字塔池化模塊(atrous convolution spatial pyramid pooling,ASPP),在避免下采樣操作的同時獲取了多感受野信息。但是網(wǎng)絡在分割速度方面存在不足,主要是因為引入空洞卷積帶來了大量的計算復雜度和內(nèi)存占用。以Restnet-101為例,空洞卷積的引用使得其中23個殘差模塊,需要占用4倍的計算資源和內(nèi)存,最后3個殘差模塊需要占用16倍以上的資源。
針對以上各種網(wǎng)絡無法同時兼顧準確度以及實時性的問題,該文提出了一種實時語義分割網(wǎng)絡,采用參數(shù)量較少的輕量卷積網(wǎng)絡FCN8s代替DeepLab v3+中的ResNet101作為網(wǎng)絡的主干。文中算法主干與DeepLab v3+的區(qū)別在于最后兩個卷積階段。以第四個卷積階段(Conv4)為例。在DeepLab v3+中首先對輸入圖片進行卷積處理,然后再進行一系列的空洞卷積處理。不同的是,文中方法首先使用跨步卷積來處理輸入的特征圖,然后使用幾個常規(guī)卷積來生成輸出特征圖。并且使用多級特征圖聯(lián)合上采樣模塊(multi-scale feature map joint pyramid upsamping,MJPU)來代替DeepLab v3+中耗時、耗內(nèi)存的空洞卷積,大大減少了整個分割框架的計算時間和內(nèi)存占用。最重要的是,MJPU在大幅度減少運算量的同時,不會造成性能上的損失,讓算法應用在無人駕駛實時語義分割場景中變得可行。
為了獲得高分辨率的最終特征圖,DeepLab網(wǎng)絡中的方法是將FCN最后兩個下采樣操作刪除,這兩個操作由于擴大了特征圖的感受野而帶來了大量的計算復雜度以及內(nèi)存占用量。該文的目標是尋找一種替代方法來近似最終的特征圖。
為了實現(xiàn)這一目標,首先將所有被DeepLab v3+刪除的跨步卷積全部復原,之后用普通的卷積層替換掉空洞卷積。如圖1所示,文中方法主干與原始的FCN相同,其中五個特征圖(Conv1-Conv5)的空間分辨率逐漸降低2倍。
圖1 網(wǎng)絡執(zhí)行流程
為了得到與DeepLab v3+相似的特征圖,提出了一個新的模塊,叫做多級特征圖聯(lián)合上采樣模塊(MJPU),它以編碼器最后三個特征圖(Conv3-Conv5)為輸入,然后使用一個改進的多尺度上下文模塊(ASPP)來產(chǎn)生最終的預測結(jié)果。在算法執(zhí)行過程中,輸入圖片的格式為H
×W
×3,經(jīng)過文中設計的編碼器網(wǎng)絡,編碼器網(wǎng)絡由輕量級網(wǎng)絡構(gòu)成,可以減少算法在編碼階段的計算時間;其次使用MJPU模塊來生成一個特征圖,該特征圖的作用類似于Deeplab v3+主干網(wǎng)絡中最后一個特征圖的激活作用。MJPU的使用避免了DeepLab v3+中參數(shù)量龐大的空洞金字塔池化網(wǎng)絡與高分辨率的最終特征圖做卷積運算而大幅度降低了分割速度。MJPU模塊是該文可以大幅度增加實時性的重要因素。最后網(wǎng)絡經(jīng)過ASPP獲取不同大小的感受野信息,增加網(wǎng)絡對不同尺度物體的分割能力,提升算法的分割精度。下面將詳細介紹替換空洞卷積的方法以及多級特征圖聯(lián)合上采樣模塊的結(jié)構(gòu)。f
做普通卷積,得到中間特征f
;(2)刪除索引為奇數(shù)的元素,得到f
。圖2 一維空洞卷積與跨步卷積示意圖
形式上,給定輸入特征圖的x
,DeepLab v3+網(wǎng)絡中得到輸出特征圖的y
如下:(1)
而在文中方法中,生成的輸出特征圖y
如下:(2)
其中,C
代表普通卷積,C
代表空洞卷積,C
代表跨步卷積。S
、M
、R
分別代表圖2中的分離、合并、刪除操作。相鄰的S
和M
操作是可以相互抵消的。為了簡單起見,上述兩個方程中的卷積是一維的,對于二維卷積可以得到類似的結(jié)果。(3)
其中,H
是所有可能的變換函數(shù)集合,‖.‖是一個給定的距離度量。(4)
根據(jù)上述分析,設計了如圖3所示的MJPU模塊。
圖3 MJPU模塊
圖4 深度可分率卷積作用示意圖
實驗主要是在準確率以及速度兩方面對網(wǎng)絡進行了評價。在準確率方面使用的是像素精度(PixAcc)以及平均交并比(mIoU)作為評價指標。在速度方面則使用的是每秒處理幀數(shù)(FPS)作為評價指標。
PixAcc是語義分割中正確分割像素占全部像素的比值,而mIoU指的是真實分割與預測分割之間重合的比例,其計算公式如下:
(5)
式中,k
表示類別數(shù)量,文中為34類。TP
表示正類判斷為正類的數(shù)量,FP
表示負類判斷為正類的數(shù)量,FN
表示正類判斷為負類的數(shù)量。FPS作為常見的測量網(wǎng)絡速度的評價指標,計算公式如下:
(6)
其中,N
表示處理圖像數(shù)量,T
表示處理第j
張圖像所用的時間。語義分割模型使用TensorFlow2.0深度學習網(wǎng)絡框架搭建,在訓練和測試階段的服務器配置均具有英特爾 Core i9-9900K 5.0 GHz的CPU、32 G DDR4 2 666 MHz的內(nèi)存和RTX-2080TI(具有11 GB顯存)的GPU,并且基于Window10的操作系統(tǒng),在CUDA10.0架構(gòu)平臺上進行并行計算,并調(diào)用CuDNN7.6.5進行加速運算。
在訓練過程中網(wǎng)絡采用Adam優(yōu)化器,初始學習率是0.001,學習率策略為逆時間衰減策略,權(quán)重衰減使用L2正則化。其中decay_steps=74 300、decay_rate=0.5,代表每過100個epoch,學習率衰減為原來的三分之二。圖5是網(wǎng)絡應用此種學習策略的loss值衰減曲線??梢郧宄闯瞿鏁r間衰減策略可以使模型在較少的epoch次數(shù)內(nèi)達到全局最優(yōu)。
圖5 網(wǎng)絡訓練過程中l(wèi)oss值展示
文中選擇的無人駕駛數(shù)據(jù)集為國際公開的由奔馳公司推動發(fā)布的數(shù)據(jù)集Cityscapes。Cityscapes是在無人駕駛環(huán)境語義分割中使用最廣泛的一個數(shù)據(jù)集。它包含了50個城市的不同場景、背景、季節(jié)的街景圖片,具有5 000張精細標注的圖像、20 000張粗標注的圖像。在實驗過程中,文中只使用了5 000張精細標注的圖像,將其劃分為訓練集、驗證集和測試集。分別2 975張、500張、1 525張圖像,并且使用了全部34類物體作為分割對象。由于原有圖像分辨率為2 048×1 024,分辨率過高導致硬件無法進行大批量訓練,因此對圖像進行縮放并裁剪成512×512大小。
為了驗證該網(wǎng)絡的分割性能,選取了六種網(wǎng)絡與文中算法做對比,選取的網(wǎng)絡分別為Unet、SegNet、ENet、PSPNet、EncNet、DeepLab v3+。算法性能對比見表1。
表1 各算法在Cityscapes數(shù)據(jù)集(val)上的不同評估指標對比
首先與表1中的前三種輕量級網(wǎng)絡進行對比,文中網(wǎng)絡的mIoU分別高出6.72%、10.03%和13.32%,PixAcc也有平均5%以上的提升。在網(wǎng)絡實時性方面雖然略低于Enet,但這是由于Enet通過減少神經(jīng)元權(quán)重數(shù)量的結(jié)果,雖然Enet的實時性較好但是算法嚴重非線性,網(wǎng)絡分割精度較低。而對比以分割精度為主要指標的PSPNet、EnecNet和DeepLab v3+,由于文中主干網(wǎng)絡采用的是輕量級網(wǎng)絡,導致網(wǎng)絡精確度略微落后,但是在分割速度方面最多高出200%。
圖6展示了不同算法的分割結(jié)果。從圖6中可以看出,文中算法對樓房、道路、樹、汽車、天空等都具有較好的分割效果,對于這些大物體該網(wǎng)絡均未產(chǎn)生分類錯誤區(qū)域;從圖中還可以看出該網(wǎng)絡對路燈等桿狀物體以及遠處車輛等小目標分割效果良好,這主要受益于所提出的MJPU模塊結(jié)合了多層特征圖的語義信息。
圖6 不同算法在Cityscapes數(shù)據(jù)集上語義分割效果
為了進一步驗證MJPU的有效性,該文將其與經(jīng)典的雙線性插值上采樣和特征金字塔網(wǎng)絡(FPN)進行了對比實驗。使用FPS作為評價指標,在GPU上以512×512圖像作為輸入進行測量。結(jié)果如表2和表3所示。對于ResNet-50,文中方法的測試速度大約是Encoding結(jié)構(gòu)(EncNet)的兩倍。當主干更改為ResNet101時,文中方法的檢測速度比Encoding結(jié)構(gòu)的快三倍以上。并且可以由圖看出文中方法的檢測速度可以和FPN相媲美。但是對于FPN來講,MJPU模塊可以獲得更好的性能。因此對于DeepLabv3+(ASPP)和PSP,文中提出的模塊可以在提高性能的同時,對網(wǎng)絡進行一定程度的加速。
表2 Resnet-50中不同上采樣方式計算復雜度對比
表3 Resnet-101中不同上采樣方式計算復雜度對比
為了使語義分割網(wǎng)絡更加滿足無人駕駛實時分割任務的需求,提出了一種新的實時語義分割網(wǎng)絡。首先,采用了一種輕量級的卷積神經(jīng)網(wǎng)絡作為編碼器。并且分析了空洞卷積和跨步卷積的區(qū)別和聯(lián)系,使用跨步卷積和普通卷積的組合代替了耗時、耗內(nèi)存的空洞卷積。在此基礎上,將高分辨率特征圖的提取問題轉(zhuǎn)化為一種聯(lián)合上采樣問題,提出了一種新的多級特征圖聯(lián)合上采樣模塊,通過該模塊可以在獲得近似與DeepLab v3+相似的特征圖的前提下,將網(wǎng)絡計算復雜度最多降低三倍以上。通過在Cityscapes數(shù)據(jù)集上的實驗表明(mIou=43.78%,F(xiàn)PS=32.3),所提出的實時分割算法在大幅度降低計算復雜度的同時,取得了較好的分割效果。從而使該網(wǎng)絡更加適合應用于無人駕駛場景當中。