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