APP下载

基于车道线和多特征的前方车辆检测研究

2018-07-12吴迪

电脑知识与技术 2018年12期

吴迪

摘要:为了解决在单目视觉车辆系统中存在的虚假干扰对象和可靠性低的问题,本文提出了将车道线和多特征结合的前方车辆检测的研究方法。本文中将采用基于hough变换的道路区域分割算法,通过进一步筛选,排除大部分干扰。接着提出将车底阴影暗影和多特征结合的检测算法。实验结果表明,在不同交通情况情况下,车辆检测目标的正确率大幅提高,能够有效检测前方车辆。

關键词:车辆检测;hough变换;阴影筛选

中图分类号:TP391 文献标识码:A 文章编号:1009-3044(2018)12-0206-03

Abstract:In order to solve the problem of false interference objects and low reliability in monocular vision vehicle systems,This paper presents a method for the front vehicle detection : combine lane line and multi-feature.In this paper, I will use road segmentation algorithm based on hough transform.Use further screening to eliminate most of the interference.Then I will propose a detection algorithm that combines shadow shadow and multi-feature.Experimental results show that the correct rate of vehicle detection target is greatly improved in the case of different traffic conditions,and it can effectively detect the front of the vehicle.

Key words:vehicle detection;hough transform;shadow screening

在智能汽车技术中,高级驾驶辅助系统是环境感知的重要组成部分。而作为高级驾驶辅助系统中的研究重点,前车检测是本文要主要研究的部分[1]。目前,对前方车辆的检测方法常用的有以下三种:模型[2]、光流[3]和特征[4]。基于模型的检测由于受到车型的多样性和车辆行驶过程中不同姿态的影响,很难建立统一的模型。基于光流的检测容易在其他车辆和本车相对速度过小的情景下发生误检。因此本文采取基于特征的检测方法。基于车辆特征的检测一般利用车辆边界或者车辆形状特征。但是直接利用上述一种特征检测,容易受到天气、树木或者路边障碍物的影响,产生漏检或误检。因此,本文将采取结合车辆多特征的检测方式。本文通过先检测车道线,确定车辆所在的大致范围,对图形进行分割,去除背景干扰。再利用均值方差检测出前方车辆的阴影,对车辆进行粗定位,然后结合车辆左右边缘特征实现对车辆的进一步定位,最后利用车辆的车轮灰度特征精确定位车辆所在位置。

1 车道线检测

1.1 图像预处理

一般情况下,我们所获取的图像是彩色图像,不对图像进行处理而直接进行检测,会加大算法的复杂度和工作量,且由于图像在成像的过程中会产生噪声干扰,降低图像质量,影响车辆检测。因此,在车辆检测前,要先处理原图像。

(1)图像灰度化:图像灰度化通常有最大值法、平均法和加权平均法[5],本文采取加权平均法,根据人眼对红、绿、蓝三色的不同敏感,将权重分别设为0.3,0.59,0.11,如公式(1)所示:

(2)图像去噪:本文采取中值滤波的方法,对图像进行去噪处理,数学表达式为公式(2)所示:

1.2 感兴趣区域提取

感兴趣区域是根据实验所需来粗略估测要跟踪目标的区域,从而能够减小搜索范围,减小算法计算量。由于拍摄的图像上方大多数为天空、建筑或者其他多余背景,因此本文中设置图像2/3及以下区域为感兴趣区域。

1.3 图像边缘检测

图像的边缘信息是图像的分析和人类视觉区分不同物体或者区分不同区域的重要特征属性。通过对图像的边缘检测,图像中的非边缘处的像素点可被排除,这样一来,降低了Hough变换的运算量,增加了直线检测的准确性。边缘检测常用的算子有Roberts算子、Sobel算子和Canny算子[6]。Roberts算子原理上是利用对角方向的像素差来检测边缘,数学表达式为公式(3)所示:

式中,需要为公式选择合适的阈值T,当结果大于阈值时,那么此时的点(x,y)即为所求点。Sobel算子原理是通过对图像中每个像素点周围的灰度值进行加权运算,然后求导得到的结果。数学表达式为(4)所示:

Canny算子通过高斯滤波做平滑运算,再求出像素点的梯度值,通过比较梯度值和阈值的大小来确定边缘点。梯度值公式如公式(5)所示:

通过直方图来确定高阈值T1和低阈值T2的大小,如果梯度值大于T1,则判定为边缘点,如果梯度值低于T2,则判定不是边缘点,如果梯度值介于T1和T2之间的话,则通过考察这个点3*3领域内的其他8个点的梯度值,如果这8个梯度值中有大于T1的话,则判定此点为边缘点,如果没有,则不是。

图1是三种算子的边缘检测结果。经过分析,三种算子都能检测出图像边缘,然而Canny算子检测出的边缘线清晰且断点较少,因此本文采取Canny算子来检测边缘。

