基于车道弯曲度的车道线保持方法与流程

文档序号:19189820发布日期:2019-11-20 01:58阅读:546来源:国知局
基于车道弯曲度的车道线保持方法与流程

本发明属于车辆辅助驾驶技术领域,具体涉及基于车道弯曲度的车道线保持方法。



背景技术:

车辆在行驶过程中,为保障安全,需要严格遵守按车道行驶的规定,车道线为车辆安全驾驶提供了一个可靠的视觉参考,以便于驾驶员在会车以及超车和行驶过程中做出判断。

其中辅助驾驶方案中车道线保持功能是一个必不可少的功能,目前最常用的方法是机器视觉方案,通过视觉信息检测出道路上的车道线,并根据车道线的信息判断车辆应该如何行驶。

目前所采用的车道线保持方法一般是通过hough检测识别出左右两边的车道线,然后使车辆所处的位置对准车道线的正中央,即根据车辆偏离车道线中心来保持路径,这种方法的缺陷在于没有检测车身是否与车道方向对准,因此车辆即使对准了正中央,车身依然可能倾斜,这导致车辆在驾驶过程中还会需要不断的修正,直到车辆彻底对准车道方向为止。

即目前的车道线保持方法根据车辆与车道中心偏移距离来进行判断车辆方向的过程中,由于车辆在对准中心的时候,未必对准车道方向,车辆在继续行驶之后,还会造成行驶偏差,因此需要不断的修正才能实现车道保持。



技术实现要素:

本发明所要解决的技术问题是针对目前通过车辆与车道中心偏移距离进行判断车道线,需要不断修正才能实现车道保持的问题,提出了一种基于车道弯曲度以及车辆和车道线的偏离度对车道的行驶策略进行判断,从而能快速实现对准车道线并保持路线行驶的能力,减少驾驶过程中,由于与车道方向存在角度偏差而造成的不断修正问题的基于车道弯曲度的车道线保持方法。

本发明解决上述技术问题所采用的技术方案为:提出一种基于车道弯曲度的车道线保持方法,包括步骤:

s1:获取车辆前方的第一预设图片,通过预设校准算法对获取的车辆前方的第一预设图片进行透视变换得到第二预设图片;

s2:按照预设车道检测算法,获取第二预设图片中的左车道线、右车道线和中心线,并对获取的第二预设图片中的左车道线、右车道线和中心线按照预设二次多项式回归算法进行曲线拟合,得到第二预设图片中以车辆为原点的左车道线、右车道线和中心线的拟合曲线;

s3:结合获取的拟合曲线以及弯曲度计算公式,获取第二预设图片中的车道线的弯曲度f以及车辆和车道线的偏离度d;

s4:结合获取的第二预设图片中车道线的弯曲度f以及车辆和车道线的偏离度d,按照预设pid策略,控制车辆保持车道线预设方向沿车道线驾驶。

进一步地,步骤s1中的预设校准算法包括步骤:

s11:获取车辆前方的第一预设图片;

s12:将获取的车辆前方第一预设图片投影到预设视平面上;

s13:通过预设透视变换公式对第一预设图片进行透视变换,并获取第二预设图片。

进一步地,步骤s13包括步骤:

s131:在第一预设图片上标定预设数量的点,并获取每个标定的点的坐标;

s132:根据预设透视变换公式,将获取的每个标定点的坐标进行透视变换,获取预设数量标定点的坐标对应的透视变换矩阵;

s133:通过获取的透视变换矩阵对第一预设图片进行变换,获取第二预设图片。

进一步地,步骤s2包括步骤:

s21:通过soble算子对第二预设图片进行卷积,提取第二预设图片中预设边缘信息,并获取第二预设图片中的边缘特征图片;

s22:在获取的第二预设图片的边缘特征图片中进行预设感兴趣区域roi划分;

s23:对划分后的roi区域按照预设行进行划定;

s24:对划定行后的roi区域进行逐行滑窗检测,并检测同一行中每一次滑窗时处于窗口内的白色像素数量;

s25:根据roi区域上获取的同一行中每一次滑窗时处于窗口内的白色像素数量,绘制对应的坐标曲线;

s26:将曲线图中的左峰值对应的点定义为左车道上的点,将曲线图中的右峰值对应的点定义为右车道上的点以及将左车道上的点和右车道上的点连线的中点定义为中心点;

s27:获取第二预设图片中预设行每一行对应的左车道上的点、右车道上的点以及左车道上的点和右车道上的点连线的中心点,并按照二次多项式回归算法进行曲线拟合,获取第二预设图片的预设车道线以及中心线的拟合曲线。

进一步地,步骤s3包括步骤:

s31:获取拟合曲线上左车道线的横坐标d1和右车道线的横坐标d2;

