宋 亮,谷玉海,石文天
(1.北京信息科技大學 北京市機電系統(tǒng)測控重點實驗室,北京 100192;2.北京工商大學 材料與機械工程學院,北京 100148)
交通的便利極大地促進了經(jīng)濟的發(fā)展,改善了人民的生活,但隨之而來的交通事故也造成了諸多損失。絕大部分交通事故通常源于人為因素,如超速行駛、疲勞駕駛等。無人駕駛技術則可有效地避免這些問題。在過去的幾年里,無人駕駛得到了飛速發(fā)展,其核心技術之一是道路場景的語義分割[1-2]技術。目前無人車行駛的道路場景可分為兩類:一類是城市主干道、高速公路等邊界清晰、形狀規(guī)則的結構化道路,該類道路的分割技術已經(jīng)比較成熟[3-4];另一類是鄉(xiāng)村街道、城市非主干道等邊界模糊、形狀不規(guī)則甚至部分損壞的非結構化道路。該類道路場景下車道保持功能不可靠、分割難度大,更容易出現(xiàn)交通堵塞或其他事故。因此有效地識別出非結構化道路的可通行區(qū)域,對無人駕駛技術的實際應用具有較大的意義。
傳統(tǒng)的非結構化道路分割算法主要依賴道路紋理、顏色、邊緣等表層特征。黃俊提出一種根據(jù)道路方向紋理檢測消失點的方法,使用局部方向模式特征計算響應幅值并確定投票點,根據(jù)幅值確定紋理主方向,對投票點進行局部自適應軟投票并選取最大值作為消失點[5];郭昕剛則先在RGB空間中進行初始分割,之后使用聚類得出像素類別并根據(jù)預設范圍加以修改得到最終分割結果[6];王翔提出一種基于最大熵閾值分割和邊緣檢測相結合的非結構化道路分割算法,首先根據(jù)熵的閾值大小對道路圖像進行初步分割,之后使用邊緣檢測對初步分割的錯誤區(qū)域重新修正,最后根據(jù)經(jīng)驗掃描圖像中央?yún)^(qū)域像素,提取最大連通域作為道路[7]。上述方法在實際應用時易受環(huán)境影響,難以滿足無人駕駛的魯棒性要求?;诩y理的消失點檢測方法往往計算量較大,實時性不能得到保障;基于RGB 的方法對環(huán)境條件要求較高,易受天氣變化、光影等條件的影響;基于邊緣檢測的方法受限于道路類型,對彎道場景不夠敏感。
近年來,基于深度學習的語義分割取得了巨大成就。FCN(fully convolutional networks)首次實現(xiàn)像素級別分割,開啟了語義分割端到端的時代[8]。在FCN 的基礎上一系列新方法應運而生,如基于擴大感受野的ENet、基于編碼器和解碼器結構的UNet 及SegNet、基于特征融合的DeepLabV3 等[9]。曹富強提出一種針對缺陷檢測的分割算法,對神經(jīng)網(wǎng)絡中空洞卷積的空洞率加以調(diào)整,并使用多尺度融合的方式提高分割精度[10]。汪水源則利用自適應模板對分割效果進行更新,同樣引入多特征融合方法[11]。經(jīng)研究人員的不斷優(yōu)化改進,Deep-LabV3+、DANNet、PSPNet 等網(wǎng)絡在Cityscapes 數(shù)據(jù)集上針對道路場景分割時的MIOU(mean intersection over union)值均大于0.8,但由于網(wǎng)絡結構較為復雜,因而實時性不佳[12]。為了保證無人駕駛的安全性,道路分割的速度尤為重要,因此輕量級的網(wǎng)絡逐漸問世。BiSeNet 就是其中之一,BiSeNet使用雙分支結構并引入特征融合,降低計算復雜度,保障了快速性,常應用于無人駕駛、增強現(xiàn)實等對實時性要求較高的領域。綜上,本文選擇使用基于深度學習的像素級分割方法并對BiSeNet網(wǎng)絡加以改進,采用更輕量的主干提取網(wǎng)絡,引入注意力機制和深度可分離卷積,在保證分割速度的同時進一步提高精度,得到適用于非結構化道路場景下的高水平語義分割模型。
BiSeNet[13]網(wǎng)絡設計了空間路徑和上下文路徑2 個分支,分別用于編碼空間信息和獲取語義信息,由于空間路徑輸出的空間信息較為低級,上下文路徑的輸出為高級語義信息,因此使用特征融合模塊對空間信息和語義信息進行融合,最后經(jīng)8 倍上采樣完成分割操作,如圖1 所示。
圖1 BiseNet 網(wǎng)絡結構Fig.1 Structure diagram of BiseNet network
有效的空間信息編碼和足夠的感受野對于分割準確性而言至關重要。文獻[14]引入ASPP(atrous spatial pyramid pooling),使用空洞卷積編碼空間信息,通過池化操作和不同的空洞率實現(xiàn)了多尺度提取特征。文獻[15]引入大尺寸的卷積核,借此捕獲較大的感受野。原BiSeNet 網(wǎng)絡則設計了包含3 層標準卷積的空間路徑,該結構可以編碼豐富的空間信息,但卻伴隨著大量的參數(shù)量。
傳統(tǒng)的標準卷積同時兼顧特征圖空間上的相關性和通道上的相關性,輸入特征經(jīng)一步操作得到輸出。而深度可分離卷積(depthwise separable convolution,DSConv)分為2 個步驟:第1 步對輸入的特征圖進行深度卷積(depthwise convolution),僅考慮空間關系,對每個通道單獨卷積;第2 步進行逐點卷積(pointwise convolution)獲取通道相關性,卷積核尺寸為1×1,如圖2 所示。
圖2 深度可分離卷積Fig.2 Schematic of depthwise separable convolution
同等輸入輸出條件下,深度可分離卷積的參數(shù)量與標準卷積的參數(shù)量比值為
式中:Ndepth、Npoint、N分別表示深度卷積、逐點卷積、標準卷積的參數(shù)量;D×D為卷積核大??;Cin表示輸入特征通道數(shù);Cout為輸出特征通道數(shù)。
由式(1)可知,相同條件下,標準卷積的參數(shù)量更大,這將消耗大量的內(nèi)存資源,因此對空間路徑進行改進,引入深度可分離卷積減少參數(shù)量,控制內(nèi)存消耗,使網(wǎng)絡更加輕量化。改進后的空間路徑總共有4 層,如圖3 所示。第1 層包括步長為2 的卷積,然后是批量歸一化(batch normalization,BN)和 ReLU(rectified linear unit)激活;第2、3 層使用步長為2 的深度可分離卷積,舍棄BN 和ReLU操作,進一步減少參數(shù)量;第4 層與第1 層類似,不同的是卷積核大小為1×1,步長為1。改進后的空間路徑依然保留了較大的空間尺寸,輸出具有豐富的空間信息的低層次特征。同時深度可分離卷積的使用減少了模型參數(shù)量,顯著降低了運算成本,在保證準確性的基礎上提高了非結構化道路的分割速度。
圖3 改進后的空間路徑Fig.3 Schematic of improved spatial path
原BiSeNet 使用輕量化模型Xception 作為上下文路徑的主干提取網(wǎng)絡,但該輕量化模型往往會因為通道不斷的修剪而損壞感受野,在早期階段尤為明顯[16]。針對非結構化道路分割要求的準確性和實時性,對上下文路徑進行改進,使用Mobile-NetV3-large[17]代替Xception。MobileNetV3-large 采用獨特的Bneck 結構,如圖4 所示。綜合了V1 和V2版本的優(yōu)勢,Bneck 采用線性瓶頸的逆殘差結構并融入SE(squeeze-and-excitation)注意力,對比Bise-Net 的下采樣具備更好的特征提取效果,對參數(shù)量和速度控制都更加理想和高效。對MobileNetV3-large 網(wǎng)絡結構進行部分調(diào)整;首先進行1 次步長為2 的卷積;之后經(jīng)過7 個Bneck 塊快速下采樣,得到輸入特征圖1/16 大小的特征輸出;再經(jīng)過8 個Bneck 塊,得到1/32 大小的特征,調(diào)整后的MobileNetV3-large 特征提取網(wǎng)絡如表1 所示;之后對該1/32 大小的特征進行全局平均池化,用于提供較大的感受野和全局上下文信息;最后將不同等級的特征經(jīng)過注意力細化模塊后進行融合得到上下文路徑的高級語義信息。改進后的上下文路徑如圖5 所示,圖5(a)為改進上下文路徑的結構,圖5(b)為注意力細化模塊的結構。
表1 調(diào)整后的MobileNetV3-large 特征提取網(wǎng)絡Table 1 MobileNetV3-large feature extraction network after adjustment
圖4 Bneck 結構圖Fig.4 Structure diagram of Bneck
圖5 改進后的上下文路徑Fig.5 Schematic of improved context path
空間路徑捕獲的特征主要為包含空間細節(jié)的低級特征,而上下文路徑捕獲的大多是高級的語義信息特征。由于空間信息和語義信息之間層級的差距,直接進行特征融合效果較差。因此,本文設計了通道注意力特征融合模塊(channel attention feature fusion module,CAFFM)來縮小空間層和語義層特征之間的差距,保證不同層級特征的有效融合,如圖6 所示。
圖6 通道注意力特征融合模塊Fig.6 Schematic of channel attention feature fusion module
首先對不同層級的特征進行連接,完成初步融合,得到特征Y,然后對初步融合的特征分別進行全局平均池化和最大池化,得到全局上下文的特征向量Yavgpool和Ymaxpool,公式為
式中:H、W表示特征圖的高和寬;Y(i,j)表示在第(i,j)位置上的元素;
然后分別對Yavgpool和Ymaxpool進行1×1 卷積通道降維、引入非線性ReLU 函數(shù)、1×1 卷積通道升維還原維度,再利用sigmoid 函數(shù)對卷積結果進行激活,得到Favgpool和Fmaxopool2 個特征,最后與特征Y融合得到最終輸出Fout,公式為
式中:σ 表示sigmoid 激活函數(shù);fconv1、fconv2、fconv分別表示降維卷積、升維卷積、標準卷積;fRelu表示ReLU 激活函數(shù);fbn表示批量歸一化操作;?表示逐元素矩陣點乘。
通道注意力特征融合模塊引入了全局池化操作來捕捉特征的全局上下文,使用最大池化提取特征映射的局部特征信息,從而更好地推斷特征映射的通道重要性。從空間層特征和語義層特征中自適應地選擇重要信息或顯著信息,抑制冗余信息,最后將重新加權的特征進行連接得到最終輸出,大大提高了網(wǎng)絡的特征表示能力。
印度駕駛數(shù)據(jù)集(Indian driving dataset,IDD)[18]是世界上第一個開源的非結構化駕駛場景數(shù)據(jù)集,具有高度不確定性和模糊性的非結構化駕駛環(huán)境,混合了城市和農(nóng)村的場景。它由10 004 張圖像組成,大部分圖像為1 920 × 1 080 像素,少部分為1 080 × 720 像素,包含道路場景的34 個類別精細標注,原圖及標簽圖示例如圖7(a)、圖7(b)所示。針對本文的實際需求,對IDD 數(shù)據(jù)集進行篩選,共選取7 688 張精細標注用于非結構化道路語義分割的圖片,并對其類別重新劃分,分別為可行駛區(qū)域以及不可行駛區(qū)域,如圖7(c)所示,可行駛區(qū)域為綠色部分,不可行駛區(qū)域為黑色部分。按照7∶2∶1 的比例對調(diào)整后的數(shù)據(jù)集隨機分配,分別用于訓練、驗證及測試。
圖7 IDD 數(shù)據(jù)集類別重新劃分示意圖Fig.7 Schematic of category reclassification of IDD dataset
因為非結構化道路復雜多變,相關數(shù)據(jù)集較少、制作難度大,無法滿足數(shù)據(jù)多樣性的要求。使用未經(jīng)數(shù)據(jù)增強的數(shù)據(jù)集對模型訓練,無法學習到足夠豐富的特征,對種類繁多的非結構化道路識別沒有普適性。所以對數(shù)據(jù)集進行預處理操作,消除模型訓練容易產(chǎn)生的欠擬合和過擬合等問題,讓模型可以得到更好的訓練,從而具備更高的泛化能力。預處理操作包括:
1)動態(tài)模糊,用于模擬車輛顛簸導致攝像頭采集圖像模糊的情況,如圖8(b)所示;
圖8 預處理結果圖Fig.8 Preprocessing results graph
2)水平翻轉(zhuǎn),用于增強網(wǎng)絡模型方向上的不變性,如圖8(c)所示;
3)亮度調(diào)整,不同天氣條件下攝像頭采集圖像的顏色、紋理特征有所差別,對圖像做隨機亮度調(diào)整,以適應不同的環(huán)境光照條件,如圖8(d)、圖8(e)所示;
4)添加隨機噪聲,用于增強相機失真的不變性,如圖8(f)所示;
數(shù)據(jù)增強預處理結果圖如圖8 所示。
本文使用的實驗平臺為 Linux 內(nèi)核的臺式計算機,操作系統(tǒng)為 Ubuntu18.04,CPU 處理器為Inter i3-3220,運行內(nèi)存16 GB,GPU 為GeForce RTX 2080Ti,顯存11 GB。使用pytorch 深度學習框架搭建語義分割網(wǎng)絡模型,使用python 語言編程。統(tǒng)一計算設備架構版本選擇Cuda10.0,神經(jīng)網(wǎng)絡GPU 加速庫版本選擇cudnn7.6.5。
訓練過程中批尺寸大小batch_size 設置為4,語義分割網(wǎng)絡每次接收4 張圖片。全部數(shù)據(jù)集進行1 次訓練為1 個epoch,共訓練100 個epoch。使用Adam(adaptive moment estimation)優(yōu)化器更新網(wǎng)絡權重[19],初始學習率設為1e-4。Adam 表達式為
式中:mt、nt表示梯度的一階矩和二階矩;β1、β2表示衰減系數(shù),設置 β1=0.9、β2=0.999;J表示目標函數(shù)對模型參數(shù)的偏導數(shù);表示mt的修正項,表示nt的修正項;Wt表示迭代第t次的模型參數(shù);α為0.001;ε為10-8。
訓練過程中訓練集和驗證集的F1-score 和loss曲線變化如圖9 所示。模型的驗證集損失函數(shù)loss 在前10 個epoch 快速下降,隨后緩慢下降,到第80 個epoch 趨于穩(wěn)定,最終收斂于0.075,F(xiàn)1-socre穩(wěn)定在0.97。
圖9 F1-score 和loss 訓練過程曲線變化圖Fig.9 Variation curves of F1-score and loss during training
文獻[20]總結了圖像語義分割常見的損失函數(shù)。一些研究人員將Dice 相似系數(shù)損失和交叉熵(cross entropy,CE)損失組合使用,獲得了較為理想的分割效果,因此本文選用Dice 相似系數(shù)與Cross Entropy 組合的損失函數(shù)。本文模型的損失函數(shù)L如下:
式中:LDice表示Dice 損失;LCE表示CE 損失;X表示真實標簽像素集合;Y表示預測分割結果像素集合;y代表像素的真實值;代表像素的預測結果。
本文設計的分割模型采用F1-score、像素準確率(pixel accuracy,PA)、平均交并比(MIOU)、檢測速度、模型參數(shù)量(Params)5 個指標進行性能評估[21]。設Tp、Fp、Tn、Fn分別表示正確預測可行駛區(qū)域、錯誤預測可行駛區(qū)域、正確預測不可行駛區(qū)域、錯誤預測不可行駛區(qū)域的像素數(shù)量。F1-score是衡量語義分割模型精確度常用指標,通過對精準率LPrecision和召回率LRecall加權平均得出,公式如式(11)~式(13)所示:
使用F1-score 可以有效地平衡精準率和召回率兩個指標,防止某一指標很高但模型整體效果不佳的情況發(fā)生。PA 反應了模型預測圖像像素與真實標簽像素的誤差,為正確預測像素占全部像素的比例,公式如下:
MIOU 反應了預測值與真實值的重疊程度,為預測值與真實值集合的交并比均值,本文的MIOU公式如下:
為驗證本文改進模型的有效性,設計消融實驗測試各改進部分對模型的影響。構建原始版本BiSeNet 網(wǎng)絡模型(空間路徑使用標準卷積Conv,上下文路徑主干提取網(wǎng)絡為Xception 或ResNet,特征融合使用FFM 模塊)。在原BiSeNet 網(wǎng)絡模型的基礎上逐步加入MobileNetv3 特征提取網(wǎng)絡、深度可分離卷積(DSConv)、通道注意力特征融合模塊(CAFFM)構成改進后的模型,使用MIOU、F1-score、Params 3 個指標評估模型性能。在測試集上的運行結果如表2 所示。
表2 不同改進措施的模型性能Table 2 Model performance with different improvement measures
可以看到,上下文路徑采用輕量級網(wǎng)絡Mobile-Netv3 代替Xception 或ResNet,使模型的MIOU 和F1-score 提高到92.43%和94.65%,同時參數(shù)量下降至1.16×106,說明MobileNetv3 的Bneck 結構逆殘差和注意力機制使得特征得到有效判別,模型的分割效果得到提升;空間路徑重新設計的DSConv將模型參數(shù)進一步降低至1.09×106,模型更為輕量化;CAFFM 模塊融入通道注意力,利用最大池化提取局部特征、全局池化捕獲特征的全局上下文,大大提高了模型的特征表達能力,雖然參數(shù)量有些許增加,但MIOU 和F1-score 提高到95.40%和96.74%,說明了該結構的有效性。
選擇U-Net、DeepLabV3+、FCN-32S、BiSeNet_resnet、BiSeNet_xception 等經(jīng)典語義分割網(wǎng)絡模型與本文模型進行性能對比。上述模型分別基于本文篩選并重新分類的IDD 數(shù)據(jù)集進行訓練,并在測試集上使用F1-Score、PA、MIOU、模型參數(shù)量Params、檢測速度Speed 5 個評價指標進行評估,不同網(wǎng)絡模型性能對比如表3。
表3 不同網(wǎng)絡模型性能對比Table 3 Performance comparison of different network models
由表3 可知,在準確性方面,本文模型的F1-Score 為96.74%,分別比U-Net、DeepLabV3+、FCN-32S、BiSeNet-resnet、BiSeNet-xception 高 5.18%、1.89%、6.2%、5.42%、8.08%;在實時性方面,本文模型使用輕量級mobilenetv3 作為上下文路徑的特征提取網(wǎng)絡,在空間路徑使用深度可分離卷積,網(wǎng)絡實時性得到很大提升,對比BiSeNet-xception 檢測速度提升18.83%,分別是U-Net、DeepLabV3+、FCN-32S 模型檢測速度的1.41 倍、2.42 倍、1.29 倍;在參數(shù)量方面,本文模型參數(shù)量僅有1.11×106,低于其他模型。通過與改進前模型以及當前主流分割模型的性能對比綜合分析可知,本文模型兼顧實時性和準確性,具有良好的分割性能。
選用BiSeNet 及效果較好的DeepLabV3+與本文模型在不同場景下進行預測效果對比,對比結果如圖10 所示??梢钥吹剑珼eeplabV3+對道路邊界把控不理想,在噪聲、動態(tài)模糊等情況的影響下,會出現(xiàn)部分錯誤分割,如圖10(c)矩形框部分所示;BiSeNet 模型對陰影、道路轉(zhuǎn)彎部分分割效果不佳,光照、噪聲、動態(tài)模糊均會影響其分割效果,容易出現(xiàn)細節(jié)丟失的情況,如圖10(d)矩形框部分所示;而本文模型可以較為準確、完整地對非結構化道路進行分割,避免了上述問題,具有較強的魯棒性,預測效果最接近標簽圖像。
本文提出了一種基于改進BiSeNet 網(wǎng)絡的非結構化道路場景的語義分割算法,在空間路徑引入深度可分離卷積,上下文路徑使用MobileNetv3替換原BiSeNet 的主干網(wǎng)絡,并在最后的特征融合部分引入注意力機制,極大地降低了模型參數(shù)量,提升了實時性的同時保證了分割精度,獲得了較好的分割效果。本文算法的準確性對比其他網(wǎng)絡都有不同程度的提高,對比原BiSeVet 檢測速度提升18.83%,分別是U-Net、DeepLabV3+、FCN-32S模型檢測速度的1.41 倍、2.42 倍、1.29 倍。本文模型參數(shù)量僅為1.11×106,低于其他對比模型。實驗結果表明,本文改進的模型實現(xiàn)了速度與精度的平衡,具有良好的性能。