金汝寧 趙波 李洪平



非結構化道路由于沒有明顯車道線且道路特征多、地域差異大,現有的結構化道路分割方法無法滿足非結構化道路分割在實際應用中的實時性與準確性要求.為了解決上述難點,本文基于DeepLabv3+網絡提出一種G-lite-DeepLabv3+網絡結構,使用Mobilenetv2網絡替換解碼器中的Xception特征提取網絡,并通過在Mobilenetv2網絡與空洞空間金字塔池化模塊中使用分組卷積替換普通卷積,且有選擇地取舍批規范層來減少參數量,在不影響精度的同時提升分割效率.同時針對非結構化道路在圖像里分布位置相對較固定的特點,引入注意力機制對高級語義特征進行處理,提升網絡對有用特征的敏感度與準確性.選用與我國非結構化道路路況相似的印度道路駕駛IDD進行訓練,并與其他經典語義分割網絡進行實驗對比,結果表明,相比于其他網絡,本文提出的G-lite-DeepLabv3+準確率與實時性均表現較好、誤分割與邊緣清晰度均好于對照網絡;與經典算法進行對比,平均交并比mIoU提升1.3%,平均像素精度提升6.2%,幀率提升22.1%.
語義分割; 非結構化道路; 分組卷積; 注意力機制
U461A2023.012003
收稿日期: 2022-02-22
基金項目: 四川省重大科技專項項目(2020YFSY0058)
作者簡介: 金汝寧(1998-), 男, 遼寧錦州人, 碩士研究生, 主要從事圖像處理研究. E-mail: 872995841@qq.com
通訊作者: 趙波. E-mail: zhaobo@scu.edu.cn
A lightweight unstructured road semantic segmentation neural network
JIN Ru-Ning1, ZHAO Bo1,2,3, LI Hong-Ping1
(1. School of Mechanical Engineering, Sichuan University, Chengdu 610065, China;
2.State Key Laboratory of Mining Equipment and Intelligent Manufacturing, Taiyuan Heavy Machinery Group Co., Ltd, Taiyuan 030024, China;
3. Sichuan Provincial Collaborative Innovation Center for Intelligent Agricultural Machinery in Hilly Areas, Deyang 618000, China)
In unstructured roads, there is no obvious lane line, many road characteristics and large regional differences. As a result, the existing structured road segmentation methods can not meet the real-time and accuracy requirements of unstructured road segmentation in practical application.To solve these problems, a new neural network called G-lite-DeepLabv3+ is proposed based on the DeepLabv3+ network. Specifically, the Xception network is replaced by the Mbilenetv2 network in the decoder, the convolutions in Mobilenetv2 and ASPP are replaced by group convolution and the batchnorm layer is chosen selectively to reduce the amount of parameters, improving the segmentation efficiency without affecting the accuracy; at the same time, attention mechanism is introduced to deal with high-level semantic features to improve the sensitivity and accuracy of the network to useful features, considering relatively fixed distribution position of unstructured roads in the image. India driving dataset(IDD) is chosen to train the model taking into account that the roads included in the dataset are similar to the unstructured road in China. The established model is compared with other classical semantic segmentation networks, and the results show that the accuracy and real-time performance of g-lite-deeplabv3+ proposed in this paper are better than those of other networks. The proposed network also outperforms other networks on the indices of improper segmentation and edge clarity. Compared with the traditional network, the mean Intersection over Union(mIoU) is improved by 1.3%; the average pixel accuracy(mPA) is improved by 6.2% and the frame per second (FPS) is improved by 22.1%.
Semantic segmentation; Unstructured road; Group convolution; Attention mechanism
1 引 言
目前,自動駕駛技術發展迅速,其中最重要的核心技術之一就是對可通行區域的劃分.對于具有清晰的道路標志線的結構化道路的分割在現階段較為成熟,Lu等[1]利用結構化交通環境中車道具有平行的線性邊緣作為可通行區域檢測的依據,提出一種基于灰度特征的識別方法;為減輕光照變化和陰影對檢測結果的影響,Yuji等[2]利用大部分道路邊界存在朝向擴張中心的邊緣點都位于道路邊界的特征,提出了一種基于車道標志線的分割方法.但以上方法并不適用于非結構化道路檢測,原因是非結構化道路缺乏可識別的車道線,沒有清晰的道路邊緣,背景差異性較大[3],難以完成檢測任務.近年來,深度學習的出現為非結構化道路檢測提供了新思路.語義分割作為一種熱門的研究方向,以準確率較高,算法簡便,魯棒性較好成為最適合可通行區域檢測的一種方法,其中全卷積網絡FCN(Fully Convolutional Networks)[4]實現了端到端的語義分割,大大提升了卷積神經網絡的泛化能力.為了提升分割精度,學者們在FCN的基礎上進行了一系列改進.SegNet[5]改進了上采樣過程,使用記錄下來的最大池化的索引來對其做上采樣處理,使分割精度大大提高.DeepLabv1[6]通過使用條件隨機場CRF(Conditional Random Field)[7]處理FCN得到的分割結果,優化邊界細節.DeepLabv2[8]使用空洞卷積代替原Deeplabv1中的上采樣方法,并且提出空洞空間金字塔模塊(Atrous Spatial Pyramid Pooling,ASPP),在減少參數量的同時增加準確率.DeepLabv3[9]對空洞空間金字塔模塊進行了優化,使其能夠更好的捕捉多尺度信息.DeepLabv3+[10]在DeepLabv3的基礎上引入了編碼器-解碼器結構,能夠更好地融合低級語義特征與高級語義特征.PSPNet[11]提出了金字塔池化模塊,能夠充分利用上下文信息.UNet[12]提出了U型結構,可在使用數量更少數據集的同時,不降低分割精度.
由于非結構化道路具有特征多、分布范圍廣、地域差異大以及對環境因素敏感等特點[13],若想使用上述語義分割網絡進行識別,不但需要大量、種類豐富的非結構化道路數據集,而且對網絡結構也需要做針對性修改,否則過深的網絡會導致實時性差和過擬合的現象.本文選擇分割精度較高,魯棒性較強,結構相對簡潔的DeepLabv3+網絡進行針對性改進,具體工作有:(1) 將DeepLabv3+網絡的backbone由Xception[14]替換為MobileNetv2[15],減輕網絡結構,提升特征提取速度,防止過擬合現象的發生;(2) 在MobileNetv2與空洞空間金字塔模塊中使用分組卷積[16]替換傳統卷積,并且刪除批規范層[17],在不影響精度的情況下減少參數量與計算量,提升分割效率;(3) 在空洞空間金字塔模塊后加入注意力模塊,提升網絡識別速度與精度.
2 網絡結構
圖像可以看成是一種像素的合集,而語義分割的本質是一種對屬于特定標簽的每個像素進行分類的任務.目前在街景語義分割任務中效果比較好的結構是編碼-解碼結構,其中編碼器的功能主要是提取特征,解碼過程主要是根據解碼器提取的特征對像素進行分類.
本文選取對街景語義分割較好,結構較為簡單,分割速度較快的DeepLabv3+網絡進行針對性改進.因為原版backbone為Xception的網絡在進行本文的任務時會出現過擬合現象,且速度達不到實時性要求,所以首先將backbone替換成經過輕量化改造的MobileNetv2網絡,在避免網絡過深出現過擬合現象的同時,提升特征提取效率.為提升分割效率,對空洞空間金字塔池化結構進行輕量化改進.同時,為了提升解碼器對目標區域的敏感度,在編碼器的空洞空間金字塔池化結構后引入注意力模塊,然后用解碼器融合高級、低級特征圖并對像素進行分類.完整網絡結構如圖1所示.
圖1 G-Lite-Deeplabv3+結構
Fig.1 The structure of G-Lite-Deeplabv3+
2.1 分組卷積
為了減少參數量,提高網絡效率,本文受文獻[16]啟發,采用了分組卷積替換了MobileNetv2與空間金字塔結構中的普通卷積操作.分組卷積操作是在對特征圖進行卷積時,先對特征圖分組后,再卷積,其原理如圖2所示.若一個未分組的網絡得輸入特征圖尺寸為C×W×H,卷積核的組數為N,卷積核尺寸為C×K×K,若想輸出N組特征圖,則需要學習C×K×K×N個參數,若將特征圖分為G組,則只需要學習 (C/G)×K×K×N 個參數,總參數量降為原來的1/G.同時,分組卷積也可以看作是對原來的特征圖進行了一個dropout,有正則化的效果,避免出現過擬合現象.
(a) 普通卷積 (b) 分組卷積
圖2 分組卷積原理圖
Fig.2 The schematic diagram of groups convolution
2.2 輕量化backbone
在本文中,新網絡的backbone采用了MobileNetv2網絡主要模型結構,具體結構如表1所示.
表1中,H2為輸入圖像的像素數量;C為輸入通道數;t為輸入通道的倍增系數;n為此尺寸的Lite-bottleneck的重復次數;s為各個Lite-bottleneck模塊第一次重復時的卷積步長.
此結構中,Lite-bottleneck是本文提出的一種對原bottleneck的輕量化改進.Lite-bottleneck與原bottleneck原理相同,可以分為“升維層”、“卷積層”、“降維層”.首先,使用升維層中的1×1卷積將特征圖的空間維度提升,再經過卷積層3×3的深度可分離卷積提取每個通道特征圖的特征,最后經過1×1卷積將其降維.其中,“升維層”和“卷基層”的激活函數為ReLU函數,為了防止ReLU函數破壞壓縮后的特征,“降維層”后的激活函數使用Linear函數,如圖3所示.不同的是,Lite-bottleneck將“升維層”和“降維層”中的普通卷積替換成了組數為2的分組卷積,減少參數量;同時,因為分組卷積可以在較淺網絡中防止過擬合現象的發生,所以將Lite-bottleneck中的批規范層刪除,減少計算量.在提取特征的過程中,將尺寸為1282×24的特征圖輸出作為低級語義特征輸入到解碼器中,將最后得到特征圖輸入空洞空間金字塔池化結構中.網絡的具體算法如表2所示.若輸入圖像為X,bottleneck總共有N層,則有如下運算過程.
新結構與DeepLabv3+的原主干網絡Xception相比,大大降低的網絡深度與參數量,更加適合本文的實時非結構化道路檢測任務.
2.3 融合注意力機制的輕量化空洞空間金字塔池化模塊
為了擴大感受野,并提取多尺度特征圖,DeepLabv3+網絡中使用了空洞空間金字塔結構,其中采用了不同空洞率的空洞卷積,在參數量不變的情況下提取不同尺度大特征圖,可以更好地檢測類似道路這種大目標,同時,可以捕獲多尺度上下文信息,更加精確地定位目標.圖片經過空間金字塔池化后輸出維度統一且信息充足的特征圖[18].為了加速分割進程,實現實時檢測的功能,本文提出了一種輕量化空洞空間金字塔池化模塊,將空洞卷積替換為組數為2的空洞分組卷積,在減少參數量的同時承擔批規范層的作用,再刪掉批規范層以減少計算量.將經過輕量化空洞空間金字塔池化模塊的特征圖融合在一起,用1×1的卷積調整通道數,再經過注意力模塊.
注意力模塊可以通過賦予像素不同的權重來達到將調整整個網絡關注重點,提升識別效果與效率.本文中的注意力模塊由通道注意力模塊與空間注意力模塊串聯而成.通道注意力模塊可以關注輸入特征有意義的部分,空間注意力模塊則可以獲取場景中的全局信息[19,20].
通道注意力模塊的結構如圖4所示.輸入特征X首先經過全局平均池化和全局最大池化,得到兩組尺寸為1×1的特征圖Xcavg、Xcmax,再將它們分別送入兩層全連接神經網絡,此兩層全連接神經網絡對于兩組特征圖是共享參數的,然后將得到的兩組特征圖相加,通過Sigmoid函數得到0到1之間的權重系數,將其與特征圖相乘得到優化過的特征圖.用W0和W1分別表示共享網絡隱藏層(Shared MLP)的兩層參數,用σ表示Sigmoid函數,可以得到通道注意力計算公式如下式.
Mc(X)=σ(MLP(AvgPool(X))+
MLP(MaxPool(X)))=σ(W1(W0(Xcavg))+
W1(W0(Xcmax)))(1)
空間注意力模塊結構如圖5所示.將經過通道注意力模塊優化的特征圖X輸入,首先分別經過只有一個通道維度的最大池化和平均池化,將得到的兩個特征圖Xsavg、Xsmax拼接起來,再經過一個卷積層,將為一個通道,采用7×7的卷積核進行卷積操作,同時保持特征圖尺寸不變,將得到的特征圖通過Sigmoid函數生成空間權重系數,將其與輸入的特征圖相乘得到最終的特征圖.計算公式如下式.
Ms(X′)=σ(f 7×7([AvgPool(X′);
MaxPool(X′)]))=σ(f7×7([Xsavg;Xsmax])) (2)
2.4 解碼器
首先將編碼器輸出的高級語義特征進行4倍上采樣,將其尺寸恢復到與低級語義特征相同的124×124,然后將低級語義特征XLowLevel-Feature與高
級語義特征XHighLevel-Feature串聯到一起,使用3×3的卷積細化特征,將其變為1個通道的特征圖,最后使用4倍上采樣完成解碼過程,得到預測結果.具體算法如表3所示.
3 數據集
非結構化道路檢測任務不同于高速公路、城市干道等具有清晰道路標志線的結構化道路檢測任務可以把檢測任務簡化為車道線或道路邊界檢測,它沒有明顯的車道線與清晰的道路邊界,傳統城市街景語義分割數據集并不適用于非結構化道路識別.經過對比Cityscapes等其他街景語義分割數據集后,印度道路駕駛數據集(India Driving Dataset,IDD )更加適合訓練非結構化道路檢測的任務.印度道路駕駛數據集包含34個類別,像素尺寸為1920×1080.經過挑選,選出了6792張符合要求的街景圖片,如圖6所示.針對印度道路駕駛數據集涵蓋種類較多,對其進行有針對性的改造,將road類與parking類劃分為可通行區域,其余32個類別劃分為不可通行區域.將篩選后的6792張圖片按8∶1∶1的比例隨機分為訓練集、驗證集與預測集.訓練集用于訓練網絡參數,驗證集用于反饋訓練結果、及時調整網絡參數,預測集用于評估訓練得到的網絡的好壞.
4 訓練細節參數和損失函數
4.1 網絡參數
本文網絡的訓練環境為:操作系統:Windows 10專業版;CPU:Intel(R) Core(TM) i5-10400F;內存:16 GB;GPU:Ge Force RTX 3060,顯存為12 GB.使用PyTorch 深度學習框架,采用名為Adam的一種自適應學習率的算法更新神經網絡的權重.在訓練中,batchsize=8;圖片為jpg格式,標簽為png格式.初始學習率為0.000 001,權重衰減為0.0005.
4.2 損失函數
損失函數通常被用來估計模型的預測值與真實值的擬合程度,它是一個非負的實值函數,損失函數越小,模型的魯棒性就越強.非結構化道路屬于一種二分類任務,通常所采用的交叉熵函數不能很好地處理類別不平衡的現象,不能有效地監督網絡,因此采用Dice系數差異函數(Dice-loss)[21]來表示訓練中的語義分割效果,它可以懲罰低置信度的預測,如果置信度較高,就會得到較小的Dice系數差異函數.Dice系數是一種集合相似度的度量函數,常被用于計算兩個矩陣的相似度.其計算方法如式(3)所示.
s=2|X∩Y||X|+|Y|(3)
就語義分割的問題而言,其中X為標簽圖像;Y為預測輸出圖;|X∩Y|可以近似為將預測圖與分割圖之間的點乘,并將結果的元素結果相加的和.對于|X|和|Y|的量化計算則可以采用簡單的元素相加.最終得到Dice系數差異函數如下式.
LDice=1-2X∩YX+Y(4)
5 實驗結果與分析
使用上述配置對挑選的印度道路駕駛數據集進行訓練,訓練從第49個epoch開始收斂,訓練集和驗證集的Dice-loss分別穩定在0.074與0.062.此外,在相同的訓練配置與環境下,將本文網絡分別與文獻[13]、PSPNet、UNet和以Mobilenetv2為backbone的DeepLabv3+網絡進行對比,對比結果如圖7所示.
對比分割效果,可以看出,本文的算法最貼近于標簽圖像,對于前三張圖的分割,文獻[13]雖然邊緣分割的比較好,但是容易出現誤分割,如第一張示例原圖與第二張示例原圖的分割結果所示,車輛上都出現了小塊誤分割,并且第二張示例原圖分割結果中的車輛下邊緣分割也并不十分精確,PSPNet雖然速度最快,但是分割精度比較差,邊緣細節丟失較多,無法準確識別可通行區域與障礙物邊緣,UNet分割較為精準,但第二張示例原圖中的車輛下邊緣分割不準確,而且分割速度較慢,對于第四張示例原圖,除了PSPNet,其余三種算法都可以勉強分割出左側土坑輪廓,但對于右側的路緣,文獻[13]、PSPNet和UNet都出現了不同程度的誤分割,而本文提出的G-lite-DeepLabv3+則沒有出現此情況.
在同樣的環境與配置下使用挑選的印度道路駕駛數據集訓練本文的G-lite-Deeplabv3+網絡,并且與文獻[13]、PSPNet、UNet和以MobileNetv2為backbone的DeepLabv3+網絡進行對比,對比標準有平均交并比(mIoU),可通行區域交并比(IoU),平均像素精度(mPA)和每秒幀數(FPS).由表4可知,由于融合了注意力機制并且再次進行了輕量化,對比只使用MobileNetv2進行輕量化后的DeepLabv3+網絡,新網絡在平均交并比與可通行區域交并比的性能全面提升的情況下,平均像素精度提升6.2%,每秒幀數更是提升了22.1%,達到了39.4幀/s,滿足了非結構化道路分割任務的實時性的要求.
6 結 論
為了更好地完成非結構化道路識別的任務,本文使用了經過挑選的印度道路駕駛數據集,印度道路駕駛數據集與我國的非結構化道路路況非常相似,經過訓練后,可以得到非常適合非結構化道路路況的語義分割網絡模型.針對結構化道路分割方法無法滿足非結構化道路分割在實際應用中所需的實時性與準確性問題,本文提出了一種輕量化方法G-lite-DeepLabv3+.為了避免網絡過深產生過擬合現象且參數過多導致效率變低,文中使用MobileNetv2取代Xception作為特征提取網絡,并在MobileNetv2與空洞空間金字塔池化模塊中使用分組卷積替換普通卷積并且合理取舍掉它們的批規范層,大大減少了網絡參數量,在不影響分割精度的同時提高了分割速度,滿足實時性的要求.同時,為了放大非結構化道路圖像分布的共同特性以提高分割精度,本文加入兩種串聯的注意力模塊處理空洞空間金字塔池化模塊輸出的高級圖像特征.實驗表明,本文提出的G-lite-DeepLabv3+網絡在精度以及效率方面均優于對照網絡.為語義分割在非結構化道路識別任務上的應用提供了一定改進依據.
參考文獻:
[1] Lu J Y, Yang M. Vision-based real-time road detection in urban traffic [J]. Physica A, 2002, 75:82.
[2] Yuji O, Shoji M. Multitype lane markers recognition using local edge direction[C]//Proceedings of the IEEE Intelligent Vehicle Symposium. Changshu: Chinese Association of Automation, 2002.
[3] 張凱航, 冀杰, 蔣駱, 等.基于 SegNet的非結構道路可行駛區域語義分割[J].重慶大學學報,2020,43: 79.
[4] Shelhamer E, Long J, Darrell T. Fully convolutional networks for semantic segmentation [J]. IEEE T Pattern Anal, 2017, 39: 640.
[5] Badrinarayanan V, Kendall A, Cipolla R. SegNet: a deep convolution encoder-decoder architecture for image segmentation[J]. IEEE T Pattern Anal, 2017, 39: 2481.
[6] Chen L C, Papandreou G, Kokkinos I, et al. Semantic image segmentation with deep convolutional nets and fully connected CRFs [J]. Comput Sci, 2014, 4: 357.
[7] Krhenbühl P, Koltun V. Efficient inference in fully connected CRFs with gaussian edge potentials [J].Adv Neural Inf Proc Syst, 2011, 2: 109.
[8] Chen L C, Papandreou G, Kokkinos I, et al. Deeplab: semantic image segmentation with deep convolutional nets, atrousconvolution, and fully connected CRFs [J]. IEEE T Pattern Anal, 2018, 40: 834.
[9] Chen L C, Papandreou G, Schroff F, et al. Rethinking atrous convolution for semantic image segmentation [J]. Computer Vision, 2017, 423: 438.
[10] Chen L C, Zhu Y, Papandreou G, et al. Encoder-decoder with atrous separable convolution for semantic image segmentation [J]. Computer Vision, 2018, 833: 851.
[11] Zhao H, Shi J, Qi X, et al. Pyramid scene parsing network [J]. IEEE Comt Socie, 2017, 211: 223.
[12] Zhou Z, Siddiquee M M R, Tajbakhsh N, et al. UNet++: a nested U-Net architecture for medical image segmentation [J]. Comput Meth Prog Bio, 2018, 56: 64.
[13] 龔志力, 谷玉海, 朱騰騰, 等.融合注意力機制與輕量化DeepLabv3+的非結構化道路識別[J].微電子學與計算機, 2022, 39: 26.
[14] Chollet F. Xception: deep learning with depthwise separable convolutions[J].Ieice T Fund Electr, 2017, 32: 1952.
[15] Sandler M, Howard A, Zhu M,et al. MobileNetv2: inverted residuals and linear bottlenecks [C]//Proceedings of the 2018 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR). New York: IEEE, 2018, 26: 1481.
[16] Ioannou Y, Robertson D, Cipolla R,et al. Deep roots: improving CNN efficiency with hierarchical filter groups [J]. Ieice T Fund Electr, 2017, 35: 1542.
[17] Ioffe S, Szegedy C. Batch normalization: accelerating deep network training by reducing internal covariate shift [J].Ieice T Fund Electr, 2015, 21, 1054.
[18] 王卜, 何揚. 基于改進YOLOv3的交通標志檢測[J]. 四川大學學報: 自然科學版, 2022, 59: 012004.
[19] 晉儒龍, 卿粼波, 文虹茜. 基于注意力機制多尺度網絡的自然場景情緒識別[J]. 四川大學學報: 自然科學版, 2022, 59: 012003.
[20] 蔡英鳳, 朱南楠, 邰康盛, 等. 基于注意力機制的車輛行為預測[J]. 江蘇大學學報:自然科學版, 2020, 41: 125.
[21] 田寶園, 程懌, 蔡葉華, 等. 基于改進U- Net深度網絡的超聲正中神經圖像分割[J]. 自動化儀表, 2020, 41: 36.