1.4 Hough直线检测和区域分割

Hough变换的基本思想是将图像映射到参数空间,这样一来,可以将图像空间中对线的检测转换为在参数空间中对点的检测[7]。将检测到的白色像素点转换到极坐标空间中,坐标方程:[ρ=xcosθ+ysinθ],在极坐标空间中,对[ρ,θ]进行投票叠加,即[Hρ,θ=Hρ,θ+1],找到[Hρ,θ]的局部最大值,并对其进行标注。图2是图像空间和参数空间的映射关系。

本文对图像中的车道线进行检测,并用颜色鲜艳的直线标出车道线所在位置,由于车辆行驶的范围在两条车道线交点以下,因此本文将在检测出车道线以后,将图像区分为道路区域和非道路区域两个部分,通过区域分割,可以减少算法运算量,提高运算速度。

本文将车道线交点以下判定为道路区域,保留此部分,将图像其余部分判定为非道路区域,对此部分的区域赋白进行剔除。

车道线检测的结果和区域分割如图3所示。

2 前方车辆检测

2.1 基于车辆阴影的粗定位

2.1.1阴影的检测

在晴天时,车底阴影将暗于路面其他区域,本文利用车底阴影亮度值低的条件,检测阴影,将前车大致范围确定下来,然后再利用车辆具有良好的对称左右边缘的条件,进一步检测出前方车辆。

本文采用二值化分割将车底阴影和路面其他区域分割出来,二值化分割是将选定的阈值(threshold)与图像中像素点相比较,高于阈值的部分赋白,低于阈值的部分赋黑[8]。定义公式如公式(6)所示:

由公式(6)可看出,二值化分割主要取决于阈值(threshold)的大小,因此阈值的选取会影响阴影检测的正确率。阈值过大,图像中会有很多虚假阴影;阈值过小,车底阴影会被分割出去。因此,本文中采取自适应的阈值分割。根据实验要求,本文将图像分成目标和非目标两个部分。目标和非目标之间方差越大,说明图像中的这两个部分相差越大[7]。因此,使目标和非目标之间方差相差最大的分割意味着能使出错概率控制到最小。对于图像I(i,j),目标和非目标的分割阈值记作t,将目标的像素点数占图像的比例记为x0,平均灰度记为y0;非目标像素点数占图像的比例为x1,平均灰度为y1。图像的总平均灰度记为y,类间方差记为g。假设图像的大小为M×N,图像中像素的灰度值小于阈值t的像素个数记作T1,像素灰度大于阈值T的像素个数记作T2[9],则有:

采用遍历的方法得到方差最大的阈值t,即为所求。

2.1.2 阴影长度计算

由于本文是利用车底阴影对车辆进行粗定位,因此车底阴影长度将直接决定车辆定位的准确性。在理想情况下,车底阴影是一条水平的直线,但是由于光照、拍摄角度和路面不平导致的误差,阴影边缘线一般情况下将存在像素点的误差[10]。因此,为了获取正确的阴影长度,本文将对车底阴影进行修正。假设最右且最上点为起始点和终点,从右到左,从上到下依次检测边缘线,如果檢测到白点,则重新假设起始点,否则继续检测。如果检测结果边缘线未断,则假设这条边缘线为车底阴影,边缘线的长度即阴影的长度。因为光照的原因,车底阴影会存在左右的偏移,所以本文将在检测到的长度基础上,在边缘线左右各加三个像素的宽度,形成粗定位的一条边长,然后根据这条边长,向上截取一个正方形的区域,形成车辆的粗定位。

2.1.3 车辆存在判定

在现实道路中,道路存在路面损坏,污渍或者道路两旁树木建筑形成的阴影,这些阴影中有部分阴影灰度与车底阴影相近,因此使用上节检测方法容易将干扰阴影判定为车底阴影,从而影响算法的准确度和运算效率,因此本节将对检测到的阴影进行判定,保留车底阴影,去除干扰阴影。

根据摄像机的透视投影原则,前方车辆与本车的距离的远近影响车底阴影在图像中大小。距离越远,阴影越窄。本节将根据阴影宽度公式来判定车底阴影,公式如公式(7)所示:

其中,X代表阴影在图像中的宽度,Y代表阴影在图像中的纵坐标,L代表阴影在实际道路中的宽度,H代表摄像机高度,本文中摄像机高度固定,为1.2米,[Sx]为图像中水平像素点,[Sy]为图像中竖直像素点。

中国高速公路车道标准宽度为3米,因此实际道路中的阴影宽度范围在1.5米到6米之间,因此公式(7)可以改写为公式(8)所示:

符合公式(8)的阴影即可判定为车底阴影,否则判定为干扰阴影。

2.2 基于左右边缘的进一步定位

