APP下载

基于改进蚁群边缘检测的车道线检测算法

2023-01-16

无线互联科技 2022年21期
关键词:像素点车道灰度

卢 曦

(南通理工学院,江苏 南通 226000)

0 引言

随着社会发展和人民生活水平的不断提高,城市总汽车拥有量逐年上升,交通事故发生量也随之日趋上升。交通事故的频繁发生在很大程度上是由驾驶员的主观原因造成,例如醉酒、疲劳和不正确的驾驶操作等。目前,交通安全已经成为影响城市发展的一个重要因素。近年来,汽车自动驾驶技术不断发展,在一定程度上消除了这些人为因素[1]。汽车自动驾驶技术通过摄像头、雷达传感器以及激光测距器等设备对汽车的驾驶环境进行信息采集,数据交由计算机进行分析并做出决策,然后车辆控制器根据决策来实现车辆的驾驶操作,包括加速、减速、转向、刹车等。车道线检测是汽车自动驾驶技术中至关重要的一环,直接影响驾驶行为的实施。要实现汽车自动驾驶必须先确定行驶车道,并在此基础上确定汽车在车道中的准确位置和有效行驶方向。车道线检测是汽车自动驾驶中的一个基础模块,车道保持,自适应巡航,自动变道,对于全自动驾驶汽车后续的车道偏离或轨迹规划决策也很重要。目前国内没有分级标准,自动驾驶技术的分级仍然采用的是美国汽车工程师协会进行的分级标准,一共分为6个级别。从L1到L5的自动驾驶分级标准中车道线检测都是重要的判断指标之一[2]。

随着计算机视觉研究的快速发展,越来越多的专家和学者将注意力集中在车道检测上。目前车道检测主要有两大类方法,一类是基于特征的车道检测,另一类是基于模型的车道检测。其中基于特征的车道检测主要是通过提取车道的边缘特征和颜色特征,将车道与道路图像的其他元素分离出来。此类方法有很多,比如基于霍夫曼检测、基于LSD直线段检测、基于俯视图变换的车道线检测、基于拟合的车道线检测、基于平行透视灭点的车道线检测等。丁蒙[3]提出了基于消失点的自适应ROI提取和基于蚁群算法的边缘检测方法,用基于纹理的gLoG滤波进行消失点检测以消除复杂背景的影响,使用蚁群算法对灰度图像进行边缘检测以解决Canny算子对噪声敏感的问题。谢昌刚等[4]提出一种基于动态划分感兴趣区域的车道线隔行检测算法,通过动态划分感兴趣区域将车道两旁干扰因素等有效去除,同时将边缘检测区域划分成几个小区域分别提取其边缘点,并采用隔行方法对其检测,最后将提取到的边缘点通过最小二乘法和3次样条曲线拟合出车道线。许小伟等[5]提出了一种基于融合分割和消失点提取的车道线检测方法,采用直线段检测(LSD)算法对ROI区域内车道线标志进行提取,并结合改进的消失点检测方法快速提取车道线。吕侃徽等[6]提出了一种改进的Hough变换耦合密度空间聚类的车道线检测算法,利用边缘像素的梯度方向来定义小线段的方向,通过小线段的方向函数得到车道线段候选簇,利用消失点来拟合最终车道线,在光照变化、背景干扰等不良因素下可准确识别正常车道线。

文章提出了一种基于改进蚁群边缘检测的车道线检测算法。首先将图像灰度化,然后利用基于细菌趋化性的蚁群优化边缘检测算法,用来对灰度图像进行边缘提取,该算法能够得到更好的边缘连续性和清晰性。寻找边缘点最多的一行作为上界动态划分出感兴趣区域(ROI),对ROI区域进行Hough变换直线检测和离群点过滤,通过最小二乘法拟合出车道线,车道线检测算法流程如图1所示。最后,利用真实道路驾驶视频,对车道检测算法进行仿真实验,根据实验结果评价该算法的综合性能。

图1 车道线检测算法流程

1 图像预处理

在进行车道检测之前,需先将彩色图像转换为灰度图。灰度,就是图像没有色彩。原本的彩色图片每个像素点由RGB 3种颜色组成的,现在将图像灰度化,就是另每个像素点只有一个值(0—255)表示颜色的深度。本文通过公式(1)对彩色图像中每个像素点的RGB三分量计算平均值得到该像素点对应的灰度值。

