用于检测道路中的弯道曲率的方法、装置及车辆与流程

文档序号:12443663阅读:436来源:国知局
用于检测道路中的弯道曲率的方法、装置及车辆与流程

本发明涉及智能车辆技术,具体涉及一种用于检测道路中的弯道曲率的方法、用于检测道路中的弯道曲率的装置以及设置有用于检测道路中的弯道曲率的装置的车辆。



背景技术:

智能交通系统由于其能够有效缓解甚至解决多种交通问题,从而已经成为备受关注的研究课题,而智能车辆是智能交通系统中一个非常重要的组成部分。

智能车辆可以通过车辆上安装传感器来感知车辆姿态以及外部环境等信息,且智能车辆可以根据其感知到的信息进行路径规划,从而实现车辆的自主驾驶。

在智能车辆感知外部环境信息中,对道路信息的感知是非常重要的,只有精准的感知了道路信息(如弯道曲率等信息)才有可能准确地获得车体相对于道路的位置以及方向等信息,从而实现后续的车辆自适应巡航控制以及障碍物检测等功能。

发明人在实现本发明过程中发现:实际道路通常被划分为结构化道路和非结构化道路。结构化道路(如高速公路等)由于其车道线比较清晰且道路边界较为明显等因素,易于检测出道路中弯道曲率;而非结构化道路(如图1和图2所示)由于其没有明显的车道线且道路边界没有明显的标志物等因素,通常较难准确的检测出道路中弯道曲率。如何使车辆在行驶过程中准确及时的检测出道路中弯道曲率,并使弯道曲率检测技术能够较好的适用于结构化道路以及路况各异的非结构化道路,从而提高车辆的智能驾驶性能,是一个值得关注的技术问题。



技术实现要素:

鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的用于检测道路中的弯道曲率的方法、装置及车辆。

依据本发明的其中一个方面,提供了一种用于检测道路中的弯道曲率的方法,该方法主要包括:根据区域生长算法确定图像中的道路区域;从所述道路区域的边界中提取边缘像素点;将所述提取的边缘像素点作为形成曲线的控制点提供给曲线模型,并根据所述曲线模型输出的曲线确定道路边缘曲线;确定所述道路边缘曲线的弯道曲率。

可选的,上述用于检测道路中的弯道曲率的方法,其中,所述根据区域生长算法确定图像中的道路区域的步骤包括:从所述图像下侧中间区域选取初始生长元素块,并将所述初始生长元素块加入生长区域;分别计算与生长区域相邻的左生长元素块、右生长元素块以及上生长元素块的特征值,将满足预定条件的生长元素块加入到所述生长区域中,重复本步骤,直到生长区域的左生长元素块、右生长元素块以及上生长元素块的特征值均不满足预定条件时,将当前生长区域作为所述道路区域。

可选的,上述用于检测道路中的弯道曲率的方法,其中,所述从所述道路区域的边界中提取边缘像素点的步骤包括:利用边缘检测算法确定所述图像中的各区域边界;在一个像素点分别为所述区域边界上的像素点以及所述道路区域边界上的像素点时,将所述像素点作为道路区域的边界中的边缘像素点;将从所述道路区域的边界中的边缘像素点中选取的边缘像素点作为所述提取出的边缘像素点。

可选的,上述用于检测道路中的弯道曲率的方法,其中,所述曲线模型包括:三次贝塞尔曲线模型。

可选的,上述用于检测道路中的弯道曲率的方法,其中,所述将所述提取的边缘点提供给用于形成曲线的曲线模型,并根据所述曲线模型输出的曲线确定道路边缘曲线的步骤包括:将提取出的多组边缘像素点作为形成曲线的控制点分别提供给曲线模型;计算所述曲线模型针对每一组边缘点分别输出的曲线的特征值;将曲线特征值最大的曲线作为道路边缘曲线。

可选的,上述用于检测道路中的弯道曲率的方法,其中,所述计算所述曲线模型针对每一组边缘点分别输出的曲线的特征值的步骤包括:针对任一条曲线,计算扩展宽度的曲线中的所有像素点的像素值之和,并根据曲线长度以及曲线弯曲度计算该曲线的系数;根据所述系数以及像素值之和确定所述曲线的特征值。

可选的,上述用于检测道路中的弯道曲率的方法,其中,所述确定所述道路边缘曲线的弯道曲率的步骤包括:计算所述道路边缘曲线上的多个像素点的曲率,并将所述多个像素点的曲率的平均值作为所述道路边缘曲线的弯道曲率。

依据本发明的另一个方面,提供了一种用于检测道路中的弯道曲率的装置,所述装置包括:区域生长模块,用于根据区域生长算法确定图像中的道路区域;提取边缘像素点模块,用于从所述道路区域的边界中提取边缘像素点;确定曲线模块,用于将所述提取的边缘像素点作为形成曲线的控制点提供给曲线模型,并根据所述曲线模型输出的曲线确定道路边缘曲线;确定曲率模块,用于确定所述道路边缘曲线的弯道曲率。

可选的,上述用于检测道路中的弯道曲率的装置,其中,所述区域生长模块具体用于:从所述图像下侧中间区域选取初始生长元素块,并将所述初始生长元素块加入生长区域;分别计算与生长区域相邻的左生长元素块、右生长元素块以及上生长元素块的特征值,将满足预定条件的生长元素块加入到所述生长区域中,重复本步骤,直到生长区域的左生长元素块、右生长元素块以及上生长元素块的特征值均不满足预定条件时,将当前生长区域作为所述道路区域。

