APP下载

基于机器视觉的车道线在线识别系统设计

2020-09-29

工程设计学报 2020年4期
关键词:偏角像素点车道

李 梦

(安徽信息工程学院机械工程学院,安徽芜湖241000)

随着无人驾驶技术的不断发展,车道线的检测与跟踪逐渐成为研究热点,很多学者都提出了车道线识别与跟踪算法。庄博阳等[1]根据连续视频帧之间的时间相关性,利用光流对车辆前方背景的相对移动进行了检测,结果表明分辨率为(1 280×720)像素的图像的处理速度为24.81帧/s。王其东等[2]基于近视野车道直线信息与双曲线拟合方法,对弯道车道线进行了识别和寻优,实验结果表明:对分辨率为(640×480)像素的图像中车道线的平均识别率达91%以上,雨雾天气下车道线的识别率达84.5%以上。蔡英凤等[3]通过计算兴趣区域(region of interest,ROI)灰度各向结构张量的旋度,选择变化趋势最大的像素点作为特征点,利用霍夫变换(Hough transform,HT)来识别车道线,识别准确率达94.72%以上。段建民等[4]提出了一种基于改进简单图像统计阈值算法的车道线识别算法,利用兴趣区域来确定车道线的相对位置,结果表明该方法对单车道的识别准确率可达96.40%。王超等[5]利用霍夫变换和最小距离法求解预定区域内的消失点,并建立了梯形兴趣区域,通过垂直分割图像和搜索车道线位置来进行车道线识别,结果表明车道线的平均识别准确率达94.70%以上。曹月花等[6]通过改进SUSAN(smallest univalue segment assimilating nucleus,最小单值段同化核)算子对夜间昏暗道路进行边缘增强,以降低环境噪声的干扰;同时利用反射模型消除道路积水中光反射的影响,以提高识别准确率。陈无畏等[7]提出利用投票机制检测两侧车道线远方汇聚消失点,根据梯度方向投影计数获得车道线上的边缘点,并对置信度高的2个点进行直线拟合,实现车道线识别。Park等[8]提出了一种改进贝叶斯过滤器,用于降低观测数据的噪声影响与自身测量误差的不确定度,并利用数据协方差进行实时修正,以过滤不确定度较高的数据,从而提高车道线的识别准确率,同时通过对司机进行提示预警来避免事故的发生,实验结果表明该方法可使车道线的识别准确率提高25.3%。Chen等[9]利用高斯混合模型来解决车道场景中的遮挡问题,并采用渐进概率霍夫变换(progressive probabilistic Hough transform,PPHT)进行线段检测,结果表明该方法在单车道和多车道场景下均具有很高的识别准确率,但对处理器硬件的要求很高,仅能处理离线视频或离线图片,无法实现实时在线处理,多用于交通智能监控领域。Katru等[10]提出利用叉运算符划分图像并进行多线程并行处理,运用霍夫变换和动态阈值来检测车道线以提高识别准确率,并利用MATALB软件对15张离线图片进行车道线识别,平均识别准确率为97.56%,平均图像处理时间为39.95 帧/s。Filonenko等[11]提出了基于并行处理的车道线识别系统,先采用基于距离-颜色拟合模型的边缘特征处理方法来检测车道标记点,再利用范围聚类演化与曲线拟合方法识别车道线,结果表明不同环境下车道线的平均识别准确率为95.76%。Deusch等[12]提出了一种基于滤波器的多车道检测方法,该方法考虑了车道之间的依赖关系,多应用于农村道路的车道线检测。Bounini等[13]提出了一种计算机透视算法,通过霍夫变换、Canny边缘检测器、最小二乘技术和卡尔曼滤波器等实现车道的边界检测。王杰等[14]提出了一种基于双边滤波的图像增强算法,解决了弱光环境下车道线不易检测的问题,利用MATLAB R2015b软件仿真得到的结果表明,在凌晨与傍晚等光线较弱的条件下,车道线的识别准确率为92.5%。魏玉东等[15]提出利用Gist-SVM(support vector machine,支持向量机)机器学习算法对直线形与弯曲形车道线进行自动检测分类,对检测到的直线车道线和弯曲车道线分别进行霍夫变换和多数小线段直线拟合,并在MATLAB GUI界面上显示分析结果;但是,由于该方法基于机器学习算法,使用时需要大量路面图片样本,而实际路面情况具有多样性、随机性与复杂性等特性,因此需不断扩大样本的覆盖面、种类及数量,以提高识别准确率。

