摘自:学习笔记之车道线相关记录
相关概念
以下分类来自于百科:
按照道路交通标线的功能划分为:指示标线、警告标线和禁止标线。
-
按标划方法可分为:白色虚线、白色实线、黄色虚线、黄色实线、双白虚线、双白实线、双黄虚线和双黄实线等。
-
按作用又可分为:车行道中心线、车道分界线、停止线、减速让行线、人行横道线、导流线、导向箭头和左转弯导线等。
当前常见的检测方法
基于霍夫变换的车道线检测
基于多项式拟合和透视变换的车道线检测
详情可阅读 blog
车道检测与跟踪
- 车道检测的目标:
- 车道形状,包括宽度、曲率等几何参数
- 车辆在车道中的位置,包括横向偏移量,车辆与道路的夹角(偏航角)
- 车道检测与跟踪一般分为以下几个部分:
车辆、道路、相机模型
道路特征提取
道路参数计算,如曲率,
车道跟踪
1、车辆、道路、相机模型
在现代道路设计中,道路有比较固定的设计模型,因此,对于高速公路等道路类型,车道的几何模型可以以固定的形式表示。
车道弧长、曲率、偏航角、横向偏移量构成车辆与车道几何模型的要素。
车道一般由直线、圆弧和缓和曲线构成,缓和曲线通常是不同曲率的圆弧或直线的连接过渡,其曲率均匀变化,螺旋曲线是缓和曲线常用形式。
道路曲率与弧长(路长)的关系:
C = C0 + C1*L.
C0为起始点曲率,C1为曲率变化率。
- C0,C1都为0时,直线;
- C1为0时,C0不为0,圆弧;
- C1不为0时,缓和曲线。
在世界坐标系下,或俯视图下,在相机可视范围内,若车道的变化方向较小,则道路可用圆弧近似表示:
道路的坐标可以由弧长和曲率一般表示为:
y = L
x = 0.5 * C * L^2
若相机与车道的横向偏移量为d,与车道的夹角为a,则车道模型为
y = L
x = d + aL + 0.5C*L^2
从公式来看,这是一个抛物线模型。这里没有考虑曲率变换率,即忽略了高次项**(C1*L^3)/6**。
不同的系统要求与道路环境,道路模型的精度要求也不同。在较早的系统里,在大路(highway)环境下,基于视觉的车道模型经历了:
平行直线模型 --> 固定曲率圆弧模型 --> 螺旋曲线模型。
道路模型的精度不断提高。
使用哪种模型,要根据系统的实际需求。
如早期的系统里,检测大路(highway)中10米内的车道状况,应用简单的线性模型即可。
而车道偏离告警(LDW)系统中,在高速公路上,需要30米-40米的精确的道路模型,这时,螺旋曲线(高阶)或抛物线(二阶)模型就更为精确。
相机模型:
由图像的二维信息恢复出场景的三维信息,就需要相机模型来确立两者之间的对应关系。相机参数包括内部参数和外部参数。相机模型分为针孔相机模型和透镜畸变扩展模型。这些在另外一篇文章里有描述。相机的内外参数通过标定都可以获取。相机的外部参数体现了相机坐标下图像与世界坐标下场景的齐次变换关系。
道路特征检测
道路上车道标志的检测是道路特征检测的关键部分,并且已有很多算法,但道路场景太多,单一的算法还是无法适用所有的场景。算法分类:
- 基于边缘检测的常用算法有:
Sobel, DOG, LOG, Steerable Filter等。每种算法都有各自的优缺点。这里不再描述。
由基本算法处理后得到道路的特征图像,这里以边缘为例,需要进一步分析其特性,去除干扰,保留符合车道特征的边缘。如平行性、宽度等结构特征。如果这些结构特征分析做的好,也可以弥补基本算法的不足。
- 其他检测方法:
双阈值特征检测:原图像、梯度图像(边缘图像)分别有各自的阈值,分割出车道标志特征,当某点的灰度和梯度值分别大于各自的阈值时,才被选取为车道的特征点,这个方法会去掉一些阴影等干扰。
3、道路参数计算
道路方向、曲率的计算。霍夫变换是常用的检测直线的方法,还有其他方法筛选特征计算参数的方法,如最小二乘估计,RANSAC,这些方法基本上都设定了道路模型,由特征点来计算参数。但也可以由计算出的模型,去除不符合条件的特征。
4、跟踪
一般跟踪的作用就是预测下一帧图像内道路特征的位置,在一个较小的范围内检测道路特征,提高效率。若预测范围内没有检测到道路特征,则采用估计或上一帧特征的位置,若连续几帧都没有检测到道路特征,则启动全图像道路特征检测。KalmanFilter是常用的跟踪算法。
车道的状态要考虑车道的位置、速度、偏航角及车辆行驶转角之间的关系。
夹角增量 = 曲率 * 长度
状态变量为 道路弧长、车道夹角、道路曲率、车道宽度
车辆的行驶转角作为控制输入变量。
测量变量为 道路弧长 和 车辆与道路的夹角。
则状态转移方程如下:
基于深度学习的车道线检测
待整理