一种基于Kalman滤波的道线灭点跟踪方法与流程

文档序号:16742797发布日期:2019-01-28 13:10阅读:217来源:国知局
一种基于Kalman滤波的道线灭点跟踪方法与流程

本发明涉及图像处理领域,特别涉及一种基于kalman滤波的道线灭点跟踪方法。



背景技术:

高级驾驶辅助系统(adas)利用安装在车上的各种传感器,在汽车行驶过程中感应周围的环境,收集数据,进行静态和动态物体的辨识、侦测与追踪,预先让驾驶者察觉到可能发生的危险,从而有效增加汽车驾驶的舒适性和安全性。在由adas系统中装备的摄像机所采集的图像中,路面上并行的道线将汇聚于图像中的一点,即灭点。对道线检测、道线偏离预警、前车检测等应用而言,灭点在图像中的位置是非常重要的输入信息。

中国专利201610492617.9公布了一种基于地平线搜索的灭点标定方法,需要定义多个地平线位置模板,以验证的形式确定地平线所在位置;中国专利201710651702.x公布了一种以视频为输入构建行堆叠图像,在堆叠图像中搜索极大值,由极大值位置确定道线,由道线的交点确定灭点的方法。除了道线标记之外,adas系统的摄像机所观察的视域中经常出现各式车辆、车辆投射的阴影、车道分隔护栏等物体,由这些物体的边缘所确定的直线所形成的交点与道线灭点通常存在较大的偏差,以这些交点估计灭点将严重影响灭点估计的精度。



技术实现要素:

本发明提供了一种基于kalman滤波的道线灭点跟踪方法,所提供的技术以车载摄像机采集的图像序列为输入,检测图像中的直线线段,以机器学习的方法排除不包含或包含较少道线块的线段,从而达到真正由道线边缘直线确定道线灭点的目的;将道线灭点坐标建模成离散动态系统随时间变化的状态,以kalman滤波算法跟踪道线灭点。

本发明具体采用的技术方案如下:

一种基于kalman滤波的道线灭点跟踪方法,该方法包括以下步骤:

步骤一:对输入的图像检测边缘像素,由边缘像素以hough变换算法检测线段;

步骤二:对检测所得的线段,以线段上的点为锚点,以多个尺度和偏移提取图像块,以预先训练的分类器识别提取的图像块是否为道线块;

步骤三:对线段上有图像块被识别为道线块的点的数目进行计数,若该数目大于预设的阈值则将对应的线段加入候选线段集合,且计算对应该线段的权值等于有图像块被识别为道线块的点的数目除以线段的长度;

步骤四:延伸候选线段集合中的每条线段成为直线,对非平行直线,计算两两直线之间的交点,以交点的二维坐标为样本,计算所有样本的加权平均值和协方差矩阵;

步骤五:设当前帧为第t帧,根据步骤一到步骤四计算所得的当前帧的交点坐标样本的加权平均值和协方差,及第0帧到第t-1帧持续跟踪的道线灭点,以kalman滤波算法估计道线灭点,输出估计所得的灭点作为第t帧的跟踪结果。

上述技术方案中的各步骤,可采用如下具体方式实现。

步骤二中所述的以线段上的点为锚点,以多个尺度和偏移提取图像块,以预先训练的分类器识别提取的图像块是否为道线块,包括:

设(x,y)为线段上的点,以该点为锚点所提取的图像块为i(x-δx,y-δy,w/s,h/s),代表以(x-δx,y-δy)为左上角坐标,w/s和h/s为宽和高的一个矩形图像区域,其中w和h分别是预设的基准窗口宽和高,δx和δy分别为水平和垂直方向的偏移,s是预设的尺度系数;

用于识别所提取的图像块是否为道线块的分类器是一个级联分类器,其中的每一级是一个由若干个弱分类器组合而成的强分类器;

每个弱分类器对应一个特征,按以下公式计算:

其中x是待检测的图像块,p=±1,用于控制不等号方向,θ为阈值,f是特征值计算函数;

在训练过程中,按下式计算各个待选弱分类器的加权误分损失函数,

εt=minf,p,θ∑iwi|h(xi,f,p,θ)-yi|

其中,xi和yi分别为样本和对应的标记,若xi为正样本,则yi=+1,否则yi=-1,h(·)为所述弱分类器,若弱分类器输出值与标记的符号不一致,则意味着误分;选择具有最小误分损失函数值的弱分类器作为最优弱分类器组成强分类器。

所述弱分类器对应的特征可采用haar-like特征,其计算方法为:首先,取待检测图像块x的一个矩形区域,将该区域划分成2、3或4个相等尺寸的子区域;若划分成2个子区域,则2个子区域可为左右分布或上下分布,特征值为其中一个子区域内的像素值累加和与另一个子区域内的像素值累加和之差;若划分成3个子区域,则3个子区域可为左中右分布或上中下分布,特征值为其中左右或上下两个子区域内的像素值累加和减去中间子区域的像素值累加和乘以2后的差值;若划分成四个子区域,则水平和垂直方向各等分成两个部分,特征值为左上和右下两个子区域的像素值累加和减去右上和左下两个子区域的像素值累加和的差值。

