「車道線檢測(cè)」一種基于神經(jīng)網(wǎng)絡(luò)+結(jié)構(gòu)約束的車道線檢測(cè)方法
來(lái)源:公眾號(hào)|3D視覺(jué)工坊(系投稿)
作者:小魔方
「3D視覺(jué)工坊」技術(shù)交流群已經(jīng)成立,目前大約有12000人,方向主要涉及3D視覺(jué)、CV&深度學(xué)習(xí)、SLAM、三維重建、點(diǎn)云后處理、自動(dòng)駕駛、CV入門(mén)、三維測(cè)量、VR/AR、3D人臉識(shí)別、醫(yī)療影像、缺陷檢測(cè)、行人重識(shí)別、目標(biāo)跟蹤、視覺(jué)產(chǎn)品落地、視覺(jué)競(jìng)賽、車牌識(shí)別、硬件選型、學(xué)術(shù)交流、求職交流、ORB-SLAM系列源碼交流、深度估計(jì)等。工坊致力于干貨輸出,不做搬運(yùn)工,為計(jì)算機(jī)視覺(jué)領(lǐng)域貢獻(xiàn)自己的力量!歡迎大家一起交流成長(zhǎng)~
添加小助手微信:CV_LAB,備注學(xué)校/公司+姓名+研究方向即可加入工坊一起學(xué)習(xí)進(jìn)步。
標(biāo)題:Ultra Fast Structure-aware Deep Lane Detection(ECCV 2020)
代碼地址:在公眾號(hào)「3D視覺(jué)工坊」,后臺(tái)回復(fù)「車道線檢測(cè)」,即可直接下載
亮點(diǎn)
1.提出了一個(gè)基于卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行車道線檢測(cè)的新方法,區(qū)別于逐像素分割方法,該方法預(yù)測(cè)輸入圖像中每行的車道線位置。
2.該方法計(jì)算量小,能很好地滿足自動(dòng)駕駛場(chǎng)景對(duì)算法的速度要求;使用全局感受野,也能很好地處理復(fù)雜場(chǎng)景。
3.在訓(xùn)練網(wǎng)絡(luò)時(shí)根據(jù)車道線的物理結(jié)構(gòu),加入了結(jié)構(gòu)損失(structual loss),很好地利用了車道線的先驗(yàn)信息。
內(nèi)容
在輸入圖像中每隔若干像素畫(huà)水平線,將輸入圖像劃分成若干個(gè)“細(xì)長(zhǎng)條”,每個(gè)“細(xì)長(zhǎng)條”稱為1個(gè)row anchor。再將每個(gè)row anchor在垂直方向切割,形成若干個(gè)“塊”,每個(gè)“塊”稱為1個(gè)cell。如下圖所示:

此外,還需要在每個(gè)row anchor最后面“人為地”增加1個(gè)cell,這個(gè)cell表示該row anchor中沒(méi)有車道線。希望能設(shè)計(jì)一個(gè)網(wǎng)絡(luò),達(dá)到如下功能:網(wǎng)絡(luò)能夠輸出每個(gè)row anchor中含有車道線的cell的位置,當(dāng)某個(gè)row anchor中沒(méi)有車道線時(shí),網(wǎng)絡(luò)輸出該row anchor中“人為增加”的cell的位置。




為了利用車道線物理結(jié)構(gòu)的特性作為網(wǎng)絡(luò)輸出結(jié)果的約束,在上述方法的基礎(chǔ)上,作者又構(gòu)造了2個(gè)損失函數(shù)。
因?yàn)檐嚨谰€是光滑的,所以相鄰row anchor中車道線所在的cell的位置不會(huì)有突變。這意味著,相鄰兩個(gè)row anchor的cell類別概率分布應(yīng)該是相似的,因此定義相似性損失函數(shù)如下:
?

使用相似性損失函數(shù)約束網(wǎng)絡(luò)的輸出結(jié)果,使得相鄰兩個(gè)row anchor的cell類別概率分布不會(huì)有突變。
此外,車道線一般是直線;由于視角的原因,彎曲的車道線在圖像上大部分也近似直線。最小化相鄰row anchor預(yù)測(cè)出車道線位置的二階差分,能夠約束網(wǎng)絡(luò)預(yù)測(cè)結(jié)果,使得車道線不要“太彎”。
在車道線存在的情況下,使用如下公式能得到車道線所在的cell的位置

作者在實(shí)現(xiàn)過(guò)程中,使用了一些比較工程化的方法,下面加以闡述。首先,作者又增加了1個(gè)輔助的分割分支,有助于提取特征。整體算法流程如下圖所示:

分割分支只在訓(xùn)練時(shí)使用,推理時(shí)不使用。分割分支使用交叉熵?fù)p失函數(shù)。最終的損失函數(shù)是分類損失函數(shù)、結(jié)構(gòu)化損失函數(shù)和分割損失函數(shù)的加權(quán)和,表示如下:

其次,作者在實(shí)現(xiàn)過(guò)程中使用了數(shù)據(jù)增強(qiáng)的方法以減輕過(guò)擬合現(xiàn)象。使用了旋轉(zhuǎn)、垂直和水平移位的方法,為了保持車道線的結(jié)構(gòu),在數(shù)據(jù)增強(qiáng)得到的圖片上對(duì)車道線進(jìn)行了延長(zhǎng),如下圖所示

作者使用了ResNet-18和ResNet-34作為網(wǎng)絡(luò)的backbone,在TuSimple和CULane這2個(gè)數(shù)據(jù)集上驗(yàn)證了上述方法。在這2個(gè)數(shù)據(jù)集上實(shí)現(xiàn)時(shí)一些參數(shù)設(shè)置如下:

在2個(gè)數(shù)據(jù)集上的性能如下所示:


其中使用ResNet-18作為backbone的版本在CULane數(shù)據(jù)集上能跑到322.5FPS,是一個(gè)非常閃光的結(jié)果!
本文僅做學(xué)術(shù)分享,如有侵權(quán),請(qǐng)聯(lián)系刪文。