李守彪 武志斐
(太原理工大學,太原 030024)
主題詞:分解卷積 車道線檢測 語義分割 自動駕駛
近年來,自動駕駛逐漸成為汽車領域研發(fā)的重點,車道線檢測作為自動駕駛系統(tǒng)視覺感知的一項基礎技術,在車道偏離預警、車道保持輔助、自動變道輔助等高級輔助駕駛功能中起著關鍵作用。
傳統(tǒng)的車道線檢測方法通過人工設計的特征來提取車道線信息,這些特征主要包括車道線的顏色特征和邊緣特征。然而這類檢測只適用于光線充足且結構化程度高的簡單駕駛場景,在復雜的駕駛場景下檢測困難、魯棒性差。
基于深度學習的車道線檢測方法相較于傳統(tǒng)的車道線檢測方法獲取的車道線信息更豐富,檢測精度更高。為了從圖像中提取稀疏的車道線信息,Pan 等提出一種空間卷積網絡,通過將傳統(tǒng)的逐層卷積改為特征圖內的逐片卷積來實現(xiàn)層中行和列像素之間的消息傳遞。Hou 等在模型的特征提取階段引入自注意力蒸餾(Self Attention Distillation,SAD)模塊,通過不同層之間特征圖的相互學習來提高車道線特征提取的效果。車道線檢測屬于密集分類預測,雖然上述算法都取得了一定效果,但受限于模型本身的感知能力,在面對復雜的駕駛場景時,其精度和魯棒性仍不理想。
針對上述問題,本文提出一種基于多尺寸分解卷積的車道線檢測模型,利用多尺寸的分解卷積進行多尺度感知,以提高復雜駕駛場景下的車道線檢測精度。
分解卷積最早在GoogleNet中被提出,后來在高效殘差分解卷積網絡(Efficient Residual Factorized ConvNet,ERFNet)中被用來進行高效分割,其原理是將一個大小的標準二維卷積分解成×1 和1×的2個一維卷積。常規(guī)殘差模塊和ERFNet設計的非瓶頸一維(Non-bottleneck-1 Dimension,Non-bt-1D)模塊如圖1所示,后者是用3×1和1×3的2個一維卷積來代替常規(guī)殘差模塊中3×3 的二維卷積得到的,其中為輸入模塊特征的通道數(shù)量,為模塊中各卷積層輸出特征的通道數(shù)量,每個卷積后采用修正線性單元(Rectified Linear Unit,ReLU)激活函數(shù)進行非線性映射。
圖1 常規(guī)殘差模塊與Non-bt-1D模塊
分解卷積具有降低參數(shù)量和計算量的特點。不考慮卷積偏置時,×的標準二維卷積參數(shù)量為:
式中,、分別為輸入、輸出特征圖的通道數(shù)量。
標準二維卷積計算量參考浮點運算數(shù)(Floating Point Operations,F(xiàn)LOPs)計算公式:
式中,、分別為輸出特征圖的高和寬。
卷積的參數(shù)量和計算量與卷積核尺寸呈2次方關系。將一個×的二維卷積替換成×1和1×的分解卷積后,其參數(shù)量和計算量與卷積核尺寸呈線性關系:
式中,為分解卷積參數(shù)量;為分解卷積的計算量。
綜合式(1)~式(4)可知,卷積核的尺寸越大,分解卷積替代普通卷積的參數(shù)量和計算量降低效果越明顯。
車道線獨特的細長特征使得其在圖像中的跨度范圍大而且容易被遮擋,這就要求檢測模型有足夠大的感知范圍才能更好地提取車道線特征。增大感知范圍可以通過增大卷積核尺寸實現(xiàn),因此本文設計了如圖2a所示的多尺寸卷積殘差模塊,結構上采用殘差連接,采用3×3、5×5、9×9 的小、中、大3 個尺寸卷積核來提取不同尺度的車道線特征。但是大卷積核的參數(shù)量和計算量大,導致模型推理時間長,不能滿足自動駕駛實時性的需求,因此基于分解卷積的原理,對3 個卷積核用相同尺寸的分解卷積進行替換,設計了如圖2b 所示的多尺寸分解卷積殘差模塊,中尺寸和大尺寸卷積核配合擴張卷積進一步擴大感知的范圍,大尺寸卷積能更充分地發(fā)揮分解卷積降低參數(shù)量和計算量的優(yōu)勢。
圖2 多尺寸卷積殘差模塊與多尺寸分解卷積殘差模塊
在固定模塊的輸入和輸出特征寬、高分別為100、36,通道數(shù)量為128個時,由式(1)~式(4)計算得到分解卷積替換標準卷積可以使整個模塊中卷積的參數(shù)量和計算量分別降低70.43%和70.45%。
本文將車道線檢測視為語義分割問題,將背景和不同的車道線看作不同的類別,在像素級別上進行分類。如圖3 所示,模型整體上采用編碼器和解碼器結構,同時加入多尺寸分解卷積和車道線預測分支。
圖3 模型整體結構
采用ResNet34 網絡作為編碼器提取車道線的局部特征。為了避免編碼器輸出的特征圖尺寸過小而導致車道線空間信息損失嚴重,更改原始ResNet34 網絡后兩層的輸出,將其輸出特征圖尺寸固定到輸入圖像尺寸的1/8 大小。輸入圖像經過改造的ResNet34 網絡產生下采樣的特征圖,通道數(shù)量由3個變?yōu)?12個,然后通過1×1 卷積將通道數(shù)壓縮到128 個。在提取到圖像的局部特征后,利用4個多尺寸分解卷積殘差模塊進行多尺度的感知。在解碼器前加入車道線預測分支,結構如圖4a 所示,先通過全局平均池化將二維特征圖壓縮成一維向量,經過2 個全連接層進一步壓縮后利用Sigmoid激活函數(shù)輸出預測車道線的置信度,預測時,通過設定的置信度閾值來判斷車道線是否存在,預測置信度低于閾值時判定車道線不存在,高于閾值時判定車道線存在。解碼器負責將特征圖上采樣到與輸入圖像相同的尺寸并分類輸出,由3個上采樣模塊組成。上采樣模塊的結構如圖4b所示,將輸入的特征圖利用1×1卷積進行通道壓縮,經過雙線性插值將特征圖尺寸擴大2倍后送入Non-bt-1D模塊。
圖4 車道線預測分支與上采樣層結構
模型有解碼器和車道線預測分支2個輸出,因此本文通過不同權重將分割損失、交并比(Intersection Over Union,IOU)損失和車道線預測損失3 個不同的損失聯(lián)系起來,采用的多權重損失函數(shù)為:
試驗所用處理器為IntelXeonGold 5218 CPU@2.30 GHz,運行內存為64GB,顯卡為NVIDIA RTX3090,顯存大小為24 GB。
試驗采用的CULane數(shù)據(jù)集是一個用于車道線檢測的大規(guī)模數(shù)據(jù)集,共有133 235張圖片,其中訓練集含有88 880張圖片,驗證集含有9 675張圖片,測試集含有34 680張圖片。數(shù)據(jù)集有正常場景和8個復雜場景,分別是擁擠、夜晚、無線、陰影、箭頭、眩光、彎道和路口,復雜場景圖片占數(shù)據(jù)集圖片數(shù)量的72.3%,每張圖片的分辨率為1 640×590。
將每條車道線視為一條30 像素寬的線,通過計算真實車道線和預測車道線之間的IOU 來判斷模型是否預測正確。IOU 大于設定的閾值作為真正例(True Positive,TP),否則作為假正例(False Positive,F(xiàn)P),因漏檢而未被檢測出的車道線作為假負例(False Negative,F(xiàn)N),本文閾值設為0.5。使用調和均值作為最終的評價指標,路口場景因不含車道線標注,采用FP 數(shù)量作為指標,越小,表明模型檢測效果越好。精確率、召回率和的計算公式分別為:
式中,、分別為真正例和假負例數(shù)量。
模型采用隨機梯度下降(Stochastic Gradient Descent,SGD)作為優(yōu)化器,初始學習率設為0.04,動量加速參數(shù)設為0.9,權重衰減參數(shù)設為1×10,采用PolyLR學習率下降策略:
式中,、分別為當前學習率和初始學習率;、分別為當前迭代次數(shù)和最大迭代次數(shù);為控制學習率曲線形狀的系數(shù),設=0.9。
將圖像裁剪掉上部240行像素后,縮放到800×288,在整個訓練集上訓練20個循環(huán)。根據(jù)實際訓練過程中各損失比例關系,通過參數(shù)組合并對比訓練結果,確定權重系數(shù)、和分別為1.0、0.1和0.1。
模型每次循環(huán)訓練后在驗證集上進行驗證,結果如圖5 所示,模型在第1 個循環(huán)就達到了較高的指標,說明模型泛化能力較強,可以在較短時間內收斂。隨著循環(huán)次數(shù)增加,模型精度逐漸提高并最終趨于穩(wěn)定狀態(tài),在第18個循環(huán),模型的指標達到最大值78.28%。
圖5 驗證集F1曲線
3.4.1 模型有效性
為了驗證本文模型的有效性,在CULane 測試集的9 個場景中進行測試并分別與空間卷積神經網絡(Spatial Convolutional Neural Network,SCNN)模型和以ResNet34 網絡為編碼器的SAD 模型進行對比,測試時車道線存在置信度閾值設為0.5,結果如表1所示。
表1 不同模型對比
由表1可以看出:本文模型在所有場景中都取得了更好的測試結果,平均指標達到75.3%,相較于SCNN和SAD 模型分別提高3.7 百分點和4.6 百分點;本文模型在正常場景下的提升相對較小,但在復雜場景特別是陰影、眩光和彎道場景下提升較大,表明本文模型在應對復雜駕駛場景時具有更好的車道線檢測能力。同時,在路口場景中也取得了更少的FP 數(shù)量,表明本文模型能更好地判斷車道線是否存在,魯棒性更好。
3.4.2 多尺寸分解卷積有效性
為了驗證多尺寸分解卷積的有效性,首先可視化多尺寸分解卷積前、后的特征圖,如圖6所示,可視化特征圖中灰度數(shù)值越接近1,表示模型的感知能力越強,可以看出,從編碼器得到的車道線特征都是局部且零散的,經過多尺寸分解卷積后,車道線特征更加完整,對車道線部分的感知能力更強。
圖6 可視化特征圖
對比含有和不含多尺寸分解卷積殘差模塊的模型性能,分別在CULane數(shù)據(jù)集上進行訓練和測試,并測試模型運行時間,結果如表2所示。
表2 有、無多尺寸分解卷積模型性能對比
由表2可以看出,加入多尺寸分解卷積模塊后,模型在所有場景的檢測精度均不同程度提高,平均指標提高1.9百分點,在陰影場景下提高最顯著,為7.5百分點。在路口場景,加入多尺寸分解卷積后,錯誤預測的車道線數(shù)量減少了294個。對比模型運行時間可以看出,雖然加入多尺寸分解卷積后模型會增加一定的運行時間,但其幀率仍然能達到71.63幀/s,可以滿足實時檢測的要求。
將2種模型在8個場景下進行預測可視化并與真實標簽進行對比,結果如圖7所示。在大多數(shù)復雜場景下,未加入多尺寸分解卷積的模型在預測時會因模型感知范圍不足而出現(xiàn)預測車道線不連續(xù)的現(xiàn)象,特別是圖像邊緣的車道線,而在加入多尺寸分解卷積后,模型預測的車道線會更加連續(xù)平滑,更接近真實標簽的車道線。在正常場景下,未加入多尺寸分解卷積的模型將原本3條車道線的圖像預測成4 條,而加入多尺寸分解卷積的模型預測正確。由上述對比測試結果可以看出,多尺寸分解卷積可以顯著提高復雜場景下車道線檢測的精度和魯棒性。
圖7 有、無多尺寸分解卷積模型預測對比
在路口場景中,雖然加入多尺寸分解卷積會在一定程度上降低錯誤檢測的車道線數(shù)量,但誤檢數(shù)量仍較多,如圖8 所示,可以發(fā)現(xiàn)模型將路口場景中的道路邊沿錯誤檢測成車道線,主要原因在于道路邊沿在其他場景中被標記為車道線,而在路口場景中卻未標注,存在標簽設置不統(tǒng)一的情況,同時路口場景在數(shù)據(jù)集中占比較少,導致數(shù)據(jù)不均衡,因此在訓練時模型會傾向于將道路邊沿判定為車道線,造成路口場景誤檢較多。
圖8 路口場景車道線檢測
為測試模型在實際道路上的有效性,如圖9 所示,采用裝有車載攝像機的智能車在校園內采集實際道路圖像,并利用本文模型進行車道線檢測。
圖9 智能車及攝像頭安裝
在正常道路、陰影道路、眩光道路下的檢測結果如圖10~圖12所示,可以看出本文模型可以有效地進行實際道路的車道線檢測,能夠應對多種復雜場景,具有良好的實際應用效果。
圖10 正常道路車道線檢測
圖11 陰影道路車道線檢測
圖12 眩光道路車道線檢測
針對復雜場景下車道線檢測精度不佳的問題,本文提出一種基于多尺寸分解卷積的車道線檢測模型,通過設計的多尺寸分解卷積殘差模塊提取多尺度的車道線特征,提高了車道線檢測的精度。在CULane 數(shù)據(jù)集上訓練和測試的結果表明,本文模型在應對夜晚、眩光、陰影等復雜場景時表現(xiàn)出了優(yōu)秀的檢測性能,對比SCNN、SAD 車道線檢測模型,平均指標分別提高3.7百分點、4.6百分點,多尺寸分解卷積可以有效提取車道線特征,使模型的檢測效果更好,魯棒性更高。在實際道路測試中,模型可以準確地檢測車道線,具有良好的推廣應用效果。