针对道路图像的灭点自动标定方法与流程

文档序号:12864489阅读:1068来源:国知局
针对道路图像的灭点自动标定方法与流程

本发明涉及图像处理技术,尤其涉及了一种针对道路图像的灭点自动标定方法。



背景技术:

随着传感器技术和电子技术的发展,先进驾驶辅助系统(adas)成为汽车工业发展的一个重要方向。基于视觉的先进驾驶辅助系统包括前车检测、前车防撞预警、道线检测、道线偏离预警等组成部分。对这些应用而言,灭点在图像中的位置是重要的输入信息。

目前有些adas系统需要专业人员以手工标定的方式确定灭点的位置,这一类系统不可避免地面临成本高企,无法自由改变安装位置和安装车辆,对安装人员的技能有较高的要求等问题。

中国专利201610492617.9公开了一种不依赖于前车检测、无需附加先验条件的灭点自动标定方法,但这种方法需要定义多个地平线位置模板,以验证的形式判定这些地平线位置假设是否与实际观察到的特征相吻合,从而确定地平线所在的位置。



技术实现要素:

本发明针对现有技术中手工标定的方式确定灭点的位置的缺点,提供了一种针对道路图像的灭点自动标定方法。

为了解决上述技术问题,本发明通过下述技术方案得以解决:

一种针对道路图像的灭点自动标定方法,包括以下步骤:

读取当前输入图像中的行数据,更新行堆叠图像:从所述图像高度方向的中间位置开始到所述图像的底部等间隔地设置若干条水平扫描线,每条水平扫描线对应一个高度为m、宽度为n的行堆叠图像,其中,n等于输入图像的宽度,m为预设值,读取每条水平扫描线所在的行数据,更新所述水平扫描线所对应的行堆叠图像;

对每个行堆叠图像计算垂直方向的像素值累加和,形成一维数组:对每个所述行堆叠图像垂直方向的像素值进行计算并累加求和,设in为第n个行堆叠图像,计算该行堆叠图像垂直方向的像素值之和,形成一维数组hn,计算公式如下:

其中,in(x,y)表示行堆叠图像中坐标为(x,y)位置的像素值,x表示扫描位置;

通过一维数组,进一步计算扫描位置的相似度并进行记录:通过一维数组hn,在每个扫描位置x计算多个尺度滑动窗口内的数据与参考信号的相似度,以所述多个尺度滑动窗口计算所得的相似度的最大值作为所述扫描位置的相似度rn(x),并对相似度rn(x)进行记录;

通过所述相似度构建集合s:寻找记录中的所述相似度rn(x)的极大值,由极大值所在的位置得到x方向的坐标值x,由与行堆叠图像in对应的水平扫描线在图像中的位置得到y方向的坐标值y,以及相似度值rn(x)构成三元组(x,y,rn(x)),将所述三元组(x,y,rn(x))构成集合s;

对所述集合s的每一个三元组,将图像平面中的点(x,y)映射成xt-xb参数平面的一条直线:在所述图像平面内预设两条水平线lmid和lbot,第一水平线lmid的y坐标等于h/2,h等于图像的高,第二水平线lbot的y坐标等于h-δh,δh是一个预设的常数;以直线与所述水平线lmid的交点的x坐标xt和与所述水平线lbot的交点的x坐标xb为参数,对集合s中的每一个三元组(x,y,rn(x)),根据预设的参数xt的取值范围和精度,按以下公式将图像平面中的点(x,y)映射成xt-xb参数平面的一条直线,在直线经过的点累加权值rn(x),公式如下:

其中,

寻找极大值的坐标位置,确立交点集合:在xt-xb参数平面寻找所述极大值的坐标位置,由极大值位置的坐标(t,b)确定一条直线,所述直线经过点和(b,h-δh),计算所述直线和其它直线的交点,形成交点集合p;

更新当前输入图像的灭点坐标:通过交点集合p和前一帧输入图像计算的灭点来更新当前输入图像的灭点坐标。

作为一种可实施方式,所述读取每条水平扫描线所在的行数据,更新所述水平扫描线所对应的行堆叠图像,包括:

所述行堆叠图像中的m行数据被组织成一个环形队列;

当队列未满时,执行入队操作,当前输入图像水平扫描线所在的行被复制到对应的行堆叠图像中队尾指针指向的位置;或者,

