一种车道线的快速检测方法与流程

文档序号:11951973阅读:3833来源:国知局
一种车道线的快速检测方法与流程

本发明属于模式识别领域。

技术背景

每年全世界范围内都有很多人因为车辆行驶偏离而丧生于车祸当中,为了避免这样的事情发生,人们提出了一种智能辅助驾驶系统,能够在一定程度上预警驾驶员,达到减少此类事故发生的效果。我们主要研究的车道线检测方法,便是智能驾驶辅助系统中很重要的一部分。在此领域已经提出了一系列获得良好效果的算法,其中包括基于模板、基于纹理、基于区域的算法。

车道线的快速准确的检测辅助驾驶系统中最重要的一个指标,尤其在高速智能车辆的导航方面,尽管近几年里已经提出了不少有效的方法,但不是因为耗时较长,就是检测效果不够理想,总之很难达到实际应用的程度。

例如Shenyan Zhou在“A Novel Lane Detection based on Geometrical Model and Gabor Filter”中提出的基于模板和Gabor滤波器的方法,此方法看起来很好,但实际中很难发挥作用,因为其中的车道线宽度和消失点只有在良好的条件下才能检测出来。Yue Wang在“Lane detection and tracking using B-Snake”中利用的B-Snake和消失点进行车道线检测,具有较高的检测率,但是耗时较长,1s中仅能处理2帧图片,在实际应用中,这是绝对不可取的。除此新颖的算法之外,一些经典的算法如GOLD等,均因为某些方面不符合要求而不能达到实际应用的效果。



技术实现要素:

本发明所要解决的技术问题是,提供一种能够快速、准确定位车道线的方法。

本发明为解决上述技术问题所采用的技术方案是,一种车道线的快速检测方法,包括以下步骤:

1)训练步骤:

1-1)对样本图像进行标注得到全部样本的类别标签yn,n为样本总数:用小块矩形框将车道线区域标注为正样本,标注类别标签为+1,在非车道线区域随机采样大于正样本数量的负样本,标注类别标签为-1;

1-2)对标注的正负样本统一缩放到k*k的窗口大小并提取梯度特征将类别标签yn与梯度特征用来训练第一级支持向量机SVM分类器得到模型参数Rk*k表示k*k维的向量,·表示内积;

1-3)对第一级SVM分类器训练完成后,对样本图像的图像金字塔的各尺寸(wo,ho)的图片上进行k*k的窗口滑窗,计算尺寸(wo,ho)下每一个窗口梯度特征将窗口梯度特征输入第一级SVM分类器得到尺寸(wo,ho)下的分数Sl,图像金字塔的不同尺寸(wo,ho)的个数为M;

1-4)利用图像金字塔各尺寸(wo,ho)下的分数Sl以及对应的类别标签yn训练第二级SVM分类器得到不同尺寸(wo,ho)下的模型参数vm和模型参数tm,m=1,2,…,M;

2)检测步骤:

2-1)对检测图像的图像金字塔的各尺寸(wo,ho)的图片上进行k*k的窗口滑窗,计算尺寸(wo,ho)下每一个窗口梯度特征将窗口梯度特征输入第一级SVM分类器得到尺寸(wo,ho)下的分数Sl

2-2)将从第一级分数SVM分类器输出Sl输入第二级SVM分类器得到检测图像的图像金字塔的各尺寸(wo,ho)的图片中各窗口的分数Ol,Ol=vm·Sl+tm

2-3)对所有窗口的分数Ol进行从大到小排序,取前面N个窗口作为候选目标窗口;再使用非极大值抑制消除多余的候选窗口;

2-4)对使用非极大值抑制处理后的候选窗口进行二值化,得到车道线所在的白色区域;

2-5)对白色区域进行直线拟合得到小块车道线直线方程;

2-6)利用k-means聚类对所有小块车道线直线方程的斜率和截距进行聚类,聚类的中心即为车道线的斜率和截距,得到检测图片中所有车道线的直线方程;

2-7)选取最靠近图像中央的两条车道线即为当前车道的车道线。

针对车道线有实线和虚线两种情况,且车道线本身为长条状,不易于进行样本的标注的特点,本发明将车道线分块,以小块为单位进行检测;针对车道线简单的颜色和轮廓信息,采用计算量很小的梯度特征,能快速的找到车道线的一些小块,使得车道线能够被快速的检测出来;使用两级的SVM分类器,第一级SVM采用梯度特征检测车道线目标,第二级SVM对不同尺度的图像赋予不同的权重,从而得到更为准确的检测结果;最后,将欧式空间的距离投影到“截距-斜率”空间进行聚类,使同一条车道线的小块聚为一类,使用直线拟合得到车道线的位置。

本发明的有益效果是,能快速、准确的检测出当前车道线的位置。

附图说明

图1标注的训练样本;

图2检测出车道线的小块;

图3两条车道线的k、b聚类示意图;

图4检测到的车道线。

具体实施方式

为了方便描述本发明的内容,首先对以下现有技术进行说明。

1:图像金字塔。对于一幅大小为(w,h)的输入图像,进行M次缩小或者放大操作,得到M个不同尺寸的图像,它们的尺寸为{(wo,ho)},以M=64为例,wo,ho∈{8,16,32,64,126,256,512,1024}。

2:梯度特征。对于每一个大小为(wo,ho)的图像,使用滑窗的方法,用k*k的窗口依次滑过整幅图像,得到一系列的窗口。对于每一个窗口,提取图像的梯度特征,则每一个窗口的特征为k*k的矩阵,将该矩阵排列成一个k*k维的向量实施例中取8*8的窗口。

