车道线检测传统方法笔记

车道线检测是自动驾驶中的一个基础模块,车道保持,自适应巡航,自动变道;对于全自动驾驶汽车后续的车道偏离或轨迹规划决策也很重要。

目前车道线检测主要有两种方案:传统方法深度学习

1.传统方法

(1)边缘检测+霍夫变换
方法流程:彩色图像转灰度->模糊处理->边缘检测->霍夫变换
这种方法一般能够检测出简单场景下的车辆目前行驶的两条车道线,以及偶尔的相邻车道(依赖前视相机的角度)。该方法可以利用霍夫变换的结果(线的斜率),进一步过滤出左右车道线。不过同时,该方法也依赖于边缘检测的结果,所以调参(边缘检测、霍夫变换)以及其他的trick(ROI选取等)很重要。

(2)颜色阈值
方法流程:将图像转颜色空间(一般HSV),对新的color space中的各个通道设置阈值(大于阈值取值为1,小于取值为0),得到结果。
该方法依赖于各通道的阈值的选取,只需要调整几个阈值参数,但有时候鲁棒性会较差,例如当前车辆前方的车辆可能会被全部置1。

(3)透视变换(应用与交通拥挤,部分车道缺失较好。)
方法流程:获取透视变换矩阵->透视变换->车道线检测
该方法的优点是将前视摄像头抓拍的图像转为鸟瞰图,能够检测到多条线。其关键在于透视变换矩阵的准确性(不考虑转换后的车道线检测),对于转换后的鸟瞰图,可以通过上述两种方式检测车道线。
在这里插入图片描述
 

边缘检测、k-Means、高斯概率模型

(1)Udacity车道线检测

    相机标定、openCV

原因:sensor制造误差、非线性径向畸变、切向畸变

ROI选取,图像透视变换,把图像转换为俯视图
二值化并且找到车道线

车道线检测传统方法笔记_第1张图片

 车道线检测传统方法笔记_第2张图片

滑动窗口与多项式拟合

最小二乘法拟合中心点形成车道线

(2)基于投影的车道线检测

 图片标定、ROI透视

2.1原图:

车道线检测传统方法笔记_第3张图片

 2.2 二值化:

车道线检测传统方法笔记_第4张图片

 2.3 把二值化的点投影到横坐标上

车道线检测传统方法笔记_第5张图片

 2.4 选取对应的最大值:

车道线检测传统方法笔记_第6张图片

  2.5  Ransac(随机抽样一致性算法)多项式拟合附近的点

车道线检测传统方法笔记_第7张图片

2.6 结果:投影回原图效果

车道线检测传统方法笔记_第8张图片

在实际场景中,传统方法的鲁棒性不好,除去光照和邻近车辆的影响外,车道中间的指示箭头和人行道也是此类算法很难处理的挑战。

边缘检测算法还包括 Sobel 算子、Candy 算子和 Roberts 算子

Reference:

1.车道线检测传统方法&深度学习方法概览+两篇论文领读LaneATT+LaneNet

2.计算机视觉基础——相机标定

3.最详细、最完整的相机标定讲解

4.车道线检测(Finding Lane Lines)

5.OpenCV | Real Time Road Lane Detection

6.第七十篇:从ADAS到自动驾驶(三):车道检测

7. python数字图像处理(18):高级形态学处理 (剔除车道线感兴趣区小面积杂物)

你可能感兴趣的:(自动驾驶,算法,计算机视觉,自动驾驶)