当队列已满时,先执行出队操作,再执行入队操作,将水平扫描线所在的行复制到队尾指针指向的位置。

作为一种可实施方式,所述通过一维数组,进一步计算扫描位置的相似度,具体包括:

所述扫描位置的取值范围为大于等于0,且小于等于n-1,n等于输入图像的宽度;

设当前扫描位置为x,所述窗口大小为b,从下标x-(b-1)/2开始在数组hn中取连续的b个元素形成一个子数组h',将数组h'的各个元素映射为区间[0,1]范围内的实数,具体公式如下:

其中,min(h')和max(h')分别表示对数组元素取最小和最大值;

所述参考信号是根据当前滑动窗口的大小确定的,公式如下:

其中,xm=(b-1)/2,s=(b-1)/2,g(i)表示参考信号的第i个元素,所述参考信号为长度与窗口大小相同的一维数组,b表示窗口大小;

对窗口大小为b的扫描窗口计算窗口内的数据与参考信号的相似性度量,公式如下:

其中,b表示窗口大小,g为参考信号,g(i)表示参考信号的第i个元素,h'表示子数组,在每个所述扫描位置x计算多个尺度的窗口内数据与相应的参考信号的相似性度量,按下式计算该位置的相似度值,表示如下:

其中,ηb表示窗口大小为b的扫描窗口内的数据与参考信号的相似性度量,exp(-ηb2)表示对数据取欧拉数为底的指数函数,表示对集合中的数据取最大值;

最终求得每个扫描位置滑动窗口内的数据与参考信号的相似度。

作为一种可实施方式,所述通过交点集合p和前一帧计算的灭点来更新当前输入图像的灭点坐标,包括:

若计算出的前一帧输入图像的灭点为q0,选取属于交点集合p并且位于灭点q0为中心的预设大小的扫描窗口内的点;求得选取的点与灭点q0的距离向量的均值,公式如下:

其中,p'代表了所有被选中点的集合,pi是集合p'的一个点,k是p'集合中元素的个数,d表示选中的点与当前中心之间的距离向量的均值;

对灭点q0位置进行修正:q=q0+d,最终得到当前输入图像的灭点坐标q。

本发明由于采用了以上技术方案,具有显著的技术效果:

通过本发明的方法,能通过简单的图像采集装置采集到的图像进行处理,不需要借助任何工具,就能自动标定灭点在图像中的位置,便捷方便并且标定的灭点位置精度较高,能很好地满足后续应用的要求。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1示出了以白色标示的一条水平线;

图2为依次复制连续的36帧图像位于图1所示白色水平线的数据所形成的行堆叠图像;

图3示意了在图像中合适的位置设置两条水平线,由道线与它们的两个交点可确定道线所在的直线;

图4为本发明实施例自动标定道路图像灭点方法的流程示意图。

具体实施方式

下面结合实施例对本发明做进一步的详细说明,以下实施例是对本发明的解释而本发明并不局限于以下实施例。

实施例1:

在使用本发明方法前,应该了解到以下情况,首先,出现在图像中的道线标记具有比周围的道路区域更大的亮度值;其次,当摄像机以固定的形式被安装在合适的位置,道线的宽度由近处到远处将变得越来越小;再次,道线在图像中的出现具有持续性,即:如果在图像的某个位置出现实线道线,则后续的若干帧道线在该位置以及邻域位置将持续出现,如果是虚线道线,则表现为间隔若干帧重复出现。

图1示出了道线在图像中的出现具有持续性的示意图,参照图1,所示图像以及其后连续的35帧图像白色水平线所在的行数据被依次复制到图2图像的第0行到第35行,从而形成图2所示的行堆叠图像。在行堆叠图像中,实线类型的道线标记在高度方向连续出现,虚线类型的道线标记间隔一段距离重复,对于大量正常安装的驾驶辅助系统,地平线通常出现在图像高度方向的中间位置。

从图像高度方向的中间位置到所述图像的底部等间隔地设置若干条水平扫描线,每条水平扫描线对应一个高度为m,宽度为n的行堆叠图像,其中,n等于输入图像的宽度,m为预设值,读取每条水平扫描线所在的行数据,更新所述水平扫描线所对应的行堆叠图像;参照图3,设图像高度为h,分别在高度坐标为h/2和h-δh处设置一条水平线lmid和lbot,其中δh为一个预设的较小的常数,则道线标记对应的直线将汇聚在lmid上一个较小的区域范围,进一步地,如果检测到了道线上的一点p1(x,y),设定道线与lmid的交点e1的水平方向坐标为xt,连接e1和p1,由以下公式得到直线与lbot的交点e2的x坐标值xb,公式为:

其中,

在公式(1)中,xt和xb表现为线性关系,图像平面中的任意一点由公式(1)将映射为xt-xb平面中的一条直线,而图像平面中位于一条直线上的点,由公式(1)将映射成xt-xb平面中的多条直线,由于它们有相同的(xt,xb)值,所以这些直线将在xt-xb平面中交于一点。

根据上述观察,本发明提供了一种针对道路图像的灭点自动标定方法,为了更具体地描述本发明,以下结合附图以及具体实施方式对本发明的技术方案进行详细说明:

如图4所示,本发明针对道路图像的灭点自动标定方法流程可以包括:

一种针对道路图像的灭点自动标定方法,如图4所示,包括以下步骤:

s1、读取当前输入图像中的行数据,更新行堆叠图像:从所述图像高度方向的中间位置开始到所述图像的底部等间隔地设置若干条水平扫描线,每条水平扫描线对应一个高度为m、宽度为n的行堆叠图像,其中,n等于输入图像的宽度,m为预设值,读取每条水平扫描线所在的行数据,更新所述水平扫描线所对应的行堆叠图像,以步长为δy等间隔地设置水平扫描线,本发明的一个实施例取m=30;参照图1,设扫描线ln对应的行堆叠图像为in,行堆叠图像中的m行数据被组织成一个环形队列,当队列未满时,直接执行入队操作,当前输入图像扫描线ln所在的行被复制到in中队尾指针指向的位置;当队列已满时,先执行出队操作,再执行入队操作,将扫描线ln所在的行复制到in中队尾指针指向的位置;

s2、对每个行堆叠图像计算垂直方向的像素值累加和,形成一维数组:对每个所述行堆叠图像垂直方向的像素值进行计算并累加求和,得到一维多尺度滑动窗口扫描数组并计算每个扫描位置滑动窗口内的数据与参考信号的相似度,设in为第n个行堆叠图像,并计算该行堆叠图像垂直方向的像素值,形成一维多尺度滑动窗口扫描数组hn,计算公式如下:

其中,in(x,y)表示行堆叠图像中坐标为(x,y)位置的像素值;

s3、通过多尺度滑动窗口扫描数组,进一步计算扫描位置的相似度并进行记录:通过多尺度滑动窗口扫描数组hn,在每个扫描位置x计算多个尺度滑动窗口内的数据与参考信号的相似度,以所述多个尺度滑动窗口计算所得的相似度的最大值作为所述扫描位置的相似度rn(x),并对相似度rn(x)进行记录,具体地,所述扫描位置的取值范围为大于等于0,且小于等于图像宽度,所述多尺度,每个尺度对应一个扫描窗口尺寸,其中最小和最大窗口尺寸根据输入图像尺寸确定,相邻两个尺度的窗口大小相差δb,其中δb是一个预设的常数;设当前扫描位置为x,对于1280×720的图像,本发明的一个实现取b的范围为大于15小于37,δb=2,从下标x-(b-1)/2开始在数组hn中取连续的b个元素形成一个子数组h',按下式的min-max标准化将数组的各个元素映射为区间[0,1]范围内的实数,公式如下:

其中,min(h')和max(h')分别表示对数组元素取最小和最大值;

具体实现时,对窗口大小为b的扫描窗,可以按公式(4)的指数函数的形式计算参考信号,公式(4)如下:

其中,xm=(b-1)/2,s=(b-1)/2,g(i)表示参考信号的第i个元素,所述参考信号为长度与窗口大小相同的一维数组,b表示窗口大小;

对窗口大小为b的扫描窗口计算窗口内的数据与参考信号的相似性度量,公式如下:

其中,b表示窗口大小,g为参考信号,g(i)表示参考信号的第i个元素,h'表示子数组,在每个所述扫描位置x计算多个尺度的窗口内数据与相应的参考信号的相似性度量,取多个相似度的最大值作为该位置的相似性度量:

由于在每个扫描位置x都计算多个尺度的滑动窗口内数据与相应的参考信号的相似度,本发明的一个实施例按下式计算数组rn在扫描位置x的值:

s4、通过所述相似度rn(x)构建集合s:寻找记录的所述相似度rn(x)的极大值,具体的,按以下公式在相似度值rn(x)中寻找邻域极大值,公式如下:

且rn(x)≥rth(7)

其中,max{r(x+i),-w1≤i≤wi}表示对集合内数据求最大值,w1是表示邻域范围的一个预设值,本发明的一个实施例取w1=16,rth是一个预设的阈值,本发明的一个实施例取rth=0.4,由满足上述条件的数组元素的下标,得到x方向的坐标值x,由与堆叠图像in对应的扫描线ln得到y方向的坐标值y,连同相似度值rn(x)构成一个三元组(x,y,rn(x)),并且添加到集合s;

s5、对所述集合s结合的每一个三元组,将图像平面中的点(x,y)映射成xt-xb参数平面的一条直线:在所述图像平面内预设两条水平线lmid和lbot,第一水平线lmid的y坐标等于h/2,h等于图像的高,第二水平线lbot的y坐标等于h-δh,δh是一个预设的常数;以直线与所述水平线lmid的交点的x坐标xt和与所述水平线lbot的交点的x坐标xb为参数,对集合s中的每一个三元组(x,y,rn(x)),根据预设的参数xt的取值范围和精度,本发明的一个实施例设定xt的取值范围为:其中δw为一个预设的常数,本发明的一个实施例取δw=64,对三元组(x,y,rn(x))的坐标(x,y),依次取所述xt取值范围内所有整数,根据公式(1)计算相应的xb值;使用矩阵c在(xt,xb)位置按以下公式累加权值,累加权值的公式如下:

c(xt,xb)=c(xt,xb)+rn(x)(8);

s6、寻找极大值的坐标位置,确立交点集合:在xt-xb参数平面寻找所述极大值的坐标位置,由极大值位置的坐标(t,b)确定一条直线,所述直线经过两点和(b,h-δh),计算所述直线和其它直线的交点,形成交点集合p;

具体地,按照公式(9),以窗口扫描的方式在矩阵c中查找具有极大值的坐标位置,公式(9)如下所示:

c(t,b)=max{c(t+u,b+v),-w2≤u,v≤w2}且c(t,b)≥cth(9)

其中,w2是表示窗口的大小的预设值,本发明的一个实施例取w2=12,cth是一个预设的阈值,本发明的一个实施例取cth=1.2,对于满足公式(9)的极大值位置,将其坐标加入坐标集合z,由集合z中的每一个坐标确定一条直线,对每一条直线,计算它与其它直线的交点,产生交点集合p。具体地,若有坐标(t1,b1),则以(t1,h/2)和(b1,h-δh)为两点确定一条直线。若该直线与集合中的其它任意一点(t2,b2)所确定直线不是平行直线,则计算它们的交点,且加入交点集合p;

s7、更新当前输入图像的灭点坐标:通过交点集合p和前一帧输入图像计算的灭点来更新当前输入图像的灭点坐标;

具体地,通过以下步骤实现:步骤1,以q0为中心,sh和sw为高度和宽度方向的窗口大小设定窗口,选取属于交点集合p且在所述窗口内的点,本发明的一个实施例取sh=sw=24;

步骤2,按公式(10)计算所有由步骤1选中的点与当前中心之间的距离向量的均值,公式(10)如下所示:

其中,p'代表了所有被选中点的集合,pi是其中的一个点,k是p'中的元素数目,d表示选中的点与当前中心之间的距离向量的均值;

步骤3,按以下公式修正中心位置,公式如下:

q=q0+d(11)

其中,q0表示前一帧图像的灭点坐标,q表示当前输入图像的灭点坐标;

重复步骤1至3,若按公式(10)计算的d值很小或达到预设的最多循环次数则结束循环,直至找到合适的灭点。

此外,需要说明的是,本说明书中所描述的具体实施例,其零、部件的形状、所取名称等可以不同。凡依本发明专利构思所述的构造、特征及原理所做的等效或简单变化,均包括于本发明专利的保护范围内。本发明所属技术领域的技术人员可以对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,只要不偏离本发明的结构或者超越本权利要求书所定义的范围,均应属于本发明的保护范围。

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