可选的,上述用于检测道路中的弯道曲率的装置,其中,所述提取边缘像素点模块包括:边缘检测子模块,用于利用边缘检测算法确定所述图像中的各区域边界;过滤像素点子模块,用于在一个像素点分别为所述区域边界上的像素点以及所述道路区域边界上的像素点时,将所述像素点作为道路区域的边界中的边缘像素点;提取子模块,用于将从所述道路区域的边界中的边缘像素点中选取的边缘像素点作为所述提取出的边缘像素点。

可选的,上述用于检测道路中的弯道曲率的装置,其中,所述曲线模型包括:三次贝塞尔曲线模型。

可选的,上述用于检测道路中的弯道曲率的装置,其中,所述确定曲线模块具体包括:计算特征值子模块,用于将提取出的多组边缘像素点作为形成曲线的控制点分别提供给曲线模型,并计算所述曲线模型针对每一组边缘点分别输出的曲线的特征值;比较子模块,用于将曲线特征值最大的曲线作为道路边缘曲线。

可选的,上述用于检测道路中的弯道曲率的装置,其中,所述计算特征值子模块具体用于:针对任一条曲线,计算扩展宽度的曲线中的所有像素点的像素值之和,并根据曲线长度以及曲线弯曲度计算该曲线的系数;根据所述系数以及像素值之和确定所述曲线的特征值。

可选的,上述用于检测道路中的弯道曲率的装置,其中,所述确定曲率模块具体用于:计算所述道路边缘曲线上的多个像素点的曲率,并将所述多个像素点的曲率的平均值作为所述道路边缘曲线的弯道曲率。

依据本发明的再一个方面,提供了一种车辆,所述车辆包括:上述用于检测道路中的弯道曲率的装置。

本发明提供的用于检测道路中的弯道曲率的方法、装置及车辆至少具有下列优点以及有益效果:本发明通过利用区域生长算法不仅可以快速的针对图像中的结构化道路确定出道路区域,还可以快速的针对图像中的非结构化道路确定出道路区域;通过将属于道路区域的边界的像素点作为边缘像素点(即道路边缘像素点),并利用曲线模型针对道路边缘像素点形成曲线,从而不仅可以实现针对结构化道路快速准确的确定出道路边缘曲线(即结构化道路的道路边界),还可以实现针对非结构化道路快速准确的确定出道路边缘曲线(即非结构化道路的道路边界),因此本发明可以准确快捷的确定出结构化道路以及非结构化道路的弯道曲率;由此可知,本发明提供的技术方案能够使车辆在行驶过程中准确及时的检测出道路中的弯道曲率,且能够较好的应用于结构化道路以及路况各异的非结构化道路中,从而提高了车辆的智能驾驶性能。

上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。

附图说明

通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。本实施例的附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:

图1为非结构化道路的一个具体例子的示意图;

图2为非结构化道路的另一个具体例子的示意图;

图3为本发明的用于检测道路中的弯道曲率的方法的流程图;

图4为本发明的确定图像中的道路区域的一个具体例子的流程图;

图5为本发明的利用区域生长算法确定出的图像中的道路区域的一个例子的示意图;

图6为本发明的利用区域生长算法确定出的图像中的道路区域的边缘的一个例子的示意图;

图7为本发明的候检区域的示意图;

图8为本发明利用三次贝塞尔曲线模型形成的基于四个控制点的一条曲线的示意图;

图9为本发明的用于检测道路中的弯道曲率的装置的结构示意图;

图10为本发明一个实施例的智能车辆的结构框图。

具体实施方式

下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本发明公开的示例性实施例,然而应当理解,可以以各种形式实现本发明公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本发明的技术方案,并且能够将本发明公开的范围完整的传达给本领域的技术人员。

在一个具体实施例中,本发明提供了一种用于检测道路中的弯道曲率的方法。该方法的流程如图3所示,且图3中的方法主要包括:步骤S300、步骤S310、步骤S320以及步骤S330。下面对本实施例的方法所包括的各步骤分别进行详细说明。

S300、根据区域生长算法确定图像中的道路区域。

作为示例,本实施例中的图像通常是车辆中安装的摄像头实时摄取的图像。针对摄像头所摄取的任一图像而言,本实施例是利用图像中的具有预定大小的生长元素块逐步形成道路区域的,且生长元素块的大小可以根据实际需求设置,如在计算资源较强大且更多的关注弯道曲率准确度的情况下,可以将生长元素块的大小设置的小一些,再如在计算资源较弱且更多的关注弯道曲率检测速度的情况下,可以将生长元素块的大小设置的大一些。在一个具体的例子中,生长元素块为10×10像素点大小的生长元素块。

在通常情况下,本实施例会先设置一个为空的生长区域,并在图像中确定一个初始生长元素块;然后,将该初始生长元素块加入到生长区域中,且该初始生长元素可以作为当前生长元素;之后,以该生长区域为基础向周围进行生长检测,从而逐渐扩大生长区域,最终,在生长区域停止生长时,将停止生长的生长区域作为图像中的道路区域。