s32:按照预设拟合曲线切线公式,获取左车道线或右车道线的弯曲度,所述左车道线的弯曲度等于右车道线的弯曲度。

进一步地,步骤s32中的预设拟合曲线切线公式为:

ay+bx=c

其中:

-b/a为车道线在拟合曲线中与x轴交点的切线的斜率;

当y=0时,车辆和车道线的偏离度d=c/b。

进一步地,步骤s32中的车道弯曲度f的公式为:

f=sin(v,v0)*(-b/a)*(|a/-b|)

其中:

v为车道线在拟合曲线中与x轴交点的切线的指向向量;

v0为车辆在拟合曲线中的指向向量;

sin(v,v0)为车道线在拟合曲线中与x轴交点的切线的指向向量和车辆在拟合曲线中的指向向量的夹角的正弦值。

进一步地,步骤s4包括:

s41:获取预设t时刻的车道线的弯曲度f和预设t时刻的车辆和车道线的偏离度d的预设比例控制策略p(t);

s42:获取预设t时刻的车道线的弯曲度f和预设t时刻的车辆和车道线的偏离度d的预设积分控制策略i(t);

s43:获取预设t时刻的车道线的弯曲度f和预设t时刻的车辆和车道线的偏离度d的预设微分控制策略d(t);

s44:根据获取的预设比例控制策略p(t)、预设积分控制策略i(t)以及预设微分控制策略d(t),获取预设最终车道线保持策略u(t)。

进一步地:

预设比例控制策略p(t)为:p(t)=kp1f(t)-kp2g(t)

预设积分控制策略i(t)为:i(t)=ki1∫f(t)dt-ki2∫g(t)dt

预设比例控制策略d(t)为:d(t)=kd1f(t)/dt-kd2g(t)/dt

其中:

kp1为第一比例控制可调整定参数;kp2为第二比例控制可调整定参数;

ki1为第一积分控制可调整定参数;ki2为第二积分控制可调整定参数;

kd1为第一微分控制可调整定参数;kd2为第二微分控制可调整定参数;

f(t)为t时刻车道线的弯曲度f;

g(t)为t时刻车辆和车道线的偏离度d。

进一步地:

预设最终车道线保持策略u(t)为:

u(t)=p(t)+i(t)+d(t)。

进一步地,还包括步骤:

判断t时刻u(t)是否大于0;

若是,控制车辆右转;

若不是,控制车辆左转。

与现有技术相比,本发明至少包括以下有益效果:

(1)采用曲线拟合的方式,提取车道线轨迹,并采用二次函数拟合的方式保证了车道线对应的曲线的可导性,以车道线轨迹起点的切线作为车道线方向,获取车道线的弯曲度,本车道弯曲度的算法能够根据车辆当前实时的行驶状况,获取车道线的实时的弯曲度。

(2)根据获取的车道线的弯曲度同时结合了车辆偏离中心的偏离度用来进行控制决策,并且结合了pid控制方式,车辆在驾驶过程中在靠近中心的过程中同时也会对准车道线,从而避免了仅对准了中心却没有对准车道而造成的多次矫正问题。

附图说明

图1是本基于车道弯曲度的车道线保持方法的流程图一。

图2是本基于车道弯曲度的车道线保持方法中透视变换图。

图3是本基于车道弯曲度的车道线保持方法实施例中车道线透视变换对比图。

图4是本基于车道弯曲度的车道线保持方法实施例中划分roi区域图。

图5是本基于车道弯曲度的车道线保持方法实施例中对第二预设图片中预设行进行滑窗检测的结果图。

图6是本基于车道弯曲度的车道线保持方法实施例中车道线以及中心点曲线拟合图。

图7是本基于车道弯曲度的车道线保持方法实施例中第二预设图片的预设车道线以及中心线的拟合曲线。

图8是本基于车道弯曲度的车道线保持方法实施例中pid策略控制流程图。

具体实施方式

以下是本发明的具体实施例并结合附图,对本发明的技术方案作进一步的描述,但本发明并不限于这些实施例。

实施例

本实施例提供了基于车道弯曲度的车道线保持方法,如图1至图8所示,本基于车道弯曲度的车道线保持方法,主要包括三个部分来实现车道线保持的目的:

前期图像校准、车道线检测以及控制策略。

其中前期图像校准用于校准车辆前方镜头信息,用以获取最优的图像处理方案;车道检测用于检测车道线,然后将检测的车道线信息提取出来输入控制策略;控制策略根据检测到的车道线信息对车辆行驶策略进行判断。

本实施例中提供的前期图像校准的方法为:

s1:获取车辆前方的第一预设图片,通过预设校准算法对获取的车辆前方的第一预设图片进行透视变换得到第二预设图片;