综上所述,现有车道线识别方法主要分为2类:1)基于道路图像特征(如边缘、颜色等)进行图像分割与处理,实现车道线识别;2)基于道路模型,通过提取车道线像素、拟合车道线来完成车道线识别,其中拟合方法有直线拟合、二次曲线拟合和同心圆曲线拟合等。这2类车道线识别方法主要借助OpenCV、MATLAB、Halcon等软件来构建车道线识别模型,对导入的图片或视频文件进行离线分析。这些方法虽具有较快的图像处理速度,但无法实现车道线在线识别与显示,也无法根据实时处理结果来获取车辆行驶的偏离情况,从而无法进行及时有效的偏离预警干预。另外,大部分车道线识别方法为了提高图片处理速度,通过设定兴趣区域来减少图片处理运行量。兴趣区域的选择取决于路面信息,对于离线图片文件,可通过参数调试来获得最佳区域坐标;但是,对于路面情况变化较大的视频文件或实时采集的图片文件,若仍然利用固定的参数值,则会影响动态识别准确率和车道线拟合结果。

基于此,笔者提出一种基于机器视觉的不设定兴趣区域的车道线在线识别系统,并通过构建车道线识别数学模型,对车辆行驶偏离超过安全范围的情况进行提示与预警,以同步实现车道线识别与偏离预警。

1 车道线在线识别系统总体设计

借助VBAI(Vision Builder for Automation Inspection)平台搭建车道线在线识别系统,主要包括图像预处理、车道线识别与偏离预警、LabVIEW平台API(application programming interface,应用程序接口)脚本调用三部分,其设计框图如图1所示。

车道线在线识别系统的工作流程为:首先,对实时采集的彩色道路图像进行灰度化、滤波、二值化处理,获取利于后续车道线识别的低噪、高质图像;然后,构建灰度值采集线,当采集线穿过车道线时,灰度值发生突变,当某点的灰度值超过设定阈值时,记该点为边缘突变点,借助直线拟合算法对所有边缘突变点进行拟合,完成车道线识别,并在此基础上,计算在车辆行驶过程中左、右车道线的远方消失交点坐标和车辆偏离车道中心线的相对航偏角,针对相对航偏角超过安全阈值的不同情况,通过在人机交互界面上显示不同颜色的提示框来进行偏离提醒或预警;最后,利用LabVIEW平台中的API脚本调用功能建立VI(virtual instrument,虚拟仪器)程序,载入与调用VBAI平台中的图像处理程序,完成对实时采集图像的连续处理,以实现车道线在线识别。

图1 车道线在线识别系统设计框图Fig.1 Design block diagram of online lane line recognition system

2 图像预处理

2.1 图像灰度化

摄像头采集的道路图像为彩色图像,若直接用于车道线识别,会增加整体计算时间和计算机内存使用量,影响识别速度。因此,需先对原始彩色图像进行灰度化处理。

2.2 图像滤波

灰度化处理后的图像经滤波降噪后才能进行二值化处理。常见的线性滤波方法有线性梯度算子滤波、拉普拉斯算子滤波、平滑滤波和高斯算子滤波;常见的非线性滤波方法主要有差值滤波、Sobel算子滤波、Prewitt算子滤波和中值滤波等。根据本文所采集的道路图像的特点,分别采用拉普拉斯算子滤波、Sobel算子滤波和高亮细节卷积滤波等方法对灰度图进行处理。图2所示为摄像头采集的原始道路图像和利用不同方法滤波后的道路图像。

由图2可知,利用高亮细节卷积滤波方法对图像进行滤波后,车道线上的边缘特征得到较好保留,周围环境噪声信息也被有效滤除,且无新的环境噪点,因此本文选择高亮细节卷积滤波方法。

图2 原始道路图像和不同方法滤波后的道路图像Fig.2 Original road image and filtered road images by different methods

2.3 图像二值化

道路图像经灰度化与降噪处理后,其像素点的灰度值变换范围为0~255。为提高车道线边缘点的识别准确率,对图像进行二值化处理:通过对比原始图像上像素点的灰度值与设定的灰度阈值,将灰度值设置为0或255,即呈现为黑白图像。二值化处理可有效地分割车道线与周围环境,尤其是在车道线图像与周围路面图像的灰度值接近的情况下,有效的二值化处理可提高车道线识别准确率。假设经灰度化和滤波处理后图像中像素点的灰度值为f(x,y),设定的灰度阈值为T,则最简单的图像阈值分割方法可表示为:

