车道线识别方法、装置及计算机可读存储介质
技术领域
本发明涉及图像处理技术领域,尤其涉及一种车道线识别方法、装置及计算机可读存储介质。
背景技术
车道线识别对于行车记录仪等车载智能化设备来说,是一项非常重要的技术,同时,车道线的识别也是无人驾驶或高精度地图中的基础问题。其中,相机是非常重要的硬件设备之一,包括鱼眼相机。目前,车道线识别通常基于畸变较小的镜头实现。在使用鱼眼相机进行车道线的识别时,通常需要先对鱼眼相机拍摄的车道线图像进行畸变校正,然而,进行畸变校正之后的图像,由于采样率不够等原因,经常会出现某些区域过度拉伸的现象,进而引起车道线的误识别,因此有必要提出一种在未进行过畸变矫正的原始车道线图像中进行车道线检测的方法。
上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。
发明内容
本发明的主要目的在于提供一种车道线识别方法、装置及计算机可读存储介质,旨在解决在原始车道线图像中进行车道线检测的的技术问题。
为实现上述目的,本发明提供一种车道线识别方法,所述车道线识别方法包括以下步骤:
在获取到车道线图像的边缘点集对应的边缘强度和方向时,基于所述边缘强度确定起始点;
基于所述起始点确定所有成对的第一点集和第二点集,并计算每一对第一点集和第二点集的相似度;
对相似度进行排序,确定目标车道线。
优选地,所述在获取到车道线图像的所有边缘点对应的边缘强度和方向时,基于所述边缘强度确定起始点的步骤之前,所述方法还包括:
通过对车道线图像进行标定,得到边缘点集,相机内参数,相机外参数,径向畸变系数和图像坐标系内车道宽度。
优选地,所述在获取到车道线图像的梯度边缘强度和方向时,基于所述梯度边缘强度确定起始点的步骤包括:
利用梯度算子对车道线图像进行水平方向和垂直方向的检测,得到边缘点集对应的边缘强度和方向;
将所述边缘强度进行弱排序,按照第一预设规则确定起始点。
优选地,所述将所述梯度边缘强度进行弱排序,按照第一预设规则确定起始点的步骤包括:
将所述梯度边缘强度按照强度大小由高到低进行弱排序,分为预设个数个组;
在梯度边缘强度最强的组中随机确定一个点作为起始点,确定所述起始点的方向是否符合方向约束;
在所述起始点的方向符合方向约束时,标记为已使用状态。
优选地,所述在梯度边缘强度最强的组中随机确定一个点作为起始点,确定所述起始点的方向是否符合方向约束的步骤之后,所述方法还包括:
在所述起始点的方向不符合方向约束时,在所述边缘强度最强的组中再随机寻找其他点,将符合方向约束的第一个点确定为起始点。
优选地,所述基于所述起始点确定所有成对的第一点集和第二点集,并计算每一对第一点集和第二点集的相似度的步骤包括:
在获取到起始点时,基于邻域获取起始点对应的第一点集,基于车道线对称性获取起始点对应的第二点集,标记所述第一点集和所述第二点集中的点为已使用状态;
按照第二预设规则依次获取未使用状态的点对应的第一点集和第二点集,直到所有边缘点都被标记为已使用状态。
优选地,所述在获取到起始点时,基于邻域获取起始点对应的第一点集,基于车道线对称性获取起始点对应的第二点集,标记所述第一点集和所述第二点集中的点为已使用状态的步骤包括:
通过径向畸变模型计算所述起始点的八邻域像素梯度方向的预测值,在所述八邻域内寻找所有匹配点,加入所述起始点对应的第一点集,并标记所述第一点集的点为已使用状态;
基于所述起始点确定一条射线,在预设范围内确定所述射线与梯度边缘图像的所有交点,将所述所有交点加入所述起始点对应的第二点集,并标记所述第二点集的点为已使用状态。
优选地,所述对相似度进行排序,确定目标车道线的步骤包括:
在获取到每一对第一点集和第二点集的相似度时,将所述相似度分为左右两侧,按照相似度由高到低进行排序,依次进行配对,组成车道线点集;
选取符合车道宽度的所述车道线点集作为目标车道线。
此外,为实现上述目的,本发明还提供一种车道线识别装置,其特征在于,所述车道线识别装置包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的车道线识别程序,所述车道线识别程序被所述处理器执行时实现上述任一项所述的车道线识别方法的步骤。
此外,为实现上述目的,本发明还提供一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有车道线识别程序,所述车道线识别程序被处理器执行时实现上述任一项所述的车道线识别方法的步骤
本发明方案,通过在获取到车道线图像的边缘点集对应的边缘强度和方向时,基于所述边缘强度确定起始点;然后基于所述起始点确定所有成对的第一点集和第二点集,并计算每一对第一点集和第二点集的相似度;之后对相似度进行排序,确定目标车道线。本方法能够在未畸变矫正的原始车道线图像中进行车道线检测,在检测过程中利用畸变系数对相邻区域的边缘方向进行校正,解决了现有技术部分区域过度拉伸,形成虚假车道线边缘,以及影响整体检测的问题充,分利用了车道线边缘点的方向相似性、对边车道边缘方向的相反性,以及车道线宽度信息,可以去除非相关边缘的干扰,提高车道线识别的精度。
附图说明
图1是本发明实施例方案涉及的硬件运行环境中车道线识别装置所属终端的结构示意图;
图2为本发明车道线识别方法第一实施例的流程示意图;
图3为本发明车道线识别方法第二实施例中在获取到车道线图像的边缘点集对应的边缘强度和方向时,基于所述边缘强度确定起始点的步骤的细化流程示意图;
图4为本发明车道线识别方法第三实施例中将所述边缘强度进行弱排序,按照第一预设规则确定起始点的步骤的细化流程示意图;
图5为本发明车道线识别方法第四实施例中基于所述起始点确定所有成对的第一点集和第二点集,并计算每一对第一点集和第二点集的相似度的步骤的细化流程示意图;
图6为本发明车道线识别方法第五实施例中在获取到起始点时,基于邻域获取起始点对应的第一点集,基于车道线对称性获取起始点对应的第二点集,标记所述第一点集和所述第二点集中的点为已使用状态的步骤的细化流程示意图;
图7为本发明车道线识别方法第六实施例中对相似度进行排序,确定目标车道线的步骤的细化流程示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
如图1所示,图1是本发明实施例方案涉及的硬件运行环境中车道线识别装置所属终端结构示意图。
本发明实施例终端可以是PC,也可以是智能手机、平板电脑、电子书阅读器、MP3(Moving Picture Experts Group Audio Layer III,动态影像专家压缩标准音频层面3)播放器、MP4(Moving Picture Experts Group Audio Layer IV,动态影像专家压缩标准音频层面3)播放器、便携计算机等具有显示功能的可移动式终端设备。
如图1所示,该终端可以包括:处理器1001,例如CPU,网络接口1004,用户接口1003,存储器1005,通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
可选地,终端还可以包括摄像头、RF(Radio Frequency,射频)电路,传感器、音频电路、WiFi模块等等。其中,传感器比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示屏的亮度,接近传感器可在移动终端移动到耳边时,关闭显示屏和/或背光。作为运动传感器的一种,重力加速度传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别移动终端姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;当然,移动终端还可配置陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
本领域技术人员可以理解,图1中示出的终端结构并不构成对终端的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及车道线识别程序。
在图1所示的终端中,网络接口1004主要用于连接后台服务器,与后台服务器进行数据通信;用户接口1003主要用于连接客户端(用户端),与客户端进行数据通信;而处理器1001可以用于调用存储器1005中存储的车道线识别程序。
在本实施例中,车道线识别装置包括:存储器1005、处理器1001及存储在所述存储器1005上并可在所述处理器1001上运行的车道线识别程序,其中,处理器1001调用存储器1005中存储的车道线识别程序时,并执行以下操作:
在获取到车道线图像的边缘点集对应的边缘强度和方向时,基于所述边缘强度确定起始点;
基于所述起始点确定所有成对的第一点集和第二点集,并计算每一对第一点集和第二点集的相似度;
对相似度进行排序,确定目标车道线。
进一步地,处理器1001可以调用存储器1005中存储的车道线识别程序,还执行以下操作:
通过对车道线图像进行标定,得到边缘点集,相机内参数,相机外参数,径向畸变系数和图像坐标系内车道宽度。
进一步地,处理器1001可以调用存储器1005中存储的车道线识别程序,还执行以下操作:
利用梯度算子对车道线图像进行水平方向和垂直方向的检测,得到边缘点集对应的边缘强度和方向;
将所述边缘强度进行弱排序,按照第一预设规则确定起始点。
进一步地,处理器1001可以调用存储器1005中存储的车道线识别程序,还执行以下操作:
将所述梯度边缘强度按照强度大小由高到低进行弱排序,分为预设个数个组;
在梯度边缘强度最强的组中随机确定一个点作为起始点,确定所述起始点的方向是否符合方向约束;
在所述起始点的方向符合方向约束时,标记为已使用状态。
进一步地,处理器1001可以调用存储器1005中存储的车道线识别程序,还执行以下操作:
在所述起始点的方向不符合方向约束时,在所述边缘强度最强的组中再随机寻找其他点,将符合方向约束的第一个点确定为起始点。
进一步地,处理器1001可以调用存储器1005中存储的车道线识别程序,还执行以下操作:
在获取到起始点时,基于邻域获取起始点对应的第一点集,基于车道线对称性获取起始点对应的第二点集,标记所述第一点集和所述第二点集中的点为已使用状态;
按照第二预设规则依次获取未使用状态的点对应的第一点集和第二点集,直到所有边缘点都被标记为已使用状态。
进一步地,处理器1001可以调用存储器1005中存储的车道线识别程序,还执行以下操作:
通过径向畸变模型计算所述起始点的八邻域像素梯度方向的预测值,在所述八邻域内寻找所有匹配点,加入所述起始点对应的第一点集,并标记所述第一点集的点为已使用状态;
基于所述起始点确定一条射线,在预设范围内确定所述射线与梯度边缘图像的所有交点,将所述所有交点加入所述起始点对应的第二点集,并标记所述第二点集的点为已使用状态。
进一步地,处理器1001可以调用存储器1005中存储的车道线识别程序,还执行以下操作:
在获取到每一对第一点集和第二点集的相似度时,将所述相似度分为左右两侧,按照相似度由高到低进行排序,依次进行配对,组成车道线点集;
选取符合车道宽度的所述车道线点集作为目标车道线。
本发明第一实施例提供一种车道线识别方法,参照图2,图2为本发明车道线识别方法第一实施例的流程示意图,所述车道线识别方法包括:
步骤S100,在获取到车道线图像的边缘点集对应的边缘强度和方向时,基于所述边缘强度确定起始点;
在对车道线图像进行标定时,首先确定若干个角点,再根据图像的参数和条件指定这些角点对应的三维点的三维坐标,然后对该车道线图像进行标定。
由于很多情况下,拍摄的图像是倾斜的或者其他没有与光轴垂直的情况,因此会出现过度拉伸,表现形式一般为图像中的物体会呈现出一种近大远小的状态,虽然人眼看上去比较奇怪,但是符合空间分布情况。可以把校正图中的棋盘位置看成无数连续的垂直于光轴的标定板
相机镜头的畸变实际上是光学透镜固有的透视失真的总称。主要分为枕形畸变、桶形畸变和线性畸变。由于存在各种镜头的畸变和变形,所以真实的相机要比模型复杂的多。在引入各种非线性的畸变修正之后,就形成复杂的非线性成像模型。镜头的畸变主要分为径向畸变、离心畸变和薄棱镜畸变三类。径向畸变的定义是使像点产生径向位置的偏差,特点是由镜头的形状缺陷所造成的畸变,关于相机主光轴对称。径向畸变又分为正向畸变和负向畸变,正向畸变称为枕形畸变,负向畸变称为桶形畸变。
步骤S200,基于所述起始点确定所有成对的第一点集和第二点集,并计算每一对第一点集和第二点集的相似度;
基于邻域获取起始点对应的第一点集。在获取到起始点时,利用径向畸变系数,通过径向畸变模型计算该点附近八个邻域像素梯度方向的预测值,同时在八个像素邻域内进行检索,在一个的阈值内寻找匹配点,将符合条件的匹配点加入第一点集,并标记为已使用。众所周知,图像上的每个像素点可以看作被周围的八个相邻的像素点包围,类似于九宫格的式样,因此在确定了起始点后,我们可以通过径向畸变模型获得该起始点周围的八个像素点的梯度方向,这里的梯度方向是基于起始点计算得到的预测值,对这八个梯度方向的预测值进行检索,确定在一定误差范围内是否有可以跟起始点的梯度方向匹配的点,如果有这样的点,就将其加入起始点对应的第一点集,并且将加入该第一点集的点标记为已使用。例如,在确定了起始点的方向之后,根据径向畸变模型得到该点周围八个像素点的梯度方向预测值,在起始点方向的正负7度范围内寻找满足条件的像素点,如果在这八个像素点的梯度方向预测值中,有落入起始点方向正负7度范围的点,则将该点加入第一点集,并标记为已使用状态。
基于车道线对称性获取起始点对应的第二点集。与此同时,在起始点的方向上引一条射线,在一个车道的宽度范围内寻找与边缘图像的交点,若交点在一定误差范围内与起始点方向相反,则将该点加入第二点集,标记该点为已使用状态。起始点的方向是已知的,以起始点为起点,沿起始点的方向引一条射线,车道的宽度范围在对车道线图像进行标定的时候已经得到,因此可以在车道的宽度范围内寻找与边缘图像的交点,这里确定的交点是同一对车道线的另一边,因此与起始点匹配的交点方向应该是与起始点方向相反的,考虑到计算误差,交点的方向可以在一定阈值范围内,例如,交点的方向可以是在起始点相反方向的正负7度范围内。
在获取到起始点对应的第一点集和第二点集时,将点集中的所有点标记为已使用状态。之后在边缘点集中,按照边缘强度的弱排序确定下一个起始点,依然是在边缘强度最强的组中随机确定一个点,可以肯定,确定的这个起始点是未使用状态,因为所有被标记为已使用状态的边缘点都从边缘点集组成的弱排序中除去了,所以可以直接从剩下的按照弱排序的边缘强度选择一个较强的点,计算得到它对应的第一点集和第二点集,对所有被加入第一点集或第二点集中的点标记为已使用状态。之后再按照这个方法获取到所有的第一点集和第二点集,直到所有的边缘点都为已使用状态为止。
步骤S300,对相似度进行排序,确定目标车道线。
计算所有成对的第一点集和第二点集的相似度,然后将所有相似度进行排序,分为左右两侧,依次进行配对。在相似度的计算方法上,可以采用hausdoff距离。在对车道线图像进行标定的时候,已经得到了图像坐标系内的车道宽度,在本实施例中,可以按照车道线宽度对成对的第一点集和第二点集进行选取,组成最终的目标车道线。
进一步地,在一实施例中,在步骤S100之前,所述方法还包括:
通过对车道线图像进行标定,得到边缘点集,相机内参数,相机外参数,径向畸变系数和图像坐标系内车道宽度。
在使用鱼眼相机拍摄的图像进行车道线识别时,需要首先对车道线图像进行标定,标定的本质就是将车道线图像从世界坐标系转换到图像坐标系的过程。一般来说,标定的过程分为两个部分:第一步是从世界坐标系转换为相机坐标系,这一步是三维点到三维点的转换,涉及到相机外参数;第二步是从相机坐标系转为图像坐标系,这一步是三维点到二维点的转换,涉及到相机内参数。
在相机标定过程中,为确定空间物体表面某点的三维集合位置与其在图像中对应点之间的相互关系,必须建立摄像机成像的几何模型,这些几何模型的参数就是摄像机参数,因此在标定的过程中可以得到相机的内部参数,简称为相机内参数或内参,包括焦距、主点的位置、以及像素与真实环境的大小比例等,这个是相机的固有属性,由相机本身的性质和条件决定,还可以得到相机的外部参数,简称为相机外参数或外参,包括旋转矩阵和平移向量。由于采用的是鱼眼镜头,因此会产生畸变,本实施例中的畸变是一种光学畸变,简单来说就是一条直线投影到图片上不能保持为一条直线了。畸变一般分为径向畸变和切向畸变,有时也会出现两者结合的情况。径向畸变发生在相机坐标系转图像物理坐标系的过程中,径向畸变产生的原因是光线在远离透镜中心的地方比靠近中心的地方更加弯曲,主要包含桶形畸变和枕形畸变两种,而切向畸变是发生在成像仪被粘贴在摄像机的时候,由于感光元平面跟透镜不平行。
在完成对车道线图像的标定后,将世界坐标系内的点转换成图像坐标系内的点,在图像坐标系内确定车道的宽度。分别确定车道最宽处和车道最窄处的宽度,就可以得到车道宽度的范围。
本实施例中提出的车道线识别方法,通过在获取到车道线图像的边缘点集对应的边缘强度和方向时,基于所述边缘强度确定起始点;然后基于所述起始点确定所有成对的第一点集和第二点集,并计算每一对第一点集和第二点集的相似度;之后对相似度进行排序,确定目标车道线;本方法能够在未畸变矫正的原始车道线图像中进行车道线检测,在检测过程中利用畸变系数对相邻区域的边缘方向进行校正,解决了现有技术部分区域过度拉伸,形成虚假车道线边缘,以及影响整体检测的问题充,分利用了车道线边缘点的方向相似性、对边车道边缘方向的相反性,以及车道线宽度信息,可以去除非相关边缘的干扰,提高车道线识别的精度。
基于第一实施例,提出本发明车道线识别方法的第二实施例,参照图3,步骤S100包括:
步骤S110,利用梯度算子对车道线图像进行水平方向和垂直方向的检测,得到边缘点集对应的边缘强度和方向;
梯度算子是对图像进行边缘检测的一个重要工具。边缘是指图像中灰度发生急剧变化的区域。其中,图像灰度的变化情况可以用灰度分布的梯度来反映,给定连续图像f(x,y),其方向导数在边缘法线方向上取得局部最大值,以此来确定边缘点梯度的幅值,也就是边缘强度。边缘点的方向也可以根据梯度算子得到。但是,由于图像是以矩阵的形式存储的,因此在计算图像的梯度时,不能直接求导,而是需要采用模板对原图像进行卷积运算,从而得到图像的边缘强度和方向。
边缘点集是在对图像进行标定之后得到的,实质是一个二维的离散型数集。利用梯度算子对鱼眼方向进行的水平方向和垂直方向的检测,就是对边缘点集分别沿X方向和Y方向求偏导数,也就是一个边缘点处的梯度。由于梯度是一个有方向的矢量,因此计算出梯度的模作为该点的梯度幅值。边缘点的梯度幅值和方向属于现有技术,因此此处不作详细解释。
步骤S120,将所述边缘强度进行弱排序,按照第一预设规则确定起始点。
在获取到边缘点集中的所有边缘点对应的梯度幅值和梯度方向时,对边缘强度分为n个级别,然后基于边缘强度按照梯度幅值由高到低的顺序进行弱排序。由高到低的弱排序是指在整体上按照由高到低排序,在局部不一定是严格按照由高到低的顺序。例如,一个车道线图像的边缘点集中有100个边缘点,因此可以得到这100个边缘点梯度的幅值,也就是边缘强度,将这100个边缘强度分为10个级别,对其进行弱排序,得到了10组级别不同边缘强度,如果从第一组到第十组边缘强度逐渐减小,那么可以确定的是,前一组中包含的所有边缘强度一定大于下一组中包含的所有边缘强度,然而在一个组内部,可能存在边缘强度的顺序不完全按照由高到低排序的情况,可能有某一个较小的边缘强度值排在了比它大的边缘强度前面,也可能有某一个较大的边缘强度值排在了比它小的边缘强度后面。
在选择起始点的时候,不需要确保它的边缘强度是最强的一个,因为可能会耗费较大的计算量,浪费计算资源,因此选择一个边缘强度较强的边缘点作为起始点,可以在边缘强度相对最强的第一个级别的组里面随机选择一个点作为起始点。之后判断该点的方向是否符合方向约束,判断的依据在于,如果是左侧车道线上的边缘点,则该边缘点的方向应该位于第一象限或者第三象限,如果是右侧车道线上的边缘点,则该边缘点的方向应该位于第二象限或者第四象限。在该边缘点符合上述方向约束时,标记该点为已使用状态。
本实施例中提出的车道线识别方法,通过利用梯度算子对车道线图像进行水平方向和垂直方向的检测,得到边缘点集对应的边缘强度和方向;然后将所述边缘强度进行弱排序,按照第一预设规则确定起始点;基于边缘强度的弱排序选择起始点,既保证了起始点的相对准确性,又兼顾了经济性,节省了一部分计算量。
基于第二实施例,提出本发明车道线识别方法的第三实施例,参照图4,步骤S120包括:
步骤S121,将所述梯度边缘强度按照强度大小由高到低进行弱排序,分为预设个数个组;
在获取到边缘点集中的所有边缘点对应的梯度幅值和梯度方向时,对边缘强度分为n个级别,然后基于边缘强度按照梯度幅值由高到低的顺序进行弱排序。由高到低的弱排序是指在整体上按照由高到低排序,在局部不一定是严格按照由高到低的顺序。例如,一个车道线图像的边缘点集中有100个边缘点,因此可以得到这100个边缘点梯度的幅值,也就是边缘强度,将这100个边缘强度分为10个级别,对其进行弱排序,得到了10组级别不同边缘强度,如果从第一组到第十组边缘强度逐渐减小,那么可以确定的是,前一组中包含的所有边缘强度一定大于下一组中包含的所有边缘强度,然而在一个组内部,可能存在边缘强度的顺序不完全按照由高到低排序的情况,可能有某一个较小的边缘强度值排在了比它大的边缘强度前面,也可能有某一个较大的边缘强度值排在了比它小的边缘强度后面。
步骤S122,在梯度边缘强度最强的组中随机确定一个点作为起始点,确定所述起始点的方向是否符合方向约束;
在选择起始点的时候,不需要确保它的边缘强度是最强的一个,因为可能会耗费较大的计算量,浪费计算资源,因此选择一个边缘强度较强的边缘点作为起始点,可以在边缘强度相对最强的第一个级别的组里面随机选择一个点作为起始点。之后判断该点的方向是否符合方向约束,判断的依据在于,如果是左侧车道线上的边缘点,则该边缘点的方向应该位于第一象限或者第三象限,如果是右侧车道线上的边缘点,则该边缘点的方向应该位于第二象限或者第四象限。
步骤S123,在所述起始点的方向符合方向约束时,标记为已使用状态。
在该边缘点符合上述方向约束时,标记该点为已使用状态。
进一步地,在一实施例中,在步骤S122之后,所述方法还包括:
在所述起始点的方向不符合方向约束时,在所述边缘强度最强的组中再随机寻找其他点,将符合方向约束的第一个点确定为起始点。
当第一次选择的起始点不符合方向约束时,也就是不符合左侧车道线上的边缘点方向应为一、三象限,右侧车道线上的边缘点应为二、四象限的条件时,放弃该点,重新在该点所在的边缘强度最强的组里随意寻找一个边缘点,按照这个方法直到找到符合方向约束的点为止,将找到的第一个符合方向约束的边缘点确定为起始点。
本实施例中提出的车道线识别方法,通过将所述梯度边缘强度按照强度大小由高到低进行弱排序,分为预设个数个组;然后在梯度边缘强度最强的组中随机确定一个点作为起始点,确定所述起始点的方向是否符合方向约束;之后在所述起始点的方向符合方向约束时,标记为已使用状态;在一个边缘点的边缘强度符合要求后还需要确定它的方向也符合方向约束,为后面识别车道线做好铺垫。
基于第一实施例,提出本发明车道线识别方法的第四实施例,参照图5,步骤S200包括:
步骤S210,在获取到起始点时,基于邻域获取起始点对应的第一点集,基于车道线对称性获取起始点对应的第二点集,标记所述第一点集和所述第二点集中的点为已使用状态;
基于邻域获取起始点对应的第一点集。在获取到起始点时,利用径向畸变系数,通过径向畸变模型计算该点附近八个邻域像素梯度方向的预测值,同时在八个像素邻域内进行检索,在一个的阈值内寻找匹配点,将符合条件的匹配点加入第一点集,并标记为已使用。众所周知,图像上的每个像素点可以看作被周围的八个相邻的像素点包围,类似于九宫格的式样,因此在确定了起始点后,我们可以通过径向畸变模型获得该起始点周围的八个像素点的梯度方向,这里的梯度方向是基于起始点计算得到的预测值,对这八个梯度方向的预测值进行检索,确定在一定误差范围内是否有可以跟起始点的梯度方向匹配的点,如果有这样的点,就将其加入起始点对应的第一点集,并且将加入该第一点集的点标记为已使用。例如,在确定了起始点的方向之后,根据径向畸变模型得到该点周围八个像素点的梯度方向预测值,在起始点方向的正负7度范围内寻找满足条件的像素点,如果在这八个像素点的梯度方向预测值中,有落入起始点方向正负7度范围的点,则将该点加入第一点集,并标记为已使用状态。
基于车道线对称性获取起始点对应的第二点集。与此同时,在起始点的方向上引一条射线,在一个车道的宽度范围内寻找与边缘图像的交点,若交点在一定误差范围内与起始点方向相反,则将该点加入第二点集,标记该点为已使用状态。起始点的方向是已知的,以起始点为起点,沿起始点的方向引一条射线,车道的宽度范围在对车道线图像进行标定的时候已经得到,因此可以在车道的宽度范围内寻找与边缘图像的交点,这里确定的交点是同一对车道线的另一边,因此与起始点匹配的交点方向应该是与起始点方向相反的,考虑到计算误差,交点的方向可以在一定阈值范围内,例如,交点的方向可以是在起始点相反方向的正负7度范围内。
步骤S220,按照第二预设规则依次获取未使用状态的点对应的第一点集和第二点集,直到所有边缘点都被标记为已使用状态。
在获取到起始点对应的第一点集和第二点集时,将点集中的所有点标记为已使用状态。之后在边缘点集中,按照边缘强度的弱排序确定下一个起始点,依然是在边缘强度最强的组中随机确定一个点,可以肯定,确定的这个起始点是未使用状态,因为所有被标记为已使用状态的边缘点都从边缘点集组成的弱排序中除去了,所以可以直接从剩下的按照弱排序的边缘强度选择一个较强的点,计算得到它对应的第一点集和第二点集,对所有被加入第一点集或第二点集中的点标记为已使用状态。之后再按照这个方法获取到所有的第一点集和第二点集,直到所有的边缘点都为已使用状态为止。
本实施例中提出的车道线识别方法,通过在获取到起始点时,基于邻域获取起始点对应的第一点集,基于车道线对称性获取起始点对应的第二点集,标记所述第一点集和所述第二点集中的点为已使用状态;然后按照第二预设规则依次获取未使用状态的点对应的第一点集和第二点集,直到所有边缘点都被标记为已使用状态;这种方法可以穷尽所有的边缘点,使得他们加入任何一个第一点集和第二点集,提高了之后点集配对和排序的准确性。
基于第四实施例,提出本发明车道线识别方法的第五实施例,参照图6,步骤S210包括:
步骤S211,通过径向畸变模型计算所述起始点的八邻域像素梯度方向的预测值,在所述八邻域内寻找所有匹配点,加入所述起始点对应的第一点集,并标记所述第一点集的点为已使用状态;
基于邻域获取起始点对应的第一点集。在获取到起始点时,利用径向畸变系数,通过径向畸变模型计算该点附近八个邻域像素梯度方向的预测值,同时在八个像素邻域内进行检索,在一个的阈值内寻找匹配点,将符合条件的匹配点加入第一点集,并标记为已使用。众所周知,图像上的每个像素点可以看作被周围的八个相邻的像素点包围,类似于九宫格的式样,因此在确定了起始点后,我们可以通过径向畸变模型获得该起始点周围的八个像素点的梯度方向,这里的梯度方向是基于起始点计算得到的预测值,对这八个梯度方向的预测值进行检索,确定在一定误差范围内是否有可以跟起始点的梯度方向匹配的点,误差范围可以由用户自行决定。如果有这样的点,就将其加入起始点对应的第一点集,并且将加入该第一点集的点标记为已使用。例如,在确定了起始点的方向之后,根据径向畸变模型得到该点周围八个像素点的梯度方向预测值,在起始点方向的正负7度范围内寻找满足条件的像素点,如果在这八个像素点的梯度方向预测值中,有落入起始点方向正负7度范围的点,则将该点加入第一点集,并标记为已使用状态。
步骤S212,基于所述起始点确定一条射线,在预设范围内确定所述射线与梯度边缘图像的所有交点,将所述所有交点加入所述起始点对应的第二点集,并标记所述第二点集的点为已使用状态。
基于车道线对称性获取起始点对应的第二点集。与此同时,在起始点的方向上引一条射线,在一个车道的宽度范围内寻找与边缘图像的交点,若交点在一定误差范围内与起始点方向相反,则将该点加入第二点集,标记该点为已使用状态。起始点的方向是已知的,以起始点为起点,沿起始点的方向引一条射线,车道的宽度范围在对车道线图像进行标定的时候已经得到,因此可以在车道的宽度范围内寻找与边缘图像的交点,这里确定的交点是同一对车道线的另一边,因此与起始点匹配的交点方向应该是与起始点方向相反的,考虑到计算误差,交点的方向可以在一定阈值范围内,误差范围可以由用户自行决定。例如,交点的方向可以是在起始点相反方向的正负7度范围内。
本实施例中提出的车道线识别方法,通过径向畸变模型计算所述起始点的八邻域像素梯度方向的预测值,在所述八邻域内寻找所有匹配点,加入所述起始点对应的第一点集,并标记所述第一点集的点为已使用状态;然后基于所述起始点确定一条射线,在预设范围内确定所述射线与梯度边缘图像的所有交点,将所述所有交点加入所述起始点对应的第二点集,并标记所述第二点集的点为已使用状态;基于邻域确定本侧车道线,基于车道线对称性确定另一侧车道线,用户可以自行确定误差,保证了点集中元素的准确性,进而可以保证车道线识别的准确性。
基于第一实施例,提出本发明车道线识别方法的第六实施例,参照图7,步骤S300包括:
步骤S310,在获取到每一对第一点集和第二点集的相似度时,将所述相似度分为左右两侧,按照相似度由高到低进行排序,依次进行配对,组成车道线点集;
计算所有成对的第一点集和第二点集的相似度,然后将所有相似度进行排序,分为左右两侧,依次进行配对。在相似度的计算方法上,可以采用hausdoff距离,例如,第一点集用A表示,第二点集用B表示,两种点集可以分别表示为:
A={a1,a2,…},B={b1,b2,…}
他们之间的相似度可以表示为:
H(A,B)=max[h(A,B),h(B,A)]
其中,
步骤S320,选取符合车道宽度的所述车道线点集作为目标车道线。
在对车道线图像进行标定的时候,已经得到了图像坐标系内的车道宽度,在本实施例中,可以按照车道线宽度对成对的第一点集和第二点集进行选取,组成最终的目标车道线。
本实施例中提出的车道线识别方法,通过在获取到每一对第一点集和第二点集的相似度时,将所述相似度分为左右两侧,按照相似度由高到低进行排序,依次进行配对,组成车道线点集;选取符合车道宽度的所述车道线点集作为目标车道线;根据相似度排序然后按照左右两侧进行配对,可以在已知车道宽度的基础上进行选取,保证了选取的点集能够相互匹配组成目标车道线。
此外,本发明实施例还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有车道线识别程序,所述车道线识别程序被处理器执行时实现如下操作:
在获取到车道线图像的边缘点集对应的边缘强度和方向时,基于所述边缘强度确定起始点;
基于所述起始点确定所有成对的第一点集和第二点集,并计算每一对第一点集和第二点集的相似度;
对相似度进行排序,确定目标车道线。
进一步地,所述车道线识别程序被处理器执行时还实现如下操作:
通过对车道线图像进行标定,得到边缘点集,相机内参数,相机外参数,径向畸变系数和图像坐标系内车道宽度。
进一步地,所述车道线识别程序被处理器执行时还实现如下操作:
利用梯度算子对车道线图像进行水平方向和垂直方向的检测,得到边缘点集对应的边缘强度和方向;
将所述边缘强度进行弱排序,按照第一预设规则确定起始点。
进一步地,所述车道线识别程序被处理器执行时还实现如下操作:
将所述梯度边缘强度按照强度大小由高到低进行弱排序,分为预设个数个组;
在梯度边缘强度最强的组中随机确定一个点作为起始点,确定所述起始点的方向是否符合方向约束;
在所述起始点的方向符合方向约束时,标记为已使用状态。
进一步地,所述车道线识别程序被处理器执行时还实现如下操作:
在所述起始点的方向不符合方向约束时,在所述边缘强度最强的组中再随机寻找其他点,将符合方向约束的第一个点确定为起始点。
进一步地,所述车道线识别程序被处理器执行时还实现如下操作:
在获取到起始点时,基于邻域获取起始点对应的第一点集,基于车道线对称性获取起始点对应的第二点集,标记所述第一点集和所述第二点集中的点为已使用状态;
按照第二预设规则依次获取未使用状态的点对应的第一点集和第二点集,直到所有边缘点都被标记为已使用状态。
进一步地,所述车道线识别程序被处理器执行时还实现如下操作:
通过径向畸变模型计算所述起始点的八邻域像素梯度方向的预测值,在所述八邻域内寻找所有匹配点,加入所述起始点对应的第一点集,并标记所述第一点集的点为已使用状态;
基于所述起始点确定一条射线,在预设范围内确定所述射线与梯度边缘图像的所有交点,将所述所有交点加入所述起始点对应的第二点集,并标记所述第二点集的点为已使用状态。
进一步地,所述车道线识别程序被处理器执行时还实现如下操作:
在获取到每一对第一点集和第二点集的相似度时,将所述相似度分为左右两侧,按照相似度由高到低进行排序,依次进行配对,组成车道线点集;
选取符合车道宽度的所述车道线点集作为目标车道线。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。