发明内容
本发明所要解决的技术问题是克服现有技术的不足而提供一种基于时域模糊和卡尔曼滤波器的车道线检测方法,通过引入时域模糊处理与卡尔曼预测相结合的检测跟踪方法达到车道线的实时检测与跟踪,同时用RBF算法检测车道线的颜色。
本发明为解决上述技术问题采用以下技术方案:
根据本发明提出的一种基于时域模糊和卡尔曼滤波器的车道线检测方法,包括以下步骤:
步骤一、采集车辆前方路况的原始图像;
步骤二、将步骤一得到的原始图像经过时域模糊处理,根据公式(1),得到均值图像;
其中,AverageImage为均值图像,I(n)为第n帧图像,i是帧偏移索引,N为预先设定均值图像的数量,1<N<5,且N为整数,n为处理的图像数量且为大于3的整数,I(n-i)为第n-i帧图像;
步骤三、将步骤二得到的均值图像经过逆透视变换得到逆透视图;
步骤四、利用二维分离的高斯核对步骤二得到的逆透视图进行滤波阈值化处理,得到含有离散边缘像素点的灰度图像;
步骤五、采用霍夫变换和随机抽样一致算法对步骤四中灰度图像中的离散的边缘像素点进行分区域直线拟合,检测出车道线。
作为本发明的一种基于时域模糊和卡尔曼滤波器的车道线检测方法的进一步优化的方案,所述步骤五之后还包括步骤六和步骤七,具体如下:
步骤六、初始化卡尔曼滤波器;
步骤601、将步骤五检测出的车道线由直角坐标系转换到极坐标系ρ-θ下,车道线通过侧向距离ρ和方位角θ来表示;采用两组卡尔曼滤波器对左右两边的车道线进行预测跟踪,这两组卡尔曼滤波器分别为第一卡尔曼滤波器、第二卡尔曼滤波器;
步骤602、对检测到的车道线进行判别,从第N帧图像开始:当方位角θ的值为正数,则车道线是左边车道线,当方位角θ的值为负数,则车道线是右边车道线;
步骤603、将方位角θ由弧度制转换为角度值;
步骤604、采用侧向距离ρ和转换到角度值下的方位角θ对卡尔曼滤波器组进行初始化:当开始只检测到左边车道线就初始化第一卡尔曼滤波器,后续帧检测到右边车道线时再初始化第二卡尔曼滤波器;当开始只检测到右边车道线就初始化第二卡尔曼滤波器,后续帧检测到左边车道线时再初始化第一卡尔曼滤波器;当左右两边车道线都检测出来,则第一卡尔曼滤波器和第二卡尔曼滤波器都进行初始化;
步骤七、采用卡尔曼滤波器实现车道线的预测与跟踪:
步骤701、当检测出来的车道线的数量为2,则左右两边的车道线都已检测出来,用极坐标系ρ-θ下的测量值表示左边车道线、右边车道线的位置,并用测量值对2组卡尔曼滤波器进行当前帧的更新和下一帧车道线位置的预测;
当检测出来的车道线的数量为1时,进一步判断:
当θ为正数,则检测出左边车道线,左边车道线的位置通过极坐标系ρ-θ下的测量值表示,并用测量值对第一卡尔曼滤波器进行当前帧的更新和下一帧车道线位置的预测;用第二卡尔曼滤波器上一帧的预测值表示右边车道线的位置,并用该预测值对第二卡尔曼滤波器进行当前帧的更新和下一帧车道线位置的预测;
当θ的值为负数,则检测出右边车道线,右边车道线的位置通过极坐标系ρ-θ下的测量值表示,并用测量值对第二卡尔曼滤波器进行当前帧的更新和下一帧车道线位置的预测;用第一卡尔曼滤波器上一帧的预测值表示左边车道线的位置,并用该预测值对第一卡尔曼滤波器进行当前帧的更新和下一帧车道线位置的预测;
没有检测到车道线时,则分别用第一卡尔曼滤波器、第二卡尔曼滤波器上一帧的预测值表示左右车道线当前帧的位置,并用预测值对左右两边的车道线进行当前帧的更新和下一帧车道线位置的预测;
当连续五帧都没有检测到车道线时停止卡尔曼滤波器的预测更新直到下一次检测到车道线;
步骤702、将步骤701中检测到车道线的位置坐标由ρ-θ极坐标到直角坐标系下,并进行存储。
作为本发明的一种基于时域模糊和卡尔曼滤波器的车道线检测方法的进一步优化的方案,所述步骤七之后还包括步骤八,具体如下:
采用RBF算法检测车道线的颜色,具体步骤如下:
步骤801、对步骤一的原始图像进行车道线的颜色检测,将RGB颜色空间中划分成M个区间,每个区间为直方图的一个bin,计算出颜色落在每个区间内的像素数量得到颜色直方图,M为大于2的整数;并定义基函数的中心cj和RBF隐含层到输出层的权值wj,j为隐层节点的标号;
步骤802、初始化颜色直方图,计算原始图像中像素点的红色、绿色、蓝色这三通道的各分量bin的大小并计算红绿、绿蓝、红蓝各分量bin大小;
步骤803、采用径向基函数计算权重,径向基函数为高斯函数,高斯函数为:
其中,Y为权重,wj为隐含层与输出层间的权值,σ为基函数的宽度,cj为基函数的中心,p为输入空间的样本点数量,xp为输入空间样本点,h是隐层节点的个数;
步骤804、当步骤803中计算得到的权值大于预先设置的RBF颜色分类阈值,则为黄色车道线,否则为白色车道线。
作为本发明的一种基于时域模糊和卡尔曼滤波器的车道线检测方法的进一步优化的方案,所述步骤三中经过逆透变换得到逆透视图的具体方法如下:依据摄像机的内部参数:偏航角、俯仰角、焦距以及图像的光学中心坐标获取图像的消失点位置坐标;将消失点以下区域确定为感兴趣区域,将感兴趣区域内任意一点,经过图像坐标系到世界坐标系的转换矩阵进行图像坐标系到世界坐标系的转换,得到对应的路面坐标下的点,对应路面坐标下的所有点组成逆透视图。
作为本发明的一种基于时域模糊和卡尔曼滤波器的车道线检测方法的进一步优化的方案,所述步骤四中利用二维分离的高斯核对步骤二得到的逆透视图进行滤波阈值化处理,具体方法是:水平方向采用二阶差分高斯函数:其中,σx是依据所要检测的车道线的宽度调整的,x为像素点的x坐标;垂直方向采用平滑高斯函数:σy是依据所要检测的车道线长度来调整的,y为像素点的y坐标。
本发明采用以上技术方案与现有技术相比,具有以下技术效果:本发明是针对视频场景中车道线的漏检测以及误检测的解决方案,结合时域模糊、卡尔曼预测以及RBF算法,考虑车道线的类型以及车道线的颜色信息,有效避免了场景中的车道线的虚线不连续造成的漏检,以及路面标示造成的误检,同时提高了检测的速度。
具体实施方式
下面结合附图对本发明的技术方案做进一步的详细说明:
RBF是神经网络学习算法,径向基函数(Radical Basis Function,RBF)方法是Powell在1985年提出的。所谓径向基函数,其实就是某种沿径向对称的标量函数。通常定义为空间中任一点x到某一中心c之间欧氏距离的单调函数。到了1988年Moody和Darken提出了一种神经网络结构,即RBF神经网络,属于前向神经网络类型,它能够以任意精度逼近任意连续函数,特别适合于解决分类问题。
卡尔曼滤波器系统模型:一个离散动态系统可分解成两个子过程:m维动态系统和p维(p≤m)的观测系统;m维动态离散系统的状态方程为:Xk=AXk-1+Buk+Wk-1;p维观测系统的观测方程为:Zk=HXk+vk其中Xk为k时刻的系统状态向量,A表示状态转移矩阵,B表示可选控制输入u∈Rm到当前状态的转移矩阵,成为系统的作用矩阵;uk是系统的输入向量;Wk-1表示状态模型的误差,均值为E[Wk]=0。Zk是k时刻的状态预测向量;H为观测矩阵,vk为测量噪声。在第k步之前,定义为第k步的先验状态估计。在给定观测值Zk之后,定义是第k步的后验状态估计。
如图1所示是卡尔曼滤波算法,是卡尔曼滤波的两个部分。预测步骤,包括状态预测和误差协方差预测;修改步骤,包括卡尔曼增益计算和后面的状态修改、误差协方差修改。卡尔曼滤波器利用反馈控制系统估计物体运动状态。实际应用中根据具体情况选取滤波初始值,然后可以通过得到的测量向量和公式,对系统状态向量进行卡尔曼滤波估计。预测公式负责利用当前的状态和错误协方差估计来为下一步时间状态得到先验估计;而修正公式负责反馈部分,如将新的观测和先验估计一起考虑,从而获得后验估计。
如图2所示是本发明的车道线检测流程图,一种基于时域模糊和卡尔曼滤波器的车道线检测方法,包括以下步骤:
步骤一、采集车辆前方路况的原始图像;
步骤二、将步骤一得到的原始图像经过时域模糊处理,根据公式(1),得到均值图像;
其中,AverageImage为均值图像,I(n)为第n帧图像,i是帧偏移索引,N为预先设定均值图像的数量,1<N<5,且N为整数,n为处理的图像数量且为大于3的整数,I(n-i)为第n-i帧图像;
步骤三、将步骤二得到的均值图像经过逆透视变换得到逆透视图;
步骤四、利用二维分离的高斯核对步骤二得到的逆透视图进行滤波阈值化处理,得到含有离散边缘像素点的灰度图像;
步骤五、采用霍夫变换和随机抽样一致算法对步骤四中灰度图像中的离散的边缘像素点进行分区域直线拟合,检测出车道线。
所述步骤五之后还包括步骤六和步骤七,具体如下:
步骤六、初始化卡尔曼滤波器;
步骤601、将步骤五检测出的车道线由直角坐标系转换到极坐标系ρ-θ下,车道线通过侧向距离ρ和方位角θ来表示;采用两组卡尔曼滤波器对左右两边的车道线进行预测跟踪,这两组卡尔曼滤波器分别为第一卡尔曼滤波器、第二卡尔曼滤波器;
步骤602、对检测到的车道线进行判别,从第N帧图像开始:当方位角θ的值为正数,则车道线是左边车道线,当方位角θ的值为负数,则车道线是右边车道线;
步骤603、将方位角θ由弧度制转换为角度值;
步骤604、采用侧向距离ρ和转换到角度值下的方位角θ对卡尔曼滤波器组进行初始化:当开始只检测到左边车道线就初始化第一卡尔曼滤波器,后续帧检测到右边车道线时再初始化第二卡尔曼滤波器;当开始只检测到右边车道线就初始化第二卡尔曼滤波器,后续帧检测到左边车道线时再初始化第一卡尔曼滤波器;当左右两边车道线都检测出来,则第一卡尔曼滤波器和第二卡尔曼滤波器都进行初始化;
步骤七、采用卡尔曼滤波器实现车道线的预测与跟踪:
步骤701、当检测出来的车道线的数量为2,则左右两边的车道线都已检测出来,用极坐标系ρ-θ下的测量值表示左边车道线、右边车道线的位置,并用测量值对2组卡尔曼滤波器进行当前帧的更新和下一帧车道线位置的预测;
当检测出来的车道线的数量为1时,进一步判断:
当θ为正数,则检测出左边车道线,左边车道线的位置通过极坐标系ρ-θ下的测量值表示,并用测量值对第一卡尔曼滤波器进行当前帧的更新和下一帧车道线位置的预测;用第二卡尔曼滤波器上一帧的预测值表示右边车道线的位置,并用该预测值对第二卡尔曼滤波器进行当前帧的更新和下一帧车道线位置的预测;
当θ的值为负数,则检测出右边车道线,右边车道线的位置通过极坐标系ρ-θ下的测量值表示,并用测量值对第二卡尔曼滤波器进行当前帧的更新和下一帧车道线位置的预测;用第一卡尔曼滤波器上一帧的预测值表示左边车道线的位置,并用该预测值对第一卡尔曼滤波器进行当前帧的更新和下一帧车道线位置的预测;
没有检测到车道线时,则分别用第一卡尔曼滤波器、第二卡尔曼滤波器上一帧的预测值表示左右车道线当前帧的位置,并用预测值对左右两边的车道线进行当前帧的更新和下一帧车道线位置的预测;
当连续五帧都没有检测到车道线时停止卡尔曼滤波器的预测更新直到下一次检测到车道线;
步骤702、将步骤701中检测到车道线的位置坐标由ρ-θ极坐标到直角坐标系下,并进行存储。
所述步骤七之后还包括步骤八,具体如下:
采用RBF算法检测车道线的颜色,具体步骤如下:
步骤801、对步骤一的原始图像进行车道线的颜色检测,将RGB颜色空间中划分成M个区间,每个区间为直方图的一个bin,计算出颜色落在每个区间内的像素数量得到颜色直方图,M为大于2的整数;并定义基函数的中心cj和RBF隐含层到输出层的权值wj,j为隐层节点的标号;
步骤802、初始化颜色直方图,计算原始图像中像素点的红色、绿色、蓝色这三通道的各分量bin的大小并计算红绿、绿蓝、红蓝各分量bin大小;
步骤803、采用径向基函数计算权重,径向基函数为高斯函数,高斯函数为:
其中,Y为权重,wj为隐含层与输出层间的权值,σ为基函数的宽度,cj为基函数的中心,p为输入空间的样本点数量,xp为输入空间样本点,h是隐层节点的个数;
步骤804、当步骤803中计算得到的权值大于预先设置的RBF颜色分类阈值,则为黄色车道线,否则为白色车道线。
所述步骤三中经过逆透变换得到逆透视图的具体方法如下:依据摄像机的内部参数:偏航角、俯仰角、焦距以及图像的光学中心坐标获取图像的消失点位置坐标;将消失点以下区域确定为感兴趣区域,将感兴趣区域内任意一点,经过图像坐标系到世界坐标系的转换矩阵进行图像坐标系到世界坐标系的转换,得到对应的路面坐标下的点,对应路面坐标下的所有点组成逆透视图。
所述步骤四中利用二维分离的高斯核对步骤二得到的逆透视图进行滤波阈值化处理,具体方法是:水平方向采用二阶差分高斯函数:其中,σx是依据所要检测的车道线的宽度调整的,x为像素点的x坐标;垂直方向采用平滑高斯函数:σy是依据所要检测的车道线长度来调整的,y为像素点的y坐标。
本发明的一种基于时域模糊和卡尔曼滤波器的车道线检测方法在实际应用过程中,具体如下:
1、时域模糊和IPM(逆透视变换)
本发明利用时域模糊,减少路面不相干标示和零均值高斯噪声的影响,同时用均值图像来连接虚车道线,使虚车道线看起来连续,短的车道线看起来更长。均值图像定义为
其中,AverageImage为均值图像,I(n)为第n帧图像,i是帧偏移索引,N为预先设定均值图像的数量,1<N<5,且N为整数,n为处理的图像数量且为大于3的整数,I(n-i)为第n-i帧图像。本发明采用N=3是用连续三帧图像的平均值来作为当前帧,这种时域的平滑模糊处理能够平滑图像消除噪声的影响。由于在数据采集时没有记录车辆的GPS位置信息、转向角、车辆的行驶速度,因此时域模糊并没有结合车辆的动态信息,不影响车辆偏离报警系统中车辆与车道线间距离的计算。时域模糊用的仅仅是前面两帧的图像,由于图像序列之间的时间间隔非常小,运动目标在短时间内的特征不会发生很大变化因此并不改变车道线的正常宽度,另外车道线的变化幅度远远小于车辆的行驶速度,因此车道线也不会严重横向拉伸。具体方法如下:如果视频的帧数为第一帧,存储图像;如果视频的帧数为第二帧,存储图像;如果视频的帧数大于2,进行时域模糊处理,将当前帧图像和前面存储的两帧图像相加求均值,同时更新图像的存储空间,将当前帧图像存储为前一帧,将前一帧图像存储在更前一帧空间里,实现连续三帧图像的均值。
本发明采用逆透视映射消除透视作用,对经过时域模糊处理得到的均值图像进行逆透视变换得到逆透视图,将消失点以下区域(近视场区域)映射到一个新的平面上,这样可以避免霍夫变换检测到的直线会在远处相交于一点,使得车道线区域的划分更加准确。逆透视映射利用摄像机的角度、高度等位置信息建立三维坐标系,消除透视作用,得到俯视图。具体方法如下:依据摄像机的内部参数:偏航角、俯仰角、焦距以及图像的光学中心坐标获取图像的消失点位置坐标;将消失点以下区域确定为感兴趣区域,将感兴趣区域内任意一点,经过图像坐标系到世界坐标系的转换矩阵进行图像坐标系到世界坐标系的转换,得到对应的路面坐标下的点,对应路面坐标下的所有点组成逆透视图。
2、滤波阈值化
经过逆透视映射得到逆透视图,本文利用二维分离的高斯核对逆透视图进行滤波处理,经过逆透视变换的车道线是平行和竖直的,车道线沿水平方向灰度变化剧烈,在水平方向采用二阶导进行滤波处理。
水平方向采用二阶差分高斯函数:其中,σx是依据所要检测的车道线的宽度调整的,x为像素点的x坐标;垂直方向采用平滑高斯函数:σy是依据所要检测的车道线长度来调整的,y为像素点的y坐标。在逆透视图像中σx=3inches。
对滤波后得到的滤波图像采用全局阈值T2进行阈值化处理得到阈值化图像:
fthresholded(x,y)为像素点(x,y)的阈值化值,ffiltered(x,y)为像素点(x,y)的滤波值,进一步地,本发明所述全局阈值范围T2设置为0.975(图像进行了归一化处理)。
3、霍夫变换和RANSAC(随机抽样一致算法)进行车道线的定位
利用霍夫变换确定每一边车道线所在的区域位置,用RANSAC算法分区域拟合每一条车道线,在拟合一个区域的时候,将其它区域内的像素点置零,这样可以减少随机抽样一致算法迭代的次数减少运算,选取得分最高为最终拟合的车道线。
4、卡尔曼预测修正实现车道线的检测与跟踪
由于虚车道线的不连续性会造成虚车道线的漏检,对于车道线的暂时消失可以利用卡尔曼来预测,如果连续多帧车道线都没有出现则不再进行预测跟踪直到车道线的再次出现。将由两个端点确定的车道线转换到极坐标系下的ρ-θ确定,这样就相当于对车道线的中心点进行预测。车道线的运动状态用向量x(n1)来表示,状态向量x(n1)和观测向量y(n1)定义为、y(n1)=[ρ(n1)θ(n1)]T。其中ρ(n1)表示车道线在状态n1的侧向距离,θ(n1)表示车道线在状态n1的方位角,表示车道线在状态n1,即t时刻的径向速度,表示车道线在状态n1,即t时刻的角速度。
状态转移矩阵A定义为:
观测矩阵H定义为:
霍夫变换和随机抽样一致算法的结合使用对于车道线可实现准确定位,如果采集到的车道线含有虚车道,那么经过霍夫变换和随机抽样一致算法拟合,可能检测不出车道线的位置或者是路面破损、太阳光直射也会造成车道线的漏检测。本发明采用卡尔曼滤波器对车道线进行预测更新,具体如上述步骤六、步骤七。
5、RBF算法检测车道线的颜色
具体方案为:计算颜色直方图需要将颜色空间划分成若干个小的颜色空间,每个小区间成为直方图的一个bin,这个过程称为颜色量化。然后通过计算颜色落在每个小区间内的像素数量可以得到颜色直方图。首先,定义R、G、B三分量的直方图的bin数量,本发明均定义为16,另外定义三个bin来存储RG、GB、RB差值分量的像素数量则创建的直方图的大小为1*51;定义基函数的中心cj和RBF隐含层到输出层的权值wj;其次,初始化直方图,计算经过霍夫变换和随机抽样一致算法得到的图像上点的各分量bin的大小并计算红绿、绿蓝、红蓝分量的bin大小;然后,计算神经网络模型的输出:计算输入即bin的大小与权值向量的距离作为径向基函数的输入变量,根据径向基函数的计算公式来计算权重即为神经网络模型的输出;最后是分类处理,当计算的权值大于预先设置的RBF颜色分类阈值T1,T1为-0.1,就判断为黄色车道线否则为白色车道线。
径向基函数为高斯函数,计算公式
其中,Y为权重,wj为隐含层与输出层间的权值,σ为基函数的宽度,cj为基函数的中心,p为输入空间的样本点数量,xp为输入空间样本点,h是隐层节点的个数,i为隐层节点的标号,本发明中xp为各bin的大小。本发明σ2为400,cj为基函数的中心,本发明将基函数中心的数量h设为10,xp为输入空间样本点,本发明中xp为各bin的大小,则输入空间的样本点数量p为51。
上面结合附图对本发明的实施方式作了详细说明,但是本发明并不限于上述实施方式,在本领域普通技术人员所具备的知识范围内,还可以在不脱离本发明宗旨的前提下做出各种变化。