无人驾驶图像识别-车道线检测
Posted 焉知自动驾驶
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了无人驾驶图像识别-车道线检测相关的知识,希望对你有一定的参考价值。
来源:汽车博士之家
无人驾驶图像识别-车道线检测
车道线的检测对于无人驾驶来讲特别重要。基于视觉的车道线检测,主流的方法有以下几种:基于霍夫变换的车道线检测、基于LSD直线的车道线检测、基于俯视图变换的车道线检测、基于拟合的车道线检测、基于平行透视灭点的车道线检测。下面分别讲一下基于霍夫变换、拟合、仿射变换检测车道线的方法,并给出变换的效果。
一、基于霍夫变换的车道线检测
霍夫直线检测有两种,但是原理相同。
本文介绍的车道线检测是基于统计概论霍夫变换检测实现的,其原理是将图像的笛卡尔坐标系统转换到极坐标霍夫空间,从而完成点到曲线的变换,对应的每个像素坐标P(x,y)被转换到(r,theta)的曲线点上面。
同一条直线上的点P(x,y)都满足x*cos(theta) +y*sin(theta) = r ,这样一组(r,theta)常量就对应了图像中位移确定的一条直线。遍历图像感兴趣区域的像素点时,不断的累加每个(r,theta)对应的数据点个数,当某一对(r,theta)对应的统计的点数达到我们设定的阈值时就认为这些点在一条直线上,通过霍夫检测的同一条直线上的的点的个数,可以过滤掉很多干扰直线。
1、 图像前处理
原始的车载图像是BGR的彩色图,对于只需要提取车道线的算法,车道线应该是白色的,我们只需要保留有白色车道线的灰度图即可,所以对原始图的第一步处理就是灰度化。
原图:
灰度均衡化:
边缘检测:
边缘检测有很多方法。可以使用sobel算子或者canny边缘检测。其差别是,检测算子的模板中的权值不同,造成最后保留的边缘的细节部分有差别
2、 提取车道线
在感兴趣区域内寻找车道线,大大缩减图像的处理计算量:
通过霍夫变换检测直线,找到车道线:
3、标注车道线并进行相应的预警
通过标定实验,找到直线距离车道线左右边缘30cm范围内的报警区域,一旦车辆发生在预警区域内启动报警:
二、基于仿射变换的车道线检测
采用仿射变换的方法是将前方图像的路面通过仿射变换为俯视图,在俯视图中将车道线提取出来,提取的方法也是寻找车道线的特征,按照灰度值进行二值化,然后采用边缘检测,得到车道线的边缘轮廓,将检测到的车道线提取出来。军事交通学院采用这种方法进行车道线检测,在高速公路上得到了很好的效果,这种方法的优点是,可以找到多条车道线,实时效果比较好,但是缺点是对于复杂路况稳定性比较差,仿射变换时图像的损失比较大,在仿射图中不一定能够检测到变形后的车道线,受到周边物体遮挡影响严重。不适用于路况复杂和摄像头的视角比较小的前方视野。
三、基于拟合的车道线检测
边缘点拟合依据的原理是:车道线是白色的,而路面是灰色的,车道线和路面存在稳定的灰度梯度差,通过设定合理的阈值,就可以将车道线的边缘提取出来,提取的车道线的边缘点有很多,找到同一水平位置相邻的车道线的边缘点,取他们的中点作为车道线上的一点,依次方法得到整个车道线的点,由于车道线的与路面的颜色灰度值会受到颜色变化的影响,所以单一的阈值分割出来的边缘点并不在车道线的中间,而是在一个区域内,车道线提取的中点集合并不是在一条直线上,而是分布在直线的两侧,要得到最终的车道线需要对这些点进行拟合,一般采用拟合函数进行拟合。清华大学、重庆大学等一些高校采用这种拟合的方法。这种方法的优点是计算量较小,可以拟合带有曲率的车道线,缺点是环境适应性差,受光照干扰较大,稳定性差。
四、方法对比
上述方法为基本的车道线检测方法,其他方法在这些方法上融合出来的,比如放射变换后使用拟合或者霍夫检测直线,加上灭点的约束等方法。霍夫直线检测方法准确、简单,不能直接做弯道检测。拟合方法不稳定,优点是可以检测弯道。仿射变换优点是可以做多车道检测,缺点是在复杂情况下,前方车辆或者其他物体容易遮挡,受干扰严重。后面延伸的很多方法讲各种方法融合到一起,但是基本的变化还是有这几种方法的影子。
以上是关于无人驾驶图像识别-车道线检测的主要内容,如果未能解决你的问题,请参考以下文章