车道偏离预警中车道线实时视频图像识别仿真

2021-11-17 08:35
计算机仿真 2021年5期
关键词:算子灰度车道

王 敬

(福建师范大学闽南科技学院,福建 泉州 362332)

1 引言

据相关统计,有半数交通事故都与车道偏离存在关联,为解决此类问题给人们带来的困扰,需在驾车行驶前了解车道偏离情况。为此,如何有效识别车道线图像成为相关研究的重点课题[1]。

文献[2]中李超等人提出的根据道路特征获取图像,对图像进行灰度化处理,并对图像进行去噪处理。再根据自适应阈值边缘提取检测算法,对图像边缘进行划分,完成检测。但该算法处理时间较长并且鲁棒性较低。文献[3]中提出的基于改进简单图像统计(SIS)阈值算法,在图像预处理阶段进行二值化;采用直线段检测(LSD)算法检测平行线。利用车道线连续性和车道间距确定车道线感兴趣区,确定车道线位置。但该方法的识别率较低,在车流量大且交通路线繁琐的环境下识别结果不尽如人意。文献[4]中提出了一种能够根据实时视频流提取车道线的算法。采取的是对图像进行分块处理,从而缩短了数据处理时间。再对图像进行灰度处理、双边滤波滤除高频噪声,最后用最大类间差分(OTSU)方法得到二值图像。但这种方法不能实现精确的图像识别,达不到预想的效果。

现阶段多数识别方法计算繁琐,消耗时间长,不能满足生活的实际需求。对此提出一种新的识别方法,在直线模型基础上对图像加以改进,随后使用新sobel算子实行边缘检测[5]。并且根据自适应双阈值技术加强图像呈现效果,利用Hough变换方法,通过极角约束来确定车道线的具体位置。降低了在图像范围内被选中的设定点数,通过降低设定范围使车道线图像识别的时效性和准确性有所提升。

2 车道线图像预处理

为了能够得到车道线实时视频图像,需要在车上安装CCD,但有许多其它信息干扰和噪音妨碍。为了解决这些问题,需要在直线模型基础上加强原始图像呈现效果。过程中主要用到边缘检测和二值化,提高压缩图像所占的内存,计算效率也明显提升。

2.1 车道线图片逆透视转变

在进行视频图像采集的时候,由于摄像头的位置并不固定,拍摄的视频图像存在较大误差,导致后续识别过程中浪费大量时间。因此将其换为俯视图像,逆透视变换[6]如下式(1)所示

(1)

(2)

令a33=1,只需要知道未转变的4个点在坐标轴上的位置和转变后的4个点在坐标轴上的位置,将这8个坐标的x、y、X和Y代入式(2)即可求解出逆透视变换的矩阵。

在车道上应用四点标定的方法,解出变换矩阵,然后把原图像相对应的每个点带入式(1)中,计算完成后再按原位置放到新的图像中。如果有的点没有与新图像相对应,这种情况为“空洞”,解决这种问题可用临近插值法,如图1是改变前的图像,图2是改变后的图像。该方法弥补了拍摄的图像与实际图像有差异的缺点。

图1 主视图

图2 俯视图

将图中的每个点逐一改变,会消耗较多的时间。所以在实际操作当中,只需找到两个点,即每条车道线上的起点和终点,再将起点和终点连接上,最终得到逆透视后的车道线。不仅能节省时间,且得到的结果较为精确。

2.2 最近车道线边缘检测

如果想要用边缘检测的方法来对图像进行前期的处理,要先挑选适合的边缘检测算子。经典方法对图像预处理通常使用Sobel算子进行边缘检测,把X设为水平梯度算子,Y设为垂直方向梯度算子,得出的方式如下所示

(3)

(4)

利用式(3)和(4)对图像进行卷积,然后计算水平Gx和垂直Gy的梯度,对此可以算出车道距离边缘的大小Gm,公式如下:

(5)

根据式(4)得出的图像边缘大小,每个方向都具有同样的性质,所有的边缘都会在边缘图像中显示出来。为了提高识别的实时性,应尽可能的显示出距离最近的边缘,控制其余方向的边缘。针对车道图像,如果遇到车道线向左、右方向偏离的现象,则会采用重新改造过的Sobel算子来增加对偏离边缘的影响,重新改造Sobel算子,公式如下

(6)

(7)

应用重新改造后的Sobel算子,可以增强偏离边缘图像特征,而其它冗余边缘会被自动忽略,从而减少干扰向量,提升识别精准度。