s2:按照预设车道检测算法,获取第二预设图片中的左车道线、右车道线和中心线,并对获取的第二预设图片中的左车道线、右车道线和中心线按照预设二次多项式回归算法进行曲线拟合,得到第二预设图片中以车辆为原点的左车道线、右车道线和中心线的拟合曲线;

进一步地,步骤s1中的预设校准算法包括步骤:

s11:获取车辆前方的第一预设图片;

s12:将获取的车辆前方第一预设图片投影到预设视平面上;

s13:通过预设透视变换公式对第一预设图片进行透视变换,并获取第二预设图片。

进一步地,步骤s13包括步骤:

s131:在第一预设图片上标定预设数量的点,并获取每个标定的点的坐标;

s132:根据预设透视变换公式,将获取的每个标定点的坐标进行透视变换,获取预设数量标定点的坐标对应的透视变换矩阵;

s133:通过获取的透视变换矩阵对第一预设图片进行变换,获取第二预设图片。

其中由于相机的视角呈一放射锥形空间,因此会出现近大远小的情况,这对于车道线检测会造成很多不利影响,因此需进行透视变换,以免除这种状况造成的影响。

具体的透视变换过程是,将图片投影到一个新的视平面上,具体的投影变换公式为:

其中u,v为图片的预设原始坐标,其后相乘的矩阵即为透视变换矩阵;x',y'为透视变换后u,v对应的坐标,其对应的变换后的图片上二维坐标为x=x'/w',y=y'/w',即:

根据上述公式,对第一预设图片上的图像进行标定,本实施例中是对第一预设图片中的四个点和对应的第二预设图片中变换后的四个点,获取标定的转换前后的点的坐标,并形成方程组,根据方程组求出透视变换矩阵。具体的如图2所示,本实施例中标定的变换后的为第二预设图片中的四个角点,按照这四个角点的标定结果,进行透视变换可求得变换矩阵,然后利用变换矩阵对整个第二预设图片进行变换。如图3所示为第一预设图片和第二预设图片车道线透视变换前后的对比图。

经过透视变换后,即可在第二预设图片中进行车道线信息的提取。本实施例中,具体的车道线检测流程为:

首先,利用soble算子进行边缘提取,然后采用滑窗检测提取窗格中的像素信息,然后利用峰值检测确定车道线的位置,根据车道线的位置确定车道线的中心点,并对车道线以及车道线中心点进行曲线拟合,同个拟透视变换,显示车道检测信息。

其中车道线检测还可采用形状检测的方式,例如圆弧检测,目的是检测出第二预设图片上的左右车道线信息,并根据两条车道线像素位置求出车道的中心点。

具体的算法为:

s21:通过soble算子对第二预设图片进行卷积,提取第二预设图片中预设边缘信息,并获取第二预设图片中的边缘特征图片;

sobel算子是两个3x3的差分算子,分别用来获取像素点周边的梯度变化,两个矩阵表达形式如下:

其中gx用来获取水平梯度,当像素点水平方向的颜色或者灰度呈较大变化时,gx值会比较高,同理,gy可用于获取垂直梯度,根据垂直于水平梯度的比值,将其作为正切值即可求出该像素点梯度方向;通过以上说明易知,sobel算子在像素周围变化比较大的区域,即角点和边缘区域会有较大的响应,因此可有效获取边缘或者角点特征。

即提取第二预设图片中,像素梯度变化较为明显的区域,从而获得图片的边缘特征图。

s22:在获取的第二预设图片的边缘特征图片中进行预设感兴趣区域roi划分;

roi全称为regionofinterest,即感兴趣区域,机器视觉、图像处理中,从被处理的图像以方框、圆、椭圆、不规则多边形等方式勾勒出需要处理的区域,称为感兴趣区域。

对获取的第二预设图片中的边缘特征图进行感兴趣区域roi的划定,按照预设驾驶情况,车道线应当位于车辆正前方的预设区域,因此可按照如图4所示的框图进行感兴趣区域roi的划定。

s23:对划分后的roi区域按照预设行进行划定;

每个图片中,在进行图像处理过程中,都预先设定有很多行,即每一行中在第二预设图片中,都有对应的做左道线点、右车道线点以及左车道线点和右车道线点连线的中心点。

s24:对划定行后的roi区域进行逐行滑窗检测,并检测同一行中每一次滑窗时处于窗口内的白色像素数量;

s25:根据roi区域上获取的同一行中每一次滑窗时处于窗口内的白色像素数量,绘制对应的坐标曲线;

根据车道线的规律,如图5所示,同一行滑窗检测最多能检测到两次高峰值,分别对应了左右两边的车道线。

s26:将曲线图中的左峰值对应的点定义为左车道上的点,将曲线图中的右峰值对应的点定义为右车道上的点以及将左车道上的点和右车道上的点连线的中点定义为中心点;