步骤四中所述对非平行直线,计算两两直线之间的交点,以交点的二维坐标为样本,计算所有样本的加权平均值和协方差矩阵,包括:

对任意两条线段li和lj,权值分别为ηi和ηj,且延伸线段li和lj形成的直线存在交点,则该交点被赋予权值:ηi+ηj;

设交点样本集合为其中(xk,yk)为第k个交点的坐标;与交点对应的权值集合为ηk为第k个交点的权值,n为交点样本集合中总的交点样本数目,则交点样本集合中样本的均值为其中

样本的协方差矩阵为:

其中

步骤五中所述根据步骤一到步骤四计算的当前帧的交点坐标样本的均值和协方差,及第0帧到第t-1帧持续跟踪的道线灭点,以kalman滤波算法估计道线灭点,包括:

首先,将道线灭点坐标建模成离散动态系统随时间变化的状态,记第t帧的灭点为vt,与前一时刻的灭点vt-1的关系式为:

vt=vt-1+z

其中,z代表系统的过程噪声,符合均值为0,协方差矩阵为q的正态分布;

其次,由前一时刻的道线灭点vt-1预测t时刻的灭点,由前一时刻的状态误差协方差矩阵pt-1和矩阵q预测t时刻的的状态误差协方差矩阵pt-

pt-=pt-1+q

其中,表示估计的t时刻的道线灭点,q代表所述系统的噪声协方差矩阵;

计算kalman增益,计算公式如下式:

kt=pt-(pt-+σ)-1

其中σ为步骤四所述的样本协方差矩阵;

再次,更新道线灭点,计算公式如下:

其中u为步骤四所述的样本加权平均值,为更新后的t时刻道线灭点;

最后,更新t时刻的状态误差协方差矩阵,计算公式如下:

pt=(d-kt)pt-

其中d为2×2的单位矩阵,pt为更新后的t时刻状态误差协方差矩阵。

本发明的基于kalman滤波的道线灭点跟踪方法,以车载摄像机采集的图像序列为输入,检测图像中的直线线段,以机器学习的方法排除不包含或包含较少道线块的线段,从而达到了真正由道线边缘直线确定道线灭点的目的。相对于现有技术而言,本发明能够减少视域中出现的各种干扰物体对道线灭点估计精度的影响。

附图说明

图1为本发明实施例基于kalman滤波的道线灭点跟踪方法的流程示意图;

图2为haar-like特征计算示意图;

图3为道线标注和正样本提取示意图;

图4为以adaboost算法训练分类器的流程示意图。

具体实施方式

本发明提供一种基于kalman滤波的道线灭点跟踪方法,所提供的技术以车载摄像机采集的图像序列为输入,检测图像中的直线线段,以机器学习的方法排除不包含或包含较少道线块的线段,从而达到真正由道线边缘直线确定道线灭点的目的;将道线灭点坐标建模成离散动态系统随时间变化的状态,以kalman滤波算法跟踪道线灭点。

如图1所示,本发明基于kalman滤波的道线灭点跟踪方法流程可以包括以下步骤101~105:

步骤101:对输入的图像检测边缘像素,由边缘像素以hough变换算法检测线段;

步骤102:对检测所得的线段,以线段上的点为锚点,以多个尺度和偏移提取图像块,以预先训练的分类器识别提取的图像块是否为道线块;

步骤103:对线段上有图像块被识别为道线块的点的数目进行计数,若该数目大于预设的阈值则将对应的线段加入候选线段集合,且计算对应该线段的权值等于有图像块被识别为道线块的点的数目除以线段的长度;

步骤104,延伸候选线段集合中的每条线段成为直线,对非平行直线,计算两两直线之间的交点,以交点的二维坐标为样本,计算所有样本的加权平均值和协方差矩阵;

步骤105:设当前帧为第t帧,根据步骤101到步骤104计算所得的第t帧的交点坐标样本的加权平均值和协方差,及第0帧到第t-1帧持续跟踪的道线灭点,以kalman滤波算法估计道线灭点,输出估计所得灭点作为第t帧的结果。

下面将结合附图描述上述部分步骤在本实施例中的具体做法。

步骤102中对检测所得的线段,以线段上的点为锚点,以多个尺度和偏移提取图像块,以预先训练的分类器识别提取的图像块是否为道线块,具体地,设(x,y)为线段上的点,以该点为锚点所提取的图像块为i(x-δx,y-δy,w/s,h/s),代表以(x-δx,y-δy)为左上角坐标,w/s和h/s为宽和高的一个矩形图像区域,其中w和h分别是预设的基准窗口宽和高,δx和δy分别为水平和垂直方向的偏移,s是预设的尺度系数,本发明的一个实施例取w=24,h=10,δx,δy∈{-8,-4,0,+4,+8},s∈{0.8,0.9,1.0,1.1,1.25}。

步骤102中以预先训练的分类器识别提取的图像块是否为道线块,所述的分类器是一个级联分类器,其中的每一级是一个由若干个弱分类器组合而成的强分类器,每个弱分类器对应一个特征,按以下公式计算:

