一种基于Hough变换的车辆偏航角确定方法
技术领域
本发明涉及车辆主动安全系统领域,具体涉及一种道路线偏航角的确定方法。
背景技术
目前车道检测主要用于智能车的开发,大多用在智能车的视觉导航系统或车道偏高报警系统上。由于道路环境的复杂性,大多数车道检测技术的研究就是基于结构化道路。结构化道路一般指高速公路和部分结构化较好的公路。这些公路上的车道线和道路边界清晰,车道线一般为连续直线、曲线或短划线。结构化道路的车道位置和形状主要依靠检测车道标线和车道边界来获得;但在实际情況中,道路上的车道线容易被磨损,导致检测困难,因此判断车道损坏时需要特殊处理以准确确定车道的位置。
现阶段车道识别的方法主要有两种,图像特征法和模型匹配法。图像特征法的基本思想是利用道路边界或标线与房屋、草地等其他背景在图像特征上的差异进行道路检测,这些特征包括形状、灰度、纹理、颜色、对比度和不连续性等,主要的计算集中于图像处理以及如何进行特征值的感知分类,光照变化、阴影遮挡、噪声、道路边界或者标志线不连续等因素都影响检测的结果。另外,图像特征提供的许多局部极值仅仅为最优解决方案,车道特征的正确理解还要依赖于车道模型等高层知识。模型匹配法的基本思想是根据道路的先验知识,利用二维或三维的曲线进行道路建模,结合视觉模型和图像特征估计出车道模型参数。常见的二维车道模型有直线、样条曲线和抛物线等形式。模型匹配法中经常用来检测直线车道的方法是Hough变换法。Hough变换可以检测直线和连接后处于同一直线上的点,可以用来检测满足解析式(x,y)=o形式的各种曲线,它的主要优点是利用了图像全局特性,因而受噪声和边界间断的影响较小,鲁棒性强。
发明内容
本发明所要解决的技术问题是提供一种基于Hough变换的车辆偏航角确定方法,计算量较小,识别准确率高,识别速度快,能快速计算出车辆偏航角,能够很好地过滤地面各种噪音干扰。
本发明基于Hough变换的车辆偏航角确定方法,包括以下步骤:
S1:连续获取车辆前方影像;
S2:截取每一帧图像的车辆前方部分区域,命名为Roil;
S3:把Roil转化为灰度图,用Sobel算子求得x方向和y方向的一阶微分,并求得梯度和方向,转换为8位单通道图像;
S4:对8位单通道图像使用大律法OTSU得到的全局自适应阈值进行二值化,得到二值化图像;
S5:对二值化图像使用累计概率霍夫变换获取直线;
S6:初步判断左右车道线的位置和类型,并获取车道线在图像坐标系下的长度、斜率和斜率的反正切值,再根据长度、斜率的反正切值判断车道线为实线还是虚线,最终获得左车道、右车道的虚线集和实线集;
S7:若步骤S6检测的实线集不为空,分别获取左车道、右车道的实线集中每条实线上纵坐标与图像垂直中轴线中点的纵坐标相同的点到图像垂直中轴线的距离,取距离最小的实线作为真正的左车道、右车道的实线;
S8:根据步骤S7所获取的距离,判断车辆在左车道位置、右车道位置还是在车道中间位置,若车辆两侧都检测不到实线,则判断车道线损坏;
S9:若车道线损坏,则根据车道线未损坏的上一帧图像按步骤S7计算左车道、右车道实线集中每条实线上纵坐标与图像垂直中轴线中点的纵坐标相同的点到图像垂直中轴线的距离,再结合步骤S8判断车辆在左车道位置、右车道位置还是在车道中间位置;
S10:对步骤S6获取的左车道、右车道虚线集中的虚线分别求斜率反正切值的加权平均值,再求取左车道、右车道虚线集中虚线的斜率反正切值与所述加权平均值的差值,将差值最小的虚线判定为真正的车道线的虚线;
S11:若上一帧图像求得的车道线斜率的反正切值与实时图像求得的车道线斜率的反正切值相差超过预设范围,或者上一帧图像通过步骤S9检测到的车道线上纵坐标与图像垂直中轴线中点的纵坐标相同的点到图像垂直中轴线的距离与实时图像求得的值相差超过预设范围,则跳过这一帧图像的检测,直到上一帧图像求得的车道线斜率的反正切值与实时图像求得的车道线斜率的反正切值相差在预设范围内;
S12:根据检测到的左右车道线计算左右车道线夹角的角平分线与坐标系Y轴的夹角,即为车辆偏航角。
与现有技术相比,本发明的有益效果为:
1、本发明计算量较小,识别准确率高,识别速度快,能快速计算出车辆偏航角,能够很好地过滤地面各种噪音干扰。
2、运用能获取全局自适应阈值的大律法OTSU获得二值化图像,不受图像亮度和对比度的影响,能适应不同的光照环境,在较为昏暗的隧道也能获得良好的检测效果,大大提高了算法在各种环境下的可靠性
3、使用累计概率霍夫变换获取直线,可设定阈值,放弃小于阈值的线段,以及合并间距小于阈值的线段,累计概率霍夫变换返回的线段可以用起点和终点来表示,方便计算线段的长度。
4、通过检测车道线的位置信息,取最近的实线作为真正的车道线,排除了车道栏杆等物体的干扰;舍弃斜率反正切值与实时图像中车道线斜率反正切值的差值超过预设值的图像,从而排除数据波动过大的帧,使检测结果更加可靠,抗干扰能力更强。
5、通过车道线虚线的斜率反正切值与其加权平均值进行比较,来获取车道线虚线,抗干扰能力强,所获取的车道线虚线更加接近于实际的车道线。
附图说明
图1是根据本发明车辆偏航角确定方法的流程图;
图2是根据本发明车辆偏航角确定方法的车道二值化图像。
具体实施方式
下面将结合附图和实施例对本发明作进一步说明,但本发明的具体实施方式不限于此。
实施例
如图1所示,本发明基于Hough变换的车辆偏航角确定方法,包括以下步骤:
S1:通过分辨率为640x 480像素的车辆摄像头,连续获取车辆前方影像。
S2:截取每一帧图像剪裁掉天空部分的车辆前方部分区域,命名为Roil。剪裁掉图像中的天空部分,可以使后续的距离计算更准确,如步骤S7的计算。
S3:对Roil进行预处理,其包括:把Roil的彩色图转化为灰度图,用Sobel算子求得x方向的一阶微分sobelx和y方向的一阶微分sobely,并求得梯度和方向,转换为8位单通道图像进行显示。
S4:对步骤S3转换得到的8位单通道图像,使用大律法OTSU得到的全局自适应阈值进行二值化,得到二值化图像,如图2所示。二值化图像不受图像亮度和对比度的影响,能很好适应不同的环境。
S5:对步骤S4得到的二值化图像,使用累计概率霍夫变换cvHoughLines2获取直线。
本步骤使用累计概率霍夫变换获取直线,可设定阈值,放弃小于阈值的线段,以及合并间距小于阈值的线段,累计概率霍夫变换返回的线段可以用起点和终点来表示,方便计算线段的长度。
S6:初步判断左右车道线的位置和类型,并获取车道线在图像坐标系下的长度、斜率和斜率的反正切值,再根据长度、斜率的反正切值判断车道线为实线还是虚线,最终获得左车道、右车道的虚线集和实线集。
步骤S6中,将车道线分为两种类型,位于车辆左边的为左车道线,位于车辆右边的为右车道线。在图像坐标系下,放弃斜率绝对值小于0.15的接近于水平的直线,对直线的斜率求反正切值,斜率反正切值α在30到80之间且长度在60像素到120像素之间的线段(即车道线)初步判定为右车道的虚线,斜率反正切值α在‐80到‐30之间且长度在60像素到120像素之间的线段初步判定为左车道的虚线,斜率反正切值β在40到80之间且长度大于160像素的线段初步判定为左车道的实线,斜率反正切值β在‐80到‐40之间且长度大于160像素的线段初步判定为右车道的实线。最终获得初步判断的车道线虚线集和实线集。
S7:若步骤S6检测的实线集不为空,分别获取左车道、右车道的实线集中每条实线上纵坐标与图像垂直中轴线中点的纵坐标相同的点到图像垂直中轴线的距离,取所述距离中最小的实线作为真正的左车道、右车道的实线。
在步骤S7中,将步骤S6初步判定的实线集中远离图像垂直中轴线的实线,认为是车道线外的栏杆等物体的干扰线,取最近的一条作为真正实线,可以排除栏杆等的干扰。
S8:对车辆所在车道位置进行判断;根据步骤S7所获取的距离,判断车辆在左车道位置、右车道位置还是在车道中间位置,若车辆两侧都检测不到实线,则判断车道线损坏。
在步骤S8中,根据步骤S7获取的每条实线上纵坐标与图像垂直中轴线中点的纵坐标相同的点到图像垂直中轴线的距离的大小,将离车辆最近的两侧车道线判断为近车端车道线,其余都归为远车端车道线。若步骤S7获取的左车道实线集中实线上纵坐标与图像垂直中轴线中点的纵坐标相同的点到图像垂直中轴线的距离小于145像素,则认为车辆在左车道位置;若右车道实线集中实线上纵坐标与图像垂直中轴线中点的纵坐标相同的点到图像垂直中轴线的距离小于145像素,则认为车辆在右车道位置;若检测到的左车道或者右车道的实线集中实线上纵坐标与图像垂直中轴线中点的纵坐标相同的点到图像垂直中轴线的距离在180像素到225像素之间,则认为车辆在车道中间位置。若车辆两侧都检测不到实线,则判断车道线损坏。
S9:若步骤S8判断车道线损坏,则根据车道线未损坏的上一帧图像按步骤S7计算左车道、右车道实线集中每条实线上纵坐标与图像垂直中轴线中点的纵坐标相同的点到图像垂直中轴线的距离,再结合步骤S8判断车辆在车道上所处的位置。
S10:对步骤S6获取的左车道、右车道虚线集中的虚线分别求斜率反正切值的加权平均值,再求取左车道、右车道虚线集中虚线的斜率反正切值与所述加权平均值的差值,将差值最小的虚线判定为真正的车道线的虚线。
在步骤S10中,加权平均值的求法具体为:
S101:步骤S6获取的虚线集可能有多条线段,设为l0,l1,l2,...,ln;
S102:求出虚线集中每条线段斜率的反正切值与虚线集中除了这条线段外的其它线段的斜率反正切值的差值;
S103:若差值小于等于1则权数Xk加3,若差值大于1而小于2则权数Xk加2,若差值大于2而小于4则权数Xk加1,若差值大于4则权数XK加0.5;
S104:结合加权平均值的计算公式:
计算出线段lk的加权平均值,其中1≤k≤n。
线段斜率的反正切值与其加权平均值的差值的绝对值越小,该线段为真实车道线虚线的可能性越大,通过此种方法可以排除其他非车道线的干扰。
S11:若上一帧图像求得的车道线斜率的反正切值与实时图像求得的车道线斜率的反正切值相差超过预设范围,或者上一帧图像通过步骤S9检测到的车道线上纵坐标与图像垂直中轴线中点的纵坐标相同的点到图像垂直中轴线的距离与实时图像求得的值相差超过预设范围,则跳过这一帧图像的检测,直到上一帧图像求得的车道线斜率的反正切值与实时图像求得的车道线斜率的反正切值相差在预设范围内。
在步骤S11中,若上一帧图像判断的结果与这一帧的判断结果相差过大,则极有可能是过往车辆或者其它特殊噪音的干扰,这时应该选取上一帧作为这一帧的结果,直到噪音被排除。若上一帧图像求得的车道线的反正切值与实时图像求得的车道线斜率的反正切值相差超过6,或者上一帧图像通过步骤S9检测到的车道线上纵坐标与图像垂直中轴线中点的纵坐标相同的点到图像垂直中轴线的距离与实时图像求得的值相差超过10像素,则认为这一帧检测出的数据受到外界干扰,放弃这一帧检测到的数据,直到下一帧的数据在预设范围内。
S12:根据检测到的左右车道线计算左右车道线夹角的角平分线与坐标系Y轴的夹角,即为车辆偏航角。
上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。