車道線檢測論文閱讀:LaneNet
來自專欄從目標檢測開始的挖坑日記11 人贊了文章
?Towards End-to-End Lane Detection: an Instance Segmentation Approach
論文鏈接:https://arxiv.org/abs/1802.05591
代碼鏈接:https://github.com/MaybeShewill-CV/lanenet-lane-detection (tf實現,並不完整,部分功能未實現)因為最近的項目了解到的論文,查了一下是2018 IEEE IV上的論文,本身比較偏嚮應用層面,理論上的創新不是太多。嚴格上講,我更願意把它看作分割問題……主要貢獻是兩點,一個是利用Semantic Instance Segmentation with a Discriminative Loss Function的思路來實現對任意數量車道線的檢測;另一個是車道線檢測往往要通過變換矩陣來進行角度變換來使車道線平行從而擬合出可靠的車道線數學模型,但是固定的變換矩陣參數難以適應不同圖片或者圖片中的地平線變化,作者通過CNN學習矩陣參數解決了這個問題。面臨類似問題的同學不妨一讀。
1. Introduction
車道線檢測實際上屬於自動駕駛演算法範疇的一部分,可以用來輔助進行車輛定位和進行決策等等。由於車道線本身狹長和彎曲的特性,實際上這個問題更合適看作分割問題而不是檢測問題。
如果只是檢測固定數量的車道線,可以將不同車道線看作不同的類別,比如左車道線類、右車道線類和背景類等等……但是,如果車道線數量是不固定的呢?無論是常見的對pixel進行softmax分類或者decouple的多個二分類,似乎都沒辦法解決這個問題了。這個問題其實更像是semantic instance segmentation,不僅要分類,還要精確描述每個個體。在這裡,作者應用了Semantic Instance Segmentation with a Discriminative Loss Function中的思路;同時利用CNN網路來預測車道線的mask,並對所有屬於車道線的像素點進行聚類,得到不同的車道線,示意圖如下……2. Method
LaneNet
首先是主體網路部分,兩條分支,一條分支預測mask,另一條分支給每個lane pixel分配所屬lane的id。binary segmentation 和常規的分割問題一樣,沒有太多特別的。值得一提的是,無論是車道線還是虛線或者車道線被遮擋的情況,作者在生成ground truth的時候都把它們標註了出來,這樣就算對車道線沒有完全露出來的情況,網路也可以比較好的學習。
重點是instance segmentation 分支,這個就是利用了上面提到的那篇文章的設計思路,分支的設計思想和傳統統計學習的很多演算法都類似,不同的lane看作不同的類,而預測的結果力求類內最小化和類間最大化。本著這個原則設計了loss函數。curve fitting
車道線檢測一般是給y軸坐標,求車道線上對應的點的x軸的值。僅僅求出所有lane pixel是不夠的,還要進行直線擬合,求出對應的數學模型。一般來說,現在在擬合曲線時候都會把圖像轉化到bird』s-eye view角度,就是讓車道線都平行,這些便於擬合、可靠性更高,然後求出相應的點後,再映射回來。
轉化到bird』s-eye view是利用矩陣來求的,問題來了,這個矩陣一般是計算一次後就對所有圖像都使用的,一個問題就是,如果地平線發生變化,比如汽車行駛在山巒的公路上,很容易產生誤差,因此作者就利用一個CNN網路,作者稱之為H-Net來學習相關參數。變換矩陣有6個自由度:3. 實驗結果
由於該論文是圖森某個比賽的方案,因此關於指標和指標結果就不做介紹了,簡單地展示一下結果吧:
單純從理論角度來說,筆者認為那篇提出聚類loss的論文其實更有意思,不過在解決實際問題上,這篇文章還是有可取之處,有興趣的不妨了解學習一下。推薦閱讀:
※經典CNN模型+經典圖像語義分割模型總結
※醫學影像分割常用評價標準
※ExFuse: Enhancing Feature Fusion for Semantic Segmentation
※3d segmentation
TAG:圖像分割 | 深度學習DeepLearning | 圖像處理 |