基于单目视觉的车道边缘检测及中心线提取算法研究
2019-10-21孙悦
孙悦
摘 要:车道线检测是无人车环境感知模块的重要组成部分。为实现对智能小车循迹过程中的精准控制,文章提出了一种新的车道中心线的提取算法。首先对图像进行处理,根据光照条件不同进行分类,之后用霍夫变换特征提取方法来检测车道线;根据图像中车道线的几何关系以非拟合的方式得到正确的车道中心线。所提出的方法在规定地图中可以完成完整的车道保持,尤其在弯道中保持良好。实践证明,该智能小车的车道中心线提取准确、稳定、计算速度快。关键词:图像处理;智能小车;霍夫变换;车道中心线中图分类号:U461.4 文献标识码:A 文章编号:1671-7988(2019)01-47-03
The overall design of medium-sized trucks based on Python
Sun Yue
( Chang'an University, Shanxi Xi'an 710064 )
Abstract: Lane line detection is an important part of the unmanned vehicle environment awareness module. In order to achieve precise control of the tracking process, this paper proposes a new lane center line extraction algorithm. Firstly, the image is processed, classified according to different lighting conditions, and then the Hough transform feature extraction method is used to detect the lane line; the correct lane center line is obtained in a non-fitting manner according to the geome -tric relationship of the lane lines in the image. The proposed method can complete a complete lane keeping in a prescribed map, especially in a corner. Practice has proved that the lane center line of the smart car is accurate, stable and fast.Keywords: Image Processing; Smart car; Hough transform; Lane centerlineCLC NO.: U461.4 Document Code: A Article ID: 1671-7988(2019)01-47-03
前言
近些年,随着雷达、摄像头、传感器的升级换代,各种智能驾驶辅助技术成了汽车行业前瞻研究的热点课题:自动跟车、车道保持、自动泊车等,但智能驾驶算法实车验证成本大,硬件设备复杂,企业前瞻研究和高校科研都基于单片机或树莓派的智能小车进行方法验证。
車道中心线的位置主要用于估计车辆位置,作为车道保持算法的输入。目前,国内外研究人员提出了多种基于摄像头的车道线识别和车道中心线提取方法。曹旭光[1]在非结构化道路识别中,用估计中值截距法和最小二乘法进行车道线拟合;Marc Revilloud[2]等通过对车道线进行标记来改善车道的检测和估算算法,在置信度图中使用车道估计的轮廓得到车道标记的面积;Yue Wang[3]等提出基于B-Snake的车道检测和跟踪算法,能够描述更宽范围的车道结构。但当车道线曲率较大时,以上方法的车道中心线提取效果就会变差。
本文就此种情况提出了一种适合智能驾驶小车的快速车道中心线提取方法,对场景地图中的直道、弯道等复杂车道的中心线进行识别提取,使小车可以实现自主循迹。
1 硬件搭建
本文设计的为基于Arduino和树莓派平台的差速舵机转向小车,由图像采集模块、驱动模块、转向模块、通信模块组成,控制系统选择树莓派3b微控制器作为核心处理器,结合GPIO及无线通信接口为智能小车提供了一个功能强大具有扩展性的硬件平台。图1为智能小车结构详解。
2 图像分类处理
当受到光线影响时,图像的像素信息会有变化,因此不同光线下应对图片做不同的处理。图像整体灰度均值是一种全局统计特征,受到局部影响的因素较小,有很强的滤波局部噪声误差的能力[4]。经试验统计发现,图像的整体灰度均值能够很好的反映出图像的光照强度[5]。因此本文选择以图像灰度均值作为图像分类标准,将图像分为三类:强光、正常光和弱光。灰度均值计算公式为:
其中,μ为灰度均值,M为灰度值最大值,ni为某个灰度值的个数,a、b分别为图像的长与宽,a*b为整个图像的像素点。
图像初步处理后运用Canny算子进行边缘检测:首先进行高斯滤波,平衡图像判断的噪声;用一阶偏导有限差分计算梯度幅值和方向;对梯度幅值进行非极大值抑制;用双阈值算法检测和连接边缘。该算子提取的车道线边缘完整,,有多种参数可以设置,适应多种实际情况。本文三种不同灰度均值图像对应着不同的二值化阙值,以强光处理为例,如图所示。
图2(c)为图2(a)不采用图像分类时识别的结果;图2(b)为采用分类方法且识别为强光,调整二值化阙值后的Canny算子识别结果,车道线识别更完整。实践证明,以灰度均值为基础的图像分类方法可以提高车道线识别过程中边缘检测的准确性。
3 基于霍夫变换的车道线识别
曲线拟合是提取车道中心线常用的方法,但小车的识别过程在树莓派中进行,需要提高算法的计算速度,降低计算占用空间。因此本文采用车道线的几何关系提取中心线,提取到的中心线垂直于图像的X轴,为下一单位时间内的车道中心线。由于较远的视野对当前控制作用不大,甚至会影响到附近位置判断的准确性,因此在选取图像时要截掉较远的视野。F_fllag和R_fllag是左右车道线的标记,等于1说明存在一侧车道线,等于零说明不存在。
3.1 双侧车道线
小车视野较好时,图像可以得到完整的双侧车道线,即F_fllag=1,R_fllag=1。根据两侧车道线的位置关系得到车道中心线的位置,公式如下:
其中,xcenter为车道线的横坐标,b为图像最上方的y轴坐标,krb为右侧车道线的斜率,xrb为右侧车道线与b的交点,klb为左侧车道线的斜率,xlb为左侧车道线与b的交点。图3是利用Python识别车道线的结果。红色为霍夫变换车道线识别结果,绿色为车道中心线识别结果。
3.2 单侧车道线
小车在弯道行驶时通常只能检测到单侧车道线,此时F_fllag=1、R_fllag=0或F_fllag=0、R_fllag=1。以只有左侧车道线时为例,车道中心线提取公式如下:
车道线斜率大于1时:
车道线斜率小于1时:
其中,f为车道中心线偏移量,c为车道中心线偏移系数,数值大于1。
3.3 车道线复杂处
由于地图复杂,在小车行驶过程中会出现很多干扰的线条。为了避免漏检、误检,车道线提取方法应做出优化改进。地图中,干扰线条不会出现在车道线内,且越靠近小车位置的直线斜率越小,因此根据斜率的大小筛选合适的车道线。图5中出现了环岛的单侧车道线以及干扰线条,干扰线条的
斜率较大,车道线斜率较小,识别结果如图。
4 结论
本文根据已有的研究成果,提出了一种基于单目视觉的车道边缘检测及中心线提取算法研究。首先,根据不同光照强度,图像的灰度均值不同,对圖像分类,然后进行Canny算子车道线边缘检测,在感兴趣区域进行霍夫变换车道线识别,最后根据车道线的位置关系,单侧车道线或双侧车道线进行不同的车道中心线的提取。实验中,算法在直道、弯道和环岛中,均具有较好的检测结果。
参考文献
[1] 曹旭光.非结构化道路识别及拟合算法研究[D].东华理工大学, 2015.
[2] M Revilloud,DGruyer,MC Rahal.A lane marker estimation method for improving lane detection[C].2016 IEEE 19th International Con -ference on Intelligent Transportation Systems, 2016 :289-295.
[3] Yue Wang,EamKhwangTeoh,Dinggang Shen. Lane detection and tracking using B-Snake[J]. Image and Vision Computing,2003,22 (4).
[4] 田磊.变光照条件CyberCar标示符识别算法研究[D].吉林大学, 2005.
[5] 杨喜宁,段建民,高德芝,郑榜贵.基于改进Hough变换的车道线检测技术[J].计算机测量与控制,2010,18(02):292-294.