針對車道線檢測的任務,我們需要弄清楚幾個問題:
1.車道線的表示形式?
這會影響到數據的标注和網絡的輸出形式,而且最終需要的是車道線在世界坐标系下的方程。而神經網絡更适合提取圖像層面的特征,直接回歸方程參數有較多限制。所以,網絡推理輸出後需要相對複雜的後處理去解決真實坐标的問題。
2.神經網絡推理到哪一步?
逐像素的車道線标識本身 or 表征出抽象的車道分隔邊界線。
數據集
開源車道線數據集包括:
Caltech:一共約1.2k張圖片,場景比較簡單,且視角較好;圖片大小:640x480,如下圖
VPGNet:一共20k張圖片,包含白天(非雨天、雨天、大雨天)、夜晚的數據,同時包含了各種車道線類型,以及其他不同類型的車道标識(左轉箭頭、直行箭頭、斑馬線等等),如下圖
TuSimple:一共72k張圖片,位于高速路,天氣晴朗,車道線清晰,特點是車道線以點來标注;圖片大小:1280x720,如下圖
CULane:一共98k張圖片,包含擁擠,黑夜,無線,暗影等八種難以檢測的情況,最多标記4條車道線;圖片大小:1640x590,如下圖
BDD100k:120M張圖片, 包含美國4個區的白天、黑夜各種天氣狀況,二維8類别車道線;圖片大小:1280x720,如下圖
ApolloScape:140k張圖片,特點是車道線以掩碼的形式标注,包含2維或3維28個類别;圖片大小:3384x2710,如下圖
CurveLanes:華為彎道檢測數據集 135k張圖片, 采用三次樣條曲線手動标注所有車道線,包括很多較為複雜的場景,如S路、Y車道,還有夜間和多車道的場景。分為訓練集10萬張,驗證集2萬張,測試集3萬張;圖片大小:2650x1440,如下圖
傳統圖像方法
通過邊緣檢測濾波等方式分割出車道線區域,然後結合霍夫變換、RANSAC等算法進行車道線檢測。這類算法需要人工手動去調濾波算子,根據算法所針對的街道場景特點手動調節參數,工作量大且魯棒性較差,當行車環境出現明顯變化時,車道線的檢測效果不佳。主流方式如下:
難點
深度學習方法
車道線檢測的應用場景具有時序信息特性,為了利用時序特征通常會引入RNN模塊,加上Encoder-Decoder的形式已經成為CNN特征提取的标配,所以一般的做法是對Encoder提取的Features進行進一步加工,提取連續幀帶來的曆史信息。或者借助一些額外的相關業務更好的引導車道線的回歸。主流深度學習的車道線檢測方法:包括二值語義分割産生掩碼圖部分和掩碼圖的線拟合部分。
二值語義分割主要采用CNN方法并引入一些方式提高語義分割精度,在 線的拟合階段可以采用學習到的轉換矩陣先将分割結果轉換為鳥瞰圖視角,然後,采用均勻取點 最小二乘法拟合,拟合方程可選三次方程。
1.《Robust Lane Detection from Continuous Driving Scenes Using Deep Neural Networks》:采用CNN RNN的方式,在Encoder和Decoder之間插入LSTM模塊,對連續幀的輸入預測二值分割圖。
2.《Unifying Lane-Sensitive Architecture Search and Adaptive Point Blending》:采用CNN的方式,通過多尺度融合和輸出的方式提高定位精度,最後采用一種類似于NMS方法,将低層輸出中位置精度回歸較高的點逐步向高層輸出替換,得到最後融合優化的車道線點輸出。
3. 《Heatmap-based Vanishing Point boosts Lane Detection》:采用Encoder-Decoder結構,在車道線的預測Head以外,增加了一個Head用于消失點的預測;這種結構将特征提取階段的輸出和車道線預測的輸出進行信息融合,再經過卷積層的處理後,輸出消失點的預測結果。(類似VPGNet)
4. 《Lane Detection Model Based on Spatio-Temporal Network with Double ConvGRUs》:采用Encoder RNN Decoder的方式,在Encoder和Decoder之間插入GRU模塊,同樣對連續幀的輸入預測一張二值圖。
5.《RESA: Recurrent Feature-Shift Aggregator for Lane Detection》:采用Encoder-Decoder的方式,在Encoder和Decoder部分之間,插入RESA模塊,增強空間結構信息在全局的傳播能力。(類似SCNN)
6. 《Real-Time LaneDtection Networks for Autonomous Driving》:采用Encoder LSTM的方式,分割出車道線後采用聚類算法将不同的車道線進行區分,然後再通過一個HNet變換到鳥瞰視角去檢測車道線。
7. 《Key Points Estimation and Point Instance Segmentation Approach for Lane Detection》:PiNet算法将車道線用點表示轉換成點的回歸問題,然後使用聚類算法區分不同車道線上的點和去掉一部分多餘的點。
8. 《Ultra Fast Structure-aware Deep Lane Detection》:将車道線檢測定義為尋找車道線在圖像中某些行的位置的集合,即基于行方向上的位置選擇、分類。
區别于上述車道線檢測和曲線拟合分開兩步去做的方式,還有一種端到端的車道線拟合,輸入圖片,輸出車道線曲線模型參數。比如:《End-to-end Lane Detection through Differentiable Least-Squares Fitting》
性能指标
在評判True or False時,主要有兩種方式:
面臨挑戰
(1)車道線這種細長的形态結構,需要更加強大的高低層次特征融合,來同時獲取全局的空間結構關系,和細節處的定位精度。
(2)車道線的形态有很多不确定性,比如被遮擋,磨損,以及道路變化時本身的不連續性。需要網絡針對這些情況有較強的推測能力。
(3)車輛的偏離或換道過程會産生自車所在車道的切換,車道線也會發生左/右線的切換。一些提前給車道線賦值固定序号的方法,在換道過程中會産生歧義的情況。
作者:愛做菜的煉丹師
來源:CV研習社微信公衆号
本文僅做學術分享,如有侵權,請聯系删文。
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!