作为示例,由于图像的中部区域通常属于道路区域,因此,本实施例可以将初始生长元素块设置在图像的下侧的中部区域中,如本实施例可以以图像的最下侧的中间像素点为基准点向左侧、右侧以及上侧方分别扩展相应数量的像素点,从而形成一个10×10像素点大小的初始生长元素块。

作为示例,本实施例在设置了初始生长元素块,并将该初始生长元素块加入生长区域作为当前生长元素块之后,可以分别计算与当前生长区域相邻的左生长元素块的特征值、与当前生长区域相邻的右生长元素块的特征值以及与当前生长区域向量的上生长元素块的特征值,然后,判断左生长元素块的特征值是否满足预定条件、右生长元素块的特征值是否满足预定条件以及上生长元素块的特征值是否满足预定条件,并将满足预定条件的生长元素块加入到当前生长区域中,重复上述使当前生长区域生长的过程,直到当前生长区域的左生长元素块、右生长元素块以及上生长元素块的特征值均不满足预定条件时,当前生长区域停止生长,本实施例可以将当前停止生长的生长区域作为从图像中检测出的道路区域。

作为示例,本实施例中的生长元素块的特征值可以具体为生长元素块的灰度值方差,当然,本实施例也不排除生长元素块的特征值为其他形式的可能性。具体的,本实施例可以利用下述公式(1)来计算一个生长元素块的灰度值方差:

在上述公式(1)中,var为生长元素块的灰度值方差,M为生长元素块所包含的像素的行数,N为生长元素块所包含的像素的列数,I(i,j)表示生长元素块中第i行第j列的像素点的灰度值,mean表示该生长元素块的所有像素的灰度平均值。

本实施例的利用区域生长算法确定图像中的道路区域的一个具体例子如图4所示。

图4中,S400、在图像的最下侧的中部区域中确定初始生长元素块,并将该初始生长元素块加入到当前为空的生长区域中,且该初始生长元素块被作为当前生长元素块。到步骤S410和步骤S420。

S410、在当前生长元素块所在行,计算与当前生长区域相邻的左生长元素块(如与当前生长区域左相邻的10×10像素点大小的生长元素块)的特征值(如灰度值方差),到S411。

S411、判断左生长元素块的特征值是否满足预定条件,如判断左生长元素块的灰度值方差是否小于预定值(如40);如果判断结果为满足预定条件(如灰度值方差小于40),则到步骤S412;如果判断结果为不满足预定条件(如灰度值方差不小于40),则应停止当前生长元素块所在行的左侧生长过程,到步骤S430。

S412、将该左生长元素块加入到当前生长区域中,到步骤S413。

S413、判断该左生长元素块是否已经达到图像的最左侧,即判断该左生长元素块是否已经到达图像的左边界,如果判断结果为已经达到图像的最左侧,则到步骤S430;如果判断结果为还未达到图像的最左侧,则返回到步骤S410。

S420、在当前生长元素块所在行,计算与当前生长区域相邻的右生长元素块(如与当前生长区域右相邻的10×10像素点大小的生长元素块)的特征值(如灰度值方差),到步骤S421。

S421、判断右生长元素块的特征值是否满足预定条件,如判断右生长元素块的灰度值方差是否小于预定值(如40),如果判断结果为满足预定条件(如灰度值方差小于40),则到步骤S422;如果判断结果为不满足预定条件(如灰度值方差不小于40),则应停止当前生长元素块所在行的左侧生长过程,到步骤S430。

S422、将该右生长元素块加入到当前生长区域中,到步骤S423。

S423、判断该右生长元素块是否已经达到图像的最右侧,即判断该右生长元素块是否已经到达图像的右边界,如果判断结果为已经达到图像的最右侧,则到步骤S430;如果判断结果为还未达到图像的最右侧,则返回到步骤S420。

S430、判断当前生长元素块是否已经达到图像的最上侧,即判断该当前生长元素块是否已经到达图像的上边界,如果判断结果为已经达到图像的最上侧,则到步骤S440;如果判断结果为还未达到图像的最上侧,则到步骤S431。

S431、在当前生长元素块所在行的左侧生长过程和右侧生长过程均停止的情况下,将当前生长元素块上侧的生长元素块(如10×10像素点大小的生长元素块)作为当前生长元素块,到步骤S432。

S432、计算当前生长元素块的特征值(如灰度值方差),到步骤S433。

S433、判断当前生长元素块的特征值是否满足预定条件,如判断当前生长元素块的灰度值方差是否小于预定值(如40),如果判断结果为满足预定条件(如灰度值方差小于40),则到步骤S434;返回步骤S410和步骤S420;如果判断结果为不满足预定条件(如灰度值方差不小于40),则到步骤S440。

S440、本次利用区域生长算法确定图像中的道路区域的过程结束,可以将当前生长区域作为图像中的道路区域。

需要特别说明的是,图4所示的流程是以先执行当前生长元素块的左侧和右侧的生长过程,然后,再执行当前生长元素块的上侧的生长过程,如此重复执行并最终形成生长区域的;然而,本实施例也可以先不断的执行当前生长元素块的上侧的生长过程,并在上侧的生长过程停止后,再按照行从上到下的排列顺序或者从下到上的排列顺序,针对每一行分别执行左侧和右侧的生长过程,直到所有行的左侧和右侧的生长过程均停止,则确定本次利用区域生长算法确定图像中的道路区域的过程结束,从而可以将当前生长区域作为图像中的道路区域。该方法的具体过程在此不再详细说明。另外,本实施例中的最左侧生长元素块、最右侧生长元素块以及最上侧生长元素块的大小有可能会小于其他生长元素块的大小。