将左右车道线的检测结果通过透视变换的逆矩阵进行变换,即可获得第一预设图片中车道线检测结果,将此结果叠加到第一预设图片上,即可显示车道线的检测结果。

s27:获取第二预设图片中预设行每一行对应的左车道上的点、右车道上的点以及左车道上的点和右车道上的点连线的中心点,并按照二次多项式回归算法进行曲线拟合,获取第二预设图片的预设车道线以及中心线的拟合曲线。

即取第二预设图片中,所有行检测出来的中心点以及左右两侧的车道线点,采用二次多项式回归的方式做曲线拟合。

根据获取的拟合曲线,即可获得车道线的弯曲度f和车辆和车道线的偏离度d;具体的步骤为:

s31:获取拟合曲线上左车道线的横坐标d1和右车道线的横坐标d2;

s32:按照预设拟合曲线切线公式,获取左车道线或右车道线的弯曲度,所述左车道线的弯曲度等于右车道线的弯曲度。

如图7所示,以车辆为原点,建立坐标系,车辆的指向方向为y轴的正方向,则检测到的车道线起始位置应当位于x轴的l点,l点横坐标值即为偏离度d值,当偏离度d为负值时表示车辆位于车道线的右侧,当偏离度d值为正时表示车辆位于车道线左侧。

由于已拟合出车道线的曲线函数,因此可求出车道线在l点处的切线r的表达式,设r的表达式为ay+bx=c,其中-b/a为该直线的斜率,当a=0时该直线垂直于x轴,由于采用二次多项式回归,因此该曲线任意处均可导,因此该直线指向向量为normalize((c-b)/a,1),normalize表示单位化操作,设该向量为v,设车辆指向方向为v0=(0,1),则取车道线倾斜度k值为v与v0的夹角正弦值乘以切线r的斜率,再除以切线r的斜率的绝对值,即:

其中,当车道线向左倾斜时f值为负,当车道线向右倾斜时f值为正。

其中控制策略采用pid控制策略,设在t时刻控制策略为u(t),当u(t)大于0表示控制车辆右转;当u(t)小于0表示控制车辆左转。

进一步地,步骤s4包括:

由人工驾驶策略可知,当车辆偏向车道线左边即d<0时应当向右转,反之则向左转,当车道线朝向车身左边即-b/a<0时应当向左转,反之向右转。f(t)与g(t)分别表示在时刻t时车道线的弯曲度f以及偏离度d。

s41:获取预设t时刻的车道线的弯曲度f和预设t时刻的车辆和车道线的偏离度d的预设比例控制策略p(t);

kp1为第一比例控制可调整定参数;kp2为第二比例控制可调整定参数;采用预设比例控制策略用于调整控制力度。

s42:获取预设t时刻的车道线的弯曲度f和预设t时刻的车辆和车道线的偏离度d的预设积分控制策略i(t);

ki1为第一积分控制可调整定参数;ki2为第二积分控制可调整定参数;采用预设积分控制策略用于修正比例控制策略中存在的稳态误差。

s43:获取预设t时刻的车道线的弯曲度f和预设t时刻的车辆和车道线的偏离度d的预设微分控制策略d(t);

kd1为第一微分控制可调整定参数;kd2为第二微分控制可调整定参数;采用预设微分控制策略用于减缓控制修正过程中造成的震荡。

s44:根据获取的预设比例控制策略p(t)、预设积分控制策略i(t)以及预设微分控制策略d(t),获取预设最终车道线保持策略u(t)。

进一步地:

预设比例控制策略p(t)为:p(t)=kp1f(t)-kp2g(t)

预设积分控制策略i(t)为:i(t)=ki1∫f(t)dt-ki2∫g(t)dt

预设比例控制策略d(t)为:d(t)=kd1f(t)/dt-kd2g(t)/dt

预设最终车道线保持策略u(t)为:

u(t)=p(t)+i(t)+d(t)。

即u(t)=kp1f(t)-kp2g(t)+ki1∫f(t)dt-ki2∫g(t)dt+kd1f(t)/dt-kd2g(t)/dt

根据u(t)的正负,进行车辆方向的控制。

采用本方法,能够本发明采用曲线拟合的方式,提取出车道线的中心线,即车道线的轨迹,采用二次函数拟合的方式保证了车道曲线可导性;以车道线轨迹起点的切线作为车道线方向,同时结合了车辆偏离中心的偏离度用来进行控制决策,并且结合了pid控制方式,车辆在驾驶过程中在靠近中心的过程中同时也会对准车道线,从而避免了仅对准了中心却没有对准车道而造成的多次矫正问题。

本文中所描述的具体实施例仅仅是对本发明精神作举例说明。本发明所属技术领域的技术人员可以对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,但并不会偏离本发明的精神所定义的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1