Gray(i,j)=(R(i,j)+G(i,j)+B(i,j))/3

(1)

在网络上找到一张从驾驶位置正面拍摄的包含车道的图像(宽1 080像素,高810像素)作为测试用例,对图像进行上述灰度化处理,灰度处理化后的图片如图2所示。

图2 灰度化处理后的图片

2 图像边缘检测

2.1 蚁群算法

蚁群算法(Ant Colony Algorithm,ACA)最早是由意大利学者Dorigo受到人们对自然界中真实蚁群集体行为的研究成果的启发提出来的,是一种新型的模拟进化算法。研究发现,蚂蚁这类群居昆虫虽然单个蚂蚁的行为极其简单,但由这样的个体所组成的蚁群群体却表现出极其复杂的行为,能够完成复杂的任务。蚂蚁个体之间通过一种被称为信息素(Pheromone)的物质进行信息传递,从而相互协作完成复杂的任务。蚂蚁在移动时通过感知信息素的存在及强度来引导自己向信息素浓度高的方向移动,同时也会在自己经过的路径上留下信息素。因为信息素会不断衰减,一定的时间内,越短的路径信息素衰减越慢,留下的信息素浓度较高,越来越多的蚂蚁访问,积累的信息素不断增强,在下一个时间内,其他蚂蚁选择该路径的概率就越大。由此,大量蚂蚁组成的群体行为会表现出信息的正反馈现象,一直持续到所有的蚂蚁都走最短的那一条路径为止。

2.2 细菌趋化性

细菌趋化算法(Bacterial Chemotaxis Algorithm,BCA)是由S.D.Muller等[7]在2002年提出的一种新型仿生类优化算法。研究发现,大肠杆菌在觅食过程中能够从变化或未知的环境中感知化学物质浓度的变化,并产生趋向有利于自身生存的区域或避开不利于自身生长区域的行为。这种行为被称为趋化行为,具体表现为向新方向游动(Swim)和原地翻转(Tumble)两种动作。Passino[8]指出当细菌处在一个中性的或环境浓度没有梯度的环境,细菌会交替进行游动和翻转动作,一旦细菌的感官器接收到营养或有害物质的梯度信号,则会进行更多的游动和更少的翻转,从而使自身运动方向偏向正或负梯度方向。

细菌趋化算法执行过程包括:初始化搜索空间维度、细菌尺寸、细菌初始位置、细菌移动速度、细菌最短运动时间、计算精度等参数,根据梯度变化确定细菌翻转方向,根据细菌在新方向的持续时间计算细菌在搜索空间中的新坐标,当细菌趋化步数达到最大预定值或梯度值变化小于精度,算法结束获得当前最优可行解。细菌趋化算法实现过程简单,并且全局搜寻能力强,易跳出局部极小值,在噪声环境下也有较好的表现。蚁群算法具有很好的并行搜索能力,但算法的性能受初始信息素取值的影响较大。初始信息素取值不好时,算法收敛效果不好,且容易陷入局部最优。为了解决以上问题,本文先对图像进行细菌趋化,将搜索到的最优可行解用来计算信息素初值矩阵,然后再进行蚁群优化,从而提高蚁群算法的整体性能。

2.3 改进蚁群边缘检测

本文将蚁群优化和细菌趋化性相结合,提出了一种改进的图像边缘检测算法。算法主要包括基于细菌趋化求解蚁群的信息素初始矩阵,基于灰度值求解启发式信息,基于转移概率进行路径选择,基于信息素衰减策略更新信息素,基于最终信息素矩阵判断边缘。该算法流程如图3所示。

图3 改进蚁群边缘检测算法流程

以M×N的图像为例,基于细菌趋化性的改进蚁群边缘检测算法求解步骤如下。

Step1:输入图像灰度值,根据2.2小节通过细菌趋化性查找可行的最优解。

Step2:初始化信息素矩阵。初始时刻,信息素矩阵中像素点(i,j)的值τij表示如下:

(2)