2.3 图像二值化处理

基于边缘检测,还需采用二值化处理方法对图像进行相关比对。现阶段,多数方法都使用了自适应阈值选择计算的方法,通过图像灰度值来进行分割[7],为了避免不同强度的光照对识别的影响,运用自适应双阈值的方式来增强图像呈现效果。

在图像的中下部截取俩邻近的矩形,规格为10×10,这样可以确保显示出的数据是路面的平均灰度值。在求出这两个矩形所在位置的灰度值,分别记为V1和V2,V1和V2中相对小的值被称之为自适应阈值[8],公式如下

(8)

在式(6)中Torigin代表未被处理图像的阈值;Ttreat代表边缘增加后图像的阈值;Ctreat代表计算Ttreat的加权系数;Corigin代表计算Torigin的加权系数。图3(b)~(e)是对未被处理的图像(a)是通过Sobel、Robert、Canny与LOG方式改进图像清晰度,用自适应阈值的方式增强图片呈现效果;图(f)是对未处理图像用重新改造后的Sobel算子改进图像清晰度后,通过自适应双阈值法加强图片呈现效果。由此可以看出图(f)少了许多噪音和其它方面的干扰,车道线也变得更清晰,对比图(b)~(e)更有实时性。

图3 车道图像对比

3 基于改进Hough变换的车道线实时视频图像识别

车道线在图像坐标系中的定位,是由车内摄像头的位置和拍摄到的视频画面决定的,图像规格为640×480。如图4,车道线最后渐渐消失的点在图像的上半部,为坐标轴的1/3处。经过计算得出左车道线在坐标轴上的角度α为45°,右车道线在坐标系上的角度β为135°。

图4 车道线角度

车辆在崎岖的道路上行驶,车身抖动导致摄像机在拍摄图像时与实际路况有差异,坐标轴上的定位不准确。当车辆在上坡时,消失点会在图像的最顶端,角度为56.3°;当车辆在下坡时,消失点会在图像的中间位置,这时的角度为36.9°。得出结论:左侧车道线识别的角度在40~60°之间,右侧车道线识别的角度在130~150°之间,把摄像机安装在摩托车把手的1/3处,系统的横纵安装位置分别如图5和图6所示。

图5 横轴摄像机位置

图6 纵轴摄像机位置

图7中,由于上半部分的车道受到天气、路面等因素的干扰,对识别的准确率产生影响,所以在对车道进行识别时将选择图像的后半部分,具体分为6个步骤:

图7 坐标与角度值

1)确定图像的像素矩阵,横向为m,纵向为n,系统会自动把图片左上角的坐标定为(0,0),然后加强原图像呈现效果;

2)从图像横向中间位置开始向下扫描,当像素值为255时会出现一个小白点,此时开始计数。在扫描到m行之前,要把小白点的坐标保存到密封器中。

3)将在平面坐标系中识别的“点”替换到极坐标上,算出小白点在通过某一个位置上的密度,分析车道线的位置以及密封器中小白点的峰值坐标。若在40~60°之间,且白点的数量超出30,则在左侧画出一条车道线:若在130~150°之间,且白点的数量超出30,则在右侧画出一条车道线。

4)根据图6,经对车道线倾斜度的分析,左下方位置起始点为(a,b)、角度α1,右下方起始点为(c,d)、角度α2,消失点为(x,y)。

5)当没有识别出车道线时:

第一,α1、α2分别等于0时,识别不出相对应的左右车道线。当可以操控车辆行驶时,若只显示出一条车道线,则让车辆的中间位置和车道线有一定的距离;若没有检测出车道线,则停止车辆前行。

第二,当角度在40°到60°之间时,或者角度在130°到150°之间时,依据步骤3)识别出直线,确定点坐标为(a,b)和(c,d)以及角度α1、α2。

y=k1(x-a)+b

(9)

y=k2(x-c)+d

(10)

由式(9)和(10)可以得出

(11)

y=k1(x-a)+b

(12)

根据上式分析得出车道线弯曲的方向。

由于现实中的道路比较复杂,所以较难实现对所有车道线进行精准识别。普通摄像机会在一秒钟拍摄大概25张图片。但在车道偏离预警系统中,对实时性的要求较高,需要对每张视频图像进行处理。每两张图片之间的拍摄间隔时间只有0.04秒,即使车辆行驶的速度快,行驶时拍摄到的图片距离也非常短。所以两张图片上的车道线位置并不会有太大差别。

