【車道線檢測】一種基于神經(jīng)網(wǎng)絡(luò)+結(jié)構(gòu)約束的車道線檢測方法
標題:Ultra Fast Structure-aware Deep Lane Detection(ECCV 2020)
亮點
1.提出了一個基于卷積神經(jīng)網(wǎng)絡(luò)進行車道線檢測的新方法,區(qū)別于逐像素分割方法,該方法預(yù)測輸入圖像中每行的車道線位置。
2.該方法計算量小,能很好地滿足自動駕駛場景對算法的速度要求;使用全局感受野,也能很好地處理復雜場景。
3.在訓練網(wǎng)絡(luò)時根據(jù)車道線的物理結(jié)構(gòu),加入了結(jié)構(gòu)損失(structual loss),很好地利用了車道線的先驗信息。
內(nèi)容
在輸入圖像中每隔若干像素畫水平線,將輸入圖像劃分成若干個“細長條”,每個“細長條”稱為1個row anchor。再將每個row anchor在垂直方向切割,形成若干個“塊”,每個“塊”稱為1個cell。如下圖所示:
此外,還需要在每個row anchor最后面“人為地”增加1個cell,這個cell表示該row anchor中沒有車道線。希望能設(shè)計一個網(wǎng)絡(luò),達到如下功能:網(wǎng)絡(luò)能夠輸出每個row anchor中含有車道線的cell的位置,當某個row anchor中沒有車道線時,網(wǎng)絡(luò)輸出該row anchor中“人為增加”的cell的位置。



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

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

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

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

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

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

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


其中使用ResNet-18作為backbone的版本在CULane數(shù)據(jù)集上能跑到322.5FPS,是一個非常閃光的結(jié)果!
本文僅做學術(shù)分享,如有侵權(quán),請聯(lián)系刪文。
*博客內(nèi)容為網(wǎng)友個人發(fā)布,僅代表博主個人觀點,如有侵權(quán)請聯(lián)系工作人員刪除。