在初始阶段还需要确定启发式信息量,像素点(i,j)的启发式信息ηij表示如下:

(3)

其中,Gij是像素点(i,j)的灰度值。V(Gij)是蚂蚁像素点(i,j)的强度,其值反映了像素点(i,j)所在区域的灰度值变化强度。

由于拍摄到的图片中车道线一般是纵向,这里选取像素点(i,j)左右两个相邻区域内的部分像素点,以像素点(i,j)为中心点计算对称位置上每组像素点之间的灰度值差值,来估计像素点的强度。图4中黑点描述了像素点(i,j)的位置,白点描述了用来计算机像素点(i,j)强度的相邻像素点位置。

V(Gij)=|Gi-1j-2-Gi+1j+2|+|Gi+1j-2-Gi-1j+2|+

|Gi-2j-1-Gi+2j+1|+|Gi+2j-1-Gi-2j+1|+|Gi-1j-1-

Gi+1j+1|+|Gij-1-Gij+1|+|Gi+1j-1-Gi-1j+1|

(4)

图4 像素点(i,j)所在区域的灰度值

Step3:计算转移概率完成路径选择。每一次迭代,蚂蚁可以从所在像素点向其邻域的8个像素点移动,分别计算蚂蚁到达这些像素点的转移概率P。转移概率P由其相邻范围内的8个像素点的信息素和期望值计算得到。

Step4:参考传统蚁群算法的信息素更新策略完成信息素更新。单个蚂蚁经过一个像素点时,更新局部信息素,直到全部蚂蚁完成一次遍历后,更新全局信息素。

Step5:根据阈值T(l)进行边缘判断。将像素点分为两类:信息素大于T(l)与信息素小于T(l),分别计算这两类像素点的信息素平均值得到MU和ML。通过MU和ML计算得到新的阈值。不断迭代输出阈值T,直到|T(l)-T(l-1)|<ε结束迭代,输出T(l)。根据阈值,像素点信息素大于T(l)为边缘,否则为非边缘。

灰度图片经过上述改进蚁群边缘检测后的图像如图5所示。

图5 边缘检测后的图像

3 ROI区域选取

ROI是指从被处理图像以方框、圆形、椭圆、不规则多边形等方式勾勒出需要处理的区域。假设车载摄像头以一定的角度安装在汽车的车顶中间,图片经过边缘检测后仍保留大量冗余信息,例如道路两侧的天空、建筑物、树木和山坡等。研究只对汽车前方的车道段感兴趣,图像其余部分可以删除掉。因此,有必要对检测到的图像执行ROI提取,可以有效减少不必要的计算并缩短后续图像处理步骤的消耗时间。

在车道线检测中,传统的ROI提取一般选取图像底部大约三分之二的区域,但这样的划分过于机械,无法很好地适用于一些复杂的道路情况。本文在边缘点提取的基础上,先选取边缘点最多那一行作为ROI区域的上界,从而不同的图像会得到不同的ROI区域,实现ROI区域的动态提取。ROI提取后的图像如图6所示。

图6 ROI提取后的图像

4 Hough变换

由于实际路况采集到的图像受到遮挡、光照不均匀等因素的影响,通常情况下通过改进蚁群边缘检测算法识别出的边缘点是不连续的,必须通过边缘连接将其转换为有意义的边缘。Hough变换是一个重要的检测间断点边界形状的方法,可成功识别图像中特定几何形状。Hough变换最早Paul Hough提出,用来提取图像中的直线,后来Richard Duda和Peter Hart推广到提取图像中任意形状,多为圆和椭圆。

Hough直线检测的基本原理是通过将图像从坐标空间变化到参数空间来实现直线和曲线的拟合。Hough直线检测策略是,假设一条直线在笛卡尔坐标系(即x-y坐标系)中可以表示为y=kx+b,在极坐标系中可以表示为

ρ=xcosθ+ysinθ

(5)

其中,对于直线过原点做垂线,ρ表示直线距原点的距离,θ是沿逆时针方向测量的垂直线和水平轴形成的角度。