I(i,j)表示图像中位置为(i,j)的像素。I(i,j)dx表示像素I(i,j)在x方向上的微分,I(i,j)dy表示像素I(i,j)在y方向上的微分,G(i,j)表示像素点(i,j)上的梯度,;I(i,j)dy表示像素I(i,j)在y方向上的微分:

G(i,j)=|I(i,j)dx|+|I(i,j)dy|

I(i,j)dx=I(i+1,j)-I(i,j)

I(i,j)dy=I(i,j+1)-I(i,j)

是8*8窗口的梯度向量,包含64个G(i,j)。

3:支持向量机SVM算法(Support Vector Machine)。SVM算法在解决小样本、非线性及高维模式识别中表现出许多特有的优势,并能够推广应用到函数拟合等其他机器学习问题中,是一种常用的分类算法,它能够最大化两个类别之间的距离,以此来得到更好的分类效果。对于线性的SVM算法g(x),它能够通过输入特征得到线性模型的模型参数

4:K-means算法。K-means算法是硬聚类算法,是典型的基于原型的目标函数聚类方法的代表,它是数据点到原型的某种距离作为优化的目标函数,利用函数求极值的方法得到迭代运算的调整规则。K-means算法以欧式距离作为相似度测度,它是求对应某一初始聚类中心向量V最优分类,使得评价指标J最小。算法采用误差平方和准则函数作为聚类准则函数。

5:非极大值抑制。非极大值抑制(Non-Maximum Suppression,NMS)主要目的是为了消除多余的候选框,可以被理解为局部最大搜索。主要步骤如下:(1)将初始检测窗口按照检测分数从高到低排序;(2)将第1个初始检测窗口作为当前的抑制窗口;(3)将所有检测分数比当前抑制窗口低的初始窗口作为被抑制窗口。计算当前抑制窗口与被抑制窗口的重合面积比率:面积的交/面积的并。剔除重合面积比率高于设定阈值的窗口;(4)如果只剩最后一个初始检测窗口则结束,否则按照排好的顺序,取下一个未被抑制的窗口作为抑制窗口,转到步骤(3)。

本发明提出两级的SVM算法来检测一系列车道线的小块,这个过程分为训练和检测两步。

1)训练步骤:

1-1)如图1所示,对样本图像进行标注得到全部样本的类别标签yn,n为样本总数:用小块矩形框将车道线区域标注为正样本,标注类别标签为+1,在非车道线区域随机采样大于正样本数量的负样本,标注类别标签为-1,这里使用大约正样本数量5倍的负样本;

1-2)对标注的正负样本统一缩放到k*k的窗口大小并提取梯度特征将类别标签yn与梯度特征用来训练第一级支持向量机SVM分类器得到模型参数R64表示64维的向量,·表示内积;

1-3)对第一级SVM分类器训练完成后,对样本图像的图像金字塔的各尺寸(wo,ho)的图片上进行k*k的窗口滑窗,计算尺寸(wo,ho)下每一个窗口梯度特征将窗口梯度特征输入第一级SVM分类器得到尺寸(wo,ho)下的分数Sl,Sl是一个数值;图像金字塔的不同尺寸(wo,ho)的个数为M;

1-4)利用图像金字塔各尺寸(wo,ho)下的分数Sl以及对应的类别标签yn训练第二级SVM分类器得到不同尺寸(wo,ho)下的模型参数vm和模型参数tm,第二级SVM分类器共有64个,m=1,2,…,64;

2)检测步骤:

2-1)由于每一个大小为(wo,ho)的图像中出现目标的可能性并不相同,因此对检测图像的图像金字塔的各尺寸(wo,ho)∈{8,16,32,64,126,256,512,1024}的图片上进行8*8的窗口滑窗,计算尺寸(wo,ho)下每一个窗口梯度特征将窗口梯度特征输入第一级SVM分类器得到尺寸(wo,ho)下的分数Sl,Sl表示对应的样本属于正负样本的可能性,若Sl>0,那么Sl越接近+1越可能属于正样本;若Sl<0,那么Sl越接近-1越可能属于负样本;

2-2)将从第一级分数SVM分类器输出对检测图像的图像金字塔的各尺寸(wo,ho)∈{8,16,32,64,126,256,512,1024}下的分数Sl输入第二级SVM分类器得到检测图像的图像金字塔的各尺寸(wo,ho)的图片中各窗口的分数Ol,Ol=vm·Sl+tm,分数Ol表示目标的可能性,Ol∈[-1,+1],Ol越大则越有可能为目标;

2-3)对所有窗口的分数Ol进行从大到小排序,取前面200个窗口作为候选目标窗口;再使用非极大值抑制消除多余的候选窗口,得到车道线小块的那些窗口,如图2所示;

2-4)对使用非极大值抑制处理后的候选窗口进行二值化,得到车道线所在的白色区域;

2-5)对白色区域进行直线拟合得到小块车道线直线方程y=k·x+b;

2-6)由于同一条车道线的斜率k和截距b都很接近,不同车道线的斜率k和截距b相差很大,所以将欧式空间映射到k、b空间,如图3所示,利用k-means聚类算法对所有小块车道线的k和b进行聚类。聚类的中心即为车道线的斜率k和截距b。由此可以得到图中每条车道线的直线方程;

2-7)选取最靠近图像中央的两条车道线即为当前车道的车道线,如图4所示。

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