通过对大量图片的车道线位置进行识别,可知,车道线的角度和距离与上一张图片相比,分别相差3°和20个像素点。所以只需前一张车道线在图片中的位置,可以判断出下一张图片中车道线的大概位置,这样可以节省很多处理时间。在计算过程中,把方程式、偏移度和距离保留下来。当计算下一张图片时,会优先使用上一张车道线位置范围进行车道线识别,并根据前后两张图片车道线的交接点距离为15个像素点,分析出车道线是否为直线,由此提高图像识别的实时性及准确性。综合上述分析,完成对车道偏离预警中车道线实时视频图像识别研究。

4 仿真结果与实验分析

为检验识别方法的可行性,同时也为了以后的改进能够更加完善,在系统Matlab R2016a中采用工具箱编辑对图片进行处理,并用GUI检测计算方式的鲁棒性。除此之外,还会对路面进行实地考察和测量,对计算结果的准确性进行验证。

4.1 车道线视频图像识别效果对比分析

在车辆拍摄的实时视频中挑选出一段图像,分别运用此次提出方法、文献[3]提出的基于改进简单图像统计(SIS)阈值算法的车道线识别算法和文献[4]提出的基于改进简单图像统计(SIS)阈值算法的车道线识别算法进行对比检验。对比效果如图8所示,其中a为原图像,b为文献[3]方法,c为文献[4]方法,d为此次提出方法。

图8 不同方法下车道线识别效果对比

对比图中的车道线识别效果可看出,文献[3]方法识别的图像像素低、噪点多,与原图车道线对比差距大。文献[4]方法识别的图像比较清晰,噪点少,与原图车道线差距较小,但效果仍不理想。本文方法识别的图像清晰,基本无噪点,呈现的车道线基本与原图一致,效果十分理想。

为验证此次提出方法的实用性,测试其是否能增强图像呈现效果,对图像进行二值化处理。处理结果通过灰度直方图来呈现。所谓灰度直方图灰度直方图是将数字图像中所有像素,按照灰度值的大小,统计其出现的频率,呈现出图像中某种灰度出现的频率。未处理图像的灰度直方图如图9所示,通过提出方法处理的图像灰度直方图如图10所示。

图9 处理前

图10 处理后

分析上图数据可知,处理前图像直方图窄而集中于灰度级的中部,说明图像对比度较低,图片质量不佳。而处理后的图像直方图成分覆盖的灰度级较宽,且像素的分布比较均匀,说明图像对比度较高,图片质量好。综上所述,提出的方法能够有效的增强图像呈现效果。

4.2 时效性分析

当车辆行驶的速度较快时,如果时效性没有达到要求,基于车道线实时视频图像识别的车道偏离预警系统很可能会延后提示,容易发生事故。所以时效性对于识别方法是至关重要的,如果对每一张图片都进行识别,平均每张图片的识别时间只有40ms。那么对90秒视频进行识别实验,并逐个记下时间来验证时效性,最终结果如表1所示,最长的时间段为35ms,没有超出预测时间,而达到了时效性的条件。

表1 各阶段需要时间

4.3 精度分析

在计算车身的偏移和距离上,所要求的准确率非常高。如果准确率达不到要求,便会影响驾驶员做出正确的判断。对此进行了多次实际操作实验,分析实验结果,角度的偏移主要是由于道路的曲折程度引起,但误差不超过1度。距离的长短主要是路面高低起伏导致的,对识别的影响不超过0.09米,说明达到了精确度要求。

5 结论

图像进行预处理能够让车道线变得更加清晰,使用改造后的Sobel算子检测距离最近的车道线。通过自适应阈值的方式增强图像的呈现效果,这样能有效提高时间效率。利用改进后的Hough变换识别视频图像车道线,让其精确坐落在有固定长度车道标识线的中心点,使所提方法不论在何种条件下,都能够精准识别出视频图像车道线,而且时间短,时效性高,误差小。

猜你喜欢
算子灰度车道
智慧收费机器人在高速公路车道上的应用
航空滤光片阵列多光谱图像条带灰度调整算法
基于OpenCV的直道车道线识别技术研究
北斗+手机实现车道级导航应用
天津港智慧工作平台灰度发布系统和流程设计
Domestication or Foreignization:A Cultural Choice
Arduino小车巡线程序的灰度阈值优化方案
QK空间上的叠加算子
逼近论中的收敛性估计
一种基于灰度分割的调焦评价函数