论文部分内容阅读
车道检测是计算机辅助驾驶系统最重要的组成部分,计算机辅助驾驶系统需要在车道检测的基础上,才能对驾驶行为、车辆偏离、防碰撞等问题进行分析判断。车道检测的研究在过去几十年间取得了很大的进展,提出了各种各样的方法。但是车道检测需要处理各种各样的场景,很多方法在特定的场景能取得很好的效果,而在其他场景的表现可能会非常糟糕。目前很多算法在车道线不明显,车道残缺,阴影等复杂条件下,不能很好的检测到车道线,并且在智能手机平台上,一些算法的处理速率也存在很大的瓶颈。 针对智能手机目前处理能力有限,并且智能手机摄像头的成像质量有限的情况下,本文通过改进LSD(line segment detector)算法,有效的解决了车道检测时间和效果问题。 标准的LSD算法通过计算像素点的梯度大小和方向,根据梯度大小过滤图像中非边缘部分,然后使用种子生长法,把梯度方向近似且邻接的像素点连接起来,得到可能的直线段区域,对这个区域近似出一个矩形,计算这个矩形与一个完美噪声图像上相应部分的近似程度,因为对于一个完美噪声图像不能检测到任何一条直线,因此该矩形区域与噪声图像相应的区域越相似,则该矩形区域越不可能存在一条直线段,反之则认为正确的检测到一条直线段。标准LSD算法有较好的速度和效果,但是存在局部直线检测算法的缺点: (1)对于存在两条直线相交的情况下,由于在该算法中每个点只能属于一条直线,从而导致相交线段中,有一条直线会被割裂为两条。并且由于方向的计算也是基于梯度的,而直线交叉点的梯度值一般较小,因此可能导致相交的直线割裂为四条线段。这种情况在Hough等全局的直线检测算法中不存在。 (2)在车道检测应用中,当车道较为模糊,那么该车道处的梯度值相对较小,这个时候也不能检测到车道。对于车道磨损的情况下,这个时候车道被分割为离散的块状,此时由于这些离散的块状的梯度方向各不相同,LSD算法在这种情况下也不能检测到车道。 (3)虽然LSD算法拥有很高的效率,但是对于智能手机这种计算能力低的移动平台,效率依然有待提高,应该尽量减少需要计算的区域。 针对这几种情况,本文对LSD算法进行了改进,改进后的算法能够有效的应对这车道残缺和车道磨损情况,并且速度也得到了很大的提升。 首先对车道进行边缘增强,对边缘增强后的图像进行二值化,对二值化后的图像,判断是否需要对车道进行磨损修复,假如该车道部分残缺严重,则结合颜色和距离信息对车道进行修复,把属于同一车道的但是磨损后形成分裂的块重新连接到一起。这样解决了车道磨损问题和车道模糊的问题,同时由于车道边缘增强后,对于边缘不够明显的部分直接过滤掉,减少了LSD需要计算的区域,提高了LSD算法的处理速度。实验结果表明,本文的方法在智能手机的成像质量不高,车道情况复杂的情况下,能较好实时的检测到车道,相对于常见的基于Hough变换的车道检测算法有很大的速度和准确性的提升,相对于基于Canny算子的车道检测,不需要直线拟合这一步骤,因为直接得到了车道线的起始点和终止点。