其中x是待检测的图像块,p=±1,用于控制不等号方向,θ为阈值,f是特征值计算函数,本发明实施例采用haar-like特征,参见图2,其计算方法为:首先,取x的一个矩形区域,将该区域划分成2、3或4个相等尺寸的子区域;若划分成2个子区域,则2个子区域可为左右分布或上下分布,特征值为白色子区域内的像素值累加和与黑色子区域内的像素值累加和之差;若划分成3个子区域,则3个子区域可为左中右分布或上中下分布,特征值为其中左右或上下两个白色子区域内的像素值累加和减去中间黑色子区域的像素值累加和乘以2后的差值;若划分成四个子区域,则水平和垂直方向各等分成两个部分,特征值为左上和右下两个白色子区域的像素值累加和减去右上和左下两个黑色子区域的像素值累加和的差值。

本发明实施例用于训练所述分类器的样本集包含正样本和负样本,参照图3,正样本是一个宽与高呈一定比例的矩形图像块,图中l为一条水平直线,直线与道线边缘的交点为a和b,线段ab的长度为w,道线的标记区域近似地占据图像块的中间部分;负样本为不包含道线标记的路面区域图像,正负样本都被缩放到预设的尺寸。

本发明实施例以adaboost算法训练所述的强分类器,具体地,参照图4,可以包括如下步骤:

步骤401,初始化各个样本的权值,每个正样本的权值为1/2np,负样本的权值为1/2nf,其中np为正样本数目,nf负样本数目,将待训练的强分类器初始化为包含0个弱分类器;

步骤402,t从1到t迭代,其中t是预设的一个强分类器中允许最多包含的弱分类器数目,每轮迭代挑选一个弱分类器;

步骤403,挑选最优弱分类器,首先,按下式计算各个待选弱分类器的加权误分损失函数,

εt=minf,p,θ∑iwi|h(xi,f,p,θ)-yi|(2)

其中,xi和yi分别为样本和对应的标记,若xi为正样本,则yi=+1,否则yi=-1,h(·)为公式(1)所示的弱分类器,若弱分类器输出值与标记的符号不一致,则意味着误分;其次,选择具有最小误分损失函数值的弱分类器作为最优弱分类器,记作ht;

步骤404,若εt>0.5,则结束迭代;否则,转步骤405;

步骤405,按下式更新各个样本的权值,

其中,当样本xi被正确分类,则对应的ei=0,否则ei=1,

步骤406,按下式计算当前弱分类器在强分类器中的权值,

按弱分类器的权值组合各个弱分类器成为强分类器:

f(x)=sign(∑tαtht(x))(5)

步骤407,以当前强分类器对测试样本进行分类,若分类器结果达到预期目标,则结束迭代,输出如公式(5)所示的强分类器;否则,转步骤402。

步骤104中所述延伸候选线段集合中的每个线段成为直线,对非平行直线,计算两两直线之间的交点,以交点的二维坐标为样本,计算所有样本的加权平均值和协方差矩阵,具体地,可包括:

对任意两条线段li和lj,权值分别为ηi和ηj,且延伸线段li和lj形成的直线相交,则该交点被赋予权值:ηi+ηj;

设交点样本集合为其中(xk,yk)为第k个交点的坐标;与交点对应的权值集合为ηk为第k个交点的权值,n为交点样本集合中总的交点样本数目,则交点样本集合中样本的均值为其中

样本的协方差矩阵为:

其中

步骤105所述,由步骤101到步骤104计算所得的第t帧的交点坐标样本的均值和协方差,及第0帧到第t-1帧持续跟踪的道线灭点,以kalman滤波算法估计道线灭点,具体地,可包括:

首先,将道线灭点坐标建模成离散动态系统随时间变化的状态,记第t帧的灭点为vt,与前一时刻的灭点vt-1存在如下的关系:

vt=vt-1+z(6)

其中z代表系统的过程噪声,符合均值为0,协方差矩阵为q的正态分布;

其次,由前一时刻的道线灭点vt-1预测t时刻的灭点,由前一时刻的状态误差协方差矩阵pt-1和矩阵q预测t时刻的的状态误差协方差矩阵pt-

pt-=pt-1+q(8)

其中,表示t时刻的道线灭点,q代表所述系统噪声的协方差矩阵;

计算kalman增益,计算公式如下式:

kt=pt-(pt-+σ)-1(9)

其中σ为步骤104所述的样本协方差矩阵;

再次,更新道线灭点,计算公式如下:

其中u为步骤104所述的样本加权平均值,为更新后的t时刻道线灭点;

最后,更新t时刻的状态误差协方差矩阵,计算公式如下:

pt=(d-kt)pt-(11)

其中d为2×2的单位矩阵。

经过上述处理流程,即可达到由道线边缘直线准确确定道线灭点的目的。

以上所述仅为本发明的较佳实施例,但本发明的保护范围并不局限于此,凡在本发明的精神和原则之内,所做的任何修改或替换等,都应涵盖在本发明的保护范围内。

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