姓名:劉一婷;學號:20021210599;學院:電子工程學院
轉載于 :微信公眾號“?CV研習社”’
原文鏈接:https://mp.weixin.qq.com/s/v4YHUmzOjv4agrbO6hORZw
【嵌牛導讀】車道線檢測是無人駕駛中重要的組成部分,本文將介紹車道線檢測所需的技術,面臨的問題等。
【嵌牛鼻子】車道線檢測
【嵌牛提問】車道線檢測技術能在哪些方面實現突破和提升?
【嵌牛正文】
針對車道線檢測的任務,我們需要弄清楚幾個問題:
1.車道線的表示形式?
輸出類型:掩碼/點集/矢量線條
實例化:每個車道線是否形成實例
分類:是否對車道線進行了分類(單白、雙黃等)
提前定義的參數:是否只能檢測固定數量的車道線
車道標記:是否對車道上的行車標記也做了檢測
這會影響到數據的標注和網絡的輸出形式,而且最終需要的是車道線在世界坐標系下的方程。而神經網絡更適合提取圖像層面的特征,直接回歸方程參數有較多限制。所以,網絡推理輸出后需要相對復雜的后處理去解決真實坐標的問題。
2.神經網絡推理到哪一步?
圖像分割方案傾向于像素點的分類,該像素點是否屬于車道線標識并對標識類別進行判斷;
圖像檢測方案傾向于抽象出分割邊界線,在設定的一系列anchor中判斷是否存在車道線,以及回歸車道線的位置參數。
逐像素的車道線標識本身 or 表征出抽象的車道分隔邊界線。
數據集
需要各場景類別的數據平衡,比如高速公路,輔路,盤山路,夜晚,雨天等數據
檢查篩選出質量較好的圖片,比如高速公路夜間的數據和雨中駕駛的視頻較為模糊
相近的圖片抽幀標注,可以每10張抽取1張,比如低速的多張圖片相似會造成準確率虛高
增廣小類別的圖片,比如查看車道線系數直方圖,再小幅度旋轉使每個系數分布更為合理
縮放并歸一化數據,加速收斂
開源車道線數據集包括:
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等算法進行車道線檢測。這類算法需要人工手動去調濾波算子,根據算法所針對的街道場景特點手動調節參數,工作量大且魯棒性較差,當行車環境出現明顯變化時,車道線的檢測效果不佳。主流方式如下:
基于霍夫變換的車道線檢測;
基于LSD直線的車道線檢測
基于俯視圖變換的車道線檢測;
基于擬合的車道線檢測;
基于平行透視滅點的車道線檢測;
難點
應用場景受限;霍夫直線檢測方法準確但不能做彎道檢測,擬合方法可以檢測彎道但不穩定,仿射變換可以做多車道檢測但在遮擋等情況下干擾嚴重。
透視變換操作會對相機有一些具體的要求,在變換前需要調正圖像,而且攝像機的安裝和道路本身的傾斜都會影響變換效果。
深度學習方法
車道線檢測的應用場景具有時序信息特性,為了利用時序特征通常會引入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時,主要有兩種方式:
End Point,通過判斷線的端點間的距離及其包圍面積是否超過閾值
IOU,直接計算IOU的重疊面積
面臨挑戰
(1)車道線這種細長的形態結構,需要更加強大的高低層次特征融合,來同時獲取全局的空間結構關系,和細節處的定位精度。
(2)車道線的形態有很多不確定性,比如被遮擋,磨損,以及道路變化時本身的不連續性。需要網絡針對這些情況有較強的推測能力。
(3)車輛的偏離或換道過程會產生自車所在車道的切換,車道線也會發生左/右線的切換。一些提前給車道線賦值固定序號的方法,在換道過程中會產生歧義的情況。