车底阴影中可能包含其他干扰阴影,所以上节对车辆的定位仅是粗定位,缺乏准确性,因此为了准确检测出图像中车辆所在的位置,文章将针对车辆的左右边缘特征和车轮特征,对车辆进行进一步精确定位。

因为车辆左右边缘始终垂直于路面水平方向,所以本文利用车辆良好的垂直性,找到车辆的左右边界,对车辆有进一步的定位。

(1)对粗定位中的车辆进行Canny边缘检测。

(2)对车辆边缘进行竖直方向的求和,求和公式如公式(9)所示:[g(x)=y=1mf(x-1,y)+y=1mf(x,y)+y=1mf(x+1,y)] (9)

其中,g(x)代表x处的竖直方向求和,m代表竖直方向像素点总数。

(3)计算g(x)的极大值点,将g(x)中最大两个点所在的位置作为边缘处。

(4)以两个边缘处的长度作为底边,截取一个正方形的定位,形成进一步的精确定位。

2.3 基于车轮灰度特征的精确定位

由于车辆的左右车轮具有很好的对称性,且其灰度低于路面灰度,并且不受光照等影响,因此本文在先验统计的基础上,将检验车辆车轮灰度,对车辆区域进一步定位,如图4。

(1)比较[W1]和[W2]的平均灰度值大小,如果两者相差过大,则判定非目标,对其进行剔除;如果两者相差不大,则对其进行保留,进行下一步验证。

(2)将[W1]和[W2]的值分别与[s1]、[s2]和[s3]进行比较,如果[W1]和[W2]的值至少小于其中两个,则判定该位置为车辆所在位置,否则判定为伪目标,对其进行剔除[8]。

至此,本文在阴影粗定位的基础上,对车辆左右边缘和车轮灰度进行分析,进一步确定了车辆所在位置,提高了检测的准确性。

3 前车检测试验

为了验证本文算法的准确性,本文在VS2013和开源计算机视觉库OPENCV上运行此算法,并分别在晴天和阴天情况下进行检测,本文将对近距离的车辆和远距离的车辆分别进行检测。检测结果如表1所示。图(a)是阴天情况下的近距检测,距离在20米到30米之间,从图(a)中可以看出,成功检测出了两辆车。图(b)是阴天情况下的远距检测,距离在80米到120米之间,虽然比较模糊,但是利用本文的算法,还是成功的检测了出来。

因此可以得出本文算法能够检测出阴天下距离在20米到120米之间的车辆。图(c)和图(d)是阳光较充足情况下的近距和远距检测,图(c)可以看出准确的检测出了前方4辆车,距离在20到60米之间。图(d)中远距的两辆距离在100米之间的车辆也成功的检测了出来。

由此可以得出,本文算法能够有效地检测出不同天气下的近距和远距车辆,具有一定的准确性。

经过大量数据表明,本文算法可以有效地检测出前方车辆,正确率能够达到95%,其中,晴天情况下正确率高于阴天情况下的检测。同一天气下,近距检测正确率高于远距检测正确率。错检和漏检的主要原因是阴天情况下,车底阴影不明显导致错检以及提取感兴趣区域时,区域分割过多,导致远距车辆漏检。

4 结束语

本文提出了一種基于车道线和多特征的前车检测。利用Hough变换检测车道线,分割出前车行驶区域,减小算法运算量。通过自适应的阈值提取出车底阴影,再利用均值和方差来约束,排除阴影中其他路面干扰因素。最后对车辆进行边缘对称性和车轮灰度的验证,进一步确定车辆所在位置。此方法简单迅速,能够有效检测前方车辆,具有较高的准确性。

参考文献:

[1] 林广宇,魏朗.嵌入式汽车纵向碰撞预警系统研究[J].现代电子术,2010(11):175-178.

[2] 麦新晨,基于多传感器融合的车辆检测与跟踪[D].上海,上海交通大学,2011.

[3] 胡铟,基于单目视觉的运动目标检测与跟踪算法[D],南京,南京理工大学,2008.

[4] 张建明,张玲增,刘志强.一种结合多特征的前方车辆检测与跟踪方法[J].计算机工程与应用,2011(5):220-223.

[5] 张全法,杨海彬,任朝栋等.彩色图像的快速高保真灰度化方法研究[J].郑州大学学报:理学版,2011(3):66-69.

[6] 贺桂娇.几种经典的图像边缘检测算子分析比较[J].计算机光盘软件与应用,2014(9):182-183.

[7] 刘春阁.基于Hough变换的直线提取与匹配[D].辽宁:辽宁工程技术大学,2009.

[8] 毛世榕.基于机器视觉的前方车辆检测技术的研究[D].广西:广西大学,2011.

[9] 吴晓阳.基于OpenCV的运动目标检测与跟踪[D].浙江:浙江大学.2008.

[10] 谭琦.融合多特征的前方车辆检测技术研究及DSP实现[D].天津:天津工业大学,2012.