最近在做車道線檢測的問題,我們的思路是先分割再聚類,即需要把每條車道線(不同實例)檢測出來。
Abstract:提出一個end-to-end的車道線檢測算法,可以解決車道線數目變化(pixel embedding)以及車道視角變化(a learned perspective transformation)的問題。
1、Introduction:針對之前算法不能解決以下問題:a. predifined,fixed number of lanes, b. lane changes。本文設計一個多任務網絡分支,主要是車道線分割分支和車道線嵌入分支,可以進行end-to-end的訓練。車道分割分支具有兩個輸出類別,即背景或車道,而車道嵌入分支進一步將分段的車道像素分解成不同的車道實例(instance)。通過將車道檢測問題分解為上述兩個任務,我們可以充分利用車道分割分支的功能,而不必為不同的車道分配不同的類別。
針對之前采用固定透視變換轉換到“bird-eye”圖再進行車道線擬合,本文提出訓練一個網絡訓練來得到其變換系數,可以對多種道路變化魯棒。
總的來說貢獻點有兩個:(1)分支的多任務體系結構,車道分割分支輸出密集的每像素車道,而車道嵌入分支進一步將分段的車道像素分解成不同的車道實例。(2)給定輸入圖像的網絡估計透視變換的參數,透視變換允許車道擬合對路面變化具有魯棒性。
2、Method:將車道線檢測看做是實例分割問題,每條車道線的像素被分到不同的車道線實例中。
第一步先通過binary segmentation和lane segmentation(Lane-Net)並通過clustering獲得每條車道線的像素屬於相應的哪條車道;
第二步訓練H-Net網絡為了獲得一條擬合曲線,獲得對應場景的透視變換關系,可以針對不同的場景。
在binary segmentation階段,由於車道線和背景類別高度不均衡,使用有界逆類加權(bounded inverse class weighting)。
在instance segmentation階段,使用聚類損失函數,使得每條車道線像素屬於同一條車道時距離很小,而不屬於同一條車道距離很大。即通過兩個loss函數:其一是var loss,使得屬於同一條車道線的像素靠近;其二是dist loss,使得不同車道線像素遠離。
最后在H-Net階段,針對之前轉換到鳥瞰圖所用的透視變換是固定的,本文學習一個H-Net網絡來進行車道線像素點擬合。H-Net輸入是圖像,label是groundtruth的像素點坐標,采用一般的loss函數,來回歸像素點坐標來學習透視變換系數。
3、Results:這是本文end-to-end的車道線檢測結果
還沒開源,等大佬開源了再嘗試一下吧~
論文鏈接:https://arxiv.org/abs/1802.05591
github鏈接:https://github.com/MaybeShewill-CV/lanenet-lane-detection