式中:g(x,y)为二值化处理后图像中像素点的灰度值。

由式(1)可知,若某像素点的灰度值大于等于设定的灰度阈值时,二值化处理后该点的灰度值为255,呈白色;若某像素点的灰度值小于设定的灰度阈值时,二值化处理后该点的灰度值为0,呈黑色。根据所设定的灰度阈值的不同,二值化处理后的图像将呈现不同的效果。

图3所示为采用不同灰度阈值时道路图像的分割效果。通过对比发现,当灰度阈值T=74时,左、右车道线附近仍保留了很多噪点;当灰度阈值T=92时,车道线信息得到较好保留,周围噪点也被有效抑制。基于此,本文选择灰度阈值T=92,对道路图像进行二值化处理,得到黑白道路图像,如图4所示。

图3 采用不同灰度阈值时道路图像的分割效果对比Fig.3 Comparison of segmentation effect of road images by using different gray thresholds

3 车道线识别与偏离预警

3.1 车道线识别

图4 二值化处理后的道路图像Fig.4 Road image after binary processing

本文设计的车道线识别过程为:首先,建立图像坐标系,以拍摄的道路图像下边缘中心为原点,构建间隔相应角度、方向向外辐射的灰度值采集线,当灰度值采集线与车道线的交点的灰度值超过设定的灰度阈值时,记该点为边缘突变点,如图5所示;然后,利用直线拟合算法对所有边缘突变点进行拟合,得到拟合的车道线;最后,利用直线拟合得分(line fit score,LFS)方法找到精度等级最高的拟合车道线,完成车道线识别[16]。

图5 车道线边缘突变点检测Fig.5 Detection of edge sudden change point of lane line

基于直线拟合算法和LFS方法的车道线拟合步骤如下:

1)根据像素半径从由所有边缘突变点组成的特征数据集中选择数据子集。拟合前,随机选择2个像素点作一条直线,根据该直线附近像素点的分布情况,以包含直线两侧70%以上像素点作为覆盖范围,设定初始像素半径。然后,根据设定的像素半径,获得有效像素点,组成数据子集,如图6所示。

2)根据数据子集进行直线拟合,并计算所有有效像素点到拟合直线的平均平方距离(mean square displacement,MSD),记作LMSD。LMSD用于衡量拟合直线的精度,LMSD越小表明拟合直线的精度越高。LMSD的计算式为:

图6 拟合直线与数据子集Fig.6 Fitting line and data subset

式中:dk为有效像素点到拟合直线的距离;N为有效像素点个数。

在初始像素半径的基础上,增大像素半径,获得与之对应的数据子集并计算LMSD。重复该步骤,选取LMSD较小的直线作为候选直线。

4)对候选直线进行优化,求解出直线拟合得分TLFS达到要求的直线,记为拟合车道线[17]。TLFS的计算式为:

式中:R为像素半径。

利用上述方法得到最佳拟合车道线。图7所示为某车道右侧内车道线识别结果。

图7 某车道右侧内车道线识别结果Fig.7 Lane line recognition result of the right side of a certain lane

3.2 车道线偏离预警

完成内侧车道线识别后,通过建模计算出左、右内侧车道线远方消失交点的坐标,并在此基础上计算车辆与车道中心线的相对航偏角,即图8中远方消失交点O'与坐标系原点连线与x轴的夹角β。在车辆行驶过程中,当车辆偏离车道中心线且靠近左侧车道线时,相对航偏角大于90°,如图8(a)所示,随着偏离加剧,相对航偏角增大;当车辆行驶偏离中心线且靠近右侧车道线时,相对航偏角小于90°,如图8(b)所示,随着偏离加剧,相对航偏角减小。

图8 车辆行驶偏离模型Fig.8 Vehicle driving deviation model

若车辆行驶时偏离车道中心线,当检测到在驾驶员非主动变道行为下仍存在靠近一侧车道线行驶的情况时,通过对比实测相对航偏角与设定的安全相对航偏角阈值,对车辆行驶安全进行判断:当实测相对航偏角大于设定阈值时,表明行驶偏离严重,存在安全隐患,通过人机交互界面上不同颜色的提示框对驾驶员进行提示或预警,以敦促驾驶员调整行驶方向,避免发生交通事故;当车辆处于安全行驶范围时,提示框中显示左、右内侧车道线远方消失交点O'的坐标与相对航偏角β,如图9所示。

