一种车道线检测方法转让专利
申请号 : CN201710343501.3
文献号 : CN107229908B
文献日 : 2019-11-29
发明人 : 顾敏明 , 李福俊
申请人 : 浙江理工大学
摘要 :
权利要求 :
1.一种车道线检测方法,其特征在于,
一、获取道路图像:通过车载摄像头捕捉道路图像;
二、对图像进行预处理:
包括彩色图像灰度化、截取有效信息区域、滤波去噪、图像灰度增强、边缘检测和修复车道线,其中修复车道线的处理步骤是先寻找需要的“短线段”,对每一个白点进行处理,若其在某个方向有连续的4个白点就判定这为一个“短线段”,找出所有的“短线段”,并记录其方向;第二步,对每个短线段在其方向上寻找,如果在6个像素点内有着另一个和其方向相似的短线段,我们就认为这应是一条直线,把两个短线段之间所有的像素点赋值为1,即把之间的黑色点变为白色点,从而达到连线的目的;对所有短线段进行处理,就能修复好断续的车道线;
三、识别跟踪车道线:
1、左右车道线的识别:
首先,降低检测直线所需要的交汇点数量并且设置检测直线段的最短值;
其次,当车辆在车道中行驶时,拍摄的道路图像中左右车道线通常分布在图像两侧,且两条车道的斜率有一个范围,通过分析计算大量道路图像样本,对极值点的极角和斜率依次进行约束,实际中约束的值根据摄像头安装位置进行改变;约束的极角范围为-70°<θ<
70°,即在此范围内寻找直线,减少处理数据,对左车道线斜率的约束范围是0.355
0.73,右车道线斜率的约束范围是k2<0.4516,不在此范围内的直线都从数组中删去;
再次,将检测出的线段从长到短排序,挑出前10条线段,总线段不足10条的挑出所有线段,然后将这些线段分成三类,第一类是斜率大于零并且斜率相近的直线,第二类是斜率小于零并且斜率相近的直线,第三类为其它所有直线,之后,按照长度越长权重越大、位置越靠下权重越大这两个原则把第一类中的所有直线段拟合成右车道线,把第二类中的所有直线段拟合成左车道线,而第三类中的线段不予处理;
2、动态车道线检测:
在相邻两帧图像中,由于车辆行驶的距离很短,两条车道线的位置不会出现太大偏差;
实际算法中,把前一帧检测到的车道线斜率、截距和两车道线交点坐标进行保存,那么在下一帧中,车道线的角度与前一帧的角度应相差在3°以内,截距位置和前一帧的数据应相差在20个像素点内,根据这个就能知道下一帧中车道线的大致位置,从中寻找可以减少很多处理量,另外,相邻两帧两条车道线交点的距离应在15个像素点内,通过这个条件,即可筛选出真正的车道线;
四、纠正车道线
将车道线透视图像转换成俯视图像,逆透视变换通用的变换公式为其中,[x y z]为原始拍摄图像每个点坐标,[x'y'z']是进行逆透视变换后的图像对应点的坐标, 为透视变换矩阵,变换矩阵 中的 和[a31 a32]产生刚体变换,包括平移、旋转、放大缩小, 产生透视效果,
将变换公式展开,得到
[x' y' z']=[a11x+a12y+a13z a21x+a22y+a23z a31x+a32y+a33z] (4-2)重写变换公式得到在(4-3)公式中,因为图像是二维平面,所以z=1,令a33=1,此时有8个未知量,则只需已知变换前的4个点坐标和变换后的4个点坐标,共8个坐标就可以求取变换矩阵求出变换矩阵后,把原图像中的每个像素点进行运算然后对应到新的位置;
在实际处理中,只变换每条车道线上的起点和终点,共四个点,然后将起点和终点连接起来,就能得到逆透视变换后的车道线;
五、车道偏移计算
1、角度偏移计算
假设左车道线的偏移角度为θ1,右车道线的偏移角度为θ2,车道线中心线偏移角度为θ0,两车道线中心线与车道线的夹角为α,两车道线中心线与x轴正方向的夹角为β,消去角α,可得到车身偏移角度大小θ的计算公式为式(5-1)中,θ角越大,车身偏移就越大,
图像中车道中心线向右偏移,在实际中表现为车辆向左偏移了车道,因此车身偏移角度方向与β角有关,当0°<β<90°时,车身往左偏移了θ角度,当90°<β<180°时,车身往右偏移了θ角度;
2、距离偏移计算
假设实际中两条车道线的距离为x,拍摄部分的车道线长度为y,在图像中,两条车道线的距离占用了u个像素点,车道线长度占用了v个像素点,则图像坐标系中的u、v与俯视坐标系中的x、y有一定比例关系,假设x轴方向比例为λ,y轴方向比例为μ,有公式假设车道线的下限与中心线偏移了d1个像素点,车道线上限与中心线偏移了d2个像素点;假设实际坐标系中车头位置,即摄像头位置偏移车道中心线的距离为D,车头与下限位置距离为L0,根据下限的偏移d1和角度偏移θ作出图像坐标系中的关系图,根据三角函数公式得到根据公式(5-2),可知道当L>L0时,根据相似三角形关系,偏移距离为
D=μd1-L0 tanθ (5-5)当L
D=μd1-L0 tanθ (5-6)式(5-5)和(5-6)中,计算结果为正值则说明车辆往左边偏移了一段距离,负值则说明往右偏移了一段距离。