作为示例,针对图1所示的图像,本实施例利用区域生长算法确定出的该图像中的道路区域的一个例子如图5所示。

本实施例通过利用区域生长算法确定图像中的道路区域,无论是针对结构化道路,还是针对非结构化道路,本实施例均可以快速准确的获得图像中的道路区域,从而为实现确定结构化道路以及非结构化道路中的弯道曲率提供了基础。

S310、从上述确定出的道路区域的边界中提取边缘像素点。

作为示例,本实施例在确定出图像中的道路区域后,可以直接从该道路区域中提取出道路区域的边界,一个具体的例子,由于生长元素块的形状为方形,因此,道路区域的边界通常包含有大量的直角,本实施例可以通过检测道路区域中的相互衔接的直角而获得道路区域的边界,图6中的白线即为从图5所示的道路区域中提取出的边界。

作为示例,本实施例在从道路区域中提取出道路区域的边界后,为了进一步保证道路区域的边界的准确性,本实施例可以利用边缘检测算法(如Canny边缘检测算法等)确定出的图像中的各区域边界来对上述道路区域的边界进行校验。本实施例利用边缘检测算法可以检测出图像中的包括道路区域的边界在内的所有区域的边界。本实施例在确定出一个像素点即是区域边界上的像素点,又是道路区域的边界上的像素点的情况下,才会将该像素点作为道路区域的边界中的边缘像素点;而如果一个像素点不是区域边界上的像素点,而仅是道路区域的边界上的像素点,则本实施例会对该像素点进行过滤处理,即从道路区域的边界上的像素点集合中将该像素点删除。

作为示例,本实施例利用边缘检测算法确定出的图像中的区域边界对道路区域的边界进行校验的一个具体的例子为:设定利用边缘检测算法对图像进行处理后,如果一个像素点属于图像中的某一个区域边界,则该像素点的像素值被设定为1,而如果一个像素点不属于图像中的区域边界,则该像素点的像素值被设定为0;设定利用区域生长算法对图像进行处理后,如果一个像素点属于图像中的道路区域的边界,则该像素点的像素值被设定为1,而如果一个像素点不属于道路区域的边界,则该像素点的像素值被设定为0;在上述设定条件下,本实施例可以将边缘检测算法处理后的图像中的像素点与区域生长算法处理后的图像中的像素点进行与运算,从而将与运算后像素值仍为1的所有像素点作为道路区域的边界中的边缘像素点,即与运算后的所有像素值仍为1的像素点形成道路区域的边界。另外,在上述设定条件下,为了降低计算量,本实施例可以从区域生长算法处理后的图像中确定出包含有道路区域的边界的候检区域,该候检区域的大小可以由道路区域的一侧边界中的所有边缘像素点中最上侧边缘像素点、最左侧边缘像素点、最右侧边缘像素点以及最下侧边缘像素点决定;如图7中的左右两个方框即为道路区域左侧边界和右侧边界的候检区域,从而本实施例在进行与运算时,可以只针对边缘检测算法处理后的图像中的候检区域中的像素点与区域生长算法处理后的图像中的候检区域中的像素点进行与运算。本实施例在进行与运算之后,通常会获得离散分布的边缘像素点,如图7中的两个候检区域中的离散分布的白色的边缘像素点。

作为示例,本实施例可以从校验后的道路区域的边界上的所有边缘像素点中随机提取用于确定道路边缘曲线的边缘像素点。一个具体的例子,按照预定次数(如15次)进行多次选取(如随机选取),从而形成多组边缘像素点;本实施例每次均选取预定数量的边缘像素点,即一组中包含有预定数量的边缘像素点。本实施例中的预定数量可以根据曲线模型对控制点数量的需求来设定。

本实施例通过利用边缘检测算法(如Canny边缘检测算法等)确定出的图像中的各区域边界来对基于区域生长算法确定出的道路区域的边界进行校验,可以使最终确定出的道路区域的边界更加准确,从而可以避免由于非结构化道路没有明显的车道线且道路边界没有明显的标志物而导致的确定道路区域的边界较困难的问题。

S320、将提取的边缘点作为形成曲线的控制点提供给曲线模型,并根据曲线模型输出的曲线确定道路边缘曲线。

作为示例,本实施例中的曲线模型可以具体为三次贝塞尔曲线模型。当然,本实施例也可以采用其他曲线模型。在采用三次贝塞尔曲线模型的情况下,由于三次贝塞尔曲线模型需要4个控制点,因此,本实施例可以每次随机选取4个边缘像素点提供给曲线模型。本实施例采用的三次贝塞尔曲线模型可以表示为如下公式(2)的形式:

在上述公式(2)中,P0、P1、P2、P3表示三次贝塞尔曲线模型的4个控制点,t表示取样宽度,且t的取值范围通常为0-1之间,如t的取值可以设定为0.01,P(t)表示三次贝塞尔曲线模型所输出的曲线,该曲线应经过P0和P3这两个控制点,并不经过P1和P2这两个控制点,如图8所示。