图9 安全行驶时人机交互界面上提示框的显示情况Fig.9 Display situation of prompt box on the human-computer interface during driving safely

4 LabVIEW平台API脚本调用

为了实现对实时采集图像的在线处理,通过LabVIEW平台中的API脚本调用功能来调用VBAI平台中的图像处理程序,同时利用Development Toolkit工具包在while循环体中执行相应的脚本程序,完成图像显示、引擎运行、检测脚本启用、Inspection检测和退出等步骤,对车辆行驶过程中实时采集的道路图像进行处理。图10所示为LabVIEW平台API脚本调用图像处理程序界面,用户可以通过图像处理程序的连续运行获得车道线识别结果。

图10 LabVIEW平台API脚本调用图像处理程序界面Fig.10 Interface of image processing program called by Lab-VIEW platform APIscript

5 车道线识别试验

为了验证所提出的车道线在线识别系统的准确性与可靠性,进行了实际的车道线识别试验。选择在芜湖市弋江区大工山路、吴霞山东路、九华南路与花津南路路段开展试验,试验车辆为大众新款捷达;计算机的硬件配置为Intel CORE i5处理器,主频率为3.2 GHz,内存为4 GB,系统为Windows10(32位);视觉采集硬件为大恒HV1300FM 1394相机和3Mega Pixel镜头(焦距为5~55 mm,光圈为F1.4IR固定光圈),安装在前挡风玻璃车辆纵向中轴线处。根据中国道路标准,城市道路中机动车道宽度为3.5~3.75 m,新款捷达车的宽度为1.706 m,半宽为0.853 m,建立车辆-城市道路示意图,如图11所示。

图11 车辆-城市道路示意图Fig.11 Schematic illustration of vehicle-city road

在进行车道线识别试验之前,需先标定车道中心线。根据前文理论分析可知,车辆行驶偏离车道中心线的程度由相对航偏角β来衡量:β>90°表示车辆行驶左偏,β=90°表示车辆中轴线与车道中心线重合,β<90°表示车辆行驶右偏。基于此,对车道中心线进行标定,将车辆停在车道中心,使得车辆中轴线与车道中心线重合,通过测量获得多组试验结果。实际测得的相对航偏角平均值为90.052°,误差为0.052°,如图12所示。然后,改变车辆的停放位置,再设计多组试验进行对比,对车辆中轴线到车道中心线的距离进行标定测量,获得车辆位于不同位置处时的相对航偏角,平均误差为0.043°。

图12 车道中心线标定结果Fig.12 Lane centerline calibration results

利用设计的车道线在线识别系统进行车道线识别试验,结果如表1所示。结果表明:该系统能够有效识别出车道线以及左、右车道线远方消失交点,系统识别得到的相对航偏角与实际测得的相对航偏角的偏差为0.031°~0.056°;采用不同数量灰度值采集线进行车道线识别时的识别准确率是不同的。

根据试验结果,设定车辆轮廓外边界到车道线一侧的距离为30 cm作为预警距离:当车辆行驶左偏且达到预警距离,即相对航偏角大于安全阈值114.5°时,发出左偏预警;当车辆行驶右偏且达到预警距离,即相对航偏角小于安全阈值76.5°时,发出右偏预警。当车辆左、右偏移达到预警距离阈值时,车道线在线识别系统人机交互界面中提示框呈红色警示状态。

表1 车道线识别试验结果Table 1 Lane line recognition test results

由于行车速度的不同和路面情况的复杂性,为了进一步提高高速行驶状态下车辆偏离安全预警的及时性,增设偏离距离40 cm为提醒阈值,当车辆行驶偏离距离为30~40 cm时,系统进行安全提醒,旨在为驾驶员争取更多宝贵的反应时间,保证行驶安全。通过车道线识别试验可得,当车辆行驶偏离距离为40 cm时,对应的相对航偏角为111.5°(左偏)与79.5°(右偏)。因此,当相对航偏角为111.5°~114.5°时,系统发出左偏提醒;当相对航偏角为76.5°~79.5°时,系统发出右偏提醒;当相对航偏角为79.5°~111.5°时,为安全行驶范围,系统不作提醒。车道线在线识别系统发出偏离提醒时,人机交互界面中提示框呈粉红色提醒状态。

