车道线检测方法和装置
技术领域
本申请涉及智能驾驶技术领域,特别是涉及一种车道线检测方法和装置。
背景技术
近年来,随着计算机和机器人技术不断发展,智能驾驶技术也得到了飞速的发展。在智能驾驶技术中,通过车载传感***感知道路环境,对道路中的车道线进行准确检测,是实现驾驶智能化的关键因素。因此,如何保证在各种复杂自然环境下准确检测车道线,是有效提升智能驾驶性能和安全性需要攻克的难题。
目前的车道线检测方法,均无法解决阴影遮挡、车辆或其他障碍物等复杂状况对于车道线检测的干扰,而这些干扰极大地降低了车道线检测的准确率。
发明内容
基于此,有必要针对上述技术问题,提供一种能够提高车道线检测的准确率的车道线检测方法和装置。
一种车道线检测方法,所述方法包括:
将待处理图像转换至包括饱和度通道和亮度通道的颜色空间,获得颜色空间图像;
基于所述颜色空间图像的饱和度通道和亮度通道,分别进行滤波处理,获得颜色空间图像的图像分割信息,所述图像分割信息包括:对所述饱和度通道进行梯度方向滤波获得的第一边缘信息;对所述饱和度通道和所述亮度通道分别进行水平方向滤波获得的第二边缘信息;
基于所述图像分割信息确定车道线二值图;
根据所述车道线二值图中的有效像素点进行曲线拟合,获得拟合车道线。
一种车道线检测装置,所述装置包括:
转换处理模块,用于将待处理图像转换至颜色空间,获得颜色空间图像,所述颜色空间包括饱和度通道和亮度通道;
滤波处理模块,用于基于所述颜色空间图像的饱和度通道和亮度通道,分别进行滤波处理,获得颜色空间图像的图像分割信息,所述图像分割信息包括:对所述饱和度通道进行梯度方向滤波获得的第一边缘信息;对所述饱和度通道和所述亮度通道分别进行水平方向滤波获得的第二边缘信息;
二值图确定模块,用于基于所述图像分割信息确定车道线二值图;
拟合处理模块,用于根据所述车道线二值图中的有效像素点进行曲线拟合,获得拟合车道线。
上述车道线检测方法和装置,通过将待处理图像转换至包括饱和度通道和亮度通道的颜色空间,获得颜色空间图像,基于颜色空间图像的饱和度通道和亮度通道,分别进行滤波处理,获得颜色空间图像的图像分割信息,其中,图像分割信息包括:对饱和度通道进行梯度方向滤波获得的第一边缘信息;对饱和度通道和亮度通道分别进行水平方向滤波获得的第二边缘信息。进而基于多重滤波获得的图像分割信息确定车道线二值图。通过颜色空间转换,再分别对饱和度通道和亮度通道进行梯度方向和水平方向的多重滤波,有效滤除阴影、车辆或其他障碍物的边缘,获得包括精确车道线边缘、且较少干扰边缘的车道线二值图。进一步地,基于该车道线二值图中的有效像素点进行曲线拟合,有效提高了拟合车道线的准确率。
附图说明
图1为一个实施例中车道线检测方法的应用环境图;
图2为一个实施例中车道线检测方法的流程示意图;
图3为一个实施例中有效像素点确定步骤的流程示意图;
图4为一个实施例中滑动窗口确定步骤的流程示意图;
图5为一个实施例中滑动窗口中心位置确定步骤的流程示意图;
图6为一个实施例中车道拟合步骤的流程示意图;
图7为一个实施例中当前车道线模型系数更新步骤的流程示意图;
图8为一个实施例中车道线检测方法的流程示意图;
图9为一个实施例中车道线检测方法的效果图;
图10为一个实施例中车道线检测方法装置的结构框图;
图11为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的车道线检测方法,可以应用于如图1所示的应用环境中。在本实施例,以终端102为汽车终端为例。首先,汽车终端102采集车道线的原始图像,对该原始图像进行车道线检测,获得拟合车道线,将拟合车道线进行显示,或者使得汽车终端102中的控制器根据拟合车道线控制汽车保持稳定平滑行驶。在其他实施例中,终端102也可以是与汽车终端通过网络连接、用于实现车道线检测的云服务端,云服务端具体为服务器。此外,终端102还可以是任何需要实现车道线检测的设备。
在一个实施例中,如图2所示,提供了一种车道线检测方法,以该方法应用于图1中的终端为例进行说明,包括以下步骤:
S202,将待处理图像转换至包括饱和度通道和亮度通道的颜色空间,获得颜色空间图像。
其中,颜色空间也称彩色模型(又称彩色空间或彩色***),是使用一组值(通常使用三个、四个值或者颜色成分)表示颜色方法的抽象数学模型。在本实施例中,颜色空间为包括饱和度通道和亮度通道在内的三通道颜色空间。比如,HSV(Hue,Saturation,Value)颜色空间,其中,H指的是色调,S指的是饱和度,V指的亮度;HLS(Hue,Saturation,Lightness/Luminance)颜色空间,其中,H指的是色调,S指的是饱和度,L指的亮度。颜色空间图像是指转换至相应颜色空间后获得的该颜色空间格式的图像,比如HSV格式图像、HLS格式图像。
具体地,根据待处理图像提取得到像素的颜色向量,通过像素的颜色向量进行计算得到对应颜色空间各通道值,各通道值包括饱和度通道值和亮度通道值,由各通道值形成颜色空间图像。通过将待处理图像转换至包括饱和度通道和亮度通道的颜色空间,可便于后续对黄色车道线和白色车道线进行区分处理,提高车道线检测的准确性。
进一步地,待处理图像是指对车道线进行采集所获得的图像。在一实施例中,待处理图像可以是采集的原始图像;在另一实施例中,待处理图像也可以是对原始图像进行预处理后的图像。其中,预处理包括但不限于图像去噪、归一化等中的任一种或多种处理。而通过图像去噪可以减少细小噪声的干扰,通过归一化可以将图像转换为标准格式,便于后续处理。
当待处理图像是对原始图像进行预处理后的图像时,将待处理图像转换至包括饱和度通道和亮度通道的颜色空间,获得颜色空间图像的步骤之前,还包括:获取采集车道线的原始图像;对原始图像进行预处理,获得待处理图像。在对原始图像进行预处理时,可以采用双边滤波算法、中值滤波、高斯滤波等任意一种滤波方法实现去噪目的。
S204,基于颜色空间图像的饱和度通道和亮度通道,分别进行滤波处理,获得颜色空间图像的图像分割信息,图像分割信息包括:对饱和度通道进行梯度方向滤波获得的第一边缘信息;对饱和度通道和亮度通道分别进行水平方向滤波获得的第二边缘信息。
具体地,对颜色空间图像的饱和度通道进行梯度方向滤波,获得第一边缘信息;对颜色空间图像的饱和度通道和亮度通道分别进行水平方向滤波,获得第二边缘信息。其中,第二边缘信息由对饱和度通道进行水平方向滤波获得的第一竖直边缘信息、以及对亮度通道进行水平方向滤波获得的第二竖直边缘信息进行按位或处理得到。此处按位或处理的目的是使第二边缘信息同时携带第一竖直边缘信息和第二竖直边缘信息。其中,边缘信息是指边缘像素点的像素值为非零值,而非边缘像素点的像素值均为零的像素矩阵。
在本实施例中,通过对饱和度通道进行水平方向滤波,可以获得竖直方向的黄色边缘信息(第一竖直边缘信息),通过对亮度通道进行水平方向滤波,可以获得竖直方向的白色边缘信息(第二竖直边缘信息),而车道线通常包括白色车道线和黄色车道线,通过该处理也就可以获得白色车道线边缘信息和黄色车道线边缘信息。
具体地,在执行梯度方向滤波时所进行的梯度计算将通过如下公式(1)实现,即:
其中,(x,y)表示颜色空间图像每个像素点的像素坐标;f(x,y)表示对应像素点的灰度值;Grad表示对应像素点的梯度值。
在进行水平方向滤波处理时,采用的滤波算法可以是任意可实现竖直边缘提取的滤波算法,比如,Sobel滤波算法。
以采用Sobel对S通道和V通道进行水平方向滤波,得到第二边缘信息为例,其计算公式如下:
其中,S表示S通道值;SobelxS表示对S通道进行水平方向滤波得到的第一竖直边缘信息;V表示V通道值;SobelxV表示对V通道进行水平方向滤波得到的第二竖直边缘信息;M1表示第二边缘信息。
S206,基于图像分割信息确定车道线二值图。
其中,车道线二值图是指包括车道线边缘信息的二值图。具体地,根据第一边缘信息和第二边缘信息确定车道线边缘信息,基于所确定的车道线边缘信息生成车道线二值图。更具体地,将根据车道线边缘信息确定的边缘像素点的灰度值设置为1,其他像素点的灰度值设置为0,生成车道线二值图。
S208,根据车道线二值图中的有效像素点进行曲线拟合,获得拟合车道线。
具体地,按照预设的曲线拟合规则,对车道线二值图中的有效像素点进行曲线拟合,确定车道线模型,根据车道线模型在车道线二值图上生成拟合车道线。其中,车道线模型是指拟合车道线的函数模型。
上述车道线检测方法,通过将待处理图像转换至包括饱和度通道和亮度通道的颜色空间,获得颜色空间图像,基于颜色空间图像的饱和度通道和亮度通道,分别进行滤波处理,获得颜色空间图像的图像分割信息,其中,图像分割信息包括:对饱和度通道进行梯度方向滤波获得的第一边缘信息;对饱和度通道和亮度通道分别进行水平方向滤波获得的第二边缘信息。进而基于多重滤波获得的图像分割信息确定车道线二值图。通过颜色空间转换,再分别对饱和度通道和亮度通道进行梯度方向和水平方向的多重滤波,有效滤除阴影、车辆或其他障碍物的边缘,获得包括精确车道线边缘、且较少干扰边缘的车道线二值图。进一步地,基于该车道线二值图中的有效像素点进行曲线拟合,有效提高了拟合车道线的准确率。
在一实施例中,基于图像分割信息确定车道线二值图的步骤,包括:对第一边缘信息、第二边缘信息进行按位与处理,确定车道线边缘信息;根据车道线边缘信息,生成车道线二值图。
具体地,对第一边缘信息、第二边缘信息进行按位与处理的计算将通过如下公式(3)实现,即:
M=Grad&M1 (3)
其中,M表示车道线边缘信息。
在本实施例中,通过将对饱和度通道进行梯度方向滤波得到第一边缘信息,以及分别对饱和度通道和亮度通道分别进行水平方向滤波得到第二边缘信息进行按位与操作,使得只有在梯度滤波和水平滤波后均属于边缘的像素点的像素值为非零值,也即通过多重滤波达到了过滤掉无关像素点的目的,只保留在梯度滤波和水平滤波后均属于边缘的像素点为边缘像素点。比如,通过按位与处理过滤掉待处理图像中阴影、车辆、其他障碍物或其他背景物体的边缘像素点,从而获得精确的车道线边缘信息,减少环境元素的干扰。
在一实施例中,图像分割信息还包括:分别对饱和度通道和亮度通道进行全局自适应阈值分割获得的掩码区域信息。其中,掩码区域信息由对饱和度通道进行全局自适应阈值分割获得的第一子掩码区域信息、以及对亮度通道进行全局自适应阈值分割获得的第二子掩码区域信息进行按位或处理得到。此处按位或处理的目的是使掩码区域信息同时携带第一子掩码区域信息和第二子掩码区域信息。其中,掩码区域信息是指属于掩膜区域的像素点的像素值为非零值,而非掩膜区域的像素点的像素值均为零的像素矩阵。
进一步地,基于颜色空间图像的饱和度通道和亮度通道,分别进行滤波处理,获得颜色空间图像的图像分割信息的步骤,具体还包括:对颜色空间图像的饱和度通道和亮度通道分别进行全局自适应阈值分割,获得掩码区域信息。
通过对饱和度通道进行全局自适应阈值分割,可以获得黄色掩码区域信息(第一子掩码区域信息),通过对亮度通道进行全局自适应阈值分割,可以获得白色掩码区域信息(第二子掩码区域信息),而车道线通常包括白色车道线和黄色车道线,通过该处理也就可以提取得到白色车道线区域和黄色车道线区域。
在进行全局自适应阈值分割时,全局自适应阈值的计算公式如下:
其中,g表示灰度直方图每一个灰度等级的灰度值;h(g)表示当前图像中属于第g灰度级的像素数量;Amount表示像素数量总和;ThreshAvg表示平均灰度值;Thresh表示全局自适应阈值。
通过全局自适应阈值分割即可过滤掉灰度值小于该阈值的像素点,保留灰度值达到该阈值的像素点,获得掩码区域信息。
假设MThresh-S表示第一子掩码区域信息,MThresh-V表示第二子掩码区域信息,则掩码区域信息M2可通过以下公式计算获得:
M2=MThresh-S|MThresh-V (5)
进一步地,基于图像分割信息确定车道线二值图的步骤,包括:对第一边缘信息、第二边缘信息和掩码区域信息进行按位与处理,确定车道线边缘信息;根据车道线边缘信息,生成车道线二值图。
具体地,对第一边缘信息、第二边缘信息和掩码区域信息进行按位与处理的计算将通过如下公式(6)实现,即:
M=Grad&M1&M2 (6)
参照图9(a)、(b),其中,图9(a)为对颜色空间图像仅进行全局自适应阈值分割时的效果图;图9(b)为对颜色空间图像进行梯度方向、水平方向和全局自适应阈值分割的多重滤波的效果图。由此可看出,通过将全局自适应阈值分割的掩码区域信息与第一边缘信息、第二边缘信息进行按位与处理,进一步滤除了路面上阴影、缝隙等细小的竖直边缘,避免了其对后续处理构成的干扰。
进一步地,基于图像分割信息确定车道线二值图之后,还包括:确定车道线二值图中的有效像素点。其中,有效像素点是指可用于进行曲线拟合的像素点。
在一实施例中,确定车道线二值图中的有效像素点的步骤,包括:确定车道线二值图中车道线的多个滑动窗口;将滑动窗口中的非零像素点作为有效像素点。
具体地,根据滑动窗口确定规则,在车道线二值图中生成多个滑动窗口,使多个滑动窗口中包含车道线。再根据所确定的滑动窗口,获得滑动窗口中的非零像素点,将非零像素点作为有效像素点,以利用有效像素点进行曲线拟合。
在另一实施例中,如图3所示,确定车道线二值图中的有效像素点的步骤,包括以下子步骤:
S302,对车道线二值图进行透视变换,得到鸟瞰图。
透视变换是指利用透视中心、像点、目标点三点共线的条件,按透视旋转定律使承影面(透视面)绕迹线(透视轴)旋转某一角度,破坏原有的投影光线束,仍能保持承影面上投影几何图形不变的变换。
在本实施例中,通过透视变换将车道线二值图转换为俯视视角下的鸟瞰图,也即将原三维坐标系下的车道线二值图,转换为二维坐标系下的鸟瞰图。在鸟瞰图下,车道线基本处于平行状态,且车道线弯曲程度比原车道线二值图中的小,更方便使用滑动窗口搜索和进行曲线拟合。
S304,确定鸟瞰图中车道线的多个滑动窗口。
具体地,根据滑动窗口确定规则,在鸟瞰图中生成多个滑动窗口,使得多个滑动窗口中包含车道线。
S306,将滑动窗口中的非零像素点作为有效像素点。如图9(d)、(e)所示,图9(d)为一实施例中通过滑动窗口搜索有效像素点的示意图,图9(e)为根据图9(d)中确定的有效像素点进行曲线拟合,获得的拟合车道线的示意图。
通过将车道线二值图透视变换成鸟瞰图,减小了车道线的弯曲程度,更方便于使用滑动窗口搜索确定有效像素点。
进一步地,参照图4,确定鸟瞰图中车道线的多个滑动窗口的步骤,包括以下子步骤:
S402,基于鸟瞰图对应的像素分布直方图,确定初始滑动窗口和与初始滑动窗口相邻的第一滑动窗口的中心位置。
像素分布直方图是指用于描述像素分布状况的直方图,具体地,像素分布直方图的水平坐标轴与鸟瞰图像素坐标系的水平坐标轴相同,像素分布直方图的纵坐标轴表示非零像素点数量。在本实施例中,鸟瞰图对应的像素分布直方图是指鸟瞰图中设定区域的像素分布直方图。设定区域具体可根据需求进行设置,在此不作限定。比如,设定区域可以是鸟瞰图下方的1/3区域~1/2区域之间的任意区域。如图9(c)所示,为一实施例中的像素分布直方图。
具体地,获取鸟瞰图对应的像素分布直方图中左、右峰值所在的水平坐标值,将该两个水平坐标值分别作为左、右车道线的初始滑动窗口,同时也将该两个水平坐标值分别作为与初始滑动窗口相邻的第一滑动窗口的中心位置。其中,中心位置是指滑动窗口的中心水平坐标,初始滑动窗口是指车道线上的第一个滑动窗口,而与初始滑动窗口相邻的第一滑动窗口实际上车道线上的第二个滑动窗口。
由于车道线所在的像素都集中在x轴(水平坐标轴)一定范围内,因此把图片一分为二,左右两边像素分布的峰值所在x轴上的位置非常有可能就是车道线基点。因此,将左右两边像素分布的峰值所在的水平坐标值分别作为左、右车道线的初始滑动窗口和第一滑动窗口的中心位置。
S404,根据预设的初始窗口尺寸和尺寸变换规则,确定初始滑动窗口和第一滑动窗口的尺寸,将第一滑动窗口作为当前滑动窗口。
具体地,将预设的初始窗口尺寸作为初始滑动窗口的尺寸,再根据预设的初始窗口尺寸和尺寸变换规则确定第一滑动窗口的尺寸,将第一滑动窗口作为当前滑动窗口,延车道线延伸方向继续增加滑动窗口。
其中,初始窗口尺寸和尺寸变换规则预先进行配置,初始窗口尺寸包括初始窗口的宽度和长度,尺寸变换规则包括窗口的宽度变换规则和/或长度变换规则。比如,初始窗口的宽度W0可配置为200pix,初始窗口的长度可配置为100pix。当尺寸变换规则仅包括窗口的宽度/长度变换规则时,则所有的滑动窗口的长度/宽度都为初始窗口的长度/宽度。在一实施例中,窗口的宽度变换规则进一步可配置为新增滑动窗口的尺寸比相邻的历史滑动窗口减小固定值ΔW(比如ΔW=5pix)。
当然,在其他实施例中,尺寸变换规则也可以配置为不变规则,使得各滑动窗口的尺寸始终保持初始窗口尺寸不变。
S406,根据当前滑动窗口以及与当前滑动窗口相邻的历史滑动窗口的中心位置、当前滑动窗口的非零像素坐标,确定新增滑动窗口的中心位置。其中,新增滑动窗口是指下一个需要确定的滑动窗口,历史滑动窗口是指已经确定的滑动窗口。
具体地,确定当前滑动窗口以及与当前滑动窗口相邻的历史滑动窗口的中心位置之差、当前滑动窗口的非零像素坐标的水平坐标均值,基于这两个数值确定新增滑动窗口的中心位置。
S408,根据当前滑动窗口的尺寸和尺寸变换规则,确定新增滑动窗口的尺寸。
比如,当尺寸变换规则为新增滑动窗口的尺寸比相邻的历史滑动窗口减小固定值ΔW时,则新增滑动窗口的尺寸Wi+1=Wi-ΔW。其中,Wi表示第i个滑动窗口(当前滑动窗口)的尺寸;Wi+1表示第i+1个滑动窗口(新增滑动窗口)的尺寸。
S410,判断是否满足结束条件。若是,结束确定鸟瞰图中车道线的多个滑动窗口的步骤;若否,执行步骤S412。
其中,结束条件可以是滑动窗口总数量达到预设值,也可以是新增滑动窗口达到鸟瞰图的顶端边界。
S412,将新增滑动窗口作为当前滑动窗口。返回执行步骤S406。
当不满足结束条件时,则将新增滑动窗口作为当前滑动窗口,继续确定下一个滑动窗口,直至满足结束条件。
在另一实施例中,当未对车道线二值图进行透视变换,而直接确定车道线二值图中车道线的多个滑动窗口时,则将图4所示实施例各步骤中的鸟瞰图替换为车道线二值图即可,具体步骤保持不变。
在一实施例中,参照图5,根据当前滑动窗口以及与当前滑动窗口相邻的历史滑动窗口的中心位置、当前滑动窗口的非零像素坐标,确定新增滑动窗口的中心位置的步骤,包括以下子步骤:
S502,确定当前滑动窗口中的非零像素点。
其中,非零像素点是指灰度值为非零值的像素点。由于鸟瞰图也是二值图,该图中除了根据车道线边缘信息确定的边缘像素点以外,其他像素点的灰度值均为零。
本实施例中,根据当前滑动窗口中各像素点的灰度值,确定非零像素点,以便获取所确定的非零像素点的坐标值。
S504,获取非零像素点的水平坐标均值。
具体地,获取所确定的非零像素点的水平坐标值,将各水平坐标值求平均值,得到当前滑动窗口中非零像素点的水平坐标均值。
S506,根据当前滑动窗口以及与当前滑动窗口相邻的历史滑动窗口的中心位置之差、非零像素点的水平坐标均值,确定与新增滑动窗口的中心位置。
具体地,对当前滑动窗口以及与当前滑动窗口相邻的历史滑动窗口的中心位置之差、当前滑动窗口的非零像素坐标的水平坐标均值进行加权求和,将加权求和所得作为新增滑动窗口的中心位置。
具体可通过以下公式实现:
假设当前滑动窗口为第i个滑动窗口,则第i+1个滑动窗口为新增滑动窗口,第i-1个滑动窗口为与第i个滑动窗口相邻的历史滑动窗口。其中,xi表示第i个滑动窗口的中心位置;Ni表示第i个滑动窗口的非零像素坐标的水平坐标均值;n表示一条车道线上的滑动窗口总数量;K表示对应车道线像素分布的峰值所在的水平坐标值;α表示权重,具体可根据经验值进行确定,一般参考车道线的最大弯曲幅度,弯曲幅度越大α越大。通常情况下,α可默认设置为1。
通过该滑动窗口确定方法,在车道线弯道区域的弯曲幅度较大时,可以避免因滑动窗口的滑动步幅不足,导致滑动窗口与正常车道线发生偏离,进而使车道线拟合结果产生误差的情况;还可以在局部车道线缺失等情况下,让滑动窗口沿车道线延伸方向继续搜索,增强车道线检测的鲁棒性。
在一实施例中,根据车道线二值图中的有效像素点进行曲线拟合,获得拟合车道线的步骤,包括以下子步骤:按照预设的曲线拟合规则,对车道线二值图中的有效像素点进行曲线拟合,确定当前车道线模型系数;根据当前车道线模型系数,获得拟合车道线。
曲线拟合规则包括但不限于随机采样一致性法、最小二乘法。本实施例中,基于预设的曲线拟合规则,对车道线二值图中的有效像素点进行曲线拟合,确定当前车道线模型系数,基于确定的当前车道线模型系数获得更新后的车道线模型,根据车道线模型在车道线二值图上生成拟合车道线。其中,当前车道线模型系数是指与当前处理的待处理图像对应的车道线模型的系数。
在一具体实施例中,采用随机采样一致性法对车道线二值图中的有效像素点进行曲线拟合,确定当前车道线模型系数。通过采用随机采样一致性法进行曲线拟合,由于只对预设模型的关键点进行拟合,因此能够减少噪声干扰,快速获得准确的当前车道线模型系数。
在另一实施例中,参照图6,根据车道线二值图中的有效像素点进行曲线拟合,获得拟合车道线的步骤,包括以下子步骤:
S602,按照预设的曲线拟合规则,对车道线二值图中的有效像素点进行曲线拟合,确定当前车道线模型系数。
S604,根据当前车道线模型系数和历史车道线模型系数进行平滑处理,将当前车道线模型系数更新为平滑处理的处理结果。
如上面所描述的,当前车道线模型系数是指与当前处理的待处理图像对应的车道线模型的系数;对应地,历史车道线模型系数是指在待处理图像之前的n帧图像中,每一帧图像对应的车道线模型的系数,其中,n的具体数值可按需配置。
在本实施例中,平滑处理包括指数平滑和指数平滑预测,对应地,处理结果包括指数平滑值和指数平滑预测值。首先判断当前车道线模型系数的有效性,当当前车道线模型系数有效时,根据历史车道线模型系数对当前车道线模型系数进行指数平滑,获得指数平滑值;当当前车道线模型系数失效时,根据历史车道线模型系数进行指数平滑预测,获得指数平滑预测值。将当前车道线模型系数更新为所获得指数平滑值或指数平滑预测值。
S606,根据更新后的当前车道线模型系数,获得拟合车道线。
基于更新后的车道线模型系数获得更新后的车道线模型,根据车道线模型在车道线二值图上生成拟合车道线。
在一实施例中,如图7所示,步骤S604进一步包括以下子步骤:
S702,根据车道线二值图的第一行像素坐标和第二行像素坐标,检测当前车道线模型系数的有效性。当当前车道线模型系数有效时,执行步骤S704;当当前车道线模型系数失效时,执行步骤S706。
其中,第一行像素坐标是指车道线二值图的图像顶端的行像素坐标;第二行像素坐标是指车道线二值图的图像底端的行像素坐标。
具体地,根据车道线二值图的第一行像素坐标和第二行像素坐标和当前车道线模型系数,获得当前车道线模型的曲率半径、上截距和下截距;当曲率半径、上截距和下截距任意项满足对应的失效条件时,确定当前车道线模型系数失效;当曲率半径、上截距和下截距均不满足对应的失效条件时,确定当前车道线模型系数有效。
其中,上截距是指按照当前车道线模型系数获得的拟合车道线在图像顶端的截距,下截距是指按照当前车道线模型系数获得的拟合车道线在图像底端的截距。以当前车道线模型为x=ay
2+by+c为例,则当前车道线模型系数包括:a、b和c。曲率半径R为:
上截距top_x为:top_x=ay
[0] 2+by
[0]+c。下截距bottom_x为:bottom_x=ay
[h-1] 2+by
[h-1]+c。其中,y表示图像中的行像素坐标,h表示图像中的像素高度。对应地,y
[0]表示第一行像素坐标,y
[h-1]表示第二行像素坐标。
在本实施例中,曲率半径的失效条件为:曲率半径小于曲率阈值,曲率阈值根据弯道最大弯曲幅度进行设定。上截距的失效条件为:当前的上截距相对上一帧图像的上截距的变换幅度大于第一阈值。下截距的失效条件为:当前的下截距相对上一帧图像的下截距的变换幅度大于第二阈值。其中,第一阈值和第二阈值的具体数值可按需分别进行配置,在此不作限定,比如,第一阈值可以配置为25%、第二阈值可以配置为15%等。
S704,根据历史车道线模型系数对当前车道线模型系数进行指数平滑,获得指数平滑值,将当前车道线模型系数更新为指数平滑值。
具体地,当当前车道线模型系数有效时,根据历史车道线模型系数对当前车道线模型系数进行指数平滑,获得指数平滑值通过以下公式实现:
其中,qt表示第t帧时刻的指数平滑值;pt表示第t帧时刻未进行平滑处理的车道线模型系数;qt-1表示第t-1帧时刻的指数平滑值;β为平滑系数,其取值预先配置,配置范围为[0,1]。
S706,根据历史车道线模型系数进行指数平滑预测,获得指数平滑预测值,将当前车道线模型系数更新为指数平滑预测值。
具体地,当当前车道线模型系数失效时,根据历史车道线模型系数进行指数平滑预测,获得指数平滑预测值通过以下公式实现:
其中,
表示第t帧时刻的指数平滑预测值;p
t-1表示第t-1帧时刻未进行平滑处理的车道线模型系数;q
t-1表示第t-1帧时刻的指数平滑值。
通过采用历史车道线模型系数进行指数平滑或者指数平滑预测,以对当前车道线模型系数进行校正,可以保持连续帧图像之间的拟合车道线的持续性和稳定性。
上述车道线检测方法,通过利用有效像素点直接拟合成曲线,无需区分直线与弯道车道线情况,使得后续的系数校正更新方法同时适用于直线和弯道车道线情况。并且,通过采用曲率半径、上截距、下截距作为主要因素,准确判定未校正更新之前的当前车道线模型系数是否有效,并基于历史车道线模型系数校正当前车道线模型系数,保持连续帧图像之间的拟合车道线的持续性和稳定性。
进一步地,当有效像素点是基于透视变换后的车道线二值图(鸟瞰图)确定的时,根据更新后的当前车道线模型系数,获得拟合车道线的步骤之后,还包括:对拟合车道线进行逆透视变换,获得最终车道线。
通过将拟合车道线进行逆透视变换,将其转换为原始图像相同视角下的最终车道线,以便将最终车道线加载于原始图像中。可以理解,当未进行透视变换时,则拟合车道线即为最终车道线,可直接将拟合车道线加载于原始图像中。如图9(f)所示,为将最终车道线加载于原始图像的示意图。
在一实施例中,参照图8,提供一种车道线检测方法,该方法包括以下步骤:
S801,将待处理图像转换至包括饱和度通道和亮度通道的颜色空间,获得颜色空间图像。
S802,对颜色空间图像的饱和度通道进行梯度方向滤波,获得第一边缘信息。
S803,对颜色空间图像的饱和度通道和亮度通道分别进行水平方向滤波,获得第二边缘信息。其中,第二边缘信息包括对饱和度通道进行水平方向滤波获得的第一竖直边缘信息,以及对亮度通道进行水平方向滤波获得的第二竖直边缘信息,通过将第一竖直边缘信息和第二竖直边缘信息进行按位或处理,即可获得第二边缘信息。
S804,对颜色空间图像的饱和度通道和亮度通道分别进行全局自适应阈值分割,获得掩码区域信息。其中,掩码区域信息包括:对饱和度通道进行全局自适应阈值分割获得的第一子掩码区域信息,以及对亮度通道进行全局自适应阈值分割获得的第二子掩码区域信息,通过将第一子掩码区域信息和第二子掩码区域信息进行按位或处理,即可获得掩码区域信息。
S805,对第一边缘信息、第二边缘信息和掩码区域信息进行按位与处理,确定车道线边缘信息。
S806,根据车道线边缘信息,生成车道线二值图。
S807,对车道线二值图进行透视变换,得到鸟瞰图。
S808,基于鸟瞰图对应的像素分布直方图,确定初始滑动窗口和与初始滑动窗口相邻的第一滑动窗口的中心位置。
S809,根据预设的初始窗口尺寸和尺寸变换规则,确定初始滑动窗口和第一滑动窗口的尺寸,将第一滑动窗口作为当前滑动窗口。
S810,确定当前滑动窗口中的非零像素点。
S811,获取非零像素点的水平坐标均值。
S812,根据当前滑动窗口以及与当前滑动窗口相邻的历史滑动窗口的中心位置之差、非零像素点的水平坐标均值,确定与新增滑动窗口的中心位置。
S813,根据当前滑动窗口的尺寸和尺寸变换规则,确定新增滑动窗口的尺寸。
S814,判断是否满足结束条件。若是,执行步骤S816;否则,执行步骤S815。
S815,将新增滑动窗口作为当前滑动窗口。并返回执行步骤S810。
S816,将滑动窗口中的非零像素点作为有效像素点。
S817,按照预设的曲线拟合规则,对有效像素点进行曲线拟合,确定当前车道线模型系数。
S818,根据车道线二值图的第一行像素坐标和第二行像素坐标,检测当前车道线模型系数的有效性。当当前车道线模型系数失效时,执行步骤S819;当当前车道线模型系数有效时,执行步骤S820。
S819,根据历史车道线模型系数进行指数平滑预测,获得指数平滑预测值,将当前车道线模型系数更新为指数平滑预测值。
S820,根据历史车道线模型系数对当前车道线模型系数进行指数平滑,获得指数平滑值,将当前车道线模型系数更新为指数平滑值。
S821,根据更新后的当前车道线模型系数,获得拟合车道线。
S822,对拟合车道线进行逆透视变换,获得最终车道线。
上述车道线检测方法,通过多重滤波处理有效滤除路面上阴影、缝隙等细小的竖直边缘,以及其他干扰物边缘,获得包括精确车道线边缘、且较少干扰边缘的车道线二值图。并将车道线二值图进行透视变换后,再采用滑动窗口搜索的方式确定有效像素点,使得在车道线弯道区域的弯曲幅度较大时,可以避免因滑动窗口的滑动步幅不足,导致滑动窗口与正常车道线发生偏离,进而使车道线拟合结果产生误差的情况,还可以在局部车道线缺失等情况下,让滑动窗口沿车道线延伸方向继续搜索,增强车道线检测的鲁棒性。利用有效像素点进行曲线拟合,并基于历史车道线模型系数校正当前车道线模型系数,保持连续帧图像之间的拟合车道线的持续性和稳定性。
应该理解的是,虽然图2-8的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2-8中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图10所示,提供了一种车道线检测装置1000,包括:转换处理模块1002、滤波处理模块1004、二值图确定模块1006和拟合处理模块1008,其中:
转换处理模块1002,用于将待处理图像转换至颜色空间,获得颜色空间图像,颜色空间包括饱和度通道和亮度通道。
滤波处理模块1004,用于基于颜色空间图像的饱和度通道和亮度通道,分别进行滤波处理,获得颜色空间图像的图像分割信息,图像分割信息包括:对饱和度通道进行梯度方向滤波获得的第一边缘信息;对饱和度通道和亮度通道分别进行水平方向滤波获得的第二边缘信息。
二值图确定模块1006,用于基于图像分割信息确定车道线二值图。
拟合处理模块1008,用于根据车道线二值图中的有效像素点进行曲线拟合,获得拟合车道线。
上述车道线检测装置,通过颜色空间转换,分别对饱和度通道和亮度通道进行梯度方向和水平方向的多重滤波,有效滤除阴影、车辆或其他障碍物的边缘,获得包括精确车道线边缘、且较少干扰边缘的车道线二值图。进一步地,基于车道线二值图中的有效像素点进行曲线拟合,提高了拟合车道线的准确率。
在一实施例中,二值图确定模块1006还用于对第一边缘信息、第二边缘信息进行按位与处理,确定车道线边缘信息;根据车道线边缘信息,生成车道线二值图。
在另一实施例中,图像分割信息还包括:分别对饱和度通道和亮度通道进行全局自适应阈值分割获得的掩码区域信息。二值图确定模块1006还用于对第一边缘信息、第二边缘信息和掩码区域信息进行按位与处理,确定车道线边缘信息;根据车道线边缘信息,生成车道线二值图。
在一实施例中,车道线检测装置还包括有效像素点确定模块,用于确定车道线二值图中的有效像素点。
进一步地,有效像素点确定模块包括:透视变换模块、滑动窗口确定模块和有效像素点确定子模块。其中,透视变换模块,用于对车道线二值图进行透视变换,得到鸟瞰图;滑动窗口确定模块,用于确定鸟瞰图中车道线的多个滑动窗口;有效像素点确定子模块,用于将滑动窗口中的非零像素点作为有效像素点。
在一实施例中,滑动窗口确定模块包括:中心位置确定模块、窗口尺寸确定模块和当前窗口确定模块。
其中,中心位置确定模块,用于基于鸟瞰图对应的像素分布直方图,确定初始滑动窗口和与初始滑动窗口相邻的第一滑动窗口的中心位置;窗口尺寸确定模块,用于根据预设的初始窗口尺寸和尺寸变换规则,确定初始滑动窗口和第一滑动窗口的尺寸;当前窗口确定模块,用于将第一滑动窗口作为当前滑动窗口。
进一步地,中心位置确定模块,还用于根据当前滑动窗口以及与当前滑动窗口相邻的历史滑动窗口的中心位置、当前滑动窗口的非零像素坐标,确定新增滑动窗口的中心位置;窗口尺寸确定模块,还用于根据当前滑动窗口的尺寸和尺寸变换规则,确定新增滑动窗口的尺寸;当前窗口确定模块,还用于将新增滑动窗口作为当前滑动窗口。
在一实施例中,中心位置确定模块包括:非零像素点确定模块、坐标均值获取模块和中心位置确定子模块。其中,非零像素点确定模块,用于确定当前滑动窗口中的非零像素点;坐标均值获取模块,用于获取非零像素点的水平坐标均值;中心位置确定子模块,用于根据当前滑动窗口以及与当前滑动窗口相邻的历史滑动窗口的中心位置之差、非零像素点的水平坐标均值,确定与新增滑动窗口的中心位置。
在一实施例中,拟合处理模块包括:当前系数确定模块、系数更新模块和拟合子模块。其中,当前系数确定模块,用于按照预设的曲线拟合规则,对车道线二值图中的有效像素点进行曲线拟合,确定当前车道线模型系数;系数更新模块,用于根据当前车道线模型系数和历史车道线模型系数进行平滑处理,将当前车道线模型系数更新为平滑处理的处理结果;拟合子模块,用于根据更新后的当前车道线模型系数,获得拟合车道线。
进一步地,系数更新模块还包括有效性检测模块、指数平滑模块和指数平滑预测模块。其中,有效性检测模块,用于根据车道线二值图的第一行像素坐标和第二行像素坐标,检测当前车道线模型系数的有效性;指数平滑模块用于当当前车道线模型系数有效时,根据历史车道线模型系数对当前车道线模型系数进行指数平滑,获得指数平滑值,将当前车道线模型系数更新为指数平滑值;指数平滑预测模块,用于当当前车道线模型系数失效时,根据历史车道线模型系数进行指数平滑预测,获得指数平滑预测值,将当前车道线模型系数更新为指数平滑预测值。
上述车道线检测装置,通过多重滤波处理有效滤除路面上阴影、缝隙等细小的竖直边缘,以及其他干扰物边缘,获得包括精确车道线边缘、且较少干扰边缘的车道线二值图。并将车道线二值图进行透视变换后,再采用滑动窗口搜索的方式确定有效像素点,使得在车道线弯道区域的弯曲幅度较大时,可以避免因滑动窗口的滑动步幅不足,导致滑动窗口与正常车道线发生偏离,进而使车道线拟合结果产生误差的情况,还可以在局部车道线缺失等情况下,让滑动窗口沿车道线延伸方向继续搜索,增强车道线检测的鲁棒性。利用有效像素点进行曲线拟合,并基于历史车道线模型系数校正当前车道线模型系数,保持连续帧图像之间的拟合车道线的持续性和稳定性。
关于车道线检测装置的具体限定可以参见上文中对于车道线检测方法的限定,在此不再赘述。上述车道线检测装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图11所示。该计算机设备包括通过***总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作***和计算机程序。该内存储器为非易失性存储介质中的操作***和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种车道线检测方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图11中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述车道线检测方法的步骤。此处车道线检测方法的步骤可以是上述各个实施例的车道线检测方法中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述车道线检测方法的步骤。此处车道线检测方法的步骤可以是上述各个实施例的车道线检测方法中的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。