一种照度自适应车道检测算法及多核平台实现
2017-07-31谢红韬杨斌张翠芳
谢红韬,杨斌,张翠芳
(西南交通大学 智能系统与控制实验室,成都 611756)
一种照度自适应车道检测算法及多核平台实现
谢红韬,杨斌,张翠芳
(西南交通大学 智能系统与控制实验室,成都 611756)
针对车道线检测,基于图像白平衡算法和灰度直方图,自适应地提取出感兴趣区域,并自适应确定Canny边缘检测算法的高低阈值。通过对概率霍夫变换得到的直线点集进行RANSAC拟合,满足了在不同光照条件下的自适应车道线检测,并基于英伟达Jetson TK1嵌入式开发板结合开源GUI库Qt,使用其Qt Quick开发出一套车道线检测系统。
车道线检测;Canny边缘检测;霍夫变换;Jetson TK1;Qt Quick
引 言
车道线检测主要用于驾驶辅助和无人驾驶系统,根据摄像头数量,分为单目和双目两种检测系统。出于实时性和经济性的考虑,一般采用单目检测,在对采集过来的图像预处理之后进行边缘检测和霍夫变化,提取出图像中的直线,并由各类拟合算法拟合出车道线。通常在车道线检测中,不同光照条件下,对于传统固定值的车道检测算法有非常大的影响,经常出现长时间无法检测到车道线的情况。本文通过灰度世界算法对图像进行白平衡处理,能很好过滤掉摄像头采集过来的图像的光照噪声。对于车道线检测的感兴趣区域(ROI),一般在图像的下半部分,即车道消失的点到图像底部。传统车道线检测对ROI的提取,通常为图像的某一固定区域,由于行驶过程中,车道消失点是不断变化的,所以本文通过灰度世界算法得到的灰度平均值结合灰度分布统计,提取出感兴趣区域,并应用到之后的Canny算法阈值的确定,达到自适应的车道线检测。根据改进的车道线检测算法,基于Nvidia Jetson TK1嵌入式平台结合Qt Quick实现实时车道线检测系统。
1 总体系统架构
传统的车道线检测,尤其在嵌入式环境下运行,不具有较好的实时性。为适应车道线检测的实时性和在可移动平台上配置的原理,本文提出了光照环境自适应的车道检测算法,并在 Nvidia Jetson TK1嵌入式开发平台上进行实现。Jeston TK1嵌入式平台搭载一块4核ARM Cortex-A15架构CPU,同时内置一块型号为“GK20a”的Kepler架构GPU,可由12 V电源驱动供电,并配有PCle、HDMI、USB3.0等接口,其尺寸大小为12.7 cm×12.7 cm,具有体积小、功耗低、运算速度快等优点。在该平台上可实现快速图像处理,并且具有嵌入式平台的可移动特性。
本文的总体架构如图1所示。采用ANC狼魔高清网络摄像头,通过USB3.0使其与 Jetson TK1进行连接,由程序采集图像数据并封装,通过本文在Jetson TK1上实现自适应车道线检测算法,检测并拟合出车道线。最后,使用HDMI接口连接高清显示器,通过图形界面把车道图像及车道数据实时输出到屏幕进行显示。
图1 系统总体架构
2 检测算法
传统的车道线检测总是对周围的环境光照比较敏感,车道特性容易被环境光照影响而干扰算法的检测,以至于得不到较好的结果,并且传统检测算法的感兴趣区域和边缘检测阈值比较固定,不具有普适性。本文基于灰度世界算法假设对输入图像进行白平衡处理,过滤掉光照噪声,还原真实图像,并集合灰度分布统计和分离纵向灰度搜索,自适应地找出图像的感兴趣区域(ROI)和确定Canny边缘检测地高低阈值。最后结合概率霍夫变换和随机抽样一致性算法检测并拟合出车道线。算法满足不同光照条件下的自适应检测原则,可以很好地检测出车道线并具有较好的实时性。其总体算法步骤如图2所示。
图2 总体算法步骤
(1)
根据VonKries对角模型,对每一个像素点的每一个通道分别乘以相应的增益系数,调整其R、G、B分量,得到平衡过后的图像。使用灰度世界算法对图像进行白平衡,可以消除不同光照条件对图像的影响,最大限度还原真实图像。
在图像处理领域,感兴趣区域(ROI)的提取能有效地缩减图像处理的范围,减少了后续图像处理时间。传统的车道线检测,其ROI的范围比较固定,在现实的车道环境下不具有普适性和可配置性。对于车道图像,一般分为两个区域:上半部分为天空区域,下半部分为车道区域,两个区域呈现明显的灰度特征。本文针对车道图像的该特性提出一种分离式纵向灰度搜索方法,针对不同的车道线图像,能有效地提取出感兴趣区域。其算法步骤如下:①灰度图按图片高度分成1:1两个部分;②分别对两部分图片作灰度分布统计,得出两部分的灰度平均值aveTop和aveBottom;③对于二者灰度平均值大小结合最大统计灰度值像素采取不同的纵向灰度搜索策略,具体搜索策略如图3所示。
图3 纵向灰度搜索策略
对于一般的Canny算法,其高低阈值都需要自己手动设定,固定的阈值对于不同的图像不具有普适性,就车道检测来说,固定的阈值在某些环境下,不仅会存在车道图像因边缘模糊而无法提取的情况,更会存在阈值过低而造成无用的边缘数量过多的情况。本文结合灰度分布统计,采用改进的自适应阈值Canny算法对图像中物体的边缘进行检测,得到含有效车道边缘的二值化图像。Canny算法是John F. Canny于 1986 年开发出来的一个多级边缘检测算法。它有图4所示的X方向和图5所示的Y方向两个一阶边缘检测算子,对图像的每个像素作卷积,求取梯度幅值及梯度方向。
-101-202-101图4 X方向检测算子121000-1-2-1图5 Y方向检测算子
式(2)和式(3)为计算X方向和Y方向的梯度,由式(4)、式(5)求取梯度幅值及梯度方向。
(2)
(3)
(4)
(5)
再对梯度幅值进行非极大值抑制的边缘细化,过滤掉伪边缘点,即在梯度幅值较大的边缘点,沿着它的梯度方向区域内同样存在较大梯度幅值的点才能被算作边缘点。
Canny算法提出的双阈值检测的概念能有效地提取出图像内物体边缘。设定高低阈值,比较梯度幅值与高阈值,小于高阈值的,判定为边缘,但由于阈值较高,产生的图像边缘可能不闭合,在高阈值图像中把边缘链接成轮廓,当到达轮廓的端点时,在断点的8邻域点中寻找满足梯度幅值高于低阈值的点,再根据此点收集新的边缘,直到整个图像边缘闭合。
高低阈值的选取直接关系到整个图像边缘的提取是否成功。对于车道线图像,车道线为白线或红线,其灰度值一般总是大于车道的灰度值。本文根据车道线的特性,结合灰度分布统计,自适应地选取高低阈值。根据灰度分布统计,如式(6)、式(7)所示,把大于灰度平均值最大灰度分布的像素和小于灰度平均值最大分布像素之差作为低阈值。再把该低阈值乘以1.5倍作为高阈值。通过该自适应阈值可有效提取出车道线特性。
(6)
(7)
在得到二值化的边缘图像后,通过概率霍夫变换,提取出图像中的直线,得到直线的点集。传统的车道线检测对霍夫变换的点集通过最小二乘法进行拟合车道线。简单的最小二乘法容易受到噪声的干扰,如果点集内有某个点不属于直线,得到的结果和希望拟合的结果存在较大的偏差。本文通过随机抽样一致性算法(RANSAC)进行直线拟合,可以有效地排除掉噪声点,得到与希望拟合的车道线误差较小的结果。随机抽样一致性算法是一种基于数学模型进行拟合的方法,它采用迭代的方式从一组包含离群的被观测数据中估算出数学模型的参数。它的算法步骤为:①在数据中随机选择几个点设定为内群;②计算拟合内群的模型;③把其他刚才没选到的点带入刚才建立的模型中,计算是否为内群,记下内群数量;④重复以上步骤多做几次;⑤比较哪次计算中内群数量最多,内群最多的那次所建的模型就是所要求的解。
对于本文通过霍夫变换检测出来的点集,随机抽样一致性算法相比于传统的最小二乘法具有更好的拟合效果,通过迭代能够去掉许多干扰噪声,得到精确的直线模型。
3 实验环境
本系统的实验平台基于NvidiaJetsonTK1嵌入式开发板。图6为系统实图,以JetsonTK1作为嵌入式平台,通过USB3.0接入摄像头进行图像数据采集,系统摄像头使用ANC狼魔高清网络摄像头,采集的图像分辨率为640×480,帧率为30fps。再通过HDMI转VGA数据线外接显示屏作为图形界面的显示,显示器为LenovoThinkVisionL2250p,分辨率为1680×1050。JetsonTK1裸机需通过JetPack进行装机配置,JetPackforL4T是Nvidia公司针对Tegra平台的Linux系统提供的软件包管理器。在对JetsonTK1进行配置的时候,把JetsonTK1通过USB与安装有JetPack的电脑进行连接,可以快速地安装配置需要的软件。本文用到的OpenCV4Tegra和Qt皆通过这种方法进行配置。
图6 车道检测系统实图
在对处理过后的图像及数据进行显示的时候,本文采用了Qt4.7版本推出的高级用户界面技术Qt Quick,使用它可轻松地创建供移动和嵌入式设备使用的动态触摸式界面和轻量级应用程序。相比于传统使用C++进行Qt界面构建,它新增了一门更加方便的语言QML,它的语法类似于Javascript,相对于传统的Qt界面构建技术,虽然增加了学习成本,但使用它可以轻松快速地创建更加美观的界面。本文使用的软件版本为Qt5.3及 Qt Quick 2.0。
4 算法验证及测试结果
4.1 去除环境光照影响
对于复杂的光照条件,选取如下两个特殊情况作为算法验证,如图7所示,车辆在阴雨天气下行驶时,整幅图像由于阴雨天气和周遭环境呈现暗淡的蓝色,车道线也呈现暗淡的蓝色。图8为车辆在暗黄色光的隧道中行驶时,车道及图像呈现暗黄色。两幅图像都受到了不同光照的影响。
图7 阴雨天气车道图像
图8 开灯隧道车道图像
图9 阴雨天气白平衡图
图10 开灯隧道白平衡图
在采用灰度世界法对图像白平衡化后,能够有效地消除环境光照对图像的影响。图9和图10为白平衡过后的车道图像,可以明显看出通过白平衡过后的图像消除了环境光照的影响,更趋近于真实世界的图像反映,并且车道线呈现更明亮的白色,跟车道部分也呈现更加清晰的边缘。表1为两幅图像在白平衡之前和白平衡之后的3通道平均值对比,数据显示,经过白平衡后,增强了数值较低的分量且削弱了数值较大的分量,图像的3个通道都趋近于一个平均值,满足灰度世界假设。
表1 图像3通道平均值对比
4.2 自适应感兴趣区域查找
如图11所示,通过分离式灰度纵向搜索法,得到的图像感兴趣区域顶点处于车道消失点附近,可以在不同的车道环境下有效提取出针对车道检测的感兴趣区域。
图11 分离式纵向灰度搜索法ROI结果
4.3 自适应阈值Canny算法
如图12所示,无需通过手动设置阈值,由之前对图像的预处理,结合灰度分布统计得到的自适应Canny算法高低阈值,通过Canny边缘检测在感兴趣区域可以得出明显的车道边缘。
图12 自适应阈值Canny算法结果
4.4 车道线检测结果
通过概率霍夫变换和RANSAC对车道线进行拟合,可以在图像中很好地标定出车道线,图13为车道线检测结果,通过本文算法,在不同光照环境条件下,可以自适应地调整图像并检测出车道线,且得到较好的检测结果,并且在Jetson TK1嵌入式平台上可以实现算法运算速度小于20 ms,平均帧率在70 fps左右。
图13 车道线检测结果
4.5 图形界面显示
本文通过适用于嵌入式领域的跨平台C++图形界面库Qt,结合其最新的图形界面构建技术Qt Quick,构建出界面整洁的车道线检测系统。如图14所示,主体车道被标定出来显示在界面的左半部分,右半部分为实时车道数据,可以显示出图像数据的处理帧率、车道线条数,并附有车道缩略图及相对于车道的行进姿态。整个系统简洁明了、运行流畅,能够很好得到车道图像及数据,极大程度上辅助了司机驾驶。
图14 系统界面
结 语
[1] Chong H Y,Gortler S J,Zickler T.The von Kries hypothesis and a basis for color constancy[C]//Computer Vision,IEEE 11th International Conference on.IEEE,2007:1-8.
[2] Rong W,Li Z,Zhang W,et al.An improved CANNY edge detection algorithm[C]//Mechatronics and Automation (ICMA),2014 IEEE International Conference on.IEEE,2014:577-582.
[3] Gonzalez J P,Ozguner U.Lane detection using histogram-based segmentation and decision trees[C]//Intelligent Transportation Systems,2000.
[4] 彭红,肖进胜,沈三明,等.一种基于随机抽样一致性的车道线快速识别算法[J].上海交通大学学报,2014,48(12):1721-1726.
[5] 范朋.基于Qt的嵌入式Linux系统GUI的研究与实现[D].北京:北京邮电大学,2011.
[6] 郑纯军,贾宁.基于Qt Quick的跨平台移动应用开发关键技术研究[J].软件工程师,2015(4):33-35.
谢红韬(硕士研究生),研究方向为嵌入式与智能控制;杨斌(教授),研究方向为嵌入式系统;张翠芳(教授),研究方向为智能控制。
An Illustration Self-adaptive Lane Detection Algorithm and Multicore Platform
Xie Hongtao,Yang bin,Zhang Cuifang
(Intelligent System and Control Laboratory,Southwest Jiaotong University,Chengdu 611756,China)
Aiming at the problem of lane detection,the algorithm is proposed which can adaptively extract the region of interest and determine the high and low threshold of Canny edge detection algorithm,the algorithm is based on the image white balance algorithm and gray histogram.Through the RANSAC fitting of the linear point set obtained by the probabilistic Hough transform,the algorithm can meet the requirements of the adaptive lane detection under different illumination conditions.In the paper,the Qt Quick is used to develop a lane detection system based on the NVIDIA Jetson TK1 embedded development board and the open-source GUI library Qt.
lane detection;Canny edge detection;Hough transform;Jetson TK1;Qt Quick
TP751.1
A
�士然
2017-03-13)