一种车道线检测方法转让专利

申请号 : CN201710343501.3

文献号 : CN107229908B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 顾敏明李福俊

申请人 : 浙江理工大学

摘要 :

本发明提供一种车道线检测方法,利用安装在车辆上的前视摄像头获取图像,实时对动态图像进行处理,达到对车道线准确识别检测的目的。本发明的车道线检测方法有以下优点:一是适用性更好,能识别夜间、雨天和隧道中的车道线;二是算法简单且耗时较短,能满足实时性的要求;三是检测误差小,精度高。

权利要求 :

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)中,计算结果为正值则说明车辆往左边偏移了一段距离,负值则说明往右偏移了一段距离。

说明书 :

一种车道线检测方法

[0001] 技术领域:本发明涉及智能汽车技术,特别是一种汽车车道线检测方法。技术背景:
[0002] 随着社会进步、人们生活水平提高和交通工具的发展,全世界汽车数量急剧增长,同时,交通安全问题也成为了全球关注的热点问题,高级驾驶辅助系统(ADAS)应运而生并得到了广泛关注。ADAS是利用各类传感器获取车辆内、外的信息,并经过各种处理,最后通过报警让驾驶者察觉可能将要发生的危险,以减少交通事故发生率。
[0003] 现有的ADAS在实际使用过程中由于图像识别处理的水平有限,所以对车道线的检测经常出现问题,难以具备长时间长距离稳定运行的性能,限制了该类系统在特定环境下应用的可能性。发明内容:
[0004] 针对以上问题,本发明提供一种车道线检测方法,实时对动态图像进行处理,达到对车道线准确识别检测的目的。
[0005] 一种车道线检测方法,包括:
[0006] 一、获取道路图像:通过车载摄像头捕捉道路图像;
[0007] 二、对图像进行预处理:
[0008] 包括彩色图像灰度化、截取有效信息区域、滤波去噪、图像灰度增强、边缘检测和修复车道线,其中修复车道线的处理步骤是先寻找需要的“短线段”,对每一个白点进行处理,若其在某个方向有连续的4个白点就判定这为一个“短线段”,找出所有的“短线段”,并记录其方向;第二步,对每个短线段在其方向上寻找,如果在6个像素点内有着另一个和其方向相似的短线段,我们就认为这应是一条直线,把两个短线段之间所有的像素点赋值为1,即把之间的黑色点变为白色点,从而达到连线的目的;对所有短线段进行处理,就能修复好断续的车道线;
[0009] 三、识别跟踪车道线:
[0010] 1、左右车道线的识别:
[0011] 首先,降低检测直线所需要的交汇点数量并且设置检测直线段的最短值;
[0012] 其次,当车辆在车道中行驶时,拍摄的道路图像中左右车道线通常分布在图像两侧,且两条车道的斜率有一个范围,通过分析计算大量道路图像样本,对极值点的极角和斜率依次进行约束,实际中约束的值根据摄像头安装位置进行改变;约束的极角范围为-a1°<θ
[0013] 再次,将检测出的线段从长到短排序,挑出前10条线段,总线段不足10条的挑出所有线段,然后将这些线段分成三类,第一类是斜率大于零并且斜率相近的直线,第二类是斜率小于零并且斜率相近的直线,第三类为其它所有直线,之后,按照长度越长权重越大、位置越靠下权重越大这两个原则把第一类中的所有直线段拟合成右车道线,把第二类中的所有直线段拟合成左车道线,而第三类中的线段不予处理;
[0014] 2、动态车道线检测:
[0015] 在相邻两帧图像中,由于车辆行驶的距离很短,两条车道线的位置不会出现太大偏差;实际算法中,把前一帧检测到的车道线斜率、截距和两车道线交点坐标进行保存,那么在下一帧中,车道线的角度与前一帧的角度应相差在3°以内,截距位置和前一帧的数据应相差在20个像素点内,根据这个就能知道下一帧中车道线的大致位置,从中寻找可以减少很多处理量,另外,相邻两帧两条车道线交点的距离应在15个像素点内,通过这个条件,即可筛选出真正的车道线;
[0016] 四、纠正车道线
[0017] 将车道线透视图像转换成俯视图像,逆透视变换通用的变换公式为[0018]
[0019] 其中,[x y z]为原始拍摄图像每个点坐标,[x' y' z']是进行逆透视变换后的图像对应点的坐标, 为透视变换矩阵,变换矩阵 中的
[0020] 和[a31 a32]产生刚体变换,包括平移、旋转、放大缩小, 产生透视效果,
[0021] 将变换公式展开,得到
[0022] [x' y' z']=[a11x+a12y+a13z a21x+a22y+a23z a31x+a32y+a33z]   (4-2)[0023] 重写变换公式得到
[0024]
[0025] 在(4-3)公式中,因为图像是二维平面,所以z=1,令a33=1,此时有8个未知量,则只需已知变换前的4个点坐标和变换后的4个点坐标,共8个坐标就可以求取变换矩阵求出变换矩阵后,把原图像中的每个像素点进行运算然后对应到新的位置;
[0026] 在实际处理中,只变换每条车道线上的起点和终点,共四个点,然后将起点和终点连接起来,就能得到逆透视变换后的车道线;
[0027] 五、车道偏移计算
[0028] 1、角度偏移计算
[0029] 假设左车道线的偏移角度为θ1,右车道线的偏移角度为θ2,车道线中心线偏移角度为θ0,两车道线中心线与车道线的夹角为α,两车道线中心线与x轴正方向的夹角为β,[0030]
[0031] 消去角α,可得到车身偏移角度大小θ的计算公式为
[0032]
[0033] 式(5-1)中,θ角越大,车身偏移就越大,
[0034] 图像中车道中心线向右偏移,在实际中表现为车辆向左偏移了车道,因此车身偏移角度方向与β角有关,当0°<β<90°时,车身往左偏移了θ角度,当90°<β<180°时,车身往右偏移了θ角度;
[0035] 2、距离偏移计算
[0036] 假设实际中两条车道线的距离为x,拍摄部分的车道线长度为y,在图像中,两条车道线的距离占用了u个像素点,车道线长度占用了v个像素点,则图像坐标系中的u、v与俯视坐标系中的x、y有一定比例关系,假设x轴方向比例为λ,y轴方向比例为μ,有公式[0037]
[0038] 假设车道线的下限与中心线偏移了d1个像素点,车道线上限与中心线偏移了d2个像素点;假设实际坐标系中车头位置,即摄像头位置偏移车道中心线的距离为D,车头与下限位置距离为L0,
[0039] 根据下限的偏移d1和角度偏移θ作出图像坐标系中的关系图,根据三角函数公式得到
[0040]
[0041] 根据公式(5-2),可知道
[0042]
[0043] 当L>L0时,根据相似三角形关系,偏移距离为
[0044] D=μd1-L0tanθ   (5-5)
[0045] 当L
[0046] D=μd1-L0tanθ   (5-6)
[0047] 式(5-5)和(5-6)中,计算结果为正值则说明车辆往左边偏移了一段距离,负值则说明往右偏移了一段距离。
[0048] 本发明的车道线检测方法有以下优点:一是适用性更好,能识别夜间、雨天和隧道中的车道线;二是算法简单且耗时较短,能满足实时性的要求;三是检测误差小,精度高。附图说明:
[0049] 附图1为本发明的流程示意图。
[0050] 附图2a为车道线修复前的图像。
[0051] 附图2b为车道线修复后的图像。
[0052] 附图3a为原始图像。
[0053] 附图3b为将图3a经过逆透视变换得到的俯视图。
[0054] 附图4a为车辆在实际道路中的情况示意图。
[0055] 附图4b为将图4a中车道线逆透视变换成俯视图。
[0056] 图5为车道线偏移情况示意图。
[0057] 附图6a为车道线下限的偏移d1和角度偏移θ作出图像坐标系中的关系图一。
[0058] 附图6b为车道线下限的偏移d1和角度偏移θ作出图像坐标系中的关系图二。
[0059] 附图6c为车道线下限的偏移d1和角度偏移θ作出图像坐标系中的关系图三。具体实施方式:
[0060] 下面结合实例和附图对本发明实现方法和原理进一步说明。
[0061] 一种车道线检测方法,包括:
[0062] 一、获取道路图像:通过车载摄像头捕捉道路图像;
[0063] 二、对图像进行预处理:
[0064] 彩色图像灰度化、截取有效信息区域、滤波去噪、图像灰度增强、边缘检测和修复车道线,经过边缘检测后车道线的边缘是断断续续的,不具有连续性,需要修复边缘。处理步骤是先寻找我们需要的“短线段”,对每一个白点进行处理,若其在某个方向有连续的4个白点就判定这为一个“短线段”,找出所有的“短线段”,并记录其方向。第二步,对每个短线段在其方向上寻找,如果在6个像素点内有着另一个和其方向相似的短线段,我们就认为这应是一条直线,把两个短线段之间所有的像素点赋值为1,即把之间的黑色点变为白色点,从而达到连线的目的。对所有短线段进行处理,就能修复好断续的车道线。
[0065] 图2a是道路图像通过Prewitt算子检测出的边缘,从图中可以看出,经过边缘检测后的车道线是断断续续的,不具有连续性,这可能对后续识别车道线造成一定影响,所以我们需修复车道线。修复车道线的基本思想是判断两条线段之间的距离,当距离小于我们规定的值时,就把这两条线段之间的点赋值为1,即把之间的黑色点变为白色点,从而达到连线的目的。修复后的图像如图2b所示,可以看出原来断续的直线段被连接成完整的一条直线。
[0066] 三、识别跟踪车道线:
[0067] 1、左右车道线的识别:
[0068] 首先,降低检测直线所需要的交汇点数量并且设置检测直线段的最短值,这能让检测直线的容错率增大,让一些不是很直的直线被检测出来,这有利于提高检测虚线形式车道线的成功率。
[0069] 其次,当车辆在车道中行驶时,拍摄的道路图像中左右车道线通常分布在图像两侧,且两条车道的斜率有一个范围。通过分析计算大量道路图像样本,对极值点的极角和斜率依次进行约束,实际中约束的值根据摄像头安装位置进行改变。本例子中,约束的极角范围为-70°<θ<70°,即在此范围内寻找直线,减少处理数据。对左车道线斜率的约束范围是0.355
[0070] 再次,将检测出的线段从长到短排序,挑出前10条线段,总线段不足10条的挑出所有线段。然后将这些线段分成三类,第一类是斜率大于零并且斜率相近的直线,第二类是斜率小于零并且斜率相近的直线,第三类为其它所有直线。之后,我们按照长度越长权重越大、位置越靠下权重越大这两个原则把第一类中的所有直线段拟合成右车道线,把第二类中的所有直线段拟合成左车道线,而第三类中的线段不予处理,因为这些大多是噪声线段。
[0071] 2、动态车道线检测
[0072] 在实际比较复杂的路况中,不是每时每刻都能检测出左、右两条车道线,也不是检测出的车道线就是准确的,我们应再加一些约束条件。
[0073] 在我们国家,摄像机拍摄的视频一般为每秒25帧,采用PAL制式,即每秒钟拍摄25张图片。在实时性要求非常高的ADAS中,一般是逐帧进行处理。那么每两张图片之间的间隔时间为0.04秒,即使假设车辆的行驶速度为120Km/h,车辆也只能前行1.33米。因此,在相邻两帧图像中,由于车辆行驶的距离很短,两条车道线的位置不会出现太大偏差。实际算法中,我们把前一帧检测到的车道线斜率、截距和两车道线交点坐标进行保存,那么在下一帧中,车道线的角度与前一帧的角度应相差在3°以内,截距位置和前一帧的数据应相差在20个像素点内,根据这个我们就能知道下一帧中车道线的大致位置,从中寻找可以减少很多处理量。另外,相邻两帧两条车道线交点的距离应在15个像素点内,通过这个条件,我们即可筛选出真正的车道线。因此,动态检测使用更少的处理时间就能有更高的准确性。
[0074] 四、纠正车道线
[0075] 摄像机倾斜拍摄一个物体后,形成的图像会发生变形,摄像机将实际三维场景投影到图像的二维平面上,这个投影即称为透视变换。实际情况中,摄像头不一定安装在中间位置,并且可能因为某些原因造成摄像头左右偏移。车道线畸变的情况不利于我们后续计算车道偏移,所以我们将透视图像转换成俯视图像,这个过程称为逆透视变换。
[0076] 将车道线透视图像转换成俯视图像,逆透视变换通用的变换公式为[0077]
[0078] 其中,[x y z]为原始拍摄图像每个点坐标,[x' y' z']是进行逆透视变换后的图像对应点的坐标, 为透视变换矩阵。变换矩阵 中的和[a31 a32]产生刚体变换,包括平移、旋转、放大缩小, 产生透视效果,[0079] 将变换公式展开,得到
[0080] [x' y' z']=[a11x+a12y+a13z a21x+a22y+a23z a31x+a32y+a33z]   (4-2)[0081] 重写变换公式得到
[0082]
[0083] 在(4-3)公式中,因为图像是二维平面,所以z=1。令a33=1,此时有8个未知量,则只需已知变换前的4个点坐标和变换后的4个点坐标,共8个坐标就可以求取变换矩阵求出变换矩阵后,把原图像中的每个像素点进行运算然后对应到新的位置。
[0084] 图3a中的四个白点坐标为原始图像坐标,再加上我们想要的变换后的四个顶点坐标,就能通过公式(4-3)计算出变换矩阵。求出变换矩阵后,把原图像中的每个像素点进行运算然后对应到新的位置。在新图像中,可能有一些点没有被原图对应,即出现“空洞”的情况,我们可以使用最邻近插值法,也可以用双线性内插法或双立方插值法将“空洞”补全。经过逆透视变换得到的俯视图如图3b所示,可以看出,逆透视变换后的图像消除了变形的影响,恢复了俯视图原貌。
[0085] 五、车道偏移计算
[0086] 1、角度偏移计算
[0087] 假设图4a中是车辆目前在道路中的情况,车辆偏移车道线的角度为θ。在理想情况中,我们将车道线逆透视变换成俯视图,如图4b所示,两条车道线应是平行的,即左车道线斜率等于右车道线斜率。但是在实际情况中,汽车的颠簸抖动、公路的坡度会使两条车道线不一定平行,此时我们利用两条车道线的中心线来计算,以减少误差。如图5,假设左车道线的偏移角度为θ1,右车道线的偏移角度为θ2,车道线中心线偏移角度为θ0,两车道线中心线与车道线的夹角为α,两车道线中心线与x轴正方向的夹角为β,有
[0088]
[0089] 消去角α,可得到车身偏移角度大小θ的计算公式为
[0090]
[0091] 式(5-1)中,θ角越大,车身偏移就越大。
[0092] 并根据摄像机的小孔成像原理,图像中车道中心线向右偏移,在实际中表现为车辆向左偏移了车道,因此车身偏移角度方向与β角有关。当0°<β<90°时,车身往左偏移了θ角度,当90°<β<180°时,车身往右偏移了θ角度。
[0093] 2、距离偏移计算
[0094] 我们经过变换得到了俯视的车道线图像,假设实际中两条车道线的距离为x,拍摄部分的车道线长度为y,在图像中,两条车道线的距离占用了u个像素点,车道线长度占用了v个像素点。则图像坐标系中的u、v与俯视坐标系中的x、y有一定比例关系,假设x轴方向比例为λ,y轴方向比例为μ,有公式
[0095]
[0096] 假设车道线的下限与中心线偏移了d1个像素点,车道线上限与中心线偏移了d2个像素点。假设实际坐标系中车头位置(即摄像头位置)偏移车道中心线的距离为D,车头与下限位置距离为L0。
[0097] 根据下限的偏移d1和角度偏移θ作出图像坐标系中的关系图,如图6a,根据三角函数公式得到
[0098]
[0099] 根据公式(5-2),可知道
[0100]
[0101] 当L>L0时,如图6b所示,根据相似三角形关系,偏移距离为
[0102] D=μd1-L0tanθ   (5-5)
[0103] 当L
[0104] D=μd1-L0tanθ   (5-6)
[0105] 式(5-5)和(5-6)中,计算结果为正值则说明车辆往左边偏移了一段距离,负值则说明往右偏移了一段距离。