在极坐标中,同一直线上的点具有相同的(ρ,θ),这条直线实际上可以用(ρ,θ)表示。以(ρ,θ)为轴建立Hough空间,那么每一条直线在Hough空间中映射成一个点。将边缘检测后的图像的每一行都转换为参数形式,并在Hough空间中使用(ρ,θ)表示。当扫描图像时,对于一条直线相同的(ρ,θ)值会出现多次。相同(ρ,θ)的出现次数视为累积票数,当完成图像扫描时,获得票数最多的(ρ,θ)值被识别为一条线。

5 车道线绘制

5.1 过滤离群值

将Hough变换检测到的(ρ,θ)值重建为实际直线形式y=kx+b,会出现多条线段相邻的情况。这里需要对检测到的直线段进行进一步的处理,目标是每条车道线只有一条直线进行拟合。首先是区分左右车道,对每条直线段求取斜率k,根据斜率大于0、小于0分别标记为左车道和右车道,分别放在左右列表中。对左右列表中的直线计算出斜率平均值,这里可以通过设置阈值threshold将偏离中心值过大的直线段剔除掉,避免某些极端值影响了最终效果。

5.2 最小二乘法拟合

将经过离群值过滤后左右列表中的所有坐标点取出来,基于这些点采用最小二乘法进行直线拟合,即找到一条直线y=bx+a,使得这些点距离该直线的平方偏差之和最小,这里使用公式:

(6)

(7)

其中,x和y分别是列表中点的x坐标和y坐标,b为拟合直线的斜率,a是拟合直线的截断。

提取拟合直线y=bx+a的最高点和最低点的坐标,连接两点绘制直线段并叠加在原始图像上即可完成车道线绘制。

6 仿真实验

6.1 测试环境

软件环境:Windows 10 64位操作系统,Python 3.7.0 64位,OpenCV 4.1.0。

硬件环境:Intel(R)Core(TM)i5-9500CPU@3.00 GHz处理器,8GB内存,1TB硬盘。

6.2 基于道路驾驶视频的车道检测

为了验证车道检测算法在实际路况环境下的识别效果,本文利用道路行驶视频进行了测试实验。实验中的视频分别是白天和夜晚环境下汽车在驾驶过程中拍摄的视频,拍摄角度是在其顶部中间向汽车正前方拍摄。实验结果表明,在天气阴暗和光照较强的道路背景下仍可以较为准确地检测出车道线。白天时车辆在驾驶过程中的车道线检测结果如图7所示,夜晚时车辆在驾驶过程中的车道线检测结果如图8所示。

图7 白天车道线检测结果

算法检测指标DR表示车道线检测算法的检测正确率,其公式为

(8)

其中,C为正确检测车道线的帧数,N为视频的总帧数。

不论是在夜晚阴暗情况还是日间光照较强情况下,本算法的识别准确率都能保持在95%以上。相较于传统的基于Canny边缘检测的车道线检测算法,本文中基于改进蚁群边缘检测的车道线检测算法准确率更高,说明本算法有较好的鲁棒性和抗干扰能力。

图8 夜晚车道线检测结果

7 结语

本文提出的车道先检测算法针对道路背景复杂、障碍物多等问题,通过寻找边缘点最多的一行作为感兴趣区域(ROI)的上界,动态地建立感兴趣区域(ROI)。在寻找边缘点时,对比传统的Canny算子,文章提出了一种基于细菌趋化性的蚁群优化边缘检测算法,在图像受到噪点干扰情况下,该算法仍能得到清晰和连续的边缘检测结果。总体而言,本算法在日间和夜间不同光照条件下均能得到较好效果。但是算法中使用Hough变换仅仅拟合了单直线车道线,如何提高弯道车道线检测率和多车道线检测率将是后续研究的重点。

猜你喜欢

像素点车道灰度
采用改进导重法的拓扑结构灰度单元过滤技术
北斗+手机实现车道级导航应用
避免跟车闯红灯的地面车道线
基于灰度拉伸的图像水位识别方法研究
浅谈MTC车道改造
基于5×5邻域像素点相关性的划痕修复算法
基于最大加权投影求解的彩色图像灰度化对比度保留算法
基于逐像素点深度卷积网络分割模型的上皮和间质组织分割
基于灰度线性建模的亚像素图像抖动量计算
低速ETC/MTC混合式收费车道的设计与实现