作为示例,本实施例针对每一组边缘像素点均可以利用曲线模型生成一条曲线,本实施例应从多条曲线中选取一条曲线作为道路边缘曲线,在从多条曲线中选取一条曲线时,应考虑曲线的长度以及弯曲度,如可以利用曲线的长度以及曲线的弯曲度来确定曲线特征值,从而通过比较所有曲线的曲线特征值即可选取出一条最优曲线,如将曲线特征值最大的曲线作为道路边缘曲线。

本实施例通过基于曲线的长度以及弯曲度来确定道路边缘曲线,可以从众多曲线中准确的挑选出更符合道路边缘曲线特征的曲线,对于非结构化道路而言,可以有效提高确定出的道路的边界的准确性,从而本实施例可以提高最终确定出的弯道曲率的准确性。

作为示例,本实施例从多条曲线中选取一条曲线的一个具体例子为:

步骤a、针对曲线模型输出的各条曲线,利用下述公式(3)分别计算各条曲线的系数:

k=l/d+(θ+1)/2 公式(3)

在上述公式(3)中,k为曲线的系数,l为P0和P3这两个控制点之间的连线距离,d为曲线所在的候检区域的对角线长度(候检区域如上述实施例中的描述),如d可以为图7中的左/右方框的对角线长度;θ为曲线的弯曲度,且曲线的弯曲度可以通过下述公式(4)计算获得:

θ=(cosα+cosβ)/2 公式(4)

在上述公式(4)中,α为由控制点P0、P1形成的直线与由控制点P1、P2形成的直线之间的夹角,β为由控制点P1、P2形成的直线与由控制点P2、P3形成的直线之间的夹角(如图8所示)。

由于候检区域的对角线长度能够从一定程度上反应出道路边缘曲线的长度,因此,本实施例通过利用P0和P3两个控制点之间的连线距离与曲线所在的候检区域的对角线长度的比值可以在一定程度上反应出该曲线的长度与道路边缘曲线的长度之间的关系,P0和P3两个控制点之间的连线距离越接近曲线所在的候检区域的对角线长度,则该曲线的特征值越大。

步骤b、针对曲线模型输出的每一条曲线,分别计算扩展宽度的曲线中的所有像素点的像素值之和。本实施例中的曲线模型所输出的曲线通常为单像素点宽度的曲线,本实施例中的扩展宽度的曲线是指具有多像素点宽度的曲线。如果将曲线的两侧分别称为内侧(如图8中的曲线的左侧)和外侧(如图8中的曲线的右侧)的话,则可以针对曲线中的每一个像素点分别向内侧扩展N个像素点,并分别向外侧扩展M个像素点,从而形成一条扩展了M+N+1像素点宽度的曲线,一个具体的例子,设定图8中的曲线是基于取样宽度为0.01而生成的曲线,从而该曲线是由100个像素点形成的曲线,本实施例可以将这100个像素点中的每一个像素点分别向左扩展2个像素点,向右扩展2个像素点,从而形成5个像素点宽度的曲线。扩展了宽度的曲线中的每一个像素点均具有像素值,且像素点的像素值可以表示出该像素点是否为边缘像素点,例如,如果一个像素点是边缘像素点,则其像素值可以设置为255,而如果一个像素点不是边缘像素点,则其像素值可以设置为0;再例如,如果一个像素点是边缘像素点,则其像素值可以设置为1,而如果一个像素点不是边缘像素点,则其像素值可以设置为0。

需要特别说明的是,本实施例中的每一个像素点的像素值的具体取值可以是通过上述与运算确定出的。上述步骤a和步骤b可以同时执行,即本实施例不限制步骤a和步骤b的执行顺序。

由于曲线上的一个像素点的周边像素点也属于边缘像素点,则该像素点是道路边缘曲线上的一个像素点的可能性会大一些,而如果曲线上的一个像素点的周边像素点不属于边缘像素点,则该像素点是道路边缘曲线上的一个像素点的可能性会小一些,因此,一条扩展了宽度的曲线上的所有像素点的像素值之和可以在一定程度上表示出原曲线是道路边缘曲线的可能性。

步骤c、利用下述公式(5)计算各条曲线的曲线特征值:

v=k×sum 公式(5)

在上述公式(5)中,v为曲线的曲线特征值,k为上述公式(3)计算出的曲线的系数,sum为扩展了宽度后的曲线上的所有像素点的像素值之和。

步骤d、比较各曲线的曲线特征值,将曲线特征值最大的曲线确定为道路边缘曲线。

S330、确定道路边缘曲线的弯道曲率。

作为示例,在确定了道路边缘曲线的情况下,本实施例可以采用多种方法来确定该道路边缘曲线的弯道曲率,如可以计算道路边缘曲线上的任意一个像素点的曲率,并将该像素点的曲率作为道路边缘曲线的弯道曲率,再如可以计算道路边缘曲线上的多个像素点的曲率,并将多个像素点的曲率的平均值作为该道路边缘曲线的弯道曲率。通过利用多个像素点的曲率的平均值来确定道路边缘曲线的弯道曲率,有利于提高本实施例最终确定出的弯道曲率的准确性。

在道路边缘曲线是基于取样宽度为0.01而生成的曲线的情况下,本实施例可以通过下述公式(6)计算道路边缘曲线上的100个像素点的曲率半径的平均值:

在上述公式(6)中,ρ为道路边缘曲线的弯道曲率半径,Δαi为道路边缘曲线上的第i个像素点处的切线和道路边缘曲线上的第i+1个像素点处的切线之间的夹角,ΔSi为道路边缘曲线上的第i个像素点与道路边缘曲线上的第i+1个像素点之间的弧长,且该弧长可以近似取两像素点之间的直线距离。