为了验证所提出的车道线在线识别系统对不同环境的适应性,在不同的道路环境下展开大量车道线识别试验。图13所示分别为夜晚、积水、弯道等非常规环境下的车道线识别结果。

在不同环境下完成多组车道线识别试验后,统计图像处理速度和车辆行驶偏离预警准确率,结果如表2所示。结果表明,所设计的车道线在线识别系统在不同环境下均具有较高的图像处理速度与行驶偏离预警准确率。

为进一步验证本文车道线在线识别算法运行结果的准确性,与文献[1,3-4,10]所得结果进行对比,如表3和表4所示。

部分现有车道线识别方法采用设定兴趣区域的算法来减少图像处理运行量和提高图像处理速度,但由于被锁定的兴趣区域无法动态适应变化的路面,使得这些方法存在一定的识别误差。通过对比设定兴趣区域的车道线识别方法发现,识别误差一般在图像快速采集与处理过程中出现。而本文所提出的车道线在线识别方法不设定固定的兴趣区域,能够对采集的图像进行实时处理,确保了较高的识别准确率与较强的环境适应力。图14所示为采用设定固定兴趣区域的方法和本文方法的车道线识别结果比较。

图13 不同环境下车道线识别结果Fig.13 Lane line recognition results under different circustances

表2 图像处理速度和车辆行驶偏离预警准确率Table 2 Image processing speed and vehicle deviation warning accuracy

表3 车道线识别准确率对比Table 3 Comparison oflaneline recognition correct rate %

表4 图像处理速度对比Table 4 Comparison of image processing speed

图14 不同方法的车道线识别结果比较Fig.14 Comparison of lane line recognition results of different methods

此外,随着人工智能技术在无人驾驶领域的应用,常通过借助深度学习理论来搭建卷积神经网络的识别算法,以对样本进行训练。利用卷积网络函数model.add(Conv2D,padding='valid',strides,activation,name))、池化函数 model.add(MaxPooling2D(pool_size=pool_size))、上采样函数model.add(UpSampling2D(size=pool_size))和反卷积函数model.add(Conv2D Transpose,padding,stride,activation,name))等函数对离线视频文件中的图像进行处理时,一般需要采用图形处理器(graphics processing unit,GPU)来提高图片处理速度。图15(a)所示为采用GPU(英伟达GTX1050)和传统车道线识别算法,利用深度学习理论,在TensorFlow终端输出的车道线识别结果[18],该方法对显卡及图像处理器配置的要求较高,且高速运行时仍然存在一定的边缘识别误差;图15(b)所示为采用一般中央处理器(central processing unit,CPU)和本文算法得到的车道线识别结果,该方法硬件成本较低,且识别准确率较高。

图15 采用不同图像处理硬件时的车道线识别结果Fig.15 Recognition results of lane line by using different image processing hardware

6 结论

为更好地服务自动驾驶车辆中的车道保持辅助系统,基于现有多种车道线识别方法,开展了以下工作:

1)针对传统车道线识别方法相对复杂且对硬件要求较高的问题,提出了一种基于机器视觉的车道线在线识别系统,简化了识别难度且提高了识别准确率。

2)针对传统车道线识别方法只能对离线视频或图片进行处理,无法展开实时识别的问题,借助Lab-VIEW平台中的API脚本调用功能来调用VBAI平台中的图像处理程序,实现车道线在线识别。

3)针对传统车道线识别方法无法进行行驶偏离预警,功能较为单一的问题,对左、右车道线远方消失交点坐标与相对航偏角进行实时测量并将其显示在人机交互界面上,并根据偏离情况,利用不同颜色提示框进行提醒与预警,优化了系统的功能,提高了系统的复合性与实用性。

猜你喜欢

偏角像素点车道
北斗+手机实现车道级导航应用
避免跟车闯红灯的地面车道线
翼吊长涵道发动机短舱内偏角优化和机理研究
基于局部相似性的特征匹配筛选算法
浅谈MTC车道改造
2018全国Ⅱ卷选修3-4中偏角的解法探讨
基于5×5邻域像素点相关性的划痕修复算法
基于canvas的前端数据加密
欧姆表偶然误差分析
基于逐像素点深度卷积网络分割模型的上皮和间质组织分割