车道检测问题研究了很长时间,本博客以此为主题进行一系列探究,包括别人论文以及实现结果,希望能够和广大计算机视觉研究者共同进步!
本文主要以左右车道检测方法中基于车道侧面连续的曲线拟合方法进行研究。
通常的车道检测方法分两步:(1)特征提取(2)车道几何模型的建立与匹配
首先我们来说说特征提取部分:
特征提取的目的是最大限度地:1.保留可能是车道的pixels2.去掉可能非车道的pixels
《On the design of a single lane-marking detectors regardless the on-board camera's position》提出了一种思想,基于假设“车道间距离和车道上的梯度在一个常区间范围内”,首先定义该算法中的几个参数:
S0:梯度阈值1.
只有当像素梯度>S0时该像素点予以下一步提取考虑。为了不将所有可能成为车道的像素过滤掉,我们选用的S0应尽可能小。这一步其实可以用动态形状跟踪(dynamic shape tracking)做,但这样的问题是如果有一条新车道出现了就不work了。
Uinit:梯度比S0大的第一个位置
Ucurrent:当前的像素点坐标
[S1,S2]:每一条(左或右)车道的width区间,相当于threshold,分别由Si=Ci·height+Di得到,其中
height为图片的height,
Ci=Wi · cos(a)/h,
Di=-Wi · cos(a)/h-Wi · sin(a)/h
,h为相机放置的高度,a为相机拍方向和地面所成角度,i=1,2。算法实现过程如下:
对于图像的每一行 i进行以下步骤:
简单地说就是从一行的开始找起,只要该点Gradient>S0就一直往后探测是否满足 I(Ucurrent)>Threshold, 知道不满足->跳出。如果这两点之间距离在[S1,S2]之间则判断检测到车道线位置为其中点,否则将Uinit++进行下一次检测。
车道检测问题研究了很长时间,本文以此为主题进行一系列探究,包括别人论文以及实现结果,希望能够和广大计算机视觉研究者共同进步!
本文主要以左右车道检测方法中基于车道侧面连续的曲线拟合方法进行研究。
通常的车道检测方法分两步:(1)特征提取(2)车道几何模型的建立与匹配
在车道检测问题探究(一)车道特征提取(上) http://blog.csdn.net/abcjennifer/article/details/7453286 中我们已经讲过怎样提取车道特征并滤波,下面我们来讨论下车道形状估计,即车道几何建模、车道拟合的做法。
A. 道路线性模型&双曲线模型
通常道路检测范围为[10m,40m]内,这样就可以用线性方程作为道路模型,即
(1)
式中(u,v)表示拍摄图像中的车道曲线上的像素坐标,为系数矩阵,为u的初等函数。
如X(v)={3v,1/v},A={2,3}之类的……
这样的线性拟合可以将模型估计问题变成一个匹配问题从而加快检测速度。但实际上我们更通常地使用双曲多项式来进行车道拟合:
这里用进行建模,其中A为参数矩阵(系数矩阵),X(v)为双曲多项基。
B. 含噪声的车道模型
通常道路模型的鲁棒性问题由卡尔曼预测滤波器和距离预测门限结合解决。因此,我们考虑一个高斯噪声模型模拟车道。但《 Lising Robust Estimation Algorithms for tracking Ezplicit Curves. - In Proceedings Eumpesn Conference on Computer Vision (ECCV2002) May 2002, Part I, pp 492-507. 》中说高斯模型在很多情况下不适于道路图像,通过看提取出特征的错误分布的对数直方图就可以得知了:如果采用高斯分布,得到的直方图会成为一条抛物线。所以实际上,噪声模型并非服从高斯分布(如下图为对数直方图)。
因此,上面那篇文章引用了一个符合实际噪声分布的两参数模型,其pdf定义如下:
(2)
其中,第一个参数α表示该pdf被减少的程度,第二个参数σ位比例参数。
C. 鲁棒的车道参数估计
首先我们介绍一下匹配算法(其实在上面那篇文献中有详细说明,包括收敛性证明),然后描述该算法怎样应用于不同类型动态模型的建立,最后用一个更好的协方差矩阵来进行优化。
我们假设在第一步http://blog.csdn.net/abcjennifer/article/details/7453286中检测到的车道中心是(1)式描述的曲线的噪声测量。现在我们假定噪声b仅在u轴上符合(2)所示的概率密度。因此我们有 我们的目的为估计能使“一侧车道线上所提取出来的n个特征点(车道中心)都尽量满足该方程”的曲线参数A。这是个不断迭代,修改权值的算法,每一步都要解决一个线性问题。
道路模型匹配算法可以利用两帧相邻图像之间的时间连续性嵌入到车道跟踪算法中。著名的跟踪算法是Condensation Algorithm(浓缩算法)和Kalman Filter,其中,Kalman filter以其线性复杂度成为优势,但问题是它默认假定噪声服从高斯分布,而Condensation Algorithm无假设服从什么分布,而是采用估计的方法。从我们的实验结果中看,对于曲线参数噪声而言,这两种方法得到的曲线参数相差不多,因此我们用Kalman滤波法(因为算法复杂度低)进行车道跟踪。因此用卡尔曼滤波的主要问题就是需要在车道拟合后获得曲线参数A协防差矩阵的准确估计。
对于放置在车辆侧边的摄像头,我们采用直线拟合即可:y=kx+b;
对于放置在车辆前面的摄像头,我们采用抛物线拟合:
由于情况1是情况2的特例,因此我们只做抛物线拟合。上文已做陈述,在图像坐标系中,图像抛物线可以由描述