复杂环境下的车道线识别算法改进分析
作者 | Jessie
出品 | 焉知
目前,基于视觉感知车道线的车辆横向控制是自动驾驶系统实现包含从L2-L5整个车道保持的基本前提。车道线识别技术主要分为视频帧图像获取、图像边缘提取、车道线提取和曲线拟合三个部分。本文将针对主流的车道线提取算法、图像增强算法和曲线拟合算法的角度详细剖析复杂环境下的车道线识别算法和改进策略。
1、视频图像帧捕获
在图像帧获取中,其图像帧的捕获增益和偏移参数必须根据不同的对比度条件进行调整,因此应提高视觉感知系统对外部环境变化的适应性和鲁棒性。为了更好的跟踪,基于马尔可夫链蒙特卡罗(MCMC)粒子滤波器的方法是行业内普遍推崇的方法。与传统的粒子滤波器或卡尔曼滤波器相比,其跟踪失败率较低,但无法处理光线变化和识别线不完整等问题。另外,基于松弛约束支持向量机(SVM)分类器和核函数的光自适应图像分割方法,可以区分道路图像的原始颜色特征和光伪影,则可以很好的弥补这样的缺陷,并取得良好的效果。但这这种形式并没有关注标志带颜色接近地面的情况,也没有考虑地面上可能出现的乱线干扰。
2、车道线识别技术
目前,目前车道线识别的方法有很多,广泛使用的边缘提取技术包括Sobel算子、Prewitt算子、Roberts算子和Canny算子。其中,前三种算法具有实现简单、运算速度快的优点,但易受噪声影响,边缘定位精度较差,具有一定的局限性。Canny算法是在原有一阶微分的基础上进行扩展的算子,增加了两个改进:非极大值抑制和双阈值。采用非极大值抑制不仅可以有效抑制多响应边缘,而且可以提高边缘的定位精度。采用双阈值可以有效降低边缘漏检率。因此,Canny算法近年来被学者们应用和优化,其中基于Otsu自适应阈值的Canny算法应用最为广泛,该方法解决了传统Canny算法阈值难以确定的问题。
但是,由于图像以车道线为研究对象,具有光照变化大、变化范围不均匀的特点,同时还需要考虑实时性问题,因此边缘提取方法仍需改进。车道线提取主要是提取车道线上的边缘点,排除干扰点对后续处理的影响。这部分的研究相对于图像边缘提取来说还比较少,并且大多数学者忽略了车道宽度标准化这一有用信息,导致算法设计过于复杂。
由于,复杂光照下车道线的提取是一个颇具挑战性的问题,图像校正是解决该问题的关键。照明分量通常是低频分量,可以通过高斯滤波来提取,但高斯滤波的边缘保持能力较差。此外,也有学者采用双边滤波算法来提取光成分,但该方法在实际应用中耗时过长。另一种Guided Filtering算法利用引导图像与滤波输出图像之间的局部线性关系(保证输出图像保留引导图像的局部纹理特征),计算出的输出图像与原始图像通过最小二乘法计算使输出图像的边缘尽可能接近原始图像。这种算法的时间复杂度仅为O(n),n为图像像素总数,与滤波半径无关,大大提高了运算速度。如果选择原始图像作为引导图像,则可以在保留原始图像局部特征的基础上实现对原始图像的光照提取。光照提取后,仍然需要设计合理的图像增强函数,使暗部区域更亮,亮部高光区域更暗,从而使整个画面恢复到接近正常均匀光线的状态。
3、车道线拟合技术
目前,最广泛使用的曲线拟合方法是霍夫变换、最小二乘法和随机样本一致性(RANSAC)。很少有研究将车道线宽度特征应用于车道线识别和拟合算法中。大多数研究采用一些复杂且耗时的算法来提取车道线,同时放弃了最具特征的信息。霍夫变换算法的特点导致其时间复杂度和空间复杂度较高,且在检测过程中只能确定线的方向而丢失线段的长度信息,因此不适合车道线检测。最小二乘法只适用于噪声较小的数据,但很多情况下,一些明显偏离曲线的点需要丢弃,因此不适合车道线拟合。RANSAC曲线拟合方法是对最小二乘法的改进。通过随机采样并增加一定的迭代次数,可以明显减少噪声点对结果的干扰。如何在复杂多变的环境中提取有用的边缘点并尽可能减少干扰点成为车道线识别的关键问题。
因此,综合考虑在复杂环境下,边缘提取算法需要被改进和优化。基于RANSAC曲线拟合车道线的算法用来作为加强车道线拟合更为合适。
改进的Canny 算法说明
车道线提取主要是提取车道线上的边缘点,排除干扰点对后续处理的影响。目前,车道线识别的方法有很多,广泛使用的边缘提取技术包括Sobel算子、Prewitt算子、Roberts算子和Canny算子。其中,前三种算法具有实现简单、运算速度快的优点,但易受噪声影响,边缘定位精度较差,具有一定的局限性。Canny算法是在原有一阶微分的基础上进行扩展的算子,增加了两个改进:非极大值抑制和双阈值。采用非极大值抑制不仅可以有效抑制多响应边缘,而且可以提高边缘的定位精度。采用双阈值可以有效降低边缘漏检率。因此,Canny算法近年来被学者们应用和优化,其中基于Otsu自适应阈值的Canny算法应用最为广泛,该方法解决了传统Canny算法阈值难以确定的问题。
这里我们将详细介绍Canny算法底层逻辑。
Canny算法具有三个严格的边缘检测标准:信噪比(SNR)、定位精度和单边缘响应。canny边缘检测器是信噪比与位置乘积的最佳逼近算子,其表达式近似于高斯函数的一阶导数。通过结合Canny边缘检测的三个准则,可以获得最优的检测算子。Canny边缘检测算法主要包括以下四个步骤:
1、高斯滤波器平滑图像
普通高斯滤波器表示如下:
i和j表示像素点的坐标,f(i,j)表示该点在原始图像中的值。
随后,通过一阶偏导数有限差分法计算平滑图像中各点的梯度幅值和方向,并记录在梯度幅值图和梯度方向图中。利用2*2邻域的一阶偏导数,根据以下公式计算平滑图像G(i,j)的i,j方向偏导数。
找出x、y方向的偏差后,按以下公式计算幅度和方向:
3、梯度幅度被非最大值抑制
仅获得全局梯度不足以确定边缘,为了确定边缘,必须保留局部梯度最大的点。抑制非极大值就是将非局部极大值点置零,得到细化边缘,最终得到一系列候选边缘点。
4、使用双阈值算法来检测和连接边缘
随后,使用两个阈值TL和TH(TL < TH)对上一步获得的一系列候选边缘点进行进一步处理。梯度值大于TH的点保留为边缘点,梯度值小于TL的点被淘汰,梯度值在两个阈值之间且与边缘点相邻的点被保留。最后判断保留点的8个方向上是否存在大于高阈值的边缘像素,合格的像素将被保留。简而言之,高阈值用于寻找每条线段上的边缘散点,而低阈值则在这些线的两个方向上延伸,以找到边缘断裂并连接这些边缘。
5、基于大津算法Otsu的自适应阈值计算
根据上面的Canny算法可以看出,高低阈值的选择对于最终的车道边缘提取非常重要。目前广泛采用 Otsu 算法可以自动确定阈值。基本思想是将图像像素分为背景和目标,通过搜索和计算类间最大方差得到最优阈值。阈值应该是两类之间的最佳分离,而类间分离的最佳判断是基于数理统计意义上的类间方差的最大值或类内方差的最小值。
传统 Canny 算法阈值的选择,Otsu 算法可以结合梯度幅值得到 Canny 算法中的高阈值TH和低阈值TL。
设灰度级为i的图像中像素总数为ni,灰度级范围为[0,L-1],则像素总数为:
L的大小取决于图像的实际灰度值范围。每个灰度值的概率为:
且Pi满足以下特征:
通过阈值将图像中的像素分为两类C0和C1,背景类别C0由灰度值为[0,T-1]的像素组成,目标类别C1由灰度值为[T,L-1]的像素组成。那么区域C0和C1的概率为:
背景类C0和目标类C1的平均灰度级分别为:
其中μ是整个图像的平均灰度级:
背景区域和目标区域的总方差为:
基于引导滤波器的图像增强校正
由于图像以车道线为研究对象,具有光照变化大、变化范围不均匀的特点,同时还需要考虑实时性问题,因此边缘提取方法仍需改进。而对于这项颇具挑战性的问题,图像校正是解决该问题的关键。这里我们介绍一种自适应权重滤波器--“引导滤波器”,可以平滑图像,同时保持边界的清晰度。由于其视觉质量好、速度快且易于实现,引导滤波器已广泛应用于实际产品中。
综合来说,这种方法是对滤波输入图像和引导图像进行二次采样,从而计算局部线性系数,并对这些系数进行上采样,上采样系数用于生成原始引导图像上的输出。由于HSV模型中的亮度V仍然与颜色有关,而YCbCr空间中的Y表示亮度信息,且与颜色完全无关,因此选择YCbCr空间中的亮度Y进行调整。根据图像的亮度,实时调整二维伽玛函数中索引的底数α,以更合理地调整过亮和过暗区域,最终实现图像的自适应增强照明不均匀区域的图像。因此,这种通过代替通常的高斯提取图像中的照明分量函数,然后构造一个具有可变参数的二维伽玛函数的方法在图像增强校正中非常管用。
本文将介绍这种基于快速引导滤波器(Fast Guided Filtering,FGF)的增强校正算法。相应的处理流程如下:
作为线性滤波器,引导滤波器可以简单定义如下:
其中I是引导图像,q是要滤波的输入图像,q是滤波后的输出图像,i是像素的索引,ωk是指滤波窗口,输出图像q是输入引导图像I的线性变换,由ak和bk系数进行确定。K为局部方窗ω的索引,半径为r。这里设置惩罚值ε是为了防止ak过大而引入的正则化参数。为了对原始图像进行滤波,在满足上述局部线性的基础上,需要使输出图像尽可能逼近原始图像,并采用最小二乘法来最小化输出图像和原始图像之间的重构误差:
这种Guided Filtering算法由于利用了引导图像与滤波输出图像之间的局部线性关系(保证输出图像保留引导图像的局部纹理特征),计算出的输出图像与原始图像通过最小二乘法计算使输出图像的边缘尽可能接近原始图像。因此,这种算法的时间复杂度仅为O(n),n为图像像素总数,该方法将二次采样比例s的时间复杂度从O(n)降低到O(n2),实际加速为*10。且与滤波半径无关,大大提高了运算速度。
同时,如果选择原始图像作为引导图像,则可以在保留原始图像局部特征的基础上实现对原始图像的光照提取。亮度信息提取后,仍然需要设计合理的图像增强函数,使暗部区域更亮,亮部高光区域更暗,从而使整个画面恢复到接近正常均匀光线的状态。
除此之外,使用快速引导滤波器代替高斯滤波或双边滤波可以有效提取图像的亮度信息。与其他滤波方法相比,快速引导滤波器能够更好地保留边缘细节和局部特征,并且还具有非常高的运算速度。
基于亮度的Fuzzy-Canny算法
如上通过引导滤波器实现了图像的区分和校正光照不均匀区域,由于亮度分量Y不仅可以表示同一图像中两个区域之间的亮度差,而且与色度分量相比,可以最大化不同图像之间的对比度,后续的图像分割算法则需要利用光照分量实现图像分割。而由于照明分量通常是低频分量,可以通过高斯滤波来提取,但高斯滤波的边缘保持能力较差。也有采用双边滤波算法来提取光成分的,但在实际应用中这种方法耗时过长。
上述算法虽然已经得到广泛应用,但直接应用于车道识别时主要存在两个缺点,一是该方法无法处理光线不均匀等复杂环境;二是该方法无法处理光线不均匀等复杂环境。同时,由于传统的方法确定canny高低阈值耗时较长,难以满足车辆的实时性要求。为了解决这个问题,本文介绍一种考虑基于亮度的Fuzzy-Canny算法来调整阈值。
如下图所示表示了改进的Fuzzy-Canny算法的整体软件架构:
由于同一图像中Y变化不大,因此采用平均亮度值Y作为微分不同图像的索引。针对ROI区域的光照不均匀性(如树木的阴影、高光等),经过图像校正后可以得到很大改善。同时,考虑到高阈值TH可以区分轮廓物体与背景,以ROI区域的亮度Y为输入,采用模糊逻辑算法自适应地调整高阈值TH,使得高阈值为更适合车道线检测,可以提取更多有用的信息。当图像Y值为128时,TH的基本值由如上Otsu方法确定,而低阈值TL的值由0.4*TH确定。局部图像处理后,将ROI区域中Y的平均值作为模糊输入,ΔTH作为输出可以很好的解决由于光线不均匀导致的识别问题。
(a) 阴影区域边缘检测算法比较
(b) 突出显示区域的边缘检测算法的比较
小结
本文对复杂光照环境下的车道线识别进行了介绍。为了在实时的前提下区分和校正光照不均匀区域,文采用基于FGF和改进的2-D gamma函数的方法对光照不均匀区域的图像进行快速校正。然后设计Fuzzy-Canny分割算法,以标准亮度值Y下的阈值为基准,通过判断当前Y的值来自适应调整阈值。与传统算法相比,将引导滤波器进行图像校正后与Fuzzy-Canny的分割算法相结合可以明以适应更多变化剧烈的环境条件下的车道线要素提取。
热门文章
更多精华美文扫码阅读
焉知汽车
希骥电池与储能
请先 登录 后再发表评论~