王朝京 , 劉 彪 , 劉國(guó)豪 , 邊浩毅
(1.北京交通大學(xué) 電氣工程學(xué)院,北京 100044;2.中國(guó)能源建設(shè)集團(tuán)山西省電力勘測(cè)設(shè)計(jì)院有限公司,太原 030000;3.浙江機(jī)電職業(yè)技術(shù)學(xué)院 智慧交通學(xué)院,杭州 310053)
隨著智能化技術(shù)在汽車(chē)行業(yè)的不斷發(fā)展,自動(dòng)駕駛和輔助駕駛系統(tǒng)已經(jīng)成為汽車(chē)工程領(lǐng)域的前沿研究方向.自動(dòng)駕駛技術(shù)代表未來(lái)駕駛的發(fā)展趨勢(shì),可以提高行車(chē)安全性、舒適性和能源效率.車(chē)道線檢測(cè)任務(wù)在自動(dòng)駕駛感知層中扮演著關(guān)鍵的角色,它不僅是實(shí)現(xiàn)車(chē)道偏離預(yù)警和自動(dòng)巡航等自動(dòng)駕駛功能的基礎(chǔ),還直接關(guān)系到車(chē)輛在復(fù)雜交通環(huán)境中的安全性和穩(wěn)定性.
傳統(tǒng)車(chē)道線檢測(cè)算法主要有基于模型的檢測(cè)算法和基于特征的檢測(cè)算法.基于模型的檢測(cè)算法需要人工根據(jù)先驗(yàn)知識(shí)對(duì)車(chē)道線進(jìn)行建模.Assidig等[1]利用多條車(chē)道線之間的約束關(guān)系提出一種雙曲線模型,該算法對(duì)于彎道具有較好的檢測(cè)能力,但對(duì)于遮擋和光線變化較為敏感,抗干擾能力差.隋靚等[2]利用車(chē)道線連續(xù)的特點(diǎn),基于二次模型提出一種適用于高速路場(chǎng)景的車(chē)道線檢測(cè)算法,算法通過(guò)高斯拉普拉斯算子對(duì)圖像中的感興趣區(qū)域進(jìn)行濾波,然后通過(guò)霍夫變換進(jìn)行車(chē)道線提取,算法會(huì)對(duì)感興趣區(qū)域進(jìn)行動(dòng)態(tài)調(diào)整,降低了搜索難度,提高了檢測(cè)精度.基于特征的車(chē)道線檢測(cè)算法,通常利用車(chē)道線與背景的強(qiáng)反差進(jìn)行檢測(cè),常用的特征有顏色、梯度和梯度方向等.Son 等[3]提出了一種三段式的車(chē)道線檢測(cè)算法,該算法首先使用自適應(yīng)閾值提取圖像中的強(qiáng)車(chē)道特征,然后利用車(chē)道邊緣角度和車(chē)道歷史曲率對(duì)提取到的特征進(jìn)行濾波,最后使用卡爾曼濾波進(jìn)行車(chē)道跟蹤,進(jìn)而減小誤檢概率.Yoo 等[4]提出一種基于邊緣梯度的車(chē)道線檢測(cè)算法,該算法通過(guò)對(duì)圖像分析產(chǎn)生最優(yōu)權(quán)重將彩色圖片轉(zhuǎn)化為灰度圖,然后使用邊緣梯度信息提取車(chē)道線,但這種方法對(duì)于光照較為敏感,因此不適用于光線條件復(fù)雜的雨天等情況.總體來(lái)說(shuō),傳統(tǒng)車(chē)道線檢測(cè)算法往往需要針對(duì)不同場(chǎng)景進(jìn)行人工調(diào)參,魯棒性差,難以勝任復(fù)雜場(chǎng)景下的車(chē)道線檢測(cè)任務(wù).
隨著計(jì)算機(jī)硬件算力的不斷提升,深度學(xué)習(xí)快速發(fā)展.與傳統(tǒng)方法相比,深度學(xué)習(xí)能夠更好地實(shí)現(xiàn)車(chē)道和車(chē)輛檢測(cè)[5].Neven 等[6]設(shè)計(jì)了2 個(gè)神經(jīng)網(wǎng)絡(luò)用于車(chē)道線檢測(cè),其中一個(gè)用于車(chē)道線實(shí)例分割,另一個(gè)用于產(chǎn)生坐標(biāo)變換矩陣,該矩陣將車(chē)道線映射到鳥(niǎo)瞰視角進(jìn)行擬合,2 個(gè)網(wǎng)絡(luò)的配合提高了檢測(cè)結(jié)果的精度.Qin 等[7]對(duì)圖片進(jìn)行了網(wǎng)格劃分,將車(chē)道線檢測(cè)問(wèn)題轉(zhuǎn)化為網(wǎng)格中存在車(chē)道線概率的問(wèn)題,簡(jiǎn)化了網(wǎng)絡(luò)任務(wù),提高了檢測(cè)速度,但是該方法在檢測(cè)準(zhǔn)確率方面表現(xiàn)并不突出.Garnett 等[8]建立了三維數(shù)據(jù)集,并提出了一種可從圖像中直接還原出三維車(chē)道線的卷積網(wǎng)絡(luò),但是三維數(shù)據(jù)集的制作難度較高,無(wú)法覆蓋大量真實(shí)場(chǎng)景.
在車(chē)道線檢測(cè)任務(wù)中,由于車(chē)道線具有形狀細(xì)長(zhǎng)、易老化破損和被遮擋等特點(diǎn),傳統(tǒng)的卷積神經(jīng)網(wǎng)絡(luò)的檢測(cè)結(jié)果并不是十分理想.人類(lèi)可以利用車(chē)道線細(xì)長(zhǎng)的結(jié)構(gòu)特點(diǎn),根據(jù)車(chē)道線未被遮擋的部分推理出整條車(chē)道線的位置.為使神經(jīng)網(wǎng)絡(luò)也具備這種基于上下文的推理能力,Pan 等[9]將空間卷積神經(jīng)網(wǎng)絡(luò)(Spatial Convolutional Neural Networks,SCNN)應(yīng)用到車(chē)道線檢測(cè)領(lǐng)域.SCNN 能夠有效地在特征圖的不同行列之間進(jìn)行信息傳遞,使上下文信息充分融合,提高網(wǎng)絡(luò)對(duì)車(chē)道線的推理能力.但是空間卷積模塊的推理過(guò)程類(lèi)似于循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network,RNN),迭代計(jì)算量大,影響神經(jīng)網(wǎng)絡(luò)的實(shí)時(shí)性.
綜上所述,針對(duì)空間卷積模塊計(jì)算量大、實(shí)時(shí)性不佳的缺點(diǎn),本文提出一種基于交叉卷積的特征關(guān)聯(lián)機(jī)制,利用2 次交叉卷積操作,使單個(gè)特征點(diǎn)與全局特征建立關(guān)聯(lián),實(shí)現(xiàn)特征圖中信息的空間傳遞,增強(qiáng)網(wǎng)絡(luò)的推理能力.在特征關(guān)聯(lián)模塊的基礎(chǔ)上,設(shè)計(jì)搭建了編碼器解碼器結(jié)構(gòu)的交叉卷積網(wǎng)絡(luò)(Cross Convolution Network,C-Net)并應(yīng)用于車(chē)道線檢測(cè).最后,將本文提出的網(wǎng)絡(luò)與其他車(chē)道線檢測(cè)網(wǎng)絡(luò)在Tusimple 數(shù)據(jù)集上進(jìn)行對(duì)比實(shí)驗(yàn).
在對(duì)圖像進(jìn)行特征提取的過(guò)程中,隨著網(wǎng)絡(luò)深度的增加,特征圖中保留的邊緣信息越來(lái)越少,影響網(wǎng)絡(luò)的分割效果.U-Net[10]網(wǎng)絡(luò)提出的U 形網(wǎng)絡(luò)結(jié)構(gòu)很好地解決了上述問(wèn)題,U-Net 在上采樣過(guò)程中通過(guò)融合淺層特征圖的方式,對(duì)深層特征圖中的邊緣信息進(jìn)行補(bǔ)充,提高了網(wǎng)絡(luò)的實(shí)例分割效果.因此,C-Net 在上采樣過(guò)程中也使用跨越連接的方式將編碼器中淺層的特征圖傳入解碼器,然后通過(guò)拼接的方法進(jìn)行特征融合,最后對(duì)融合后的特征圖進(jìn)行上采樣將其恢復(fù)到輸入圖片的分辨率.
C-Net 的結(jié)構(gòu)如圖1 所示,由編碼器、特征關(guān)聯(lián)模塊和解碼器3 部分組成.編碼器是網(wǎng)絡(luò)主要的特征提取器,可以對(duì)圖像的低級(jí)局域特征值進(jìn)行歸類(lèi)與分析,從而獲得高階語(yǔ)義信息.C-Net 的編碼器采用結(jié)構(gòu)簡(jiǎn)單且輕量的VGG-16[11].
圖1 C-Net 網(wǎng)絡(luò)結(jié)構(gòu)Fig.1 Structure of C-Net
解碼器的主要任務(wù)是對(duì)編碼器下采樣得到的特征圖上采樣,使其達(dá)到檢測(cè)所需的分辨率. C-Net 的解碼器由5 個(gè)雙通道上采樣模塊串聯(lián)組成.雙通道上采樣模塊結(jié)構(gòu)如圖2 所示,主分支通過(guò)卷積核為3×3、步長(zhǎng)為2 的轉(zhuǎn)置卷積對(duì)特征圖進(jìn)行2 倍上采樣,然后由卷積核為3×1 和1×3 的卷積對(duì)特征圖進(jìn)行解析.次分支使用卷積核為1×1 的卷積調(diào)整通道數(shù),然后使用上采樣將特征圖放大,與另一分支結(jié)果相加得到雙通道上采樣模塊輸出結(jié)果.
圖2 雙通道上采樣模塊Fig.2 Structure of dual-channel up-sampled module
一維卷積的本質(zhì)是對(duì)特征圖中沿卷積方向的每個(gè)特征值進(jìn)行加權(quán)求和,因此每個(gè)一維卷積可以使特征圖中的信息沿該卷積方向進(jìn)行流動(dòng).交叉卷積的結(jié)構(gòu)如圖3 所示,由3 個(gè)不同方向的一維卷積構(gòu)成,特征圖中的信息沿紅色箭頭方向進(jìn)行傳遞,從而每個(gè)特征點(diǎn)都能夠收集到不同方向的特征信息.
圖3 交叉卷積的結(jié)構(gòu)和工作原理Fig.3 Structure and working principle of cross convolution
假設(shè)輸入交叉卷積的特征圖為C×H×W,交叉卷積式為
式中:C、H、W分別表示輸入特征圖的通道數(shù)、高度、寬度;On-1表示輸入特征圖;On表示輸出特征圖;On-1(x,y)表示輸入特征圖(x,y)處的特征值;KC、KH、KW分別表示通道為C、H、W的一維卷積核;?表示卷積操作;OnC、OnH和OnW分別表示輸入特征圖C、H、W三個(gè)維度的一維卷積結(jié)果.
由式(1)和圖3 可知,在單次交叉卷積輸出的特征圖中每個(gè)特征點(diǎn)都融合了3 個(gè)方向的特征信息,但僅融合3 個(gè)方向的特征信息無(wú)法將單個(gè)特征點(diǎn)與全局特征建立起關(guān)聯(lián).為解決這一問(wèn)題,本文提出基于交叉卷積的特征關(guān)聯(lián)機(jī)制,即將2 個(gè)交叉卷積串聯(lián)組成特征關(guān)聯(lián)模塊.第一次交叉卷積使每個(gè)特征點(diǎn)融合深度、高度和寬度方向的特征信息.第二次交叉卷積將已經(jīng)包含了3 個(gè)方向特征信息的特征進(jìn)行再次融合,將信息融合的范圍擴(kuò)大到特征圖全局.全局的特征融合可以使每個(gè)特征點(diǎn)接收到上下文信息,有利于網(wǎng)絡(luò)對(duì)圖像中空間信息的理解,提高網(wǎng)絡(luò)對(duì)于車(chē)道線的推理能力.
實(shí)驗(yàn)在搭載有單張NVIDIA GeForce RTX 3090 顯卡的主機(jī)上進(jìn)行,使用pytorch1.7.1 深度學(xué)習(xí)框架.設(shè)置輸入分辨率為512×256、優(yōu)化器為SGD、總迭代次數(shù)為150 輪、迭代批量大小為8、最大學(xué)習(xí)率為0.02.
在數(shù)據(jù)集方面,采用Tusimple 數(shù)據(jù)集[12]對(duì)網(wǎng)絡(luò)進(jìn)行訓(xùn)練.該數(shù)據(jù)集由Tusimple 自動(dòng)駕駛公司發(fā)布,包含訓(xùn)練圖片3 626 張,測(cè)試圖片2 782 張,被廣泛應(yīng)用于訓(xùn)練和驗(yàn)證車(chē)道線檢測(cè)算法.
本文采用Tusimple 官方提供的評(píng)估方法進(jìn)行評(píng)測(cè).該方法首先將檢測(cè)到的車(chē)道線實(shí)例轉(zhuǎn)化為沿y軸等間隔分布的點(diǎn)集,然后與標(biāo)簽中的點(diǎn)集作差,如果差值小于規(guī)定的閾值則認(rèn)為檢測(cè)正確,否則認(rèn)為檢測(cè)錯(cuò)誤.檢測(cè)準(zhǔn)確率ACC 的計(jì)算式為
式中:Ptrue是表示檢測(cè)正確的點(diǎn)數(shù);a表示標(biāo)簽中全部點(diǎn)的數(shù)量.
如果同一條車(chē)道線有超過(guò)一定數(shù)量的點(diǎn)被判為檢測(cè)錯(cuò)誤,則認(rèn)為沒(méi)有檢測(cè)到該條車(chē)道線;而當(dāng)檢測(cè)到的車(chē)道線數(shù)量超過(guò)真實(shí)車(chē)道線數(shù)量時(shí),與標(biāo)簽最不匹配的車(chē)道線被認(rèn)為是誤檢車(chē)道線.為了對(duì)誤檢與漏檢進(jìn)行評(píng)估,Tusimple 引入FP、FN 指標(biāo),分別表示誤檢率和漏檢率,計(jì)算式為
式中:Fpre表示誤檢車(chē)道線數(shù)量;Npre表示檢測(cè)到的車(chē)道線總數(shù)量;Lpre表示漏檢車(chē)道線數(shù)量;Ngt表示真實(shí)車(chē)道線總數(shù)量.
2.2.1 交叉卷積數(shù)量對(duì)比實(shí)驗(yàn)
為了對(duì)2 個(gè)交叉卷積組成的特征關(guān)聯(lián)模塊的有效性進(jìn)行驗(yàn)證,分析交叉卷積數(shù)量對(duì)網(wǎng)絡(luò)中信息融合的影響,分別采用不同數(shù)量的交叉卷積組成特征關(guān)聯(lián)模塊進(jìn)行對(duì)比實(shí)驗(yàn).對(duì)比實(shí)驗(yàn)使用Tusimple 數(shù)據(jù)集的評(píng)價(jià)指標(biāo),結(jié)果如表1 所示.
表1 不同數(shù)量交叉卷積對(duì)比結(jié)果Tab.1 Comparison results of cross convolution with different numbers%
由表1 可知,相較于無(wú)交叉卷積的網(wǎng)絡(luò),增加交叉卷積的網(wǎng)絡(luò)在誤檢率、漏檢率和準(zhǔn)確率上均有改進(jìn).通過(guò)單次交叉卷積,特征點(diǎn)在深度、高度和寬度方向上完成信息融合,檢測(cè)準(zhǔn)確率比無(wú)交叉卷積時(shí)增加1.28%,誤檢率和漏檢率也分別降低3.35%、4.17%.第2 次交叉卷積在單次交叉卷積的基礎(chǔ)上使得特征點(diǎn)與特征圖全局完成融合,準(zhǔn)確率較單次交叉卷積結(jié)果增加0.25%,誤檢率、漏檢率分別降低0.81%、0.58%.此時(shí),特征關(guān)聯(lián)模塊中的單個(gè)特征點(diǎn)已完成與全局特征的信息融合,當(dāng)繼續(xù)增加交叉卷積時(shí),網(wǎng)絡(luò)的準(zhǔn)確率不再有顯著增長(zhǎng).采用4 個(gè)交叉卷積和6 個(gè)交叉卷積得到的準(zhǔn)確率,與采用2 個(gè)交叉卷積得到的準(zhǔn)確率相比,變化值均在0.04%左右,能夠證明采用2 個(gè)交叉卷積作為特征關(guān)聯(lián)模塊的有效性和合理性.
2.2.2 車(chē)道線檢測(cè)算法對(duì)比實(shí)驗(yàn)
為了對(duì)C-Net 的有效性進(jìn)行驗(yàn)證,將評(píng)測(cè)結(jié)果與幾種經(jīng)典的車(chē)道線檢測(cè)算法進(jìn)行對(duì)比,對(duì)比結(jié)果如表2 所示.
表2 不同算法的測(cè)試結(jié)果Tab.2 Test results of different algorithms %
由表2 可知,C-Net 在數(shù)據(jù)集上獲得了96.52%的準(zhǔn)確率、5.88%的誤檢率和2.96%的漏檢率.與SCNN 相比,準(zhǔn)確率低0.01%,漏檢率高1.16%,但誤檢率低0.29%.
使用GPU 預(yù)熱1 000 次后,分別對(duì)C-Net的特征關(guān)聯(lián)模塊與SCNN 的空間卷積模塊進(jìn)行計(jì)算,輸入均采用VGG-16 主干網(wǎng)絡(luò)輸出的特征層.計(jì)算可知,特征關(guān)聯(lián)模塊用時(shí)1.23 ms、權(quán)重為2.01 M;空間卷積模塊用時(shí)13.79 ms、權(quán)重為36 M.
綜合來(lái)看,所提車(chē)道線檢測(cè)算法具有較低的誤檢、漏檢率和較高的準(zhǔn)確率,且使用的網(wǎng)絡(luò)參數(shù)更少,在網(wǎng)絡(luò)推理過(guò)程中速度更快.證明C-Net 在車(chē)道線檢測(cè)方面具有良好的檢測(cè)能力和更高的計(jì)算效率.
2.2.3 特征關(guān)聯(lián)模塊消融實(shí)驗(yàn)
為了進(jìn)一步驗(yàn)證特征關(guān)聯(lián)模塊的有效性和泛化能力,分別采用不同的編碼器結(jié)構(gòu)進(jìn)行消融實(shí)驗(yàn).實(shí)驗(yàn)結(jié)果如表3 所示.
由表3 可知,在編碼器結(jié)構(gòu)不同的情況下,增加特征關(guān)聯(lián)模塊的網(wǎng)絡(luò)在誤檢率、漏檢率和準(zhǔn)確率方面均有改進(jìn).以采用VGG-16 編碼器結(jié)構(gòu)為例,網(wǎng)絡(luò)增加特征關(guān)聯(lián)模塊后,誤檢率、漏檢率分別降低4.16%、4.75%,準(zhǔn)確率提高1.53%.因此,本文提出的特征關(guān)聯(lián)模塊在不同的網(wǎng)絡(luò)結(jié)構(gòu)下,都有助于提高網(wǎng)絡(luò)的推理能力,使網(wǎng)絡(luò)具備良好的泛化能力.
為了更直觀地展現(xiàn)特征關(guān)聯(lián)模塊對(duì)檢測(cè)結(jié)果的影響,圖4 展示了采用特征關(guān)聯(lián)模塊和未采用特征關(guān)聯(lián)模塊的車(chē)道線檢測(cè)結(jié)果.
圖4 車(chē)道線檢測(cè)可視化效果Fig.4 Visualization of lane detection
圖4 中,從左至右分別為場(chǎng)景1~場(chǎng)景4,依次表示正常、車(chē)道線被遮擋、車(chē)輛密集和存在陰影的道路場(chǎng)景.在場(chǎng)景1 中,道路環(huán)境良好,采用特征關(guān)聯(lián)模塊和未采用特征關(guān)聯(lián)模塊均具有較好的檢測(cè)結(jié)果.在場(chǎng)景2 和場(chǎng)景3 中,由于車(chē)輛物體對(duì)車(chē)道線存在遮擋,在未采用特征關(guān)聯(lián)模塊時(shí),會(huì)造成識(shí)別出的車(chē)道線出現(xiàn)缺失和不連續(xù)等情況,而采用特征關(guān)聯(lián)模塊的網(wǎng)絡(luò)能夠根據(jù)車(chē)道線的部分特征對(duì)被遮擋部分進(jìn)行推理,識(shí)別出的車(chē)道線更加完整.在場(chǎng)景4 中,由于存在陰影,路面產(chǎn)生較大的明暗變化,導(dǎo)致同一條車(chē)道線在不同位置存在較大的差異.此時(shí)未采用特征關(guān)聯(lián)模塊的檢測(cè)結(jié)果中存在大量車(chē)道線的誤判,而采用特征關(guān)聯(lián)模塊后的檢測(cè)結(jié)果中消除了誤判的車(chē)道線,并且得到的車(chē)道線檢測(cè)結(jié)果更加準(zhǔn)確.綜上,本文所提出的特征關(guān)聯(lián)機(jī)制具有較強(qiáng)的抗干擾能力.
1)針對(duì)車(chē)道線細(xì)長(zhǎng)且易被遮擋等特點(diǎn),提出基于2 次交叉卷積的特征關(guān)聯(lián)模塊,通過(guò)多維度的卷積將不同行列之間的信息進(jìn)行傳遞,提高了網(wǎng)絡(luò)對(duì)于車(chē)道線的推理能力.
2)結(jié)合特征關(guān)聯(lián)模塊,設(shè)計(jì)基于編碼器解碼器結(jié)構(gòu)的交叉卷積網(wǎng)絡(luò)C-Net,在具有較少參數(shù)、較快推理速度的同時(shí)具備良好的車(chē)道線檢測(cè)能力.
3)采用不同編碼器結(jié)構(gòu)針對(duì)特征關(guān)聯(lián)模塊進(jìn)行消融實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果證明在不同的網(wǎng)絡(luò)結(jié)構(gòu)下,特征關(guān)聯(lián)模塊的加入都能改進(jìn)檢測(cè)結(jié)果.