在获得了100个像素点的曲率半径的平均值的情况下,100个像素点的曲率的平均值即为100个像素点的曲率半径的平均值的倒数。

在一个具体实施例中,本发明提供了一种用于检测道路中的弯道曲率的装置。该装置的结构如图9所示,且图9中的装置主要包括:区域生长模块900、提取边缘像素点模块910、确定曲线模块920以及确定曲率模块930。

下面对本实施例的控制装置所包括的各模块分别进行详细说明。

区域生长模块900主要用于根据区域生长算法确定图像中的道路区域。

作为示例,区域生长模块900所使用的图像通常是车辆中安装的摄像头实时摄取的图像。针对摄像头所摄取的任一图像而言,区域生长模块900是利用图像中的具有预定大小的生长元素块逐步形成道路区域的,且区域生长模块900所使用的生长元素块的大小可以根据实际需求设置,如在计算资源较强大且更多的关注弯道曲率准确度的情况下,可以将区域生长模块900所使用的生长元素块的大小设置的小一些,再如在计算资源较弱且更多的关注弯道曲率检测速度的情况下,可以将区域生长模块900所使用的生长元素块的大小设置的大一些。在一个具体的例子中,区域生长模块900所使用的生长元素块为10×10像素点大小的生长元素块。

在通常情况下,区域生长模块900会先设置一个为空的生长区域,并在图像中确定一个初始生长元素块;然后,区域生长模块900将该初始生长元素块加入到生长区域中;之后,区域生长模块900以该生长区域为基础向周围进行生长检测,从而使生长区域逐渐扩大,最终,在确定出生长区域停止生长时,区域生长模块900将停止生长的生长区域作为图像中的道路区域。

作为示例,由于图像的中部区域通常属于道路区域,因此,区域生长模块900可以将初始生长元素块设置在图像的下侧的中部区域中,如区域生长模块900可以以图像的最下侧的中间像素点为基准点向左侧、右侧以及上侧方分别扩展相应数量的像素点,从而形成一个10×10像素点大小的初始生长元素块。

作为示例,区域生长模块900在设置了初始生长元素块,并将该初始生长元素块加入生长区域之后,区域生长模块900可以分别计算与当前生长区域相邻的左生长元素块的特征值、与当前生长区域相邻的右生长元素块的特征值以及与当前生长区域向量的上生长元素块的特征值,然后,区域生长模块900判断左生长元素块的特征值是否满足预定条件、右生长元素块的特征值是否满足预定条件以及上生长元素块的特征值是否满足预定条件,并将满足预定条件的生长元素块加入到当前生长区域中,区域生长模块900重复上述使当前生长区域生长的过程,直到当前生长区域的左生长元素块、右生长元素块以及上生长元素块的特征值均不满足预定条件时,区域生长模块900确定出当前生长区域停止生长,区域生长模块900可以将当前停止生长的生长区域作为从图像中检测出的道路区域。

作为示例,区域生长模块900所计算的生长元素块的特征值可以具体为生长元素块的灰度值方差,当然,本实施例也不排除区域生长模块900所计算的生长元素块的特征值为其他形式的可能性。具体的,区域生长模块900可以利用上述公式(1)计算一个生长元素块的灰度值方差,在此不再针对公式(1)进行重复说明。另外,区域生长模块900利用区域生长算法确定图像中的道路区域的一个具体例子如上述实施例中针对图4的描述,在此不再重复说明。

作为示例,针对图1所示的图像,区域生长模块900利用区域生长算法确定出的该图像中的道路区域的一个例子如图5所示。

提取边缘像素点模块910主要用于从区域生长模块900确定出的道路区域的边界中提取边缘像素点;且在一个实施例中,该提取边缘像素点模块910可以包括:边缘检测子模块、过滤像素点子模块以及提取子模块;其中的边缘检测子模块主要用于利用边缘检测算法确定所述图像中的各区域边界;其中的过滤像素点子模块主要用于在一个像素点分别为所述区域边界上的像素点以及道路区域边界上的像素点时,将像素点作为道路区域的边界中的边缘像素点;提取子模块主要用于将从道路区域的边界中的边缘像素点中选取的边缘像素点作为提取出的边缘像素点。

作为示例,提取边缘像素点模块910在区域生长模块900确定出图像中的道路区域后,可以直接从该道路区域中提取出道路区域的边界,一个具体的例子,由于生长元素块的形状为方形,因此,道路区域的边界通常包含有大量的直角,提取边缘像素点模块910可以通过检测道路区域中的相互衔接的直角而获得道路区域的边界,图6中的白线即为提取边缘像素点模块910从图5所示的道路区域中提取出的边界。

作为示例,提取边缘像素点模块910在从道路区域中提取出道路区域的边界后,为了进一步保证道路区域的边界的准确性,提取边缘像素点模块910(如边缘检测子模块以及过滤像素点子模块)可以利用边缘检测算法(如Canny边缘检测算法等)确定出的图像中的各区域边界来对上述道路区域的边界进行校验。提取边缘像素点模块910(如边缘检测子模块)利用边缘检测算法可以检测出图像中的包括道路区域的边界在内的所有区域的边界。提取边缘像素点模块910(如过滤像素点子模块)在确定出一个像素点即是区域边界上的像素点,又是道路区域的边界上的像素点的情况下,才会将该像素点作为道路区域的边界中的边缘像素点;而如果一个像素点不是区域边界上的像素点,而仅是道路区域的边界上的像素点,则提取边缘像素点模块910(如过滤像素点子模块)会对该像素点进行过滤处理,即提取边缘像素点模块910(如过滤像素点子模块)从道路区域的边界上的像素点集合中将该像素点删除。

作为示例,提取边缘像素点模块910利用边缘检测算法确定出的图像中的区域边界对道路区域的边界进行校验的一个具体的例子为:设定边缘检测子模块利用边缘检测算法对图像进行处理后,如果一个像素点属于图像中的某一个区域边界,则该像素点的像素值被边缘检测子模块设定为1,而如果一个像素点不属于图像中的区域边界,则该像素点的像素值被边缘检测子模块设定为0;设定区域生长模块900利用区域生长算法对图像进行处理后,如果一个像素点属于图像中的道路区域的边界,则该像素点的像素值被区域生长模块900设定为1,而如果一个像素点不属于道路区域的边界,则该像素点的像素值被区域生长模块900设定为0;在上述设定条件下,提取边缘像素点模块910(如过滤像素点子模块)可以将边缘检测算法处理后的图像中的像素点与区域生长算法处理后的图像中的像素点进行与运算,从而过滤像素点子模块将与运算后像素值仍为1的所有像素点作为道路区域的边界中的边缘像素点,即与运算后的所有像素值仍为1的像素点形成道路区域的边界。

另外,在上述设定条件下,为了降低计算量,过滤像素点子模块可以从区域生长算法处理后的图像中确定出包含有道路区域的边界的候检区域,该候检区域的大小可以由道路区域的一侧边界中的所有边缘像素点中最上侧边缘像素点、最左侧边缘像素点、最右侧边缘像素点以及最下侧边缘像素点决定;如图7中的左右两个方框即为道路区域左侧边界的候检区域和右侧边界的候检区域,从而过滤像素点子模块在进行与运算时,可以只针对边缘检测算法处理后的图像中的候检区域中的像素点与区域生长算法处理后的图像中的候检区域中的像素点进行与运算。过滤像素点子模块在进行与运算后,通常会获得离散分布的边缘像素点,如图7中的两个候检区域中的离散分布的白色的边缘像素点。

作为示例,提取边缘像素点模块910(如提取子模块)可以从过滤像素点子模块校验后的道路区域的边界上的所有边缘像素点中提取(如随机提取)用于确定道路边缘曲线的边缘像素点。一个具体的例子,提取子模块按照预定次数(如15次)进行多次随机选取,从而形成多组边缘像素点;提取子模块每次均选取预定数量的边缘像素点,即一组中包含有预定数量的边缘像素点。提取子模块所使用的预定数量可以根据曲线模型对控制点数量的需求来设定。

确定曲线模块920主要用于将提取的边缘像素点作为形成曲线的控制点提供给曲线模型,并根据曲线模型输出的曲线确定道路边缘曲线;且在一个实施例中,该确定曲线模块920可以包括:计算特征值子模块以及比较子模块;其中的计算特征值子模块主要用于将提取出的多组边缘像素点作为形成曲线的控制点分别提供给曲线模型,并计算所述曲线模型针对每一组边缘点分别输出的曲线的特征值;其中的比较子模块主要用于将曲线特征值最大的曲线作为道路边缘曲线。

作为示例,确定曲线模块920所使用的曲线模型可以具体为三次贝塞尔曲线模型。当然,确定曲线模块920也可以采用其他曲线模型。在确定曲线模块920采用三次贝塞尔曲线模型的情况下,由于三次贝塞尔曲线模型需要4个控制点,因此,提取边缘像素点模块910可以每次选取(如随机选取)4个边缘像素点,确定曲线模块920(如计算特征值子模块)将取边缘像素点模块910每次随机选取的4个边缘像素点提供给曲线模型。确定曲线模块920所使用的三次贝塞尔曲线模型可以表示为上述公式(2)的形式,在此不再重复说明。

作为示例,确定曲线模块920针对每一组边缘像素点均可以利用曲线模型生成一条曲线,确定曲线模块920应从多条曲线中选取一条曲线作为道路边缘曲线,在从多条曲线中选取一条曲线时,应考虑各条曲线的长度以及弯曲度等,如确定曲线模块920(如计算特征值子模块)可以利用曲线的长度以及曲线的弯曲度来确定曲线特征值,从而确定曲线模块920(如比较子模块)通过比较所有曲线的曲线特征值即可选取出一条最优曲线,如比较子模块将曲线特征值最大的曲线作为道路边缘曲线。确定曲线模块920通过基于曲线的长度以及弯曲度来确定道路边缘曲线,可以从众多曲线中准确的挑选出更符合道路边缘曲线特征的曲线,从而可以提高确定曲率模块930最终确定出的弯道曲率的准确性。

作为示例,确定曲线模块920从多条曲线中选取一条曲线的一个具体例子为:针对曲线模型输出的各条曲线,计算特征值子模块利用上述公式(3)和公式(4)分别计算各条曲线的系数。针对曲线模型输出的每一条曲线,计算特征值子模块分别计算扩展宽度的曲线中的所有像素点的像素值之和。本实施例中的曲线模型所输出的曲线通常为单像素点宽度的曲线,本实施例中的扩展宽度的曲线是指具有多像素点宽度的曲线。扩展了宽度的曲线中的每一个像素点均具有像素值,且像素点的像素值可以表示出该像素点是否为边缘像素点,例如,如果一个像素点是边缘像素点,则其像素值可以被设置为255,而如果一个像素点不是边缘像素点,则其像素值可以被设置为0;再例如,如果一个像素点是边缘像素点,则其像素值可以设置为1,而如果一个像素点不是边缘像素点,则其像素值可以设置为0。需要特别说明的是,本实施例中的每一个像素点的像素值的具体取值可以是通过确定曲线模块920所执行的与运算确定出的。计算特征值子模块利用上述公式(5)计算各条曲线的曲线特征值。比较子模块比较各曲线的曲线特征值,并将曲线特征值最大的曲线确定为道路边缘曲线。

确定曲率模块930主要用于确定道路边缘曲线的弯道曲率。

作为示例,在确定曲线模块920确定了道路边缘曲线的情况下,确定曲率模块930可以采用多种方法来确定该道路边缘曲线的弯道曲率,如确定曲率模块930可以计算道路边缘曲线上的任意一个像素点的曲率,并将该像素点的曲率作为道路边缘曲线的弯道曲率,再如确定曲率模块930可以计算道路边缘曲线上的多个像素点的曲率,并将多个像素点的曲率的平均值作为该道路边缘曲线的弯道曲率。确定曲率模块930通过利用多个像素点的曲率的平均值来确定道路边缘曲线的弯道曲率,有利于提高弯道曲率的准确性。

在道路边缘曲线是基于取样宽度为0.01而生成的曲线的情况下,确定曲率模块930可以通过上述公式(6)计算道路边缘曲线上的100个像素点的曲率半径的平均值。确定曲率模块930在获得了100个像素点的曲率半径的平均值的情况下,100个像素点的曲率的平均值即为100个像素点的曲率半径的平均值的倒数。

在一个实施例中,本发明提供一种设置有用于检测道路中的弯道曲率的装置的车辆(如智能车辆),使用上述用于检测道路中的弯道曲率的方法检测结构化道路以及非结构化道路的弯道曲率。

在一个实施例中,本发明提供一种智能车辆,图10示出本发明一个实施例的智能车辆的结构框图,如图10所示,该车辆1000包括:中控模块、仪表盘1010、行车记录仪1011、HUD(Head Up Display,平视显示器)抬头显示器1012、智能车载信息娱乐系统1013、智能驾驶模块1013。

仪表盘1010具有12.3寸LCD显示设备,该仪表盘可以采用TI的J6CPU;仪表盘的操作系统可以基于QNX嵌入式系统,仪表盘可以用于显示车辆状态、地图、车辆导航信息、车辆播放音乐等,所述车辆状态信息包括:速度、转速、电量、胎压、车辆驻车、档位等。HUD抬头显示器1012可以显示GPS导航信息、导航路径信息、时间信息等。

在一个实施例中,智能驾驶模块1013可以用于处理与智能驾驶相关的操作,智能驾驶模块1013可以包括高级辅助驾驶系统(Advanced Driver Assistance Systems,ADAS)、主动安全系统、注意力辅助系统(Attention Assist System,AAS)、疲劳警告系统(Fatigue Warning System,FWS)、车辆智能声学报警系统(Acoustic Vehicle Alerting System,AVAS)等。车辆可以结合ADAS系统等进行智能驾驶,该智能驾驶可以是完全无人的驾驶,也可以是驾驶员进行驾驶控制的辅助并线、车道偏移等高级辅助驾驶功能。

中控装置可以由多个模块组成,主要可以包括:主板1001;SATA(Serial Advanced Technology Attachment,串行高级技术附件)模块1002,连接到如SSD1003的存储设备,可以用来存储数据信息;AM(Amplitude Modulation,调幅)/FM(Frequency Modulation,调频)模块1004,为车辆提供收音机的功能;功放模块1005,用于声音处理;WIFI(Wireless-Fidelity,无线保真)/Bluetooth模块1006,为车辆提供WIFI/Bluetooth的服务;LTE(Long Term Evolution,长期演进)通信模块1007,为车辆提供与电信运营商的通信功能;电源模块1008,电源模块1008为该中控装置提供电源;Switch转接模块1009,该Switch转接模块1009可以作为一种可扩展的接口连接多种传感器,例如如果需要添加夜视功能传感器、PM2.5功能传感器,可以通过该Switch转接模块1009连接到中控装置的主板,以便中控装置的处理器进行数据处理,并将数据传输给中控显示器。

在一个实施例中,该车辆还包括环视摄像头、ADAS摄像头、夜视摄像头、毫米波雷达、超声波雷达、ESR雷达等传感器。

在此提供的算法以及显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。

在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。

类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如本发明的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。

本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。

此外,本领域的技术人员能够理解,尽管在此所述的实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在本发明的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。

本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的用于检测道路中的弯道曲率的方法以及用于检测道路中的弯道曲率的装置中的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者系统程序(如计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,也可以在载体信号上提供,或者以任何其他形式提供。

应该注意的是,上述实施例是对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或者步骤等。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干系统的单元权利要求中,这些系统中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二以及第三等的使用不表示任何顺序,可将这些单词解释为名称。

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