您当前的位置:首页 >  讲话致辞 >  晚会主持词 > 内容

基于视觉的车道线识别算法研究毕业论文

无忧文档网    时间: 2020-07-26 03:10:26     阅读:

毕业设计 基于视觉的车道线识别算法研究 Research on Algorithms of Vision-based Lane Recognition 2009 届 电气与电子工程 分院 专 业 自动化 学 号 学生姓名 指导教师 日期暂不添 完成日期 2009年 X 月 X 日 毕业设计成绩单 学生姓名 学号 班级 专业 自动化 毕业设计题目 基于视觉的车道线识别算法研究 指导教师姓名 指导教师职称 讲师 评 定 成 绩 指导教师 得分 评阅人 得分 答辩小组组长 得分 成绩:
院长签字:
年 月 日 学生姓名 刘元元 学号 20051773 班级 电0502-2班 专业 自动化 毕业设计题目 基于视觉的车道线识别算法研究 指导教师姓名 石彦辉 指导教师职称 讲师 评 定 成 绩 指导教师 得分 评阅人 得分 答辩小组组长 得分 成绩:
院长签字:
年 月 日 毕业设计任务书 题 目 基于视觉的车道线识别算法研究 学生姓名 学号 班级 专业 自动化 承担指导任务单位 电气与电子工程分院 导师 姓名 导师 职称 讲师 一、主要内容 利用MATLAB对车道线识别算法进行仿真研究,并从仿真的结果中,提出具有一定实时性和鲁棒性的识别算法。

二、基本要求 1、研究车道线识别中的几种算法;

2、软件编程,找出最优的算法;

3、算法具有一定的实时性、鲁棒性。

三、主要研究方法 1、车道图像预处理算法,如灰度化,滤波。

2、正确获取车道线像素的区域生长法。

3、基于模型假设的车道线提取算法。

四、应收集的资料及参考文献 1、MATLAB图形图像处理、图像分析,数字图像处理等书籍. 2、道路识别算法相关的网上资料。

五、 进度计划 1、第1周—第3周 收集资料,完成开题报告;

2、第4周—第8周 初步确定算法;

3、第9周—第13周 软件编程,MATLAB调试仿真,完成论文;

4、第14周—第15周 整理论文,准备答辩。

教研室主任签字 时 间 2009年X3月X2日 日期毕业设计开题报告 题 目 基于视觉的车道线识别算法研究 学生姓名 学号 班级 专业 自动化 本课题的研究背景、国内外研究现状 随着城市化的发展和汽车的普及,,交通环境日趋恶劣,,交通拥挤加剧,,交通事故频发,交通问题已经成为全球范围内人们普遍关注的社会问题。。基于21世纪信息和计算机技术的高速发展,,对待道路交通问题上,人,人们越来越倾向于依靠高科技术寻求解决之路,世界各国都竞相开展智能车路系统和智能交通系统。随之,,智能车辆导航的概念应运而生。在车辆视觉导航系统中最为关键的技术就是计算机视觉,计算机视觉的主要任务是完成道路的识别和跟踪。国内外许多学者对视觉导航进行了研究,有试图用双目或多目视觉完成导航任务,但面临的最大难点是不能较好的解决多目视觉系统的视目匹配问题且设备的成本较高;
也有致力于单视目视觉技术的研究,但其方法缺少实时性;
有尝试用三维重建的方法识别车道线,但由于其算法复杂度高难以满足实时性的要求。提高算法实时性和鲁棒性是目前急需解决的问题。

主要工作和所采用的方法、手段 根据对车道线识别算法的要求,研究几种算法的实时性和鲁棒性,并且用软件编程,仿真算法在道路图像中的检测效果,在众多算法的研究中,提出具有一定实时性和鲁棒性的识别算法。并用语言实现该算法,得到仿真结果。

在算法选定中,通过对比实验仿真的结果,可以看出用彩色通道提取法灰度化道路图像更能增强车道标记线的白色部分,融合沥青路面区域信息和车道线边缘信息获取车道线像素点,具有克服虚假边界的优点。最后,通过简化车道线模型,提出直线型车道线模型假设,并用hough变换及其改进算法和中值截距法提取车道线,并通过实验得到仿真结果。分别通过MATLAB仿真得到实验结果。

预期达到的结果 通过对算法的研究,预期提出的最优算法在结构化道路的情况下能够检测出车道线,同时具有一定的实时性和鲁棒性。

指导教师签字 时 间 2009 年33月1010日 摘 要 目前,许多国家有计划地开展了视觉导航系统的研究,其中道路检测是视觉导航系统的重要组成部分,检测的精度直接关系到智能车辆行驶的安全性,因此备倍受关注。本文设计研究基于视觉的道路识别算法。首先分析了已有的图像预处理算法,并根据本设计中图像处理的具体要求,选取了合适的图像预处理算法。提出对对获得的彩色图像,采用彩色通道提取法使其灰度化更能增强车道标记线的白色部分;
根据车道线倾斜的特征,自定义差分模板处理灰度化后的图像,得到车道线的边缘;
为了提高道路识别的实时性和抗干扰能力,论文提出了区域生长法,选取合适的种子点生长出路面区域。然后,根据边缘和区域信息所表示的道路边界线,应该在空间上占据相同或相近的位置,论文提出用融合边缘和路面区域两种信息获取车道线像素点。在获取车道线像素点后,,论文采用直线道路模型假设作为约束条件,分别用hough变换及其改进算法和中值截距算法提取车道线,并用MATLAB对算法进行了仿真,,得出了改进后的hough变换在车道线检测上具有较好的实时性和鲁棒性的结论。

关键词:
图像预处理 彩色通道提取 区域生长 改进的hough变换 Abstract Recent the research on Visual navigation systems have been developed in many countries. And a lane-detection system is an important component of many visual navigation systems. There has been active research on the lane-detection, because it closely relates to the safety of intelligent vehicles. In this thesis, the road positioning algorithms based on image are researched. At first, the current algorithms of image preprocessing are analyzed. By the specific requirements of the image processing in this thesis, the appropriate algorithm is chosen. For example, in order to get a greylevel image from a colour one, we introduced a method called getting from multicolor channel. As the result, the white line on the road image can be intensified stronger than the other ways. Then given the features of road line, a difference cyclostyle is defined to extract the edge. At the same, in order to improve the real-time performance of roads and anti-jamming capability, regional growth ways is introduced, through it we can chose a proper seed to get a regional road image. Then edge extraction and integration of regional growth way is used to identify the road edge according to marginal and regional information should occupy space in the same or similar position. After getting the road line points, straight road model is considered as the constraints and three algorithms, such as hough transform, improved hough transform algorithm and median of the intercepts algorithm, are established for linear feature extraction. Then there is a comparsion between their advantages and disadvantages by using MATLAB. Finally, a conclusion is drawed that the improved hough transform algorithm can improve the real-time performance of roads better and its robust is also prior to them. Key words: Iimage preprocessing Ggetting from multicolor channel Rregional growth way Iimproved hough transform 目 录 第1章 绪论 1 1.1 课题研究的背景和意义 1 1.2 国内外研究现状 2 1.3 论文的研究内容 2 第2章 单目视觉系统 4 2.1 引言 4 2.2 单目视觉导航系统成像模型 4 2.3 本章小结 6 第3章 道路图像预处理 7 3.1 引言 7 3.2 道路图像灰度化 7 3.2.1 常用的灰度化方法 7 3.2.2 彩色通道提取灰度化 9 3.3 图像灰度变换 10 3.3.1 图像灰度线性变换 11 3.3.2 图像灰度非线性变换 11 3.3.3 基于直方图的灰度变换 12 3.4 图像滤波 14 3.4.1 线性平滑滤波 14 3.4.2 非线性平滑滤波 15 3.5 图像边缘增强 17 3.5.1 图像的梯度和边缘检测算子 17 3.5.2 自定义差分算子 20 3.5.3 加入噪声图像检测实验 21 3.6 本章小结 22 第4章 道路边缘的识别 24 4.1 引言 24 4.2 道路检测方法简介 24 4.3 边缘与区域相结合的道路检测方法 25 4.3.1 区域生长法的基本概念 25 4.3.2 融合两种信息提取的仿真实验 28 4.4 基于模型的道路识别 29 4.4.1 道路模型假设 29 4.4.2 道路图像特征直线提取 30 4.4.2.1 传统霍夫变换提取直线 30 4.4.2.2 随机霍夫变换提取直线 32 4.4.2.3 中值截距法提取车道线 34 4.5 算法比较 36 4.6 随机霍夫变换提取直线的检验 37 4.7 本章小结 43 第5章 结论和展望 44 参考文献 45 致谢 46 附录 47 第1章 绪论 1.1 课题研究的背景和意义 随着城市化的发展和汽车的普及,,交通环境日趋恶劣,,交通拥挤加剧,交通事故频发,交通问题已经成为全球范围内人们普遍关注的社会问题。近年来,为解决交通问题世界各国都竞相开展智能车路系统和智能交通系统等领域的研究。智能系统的发展为改善交通环境状况,提高车辆行驶的安全性与可靠性,减少驾驶员人为因素造成的交通事故等开辟了广阔的前景。随之,智能车辆导航(Intelligent Vehicle Guidance)的概念应运而生。。基于视觉的智能车辆导航可追溯到19世纪70年代初期的移动机器人研究,但由于当时的硬件水平还比较低,而图像处理的计算量非常大,研究者的精力也就过多地耗费在硬件平台的设计、实现和测试上。但随着计算机硬件水平的飞速发展,该问题得到了很好的解决。在智能车辆导航诸多复杂且具有挑战性的任务中,最受重视之一的是基于视觉的道路检测问题。

从理论上分析,在道路检测中,要获得道路环境的三维信息,需要采用双目或多目立体视觉系统[1]。但是,双目或多目立体视觉系统在实际应用中所需计算量很大,而且双目或多目立体视觉系统在视觉匹配问题上很难解决,,而智能车辆在较高速度下的图像处理速度比一般情况下要高,目前的微处理器计算能力还不能完全满足其实时性的要求,, 所以目前双目或多目立体视觉系统还不适合在较高速度下智能车辆视觉导航中应用。当前,智能车辆视觉系统主要是获取道路平面的二维路径信息,而道路中的其它车辆和障碍物信息可以通过视觉系统、、 激光雷达测距仪及避障传感器系统进行信息融合得到。,这就极大的提高了信息获取的可靠性,所以单目视觉系统仍然能够满足较高速度情况下视觉导航的要求。实际上,世界范围内大多数智能车辆视觉导航系统都采用单目视觉来获取道路环境信息。在单目或多目视觉导航系统中最为关键的技术就是计算机视觉。,计算机视觉的主要任务是完成道路的识别和跟踪,。对于信息采集处理的实时性、行驶过程控制的鲁棒性以及自主运行决策的可行性都有很高的要求。这些要求就使所设计的系统必须在理论算法上给予强大的支持,针对计算机视觉部分就是要有实时高效的图像处理算法。

对基于视觉的车道线识别研究意义在于能实现智能车辆乃至机器人的自主导航,提高驾驶的安全性,改善交通环境和驾驶的舒适性。识别技术用于车辆的路径偏离预警系统,,大部分由于车辆偏离车道造成的事故可以避免。用于驾驶员预警系统同样具有重要意义。其次,识别技术可以用来提高智能巡航控制中跟踪引导车辆的精度。最后,识别技术可广泛应用于公路、码头、仓库等的自动运输系统中,实现车辆运输的自动化。

1.2 国内外研究现状 目前为止,,国内外智能车辆无一例外地使用机器视觉作为其重要的感知方式,,基于计算机视觉系统的导航技术具有价格低廉、、结构简单、、方便与其他传感器进行数据融合等优点,,,所以利用机器视觉识别公路上的车道线实现自主导航是现阶段智能车辆常用的方法。该方法己经被实际系统证明是最有效的外部环境感知方式,,道路的识别是视觉导航的关键技术,,因其较大的复杂性和挑战性而备受关注。

一部分学者致力于用多目视觉技术来解决这个问题。德国学者利用立体视觉方法来提高系统的鲁棒性,可是,,多目视觉中存在一个无法回避的难题是图像匹配准的实时性问题。日本通过当前图像与参考图像之间像素的迅速匹配,,解决了巨大运算量的实时处理的困难。与此同时,,许多学者试图用单目技术来实现道路检测,,而且目前也已己经取得了丰富的成果。其中法国学者提出一种视觉方法,仅利用一台摄像机得到路面的信息,,就能够正确地跟踪有路标和无路标情况下的道路。,该方法从图像中提取出道路的边缘特征,,定位机器所在车道的位置,,再采用车道的统计模型进行精确匹配,,结果较为准确。美国也采用单目摄像机,,通过图像序列测取道路环境的信息。

目前基于视觉导航的智能车辆[2]中比较有成效的是:美国Carnegie Mellon University 研制的Navlab系列智能车,可识别和跟踪S形曲线和道路行车线,平均速度达到88.5km/h;
日本丰田公司1993年研制的智能车,安装了2/3 英寸CCD 镜头,普通高速公路上的实验车速为60km/h;
德国的UBM大学研制了装有4个彩色CCD构成双目视觉系统跟踪车道白线、避障和自动超车;
法国帕斯卡大学与雪铁龙技术中心合作研究的Peugeot智能车,能判别引导线是否漏检或丢失,车速达130km/h;
清华大学研制的THMR智能车辆系统集成了二维彩色摄像机、GPS、超声等传感器,系统可完成白线跟踪、路标识别、道路识别等任务;
吉林大学智能车辆课题组研制的视觉导航的智能车辆实现了对路面铺设的条带状路标的视觉识别以及车辆自主导航的功能。

1.3 论文的研究内容 当智能车辆在公路高速行驶,视觉系统作为最重要的感知手段之一时,图像在识别外界信息中扮演着重要角色,如何通过图像提取车道线,目前有许多算法,例如像素扫描、模板匹配、霍夫变换和边缘跟踪等常用的车道线边缘像素提取方法,其中像素扫描是普遍采用的一种提取方法,具有灵活、高效、抗干扰能力强的特点。

在研究不同的算法在道路图像的应用过程中,图像的预处理至关重要。首先对一些图像的预处理算法,如图像灰度化、图像滤波、图像边缘增强等,用MATLAB进行仿真,比较它们的处理结果。因为不同的预处理方法影响检测的实时性和正确性,其中为了更多的利用彩色图像提供的车道标记线和沥青路面色彩的信息,本设计用彩色通道提取法得到灰度化图像。由于实际情况复杂多变,如遇到雨、雪天气,因此加入椒盐噪声模拟实际情况,并用各种常用的滤波模板处理图像。,从处理后图像再现清晰度的效果中,选出最优的滤波方法。一般获得的道路图像中包含的信息都有车道线和路面两种信息,而由于车道线作为图像中的一种边缘,根据边缘的属性,可以用差分算子将边缘检测出来。通过对常见的差分检测算子和自定义的差分算子比较,可以看出后者更能增强车道线标记部分。在图像边缘增强后,不仅车道线得到了增强,许多树木、行人、车辆等也得到了增强,由此增加了许多虚假的边界。,为获得更准确的车道线边界,本设计用融合边缘和区域信息的方法定位车道线,并且与自适应二值化图像比较,可以看得出前者克服虚假边界的能力更强。最后,建立并提取车道线模型是最为关键的部分,本设计假设在结构化道路上,智能车辆仅采集的是前方不远处的道路图像,提出直线型车道线模型,而且该模型计算量小,在一定程度上能适应车辆在高速行驶过程中对实时性的要求。基于直线型车道线的假设,在图像中提取特征直线时,用hough变换及其改进的算法和中值截距法进行提取。通过比较,改进的hough变换——随机hough变换实时性最好,并且对其它图像进行检测,一定程度上随机hough变换的鲁棒性也符合要求。

第2章 单目视觉系统 2.1 引言 为了准确识别道路环境,,视觉导航系统理应获得车辆前方道路的三维信息,,包括车辆与道路的位置关系和道路中障碍物信息。要正确的理解三维世界环境,,理论上应该采用双目或者多目视觉系统,,但从立体视觉的角度来解决环境重建问题,,因为从现有的研究结果来看,,直接通过对图像进行三维恢复获取环境信息有以下几个方面的困难:首先,,计算量巨大。其次,,匹配点寻找困难。另外,,遮挡问题。例如,左右视野的部分场景不匹配、、左右视野环境光的不同都使得户外环境下的基于像素的视野景物深度恢复困难重重,,如今的立体视觉研究者多数简化了这些不利因素的影响。。即使这样,双目或者多目视觉系统需要的计算量仍是比较大的,,目前计算机的计算能力还不足以满足车辆导航系统的实时性要求,,因此双目或者多目视觉系统一般用于复杂、未知环境下低速行驶的智能车辆,并且双目或者多目视觉系统也会提高系统成本。对于道路检测来说,,需要获得道路方向和车辆与道路的位置关系,,也没有必要一定要完全理解整个三维世界环境。目前基于视觉导航的智能车辆多采用单目视觉系统完成道路检测及跟踪,,而采用多目视觉系统完成道路上的障碍物检测。。当采用单目视觉系统检测道路时,,由于从三维的世界环境转换到图像的二维信息,,在这个转换过程中,,损失了三维环境中的深度信息,,而且这个过程是不可逆的。。通常为了从单目视觉系统中获得道路的三维信息,,对此提出了一些合理的假设,,如道路平坦假设、、道路边缘连续性假设、、道路模型假设等。从国内外实验情况来看,,采用了一些合理假设后,,单目视觉系统进行道路检测是可行的。

2.2 单目视觉导航系统成像模型 为了得到图像中的像素和实际道路区域点的对应关系,,必须知道二维图像信息和三维世界信息的关系模型。由于单目视觉系统损失了三维世界中的深度信息,,这个过程是不可逆的,,在实际应用中,,根据需要作了一些假设和已知一定的信息,,从而从二维图像中估计出三维的道路信息。。具体的做法如下:假设车辆前方的道路是平坦的,设定摄像机的安装位置固定(安装的高度、俯视角、偏离角),,摄像机的固有参数为常数(摄像机焦距、孔径张角)。由于在道路检测的过程中,,只需要得到道路延伸方向、车辆的偏移距离,,并不需要将道路的三维信息完全恢复,,以上的假设是可以满足实际需要的。。在摄像机成像几何模型中最常用最简单的是线性模型——针孔模型[3]。。下面就摄像机成像模型进行简介绍。

(2-1) 摄像机成像的实质是将三维道路场景信息变换成二维图像信息,,这个变换可以用一个从三维空间(3D)到二维空间(2D)的映射如式(2-1):
来表示。。上述的这种映射关系可以用透视投影针孔成像模型[15]来近似解释。。透视投影成像模型的特点是所有来自场景的光线均通过一个投影中心,它对应于透视的中心。图2-1(a)中经过投影中心且垂直于图像平面的直线为摄像机光轴, 为世界坐标系,为图像平面坐标系,f为摄像机焦距。。由几何关系可知,世界坐标系中的点经投影中心点在图像平面坐标系中的投影点为,可以看出其成像是倒立的。为了避免这种倒立图像,现在假定图像平面位于 Z 轴正半轴且与投影中心 的垂直距离为焦距 f 处,此时点经投影中心点在图像平面坐标系中的投影点为,如图2-1(b)所示,可以看出位于点和点之间,其投影大小与完全相同,但是此时为正立的投影图像,这种现象在计算机视觉中也称为视网膜成像。

(a) 透视投影倒立成像图 (b) 透视投影倒立成像图 如图2-1(b)所示 ,可以看出位于点和点之间,其投影大小与完全相同,但是此时为正立的投影图像,这种现象在计算机视觉中也称为视网膜成像。

(b) 透视投影正立成像图 (a) 透视投影倒立成像图 图2-1 透视投影图像 由于这种成像模型最简单,计算量小,在作了一些假设之后,适应于实际情况,因此本设计文将单视目成像的针孔模型作为二维图像信息和三维世界信息的关系模型。

由图2-1(a)或图2-1(b)均可以得到点与其在图像平面上的投影点或的映射关系,由图中几何关系可以得到透视投影方程式(2-2)所示:
(2-2) 即世界坐标系中点与其在图像平面上投影点或的映射关系如式(2-3)所示:
(2-3) 2.3 本章小结 本章简单介绍了两种道路信息的获得方法,即采用双目或多目视觉系统和采用单目视觉系统。由于单视目系统在实时性,系统成本上优于前者,所以目前常用的是单视目导航系统。从三维世界坐标得到二维图像坐标的方法中,简要讨论了单目视觉系统中最简单、常用的成像几何模型——针孔模型,由于在实际应用中,一些假设和已知一定信息的存在,该模型应用在车道线识别中是可行的。

第3章 道路图像预处理 3.1 引言 智能车辆视觉系统完成图像采集后,需要对获取的图像进行各种处理与识别。而视觉系统在图像的生成、采样、量化、传输、变换等过程中,由于CCD传感器的噪声、随机大气湍流、光学系统的失真等原因会造成CCD 摄像机成像质量的降低。另外,由于车辆行驶时视觉系统与道路环境之间存在相对运动,输出图像的质量也会降低,常产生运动模糊等现象。为了改善视觉系统图像的质量,需要突出道路图像中的有用信息并尽可能消除其它环境信息的干扰,因此需要对原始图像进行图像的预处理操作。

图像预处理是指按特定的需要突出一幅图像的某些信息,同时,削弱或去除某些不需要的信息的处理方法。其目的是使处理后的图像对于某种特定的应用,比原始图像更便于人和机器对图像的理解和分析。

3.2 道路图像灰度化 大部分道路图像是通过彩色COMS图像传感器采集的,原始图像为彩色图像。其中颜色模型为RGB模型,图像中的任何颜色都是通过红(Red)、蓝(Green)、绿(Blue)三种基本颜色按照不同的比例混合得到的。在RGB模型中,如果R=G=B时,则彩色表示一种灰度颜色,其中R=G=B的值叫灰度值。因此,灰度图像每个像素只需一个字节存放灰度值,一般将白色的灰度值定义为255,黑色的灰度值定义为0,而由黑到白之间的明亮度均匀的划分为256个等级。在道路图像提取车道线过程中,很多算法没有利用图像的彩色信息而是将其灰度化。虽然,灰度化图像无可避免的丢失一些信息,但是对灰度图像的处理,从其存放方式可以看出速度相对较快。而对彩色图像的处理,就是分别对三个分量处理,可见速度相对较慢。于是将彩色图像转换为灰度图像,下面就常用的四种方法[34]进行简介介绍。

3.2.1 常用的灰度化方法 (1)分量法 将彩色图像中三个分量的亮度分别作为三个灰度图像的灰度值如式(3-1)所示,可根据需要选取一种灰度图像。

(3-1)     其中为转换后的灰度图像在处的灰度值。

(2)最大值法 将彩色图像中三个分量亮度的最大值,作为灰度图像的灰度值如式(3-2)所示。

(3-2) (3)平均值法 将彩色图像中三个分量的亮度求平均,得到一个灰度图像如式(3-3)所示。

(3-3) (4)加权平均法 根据重要性及其它指标,将三个分量以不同的权值进行加权平均。由于人眼对绿色的敏感度最高,对蓝色敏感度最低,因此,按式(3-4)对RGB三分量进行加权平均能得到亮度较合理的灰度图像。

(3-4) 用MATLAB对分量法、最大值法、平均值法、加权平均法四种常用灰度化方法,对一幅道路图像进行仿真,,,结果 ,如图3-1、图3-2:
图3-1 三分量法灰度化 图3-2 图像灰度化比较 通过图3-2图像灰度化的结果可以看出:在处理道路图像时,平均值灰度化彩色图像效果最差,因为图像大部分区域是路面,灰度化后,道路标记线被弱化。其它看来,感觉差别不大,原因在于所选图像的色彩差别不是很大,选用色彩差别明显的图像,可以看出加权平均法混合后可以得到更符合人类视觉的灰度值。由于篇幅有限,这里不再用其它图像说明。

通过方法的介绍可以看出,,以上的灰度化方法,并没有更多的利用彩色图像提供的色彩信息,而是大致通用的一些方法,没有考虑到图像的特征。本设计设计采用的是下面一种彩色通道提取[54]的方法。

3.2.2 彩色通道提取灰度化 彩色通道提取的主要目的是根据车道标志线的色彩信息,提取一定的颜色通道,形成突出车道标志线块状结构的灰度图像。车道标志线一般为黄色或白色,而路面多为沥青表面。在彩色图像中车道标志线上的点成像后,其R和G通道的颜色值相对大于B通道,而沥青表面的成像以灰色为主,其RGB三通道的颜色比较平均而且相对较小。因此试图通过提取R、G通道的方法突出车道标志线的块状结构是可行的。

为了从提取的通道合成灰度图像,在此将R、G通道的颜色值相加。具体是R、G通道颜色值之和在一定的阈值之上的像素点直接取灰度最大值255。而低于这个阈值的像素点,则被弱化。,其在灰度图像中的像素值取(R+G)/2。综上所述,其变换原理如式(3-5):
(2-3) 式中,C表示——阈值;

。R、G分别——表示像素颜色值的Red分量、Green分量;

G——像素颜色值的Green分量。。

从式(3-5)中可以看出,对于R、G通道颜色值较大的车道边缘点在灰度图像中其灰度值得到强化。而对于R、G通道颜色值较小的沥青路面其灰度值将被弱化。从而经过R+G处理后,得到的是车道边界强化的灰度图像。对于阈值C的选取,目前没有固定的方法,本设计文的做法是,在车辆采集到的图像下方取一块条形区域,搜索B通道相对大的像素点,并计算出它们平均的(R+G)/2值,把该值作为整个图像处理时的阈值,使整个图像尤其是远方的车道线得到增强。用MATLAB对彩色通道提取法对道路图像进行仿真如图3-3:
图3-3 彩色通道提取灰度化 从图3-3中可以看出,车道边缘部分在灰度图像中得到了有效的增强,由于255表示灰度图像中的白色,因此图中车道标记部分基本都被染成了白色,起到了增强边界的作用。本设计选用彩色通道提取的方法灰度化道路图像。

3.3 图像灰度变换 道路图像灰度化后,灰度值通常只是集中在某个范围,为使图像的动态范围加大,图像对比度扩展,清晰度提高,特征明显,进行图像灰度变换[6]是必要的。灰度变换可以是线性变换,也可以是非线性变换。

3.3.1 图像灰度线性变换 首先,介绍线性变换。使用一个线性单值函数,对图像中的每个像素点做线性扩展,将有效的改善图像的视觉效果,增强对比度,而且计算复杂度低,易于实现。基本原理如式(3-6):令原始图像的灰度范围为[a,b],线性变换后的图像的灰度范围为[a',b'],和之间存在下列关系:
(3-6) 另外一种情况,图像中大部分像素的灰度值在[a,b]范围内,少部分像素在小于a和大于b 的区间。此时,可以做如式(3-7)所示的变换:
(3-7) 这种两端“截取式”的变换使小于灰度级a 和大于灰度级b 的像素强行压缩为a'和b',显然这样将会造成一部分信息的丢失。不过,有时为了某种特殊的应用,这种“牺牲”是值得的。道路图像的大部分信息是路面,可以预见灰度值集中在某个区间,进行该变换是具有实际意义的。但是在道路图像处理中,压缩区间范围的不确定性,没有得到很好的解决,因此该方法是今后进一步研究的重点。

3.3.2 图像灰度非线性变换 图像灰度非线性变换:原始图像的灰度范围是[a,b],可以通过自然对数变换到区间 [a',b'] 上如式(3-8),从而求得图像:
(3-8) 这一变换扩展了输入图像的中低灰度区域的对比度,而压缩了高灰度值。由于道路图像大部分信息是路面,其灰度值主要集中在相对较高的范围内,所以采用此种方法,在处理道路图像时可以预见效果是比较差的。灰度变换法图像对比度增强的结果用MATLAB仿真如图3-4:
图3-4 灰度线性变换 通过此例可以看出虽然灰度线性变换可以增强图像的对比度,但是对于一些道路图像增强效果是不明显的。根据图(3-4)道路图像灰度直方图的特点可以看出灰度值是集中分布但范围广,从0-255灰度级范围内均有对应的像素存在。因此若对直方图均衡化,可以预见图像对比度能够得到较大程度的增强。下面简介介绍直方图变换[7]。

3.3.3 基于直方图的灰度变换 直方图是表达一幅图像灰度级分布情况的统计图,表示出具有某一灰度的像素数,并不表示像素在图像的具体位置。直方图的横坐标是灰度,一般用r 表示,对于数字图像信号,直方图的纵坐标是某一灰度值 的像素个数。对于数字图像有如式(3-9)、式(3-10)所示关系:
(3-9) (3-10) 其中式中,——图像的第级灰度值;

——图像中第级灰度的像素个数;

k——为图像对应的总灰度级数。

直方图均衡化[1]技术是通过变换将原图像的直方图调整为平坦的直方图,然后用此均衡的直方图校正原图像,增加图像灰度值的动态范围,从而达到增强图像整体对比度的效果。直方图均衡化增强了靠近直方图极大值附近的亮度的对比度,减少了极小值附近的对比度。变换函数如式(3-11):
(3-11) 其中是变换函数。由于变换函数需要满足2个条件:
(1) (2) 可以证明r的累积分布函数满足上述两个条件,能将r的分布转换为s的均匀分布。用MATLAB仿真直方图均衡化技术如图3-5:
图3-5 直方图均衡化 通过此例可以发现,图像的灰度值在变换后概率分布由于得到了归一化均匀分布(在直方图中有明显的体现),图像的对比度得到了增强。在主观评价上,可以看出经过变换之后突出了原图像的细节,将使其具有更好的边缘检测效果。因此本设计采用直方图均衡化技术增强图像的对比度。

3.4 图像滤波 任何一幅未经处理的原始图像,都存在着一定程度的噪声干扰。噪声会恶化图像质量,使图像模糊,甚至淹没需要检测的特征,给图像的分析带来困难。在进行进一步的边缘检测、图像分割、特征提取、模式识别等处理之前,采用适当的方法尽量减少噪声的干扰就显的非常重要的。道路图像滤波[8]主要有两大类方法:一类方法是在图像空间域对图像进行各种滤波处理,即空域处理法;
另一类方法是把空间域图像 经过正交变换,如经过傅立叶变换,得到频率域的变换图像 ,在频率域进行各种滤波处理后得到频率域处理图像。然后再变换到图像的空间域,形成处理后的图像,即频域处理法。显然,频域处理法附加了图像正交变换的正变换和反变换,对于数据量较大的二维道路图像需要较大的内存,且运算时间也较长,不能满足视觉系统实时处理的要求。因此,本设计采用空间域图像滤波处理方法。下面就常用的几种空域滤波算法进行介绍。

3.4.1 线性平滑滤波 图像平滑滤波处理分为线性滤波与非线性滤波,线性滤波方法提出较早且具有较完备的理论基础。针对线性滤波处理,本设计文主要尝试了均值滤波[1]、均值滤波是对图像进行局部均值运算, 每一个像素值用其局部邻域内所有值的均值置换如式(3-12),即:
(3-12) 式中,——邻域称为滤波窗口;

,——为邻域中的像素点数。

,窗口在水平和垂直两个方向上都必须为奇数,否则图像会产生偏移。均值滤波器可以通过卷积模板的等权值卷积运算来实现,本设计文采用了、、、模板进行滤波比较。

该算法在去除麻点噪声方面比较有效,但它不能区分有效信号和噪声信号,噪声和图像细节同时被削弱。为了改善邻域平均法中图像细节模糊问题,提出了一些改进方法,如选择平均法和加权平均法,选择平均法只对灰度值相同或接近的像素进行平均,加权平均法则按照灰度值的特殊程度来确定对应像素的权值,模板中的权值并不相同,其数学表达式如式(3-13):
(3-13) 式中,表示——对应像素需要加权的值,。可以根据需要进行修正,为了使处理后的图像的平均灰度值不变,模板中的各个系数之和为1。虽然这种改进方法,可以在一定程度上改善细节模糊的问题,但是模板中的权值的确定,由于道路图像的多样性,复杂性而没有固定的算法,因此具有很大的局限性。

3.4.2 非线性平滑滤波 理论和实验证明,虽然线性滤波具有良好的抑制噪声能力,但是对图像平滑会造成图像中的细节信息损失,从而使处理后的图像产生模糊。所以本设计文也尝试了采用非线性平滑滤波处理的方法—中值滤波[1],中值滤波是一种非线性的图像滤波方法,它于1971年由J.W.Jukey提出的,并首先应用于一维信号处理技术中, 后来被二维图像处理技术所采用。中值滤波的基本思想是用像素点邻域灰度值的中值来代替该像素点的灰度值,该方法在去除脉冲噪声、椒盐噪声的同时又能保留图像边缘细节,在一定条件下可以克服线性滤波所带来的图像细节模糊问题,同时在实际运算过程中并不需要图像的统计特征,也给计算带来不少方便,数学表示为式(3-14):
(3-14) 式中,为——当前点的邻域。

用MATLAB对加入椒盐噪声的图像应用平滑滤波法去噪,进行仿真如图3-6:
图3-6 平滑滤波 图3-6 平滑滤波 用MATLAB对加入椒盐噪声的图像应用中值滤波法去噪,进行仿真如图3-7:
图3-7 中值滤波 对不同的滤波方法,如平滑滤波法、选择平均平滑滤波法、中值滤波法,分别用 MATLAB进行比较的仿真,结果如图3-8所示:
图3-8 滤波比较 通过对比可以看出,平滑滤波的道路图像细节变得模糊,使用改进的选择平均法平滑滤波,使滤波图像得到了改善,但是针对不同道路图像灰度值相同或接近的概念不能明确化,具有一定的模糊性,需要进一步研究。而中值滤波,可以看出对图像边缘有保护作用,且去噪声的同时可以较好地保留边缘的锐度和图像的细节。显然,这一方法是比较适合本课题要求的,因为在后续的处理中我们将要提取物体的边缘特征,所以在去噪的同时较好地保留边缘的锐度和图像细节是难能可贵的。但在实际应用中,窗口大小选择要适宜,因为从图3-7中可以看出,随着窗口的扩大,也可能破坏了图像的某些细节,从仿真结果中以选择模板中值滤波为宜。

3.5 图像边缘增强 道路图像滤波后,对要识别车道线来讲仍存在大量的无用信息。一般有白色标记的车道线对路面而言有较强的边缘,体现在灰度或纹理结构等信息。道路图像的边缘种类大致可以分为两种[9]:一种是阶跃性边缘,两边的像素灰度值有明显的不同,另一种是屋顶状边缘,它位于灰度值从增加到减少的转折点。由于CCD摄像机传感器具有低频特性,所以图像中的边缘灰度值的变化不是瞬间的,而是跨越一定距离的,图3-9分别给出了这两种边缘的示意图及相应的一阶方向导数和二阶方向导数。

理想信号 实际信号 一阶导数 二阶导数 图3-9 9 两种常见边缘一阶导数和二阶导数 基于边缘导数的特点,可以用微分算子检测出来,通常用一阶或二阶导数来检测边缘。如如这里用公式编写人名行吗? ,这几种边缘检测算子的共同特点都是以梯度为基础的,首先介绍图像梯度的概念。

3.5.1 图像的梯度和边缘检测算子 梯度算子[7]是一阶导数算子。对于一幅副图像,它的梯度定义为一个向量如式(3-15):
(3-15) 其幅值如式(3-16):
(3-16) 该向量的方向角为式(3-17):
(3-17) 数字图像的离散性,计算时,常用差分来代替微分,为计算方便,常用小区域模板和图像卷积来近似计算梯度值。采用不同的模板计算[6]时可以产生不同的边缘检测算子。设图像的模板邻域如图3-10所示:
图3-10 图像的邻域 边缘检测算子用如图3-11所示模板,来近似计算图像对的偏导数:
1 0 0 -1 0 -1 1 0 图3-11 边缘检测算子 边缘检测算子用如图3-12所示模板,来近似计算图像对的偏导数:
-1 0 1 -2 0 2 -1 0 1 -1 -2 -1 0 0 0 1 2 1 图3-12 边缘检测算子 边缘检测算子用如图3-13所示模板,来近似计算图像对的偏导数:
-1 0 1 -1 0 1 -1 0 1 -1 -1 -1 0 0 0 1 1 1 图3-13 边缘检测算子 边缘检测算子是二阶导数算子,它是一个标量,是无方向的,因而只需一个模板就行了。在进行二阶导数微分计算时,常用的两个模板如图3-14:
1 1 1 1 -8 1 1 1 1 0 1 0 1 -4 1 0 1 0 图3-14 边缘检测算子 考察了以往边缘检测算子的应用,发现尽管这些应用出现在不同的领域,但都有一些共同的要求,归纳为三条准则:好的检测结果,好的边缘定位精度,对同一个边缘有低的响应次数。根据这三条准则,给出了三条准则的表达式,MATLAB中集成了上述边缘检测算子函数,仿真边缘检测图像如图3-15:
图3-15 传统差分算子检测 由试验实验结果可以看出:边缘检测算子和边缘检测算子因具有非各向同性而在检测45°45度的道路线方面有一定优势。边缘检测算子计算相对简单,但图像处理后,车道线出现断点现象。考虑到算子是利用水平和垂直两个方向的梯度阈值来检测道路边缘的,而道路图像中车道线与水平方向约成45°角和135°角,因此许多学者提出了针对车道线方向的模板,自设计差分算子。下面介绍两种自定义的差分模板。

3.5.2 自定义差分算子 针对道路图像中车道标志线具有向左和向右倾斜的特征,如果设计针对该方向的差分算子,可以预见比算子更能增强车道线的位置。选用的两个差分算子[910]如式(3-18)、式(3-19):
(3-18) (3-19) 用自定义的差分算子对灰度图像进行边缘增强,并用MATLAB进行仿真,实验结果如图3-16:
图3-16 自定义差分算子边缘增强 从图3-16可以看出车道线标记在模板检测下得到了增强,尤其对于远处的车道线效果更明显,但是车道线加强的同时,意味着像素点的增多,需要进一步细化处理。考虑到各种实际情况,本课题选用第一个自定义模板如式3-18所示。

3.5.3 加入噪声图像检测实验 前面的实验比较的是几种差分算子在无外加噪声的情况下对道路图像的边缘检测结果,但在实际应用中,系统采集到的图像多数情况下是已经被噪声污染的图像,在进行去噪处理后也会有噪声的残留干扰,所以算子的抗扰性也是选取算子关键考察的方面。通常在实际道路识别中,遇到雨、雪等恶劣气候条件的情况下,系统采集到的图像视野中经常有大量的雨雪颗粒,严重影响对道路图像中特征曲线的提取。在各种噪声模型中,椒盐噪声可以很好地模拟雨、雪颗粒对图像质量造成的影响[58],因此通过实验比较各种差分算子对椒盐噪声污染后的道路图像的边缘检测能力具有实际意义。

对加入椒盐噪声的图像,用常用的差分检测算子进行边缘检测,并用MATLAB进行仿真,结果如图3-17:
图3-17 加噪声后传统差分算子检测 从实验结果中可以看出加入椒盐噪声对几种差分算子检测都产生了的影响。其中边缘检测算子产生了断点;
边缘检测算子和边缘检测算子的检测效果较为理想,边缘较为完整;
通过无外加噪声图像、加入椒盐噪声图像的实验结果表明在这几种情况下,边缘检测算子和边缘检测算子的检测效果较好,边缘检测算子在有噪声情况下产生较多的断点,定位不准确。

对比边缘检测算子和自定义差分算子在有噪声干扰的情况下的边缘检测结果,用MATLAB进行仿真,结果如图3-18:
图3-18 加入噪声后的边缘检测 从结果中可以看出,在椒盐噪声的影响下,自定义差分算子的检测效果较好,车道边界特征明显,没有出现断点等现象。考虑各种情况下后,选用第一种如式(3-18)所示自定义差分算子作为道路图像边缘检测算子最适合。

3.6 本章小结 本章主要介绍了进行道路识别前的准备工作,是后面章节的基础。主要讨论了图像的预处理问题。本设计文研究的道路检测系统中的道路检测技术,行驶过程采集到的图像,由于道路不平坦、或者其它因素,视觉系统会产生振动、松动等不确定因素,使采集到的图像质量会受到影响。为了增强道路图像的识别可靠性,降低道路检测算法的复杂性,有利于道路边界的正确识别和精确定位,需要对采集到的道路图像进行预处理,以提高图像的质量。

在所有的图像处理算法中,没有哪一种算法可以适用于处理各类图像。每一种算法都有一定的针对性和局限性。在实际研究过程中,为了找到各种有效的图像处理方法,需要作广泛的实验。根据当前视觉导航系统的需要,对算法加以必要的改进,从而可以得到适合本视觉系统的最优算法。本课题道路图像预处理包括图像的灰度化处理、均衡化处理、滤波处理、边缘增强处理。为后续道路图像的分割和道路标志的识别提供了很好的条件。

在研究的诸多预处理图像算法中,针对本设计提供的图像和算法自身的优点,采用彩色通道提取法灰度化道路图像,直方图均衡化技术增强对比度,对噪声图像用3*3中值模板滤波,自定义差分算子边缘检测。

第4章 道路边缘的识别 4.1 引言 在视觉导航诸多复杂且具有挑战性的任务中,最受重视的是道路识别(road following),它包括道路检测和道路追踪两个部分。道路检测是视觉导航研究中的核心问题之一,也是视觉导航发展水平的重要标志之一。检测包括道路定位,行驶物相对道路边界的位置,判断驶出道路区域的可能性等,道路追踪不再对整幅道路图像进行全面的处理,只是利用前一次道路检测得到的车道信息,实现对道路的快速检测定位,这样可以进一步提高系统的实时性。由于论文时间有限,本设计为只对道路检测部分进行了仿真实验。目前,道路检测技术有单目和双目或多目视觉系统之分。

本章算法没有从立体视觉的角度来解决道路环境重建问题,因为从现有的研究结果来看,直接通过对图像进行三维恢复获取环境信息有很多的困难:首先,计算量巨大。其次,匹配点寻找困难。另外,遮挡问题。如今的立体视觉研究者多数简化了这些不利因素的影响,但是就实际影响来看,任何一个因素都可能导致环境深恢复的错误,尤其是在光线环境比较复杂的户外。这就使得基于像素点进行三维重构的方式进行视觉导航只适用于比较简单的环境。而对于环境较为复杂的户外环境,多数没有采取对图像进行基于像素的三维恢复的方式,而是采用单目视觉系统。

本章将在单目视觉系统针孔成像的模型下进行道路的检测,由于检测的是一般路面,因此主要利用了道路的边缘和区域两种方法的结合。并用MATLAB进行了仿真实验。

4.2 道路检测方法简介 现有的道路检测算法[11]主要有以下三种:
(1)基于彩色图像的分割方法。这种方法是利用彩色图像中RGB彩色空间原理,根据道路在Red,Green,Blue三个彩色分量上与周围非路面环境的不同,对输入的彩色图像进行路面和非路面的二值划分,这种方法更适用于没有车道线的非标准车道。但是基于RGB的彩色图像分割方法对道路与非道路的分类标准并不是很充分,于是人们又提出了基于HSG的图像分割方法。其中Betkel等人提出图像色彩的HSG表达能提供对道路与非道路更有效的分类准则,其中的色度H和饱和度S分量对人行道、树和天空有一致的表达,并且去除了不平整路面的影响。而一些具有高亮特征的如汽车尾灯、交通信号、车道标志及道路边界等需要用灰度级G分量来识别。

(2)基于灰度图像的车道线检测与跟踪算法。这是目前车道线检测与跟踪的主流方法,它可以充分利用车道线提供的灰度信息进行自主导航,非常适用于等级较高的公路。同时这类方法有一些突出的问题需要解决,如当车道线被其它车辆遮挡时,需要准确估计被遮挡的部分车道线。还有由树木、桥梁、建筑物及其它车辆等产生的阴影对路面灰度值产生的影响进而对检测造成干扰等问题。

(3)神经网络方法。在智能车辆导航研究中,采用人工神经网络是一种很典型的方法。通过在实际景物中驾驶车辆来训练神经网络,这种方法可以用于非结构化道路跟踪,但是它也有一个很大缺点即不知道车道线的位置,因而与车道线有关的许多辅助功能无法实现,当用于等级较高公路时,效率低下。

参考近年来有关文献,当前基于视觉的道路检测技术主要有以下两个方向的研究:一个方向是侧重于研究道路边缘信息,另一个方向是侧重于研究路面区域信息。根据分析,可以得知边缘和区域是物体的两个互补特性,因为获取边缘信息时容易过分分割或合并,而导致丢失或添加图像边界,可以通过区域信息来补偿边沿的部分不确定性,因此文中提出对边缘边界和区域边界进行综合分析,以得到准确的道路边界。

4.3 边缘与区域相结合的道路检测方法 经过边缘增强处理后,从图3-16中可以看到不仅道路边缘信息,其它信息如树木、行人等轮廓线也得到增强,这些轮廓在图像中形成了许多的假边界。为了克服假边界的干扰,本设计文采用区域生长[113]的方法,得到道路图像的路面区域信息。根据路面的区域信息和自定义差分算子提取的边缘信息定位车道线边界,这种方法的优点是对噪声不太敏感,即使在强阴影下也能得到大体正确的路面描述。下面首先简介区域生长法。

4.3.1 区域生长法的基本概念 区域生长的基本思想是将具有相似性质的像素点集合起来构成区域,具体先对每个需要分割的区域找一个种子像素作为生长的起点,然后将种子像素周围邻域中与种子像素有相同或相似性质的像素根据某种事先确定的生长或相似准则来判定合并到种子像素所在的区域中,直到再没有满足条件的像素可被包括进来,这样一个区域就长成了。其中生长准则常用的是图像的灰度、纹理、彩色等信息。通过上述分析可知,在用区域生长法处理道路图像时,有以下两个问题是非常关键的。

一、区域生长的一个关键是选择合适的生长或相似准则,使用不同的生长准则会影响区域生长的过程,目前,区域生长法在处理道路图像中大多采用灰度差准则。区域生长方法将图像以像素为基本单位来进行操作,基于区域灰度差的方法,主要有如下步骤:
(1)对图像进行逐行扫描,找出尚没有归属的像素;

(2)以该像素为中心检查它的邻域像素,即将邻域中的像素逐个与它比较,如果灰度差小于预先设定的阈值,则将它们合并;

(3)以新合并的像素为中心,检查新像素的邻域,直到区域不能进一步扩张;

(4)继续扫描直到不再发现没有归属的像素,则结束整个生长过程。

二、区域生长过程中对如何选取种子点也是关键,一般可以根据图像的特点来确定,对于有先验知识的图像可以利用先验知识,如果没有则可以借助生长准则对像素进行相应的计算,本设计文根据算法所要实现的目的,所选择种子点的区域核心应满足以下三个要求:
(1)必须在道路区域内,, 且距道路边界有一定距离;

(2)其灰度与周围的灰度较为均匀,以便能生长出较大的区域;

(3)其灰度应能反映道路区域的亮度分布。

根据上述要求选择恰当的种子点,在道路图像理解中,可以作这样一个合理的假设[113],在距离车辆很近的正前方的一个小范围内一定是路面。这种假设在绝大多数情况下是成立的,因为一旦这个前提不成立,就标志着车辆距离危险区域太近而表明前面的导航失败。在这种前提下,进行视觉辅助导航时,就可以根据在这个小范围内的取样特征推导出整个视野空间中的道路信息。理想情况下,我们可以仅仅依赖种子点的信息正确地推出整个道路区域。通过对算法的理解,本设计文用区域生长法得到路面区域的算法如下:
(1)选取灰度图像下方一个条形范围内处于灰度值中间位置的像素为种子点;

(2)用的平滑模板处理灰度化图像,得到邻域平均化的灰度图像;

(3)根据在邻域平均化的灰度图像中的灰度值与在灰度图像中的灰度值的差在设定的阈值内,且邻域平均化的灰度图像中的灰度值与种子点处的灰度值的差在设定的阈值内这两个准则,生长出道路的路面区域。

从算法中可以看出,准则内的阈值选取对生长出的图像有很大的影响。选取的值过小,检测出的图像含有虚假的边缘多;
选取的值过大,车道线可能出现漏检现象,实验的仿真结果也是如此。

对于这两个阈值的选取,目前没有合适的选择方法,本设计在实验过程中,得到阈值取为70,阈值取90时,自定义差分模板取0.28生长出的路面区域最为理想。实现该值的自适应选取是今后研究生长区域法的一个重要方向。利用区域生长法识别道路边界的仿真结果如图4-1:
图4-1 利用区域生长法得到路面区域 阈值选取小于上述值时,仿真结果如图4-2(其中阈值取50,阈值取70):
图4-2 利用区域生长法得到路面区域 阈值选取大于上述值时,仿真结果如图4-3(其中阈值取90,阈值取110):
图4-3 利用区域生长法得到路面区域 从仿真结果中可以看出,选取的值过小,检测出的图像含有虚假的边缘多;
选取的值过大,车道线可能出现漏检现象。因此实现阈值的自适应选取是今后研究的重中之重。

4.3.2 融合两种信息提取的仿真实验 经过上述过程的处理,我们可以得到两组信息即区域信息和边缘信息,若对这两种信息进行融合,真实边界的存在信息就来源于此。本设计文提出用下述算法计算真实的道路边缘,对已经得到的边缘信息和区域信息,根据它们在空间上应该出现在相同或相近的位置,来计算两组信息中的相应位置上离散点之间的距离。

设为边缘边界,其中为连续的边缘边界线段,每一个线段由离散的边缘点组成;
为区域边界,其中为连续区域边界线段,每一个线段由离散的边界点组成。因为且则可以推出;
同理可以得出,这样就可以把两组信息中的线段当作离散的点来处理,根据式(4-1):
(4-1) 其中,对于设定距离的选取,由于路面边界的复杂性,没有固定的方法,在实验中,检测出的车道边界更准确。用MATLAB对融合边缘和区域两种信息定位道路边界进行仿真,结果如图4-4:
图4-4 4 融合两种信息的检测图 通过图4-4可以看出利用边缘信息和区域信息检测道路边界,可以在一定程度上克服虚假边界的干扰,得到更准确的车道线边缘。为了突出该方法的优点,在这里介绍一种动态双阈值二值化[1012]方法,同样是对两幅图像(灰度图像和边缘检测图像))处理,其中一个阈值称之为灰度阈值,另一个阈值称之为边缘阈值。只有在边缘图像中灰度值大于边缘阈值,同时在原始道路图像中灰度值大于灰度阈值的像素,才纳入车道线像素的集合中,而其余的像素则纳入非车道线的集合中。选取灰度阈值时,每一帧图像中都只对车辆前方最近的一小段长条区域进行采样。由于该段区域中一般不会存在障碍物, 而且对阴影和水迹的干扰也不敏感, 因此可以比较准确地反映出原始图像的道路灰度值。对比两种方法的检测结果,用MATLAB仿真如图4-5: 图4-5 对比区域生长法检测图像和自适应二值化检测图像 从图4-5中可以看出:自适应二值化图像同样在一定程度上可以克服虚假边界的干扰,但是整体效果比融合区域法差,尤其对于稍远处的虚假边界。基于此,本设计文用融合区域法检测边缘,但是在阈值选取上,本设计针对预处理图像调节参数还没有达到自适应,需要很大改进。但作为图像处理的一种新方法,值得深入研究。

4.4 基于模型的道路识别 由于现实生活中的道路千差万别,道路检测是个非常复杂的模式识别问题,因此目前仍不存在通用的视觉道路检测系统,在满足一般应用的情况下,适当简化道路场景,有助于解决实际问题。使用道路形状假设就是一种有效的简化道路模型的方法。

4.4.1 道路模型假设 由于用于识别的原始图像中包含丰富的景物细节,如树木、绿化带、行人、车辆、阴影、其它遮挡物等,在经图像处理后得到的边界图像如图4-5中可以观察到,所有这些内容的区域边界,形成了大小不一、或稠或密、形状各异的区域边界的集合,而且这些边界宽窄不同,小到几个像素点,宽的则可能连成一片独立的亮区。但是其中的道路边界则为一组断断续续接近于线状排列的边界区域的集合。从这种形状特征出发,可以设想,建立一种基于形状的道路边界模型能够将其与其它边界区别开来。因此,本设计文从道路边界的形状入手来定义模型,国内外许多研究人员也运用了此方法,其中有使用回旋曲线作为道路的形状模型、多项式曲线作为道路的形状模型和直线作为道路的形状模型等。其中直线道路模型[1513]是最简单的模型假设。为了减小计算的复杂度,提高系统的性能本设计文采用直线道路模型,因为高速公路的曲率[5]一般比较小,在高速行驶时,系统只对前方不太远处采集图像,采用直线道路模型,一般可以满足要求。这里对道路也做了假设:
(1)道路是结构化道路,具有明显的车道标线或者边界,道路宽度基本不变,可以依据颜色、边缘等信息来检测;

(2)道路是水平的,或者其高度变化服从严格的数学模型。

4.4.2 道路图像特征直线提取 在众多的直线提取方法中,霍夫变换是最常用的方法之一,其优点在于算法稳定,抗噪性能好,但缺点是计算量和存储空间太大。人们在几十年的研究中,采取了各种方法对霍夫变换进行改进。本设计文通过对霍夫变换及其改进方法和另一中种提取直线的中值截距法提取特征直线,并进行仿真实验,找到其中最优的方法。

4.4.2.1 传统霍夫变换提取直线 针对上述假设的车道模型,首先介绍霍夫变换提取车道线的方法[142]。霍夫变换是图像处理中从图像中识别几何形状的基本方法之一,应用很广泛,也有很多改进算法。最基本的霍夫变换是从黑白图像中检测直线。在直角坐标系中,直线的方程可以用 来表示,其中k和b是参数,分别是斜率和截距。直线上任一点用表示。那么方程在参数k--b平面上是一条直线,这样,图像x--y平面上的一个前景像素点就对应到参数平面上的一条直线。在实际应用中,形式的直线方程没有办法表示x=c形式的直线(这时候,直线的斜率为无穷大)。所以实际应用中,是采用参数方程p=xcos(theta)+ysin(theta),代表直线离原点的法线距离,theta是该法线对轴的角度。这样,图像平面上的一个点就对应到参数p---theta平面上的一条曲线上。由此可知,在图像空间中共线的点对应参数空间里相交的线。反过来,在参数空间中相交于同一个点的所有曲线在图像空间里都有共线的点与之对应,这就是点对线的对偶性。根据点对线的对偶性,当给定图像空间的一些边缘点,就可以通过hough变换确定连接这些点的方程。hough变换把在图像空间中的直线检测问题转换到参数空间里对点的检测问题,通过在参数空间里进行简单的累加统计完成检测任务。

总结霍夫变换的基本思想是:首先,我们初始化一块缓冲区对应于参数平面,将其所有数据置为0。然后对图像每一前景点用hough transform,遍历所有的theta(根据区域可选择)),计算出所有的值。在对应的参数数组中加1。最后,找到参数平面上最大点的位置,这个位置就是对应原图像上直线的参数。

传统hough变换的流程图如下如图4-6:
设定直线长度阈值,得到直线变换的极坐标参数 根据参数在图像标出直线 结 束 前像素点做hough变换 在对应数组的p行,theta列加一 预处理后图像 图4-6 hough 变换流程图 设定直线长度阈值,得到直线变换的极坐标参数 根据参数在图像标出直线 结 束 预处理后图像 前像素点做hough变换 在对应数组的p行,theta列加一 图4-6 hough 变换流程图 编程时将参数p和theta量化成许多小格,对任一个点代入theta的量化值,算出各个p,所得值(经量化)落在某个小格内,便使该小格的计数器加1。当全部点变换后,对小格进行检验有大的计数值的小格对应于共线,其(p,theta)值可用作直线的拟合参数。有小的计数值的各小格一般反映非共线点,丢弃不用。由于直线长度阈值的选取,与道路图像的大小和真实的车道边界有关,可以经过实验得到,实验中取36。应用传统hough变换提取特征直线的仿真如图4-7: 图4-7 7 传统hough变换提取直线 本课题只对左车道线进行了检测,对右车道线同样适用,但也可以根据已经检测出来的左车道线根据一定的约束条件,如距离、连续性等检测出临近的车道线。从hough变换检测直线的原理可以看出,算法中计算量大。在边缘点众多的情况下,这样的计算量是非常可怕的。目前有很多改进算法,本设计研究了改进的随机hough变换法。

4.4.2.2 随机霍夫变换提取直线 本设计提出一种改进的hough变换——随机hough变换[153],传统的hough变换是一种一到多的映射,即每个边缘点映射成参数空间的一条曲线。而随机hough变换采取的是多到一的映射方式,即随机选取n个像素来决定n个曲线参数。核心算法是:
(1)建立二值化边缘图像;

(2)从中随机选取一对像素点;

(3)如果这两个点不满足预定义的距离约束,回到Step2,否则继续Step4;

(4)将这两点的坐标代入直线方程解得参数();

(5)在参数空间中对参数点()累加;

(6)继续第二步。

基于算法的理解,本设计提出一种新的算法,流程图如图4-8:
结 束 找到图像在下方的第一个左车道线像素点 取该点与距离约束内的前景像素点为一对像素点 将两点坐标带入直线方程,解得参数 对参数值累加 找到最大值,标记该参数对应的直线 预处理后图像 结 束 图4-8 改进hough变换流程图 用MATLAB对比随机hough变换法和传统hough变换提取特征直线的实验仿真结果如图4-9:
预处理后图像 图4-8 8 改进hough变换流程图 结 束 找到图像在下方的第一个左车道线像素点 取该点与距离约束内的前景像素点为一对像素点 将两点坐标带入直线方程,解得参数 对参数值累加 找到最大值,标记该参数对应的直线 预处理后图像 结 束 用MATLAB对比随机hough变换法和传统hough变换提取特征直线的实验仿真结果如图4-9:
图4-9 9 传统hough变换及其改进算法的比较 在本例可以看出改进的hough变换与传统的hough变换检测直线型左车道线时精度相当,但改进算法的实时性提高了3-5倍,更利于车辆的高速行驶。本设计在改进的hough变换后研究另一种算法——中值截距法[16]。

4.4.2.3 “中值截距”法提取车道线 由透视投影的基本原理可知,路面投影图像基本位于整个图像象的下半平面,车道线大多分为左右两部分,以左车道线为例,遍历图片的左半部分得到N个点,定义图像的左上角为坐标原点,由于任何一条直线都可由截距表示,因此设定左车道线方程如下如式(4-2):
(4-2) 其中分别是直线在轴上的截距。为该直线的斜率。

基本原理是:任意选取图像上2个点,过这两点做一条直线,并分别计算出在轴上的截距如式(4-3):
(4-3) 对于个点,相应的可以做作出条直线,由于有些点处于同一条直线上,因此最多只能做条,从而可得到两组截距值。分别取截距的中值如式(4-4),并令 (4-4) 因此最多只能做条,从而可得到两组截距值。分别取截距值,并令 所得的就是对整个集合的中值估计。而得到的直线方程就是对该组数据的拟和直线。在取值时,如果集合个数为奇数,那么就可以直接取集合的中间元素作为中值截距;
而集合个数为偶数时,取中间两数值和的平均值作为中值截距。

基于算法的理解,本设计不从新定义坐标原点(基于点与点之间的坐标关系只是相对关系)),但是将图像的左上角理解为坐标原点,图像上的直线可以写成截距的形式,同样先找到图像下方的第一个左(或右))车道线像素点,计算与其它前景像素点的斜率,取其中值作为中值截距。本设计的算法流程图如下如图4-10所示:
图4-10 0 中值截距算法流程图 结 束 记图像下方第一个左车道线像素点p 计算与其距离约束内的前景像素点的截距 点 取截距的中值 根据中值计算斜率 在图像上标记该直线 预处理后图像 图4-10 0 中值截距算法流程图 结 束 记图像下方第一个左车道线像素点p 计算与其距离约束内的前景像素点的截距 点 取截距的中值 根据中值计算斜率 在图像上标记该直线 预处理后图像 用MATLAB仿真中值截距法提取特征直线如图4-11: 图4-11 1 中值截距提取车道线 从图4-11中可以看出中值截距可以对检测出的左车道线进行延长,但是从算法可以看出非车道线像素点对其影响较大,下面对三种算法比较,提出最优算法。

4.5 算法比较 首先,智能车辆在高速公路上行驶,要求检测算法应具有快速性,对比三种检测算法在处理上幅图4-9、图4-11的实时性如表4-1:
表4-1 三种算法实时性比较 方法 hough变换 改进的hough变换 中值截距法 实验1 0.1720 0.0310 0.0790 实验2 0.1720 0.0320 0.0780 实验3 0.1710 0.0310 0.0760 实验4 0.1724 0.0320 0.0780 平均时间(s) 0.1718 0.0315 0.0780 注:实验所用同一台计算机,实验室402,5号机。

从表4-1中可以看出,改进算法的实时性比传统算法提高了3-5倍,具有一定优势,因为在车辆高速行驶的情况下,对实时性的要求是相当高的。中值截距的实时性处于两者之间,但是它可以对检测的车道线长度进行选择。这里除了实时性以外,算法的鲁棒性,也是道路检测中不可忽视的问题。首先用阈值,阈值的适当变化,检测算法的鲁棒性,实验仿真如图4-12、图4-13:
图4-12 阈值变化后的hough变换及其改进算法的检测图 图4-13 阈值变化后的中值截距检测图 从图4-12、4-13中可以看出,当阈值变化时,由于区域生长法获得的道路边界信息出现了漏检或虚假边界多的现象,致使hough变换和中值截距提取特征曲线出现了偏差,而改进的hough变换算法检测精度基本不受影响,可见其鲁棒性较好。从对处理该图像的实时性和鲁棒性来看,提出改进的hough变换算法更符合道路检测的要求。

4.6 随机霍夫变换提取直线的检验 虽然,在算法比较中本设计提出用随机hough变换提取特征直线具有优越性,即实时性好、鲁棒性好。但是,由于道路图像的复杂性和多样性,针对一幅图像的处理结果理论上是不应该定为结论的。为了更有利的说明该方法的优越性,下面用其它图像再次检验算法的性能是非常必要的。对其它图像的预处理算法同上,但是某些参数会有适当的调整,因为这些参数还没有达到自适应。例如图4-14,其中阈值取为15,阈值取180时,自定义差分模板取0.2,用MATLAB进行仿真,实验结果如图4-14、图4-15:
图4-14 传统hough变换及其改进算法的比较 15,阈值取180时,自定义差分模板取0.2用MATLAB仿真实验结果如图4-14、图4-15:
图4-14 传统hough变换及其改进算法的比较 图4-15 5 中值截距提取车道线 从实验结果中可以看出,三种方法检测车道线的效果在精度和长度上稍有区别,但是,在实际情况下,这并不是影响智能车辆行驶的主要因素。检测的实时性如表4-2:
表4-2 三种算法实时性比较 方法 hough变换 改进的hough变换 中值截距法 实验1 0.1630 0.0320 0.0470 实验2 0.1560 0.0320 0.0469 实验3 0.1560 0.0310 0.0470 实验4 0.1570 0.0330 0.0470 平均时间(s) 0.1580 0.0320 0.0470 注:实验所用同一台计算机,实验室402,5号机。

从表4-2中可以看出,改进算法的实时性确实具有一定优势。当阈值变化时,由于hough变换实时性低,这里只对另令两种算法进行比较如图4-16:
图4-16 6 对比阈值变化后的改进hough变换和中值截距法检测图 从图4-16中可以看出,中值截距法的检测精度较改进的hough变换确实易受阈值的影响,不但如此,考虑到实际情况中,车体前方存在阴影时,为了尽量避开阴影对道路检测的结果,选取种子点的区域就要适当的向图像的上方移动。这样就使的种子点的选取具有某种不确定性。下面用一幅带有阴影的图像说明当种子点的选取具有不确定性时,对算法检测精度的影响。首先用MATLAB获取该图像的道路边界检测图如图4-17:
图4-17 道路边界检测图像 图4-16 道路边界检测图像 用改进的hough变换提取检测图像中的特征直线,实验仿真如图4-18:
图4-17 改进的hough变换提取特征直线 图4-18 改进的hough变换提取特征直线 用中值截距提取检测图像中的特征直线,实验仿真如图4-1719:
图4-18 中值截距提取特征直线 注:其中阈值取为4025,阈值取19820时,自定义差分模板取0.2,种子点在seedx=round(x-0),seedy=round(y/2)。

图4-19 中值截距提取特征直线 从图像可以看出下方存在阴影,在许多实际情况中,车体前方出现阴影是常见的,因此在选取种子点时不得不考虑避开阴影,可以将种子点所处的区域适当向上移,当种子点在seedx=round(x-10),seedy=round(y/2有所变化时)时,由于计算机是对每帧图像连续处理的,实验结果可能出现如图4-20、图4-21所示结果:
图4-20 种子点变化后改进的hough变换提取特征直线 图 4-20 种子点变化后中值截距提取特征直线 图4-21 种子点变化后中值截距提取特征直线 从实验结果可以看出,中值截距检测的左车道线在前方出现了偏离现象,而改进的hough变换几乎没有变换,综合各种情况考虑,改进的hough变换,在实时性和鲁棒性能上都优于另两种算法,因此提出改进的hough变换算法更适合车道线检测。但是,从上面的实验可以看出,改进的hough变换算法检测的车道线长度比中值截距法检测的长度要小。但是当出现曲率较小的车道线时,检测长度小的算法在检测精度上占有优势,而检测长度大的算法可能出现误检。对有小曲率的车道线图像,用MATLAB进行实验仿真,结果如图4-22、图4-23:
图4-22 曲率较小时三种算法提取特征直线 图4-23 曲率较小时三种算法提取特征直线 从图4-22、图4-23中可以看出,中值截距法提取小曲率的车道线精度较差,改进的hough变换算法检测精度最好。但是改进的hough变换检测长度不如传统的hough变换算法,结合实际情况,在转弯时智能车辆速度不会很大,而且改进的hough变换算法实时性最好。在满足论文要求的前提下,选取改进的hough变换提取车道线最为合适。

4.7 本章小结 本章主要是针对预处理后的图像如何获得车道线像素点和提取直线型车道线的问题进行了研究,在获取车道线像素点过程中,采用融合区域和边缘信息检测车道线像素,为了突出该方法的优点,并和自适应二值化图像做了对比,从实验仿真结果中可以看得出,融合区域和边缘两种信息检测车道线边界前者更能克服存在的虚假边界。之后,对车道线形状提出用直线模型假设,因为该模型计算量小,更适合车辆高速行驶,而且对于结构化的高速公路,曲率一般较小,用直线模型在一定一般情况下也是适用的。提取图像中的特征直线即车道线,是研究的重点,本设计文对同一幅道路图像,在基于直线型车道模型的假设的基础上,应用传统hough变换、改进的hough变换和“中值截距”算法提取并标记车道线。从仿真结果可以看出,改进的hough变换实时性更高。为了提出最优算法,本设计文选取了另外两幅图像,对算法的鲁棒性和实时性做比较,提出改进的hough变换在一定程度上更适合车道图像中提取直线。

第5章 结论和展望 虽然本设计文的研究取得了一定的进展,可以在一定的程度上解决前方道路识别算法的鲁棒性和实时性之间的问题。但是,由于时间和知识水平的限制,目前的研究程度离实际工程应用还有很大差距,存在许多的问题有待研究。对进步的展望和设想,主要有以下几个方面:
由于路面情况是千变万化的,所拍摄到的图像也是复杂多变的,所以本设计设计中的一些算法或相关处理不可能面面俱到,特别是当道路边缘复杂多变时,道路上存在较多障碍物时或者道路由于特殊原因内部边缘强度大于外部时等等,这种这些情况下可能出现一些不可预料的结果,因此本设计设计提出的观点和研究的内容有待进一步深入。而且本设计处理的方法不够全面,没有对道路的区域生长法做深层次的研究,如果生长准则和种子点选的不够理想,所得出来的结果就会很糟。实现动态的选取是本课题进一步研究的方向。

本设计只识别直线道路边界,还不能实现弧形道路的边界识别,建立曲线道路边界模型,进行曲线道路的识别也将是今后进一步研究工作的重点。

本设计对许多阈值的选取还有待向着自适应的方向改进,如获得检测图像过程中,融合两种信息所需要的约束条件,因此实现自适应阈值化是本课题今后研究的一个重要方向。

本设计识别的方法在车道标记线基本清晰的情况下使用,在当车辆上坡、下坡或标记线褪色时,可能出现意想不到的结果。当然还可以引入更多更新的技术补充到道路检测系统中来,比如模式识别的特征提取,人工神经网络的学习以及建立道路模板库等技术。

总之,道路检测是一个仍需要不断补充完善的课题,需要更多新技术新思想融入其中。而新技术、新思想源源不断的充实进来的过程,也就是智能视觉导航从一种理念、一种模型走向实用的过程。

参考文献 [1] 蒋杰.新型智能车辆视觉系统及图像处理技术的研究[C].硕士学位论文,吉林大学,2003, 6~7. [2] 董因平.高速汽车偏离预警系统的算法研究[C].博士论文,吉林大学,2004,4~5. [3] 王驰.基于单视目视觉的道路检测算法研究[C].硕士学位论文,长春理工大学,2008,17~25. [14] 姚敏等.. 数字图像处理[M].,北京:机械工业出版社,2006. [5] Xin Li, XiaoCao Yao, Yi L. Murphy. A real-time vehicle detection and tracking system in outdoor traffic scenes[C]. Proceedings of the 17th International Conference on Pattern Recognition, 2004 23~26. [62] 周金萍编著.. 图形图像处理与应用实例[M].,北京:科学出版社,2003. [37] 张兆礼.. 现在图像处理技术及MATLAB实现[M].,北京:人民邮电出版社,2001. [8] ZuWhan kim. Robust lane Detection and Tracking in Challenging Scenarios[J],in IEEE 2008,9. [9] 孔即祥编著.图像分析[M].北京:科学出版设,2005. [10] 李兵,张鹏飞.基于增强转移网络的室外移动机器人道路图像理解[J].中国图象图形学报,VOL.9.2004,30~32. [11] 杨正帅.基于视觉的道路识别技术在移动机器人导航中的应用研究[C].硕士学位论文,南京理工大学,2007,42~45. [12] 李若皓,丁东花.一种基于扫描线的车道线识别算法[J].2004,12~13. [4] Xin Li, XiaoCao Yao, Yi L. Murphy. A real-time vehicle detection and tracking system in outdoor traffic scenes[C]. Proceedings of the 17th International Conference on Pattern Recognition, 2004. [13] 胡斌,何克忠.基于分段直线模型和ATN的车道识别方法[J].2006,40(10):15~18. [14] 虞凡,吴惠思,等.从图像中快速检测直线的并行算法[J].2006,40(12):7~8. [15] 赵颖,王书茂,等.基于改进hough变换的公路快速检测算法[J].2006,11(3):21~23.[5] 李兵,张鹏飞. 基于增强转移网络的室外移动机器人道路图像理解[J].中国图象图形学报, VOL.9.2004. [6] 孔即祥编著. 图像分析,北京:科学出版设,2005 [167] 刘丹编著.. 计算机图像处理的数学和算法基础[M].,北京:国防工业出版社,2005. 致 谢[8] ZuWhan kim. Robust lane Detection and Tracking in Challenging Scenarios[J] ,in IEEE 2008,9 [9] 李若皓,丁东花. 一种基于扫描线的车道线识别算法[B],2004 [10] 胡斌,何克忠. 基于分段直线模型和ATN的车道识别方法[T],2006,40(10) [11] 虞凡,吴惠思等. 从图像中快速检测直线的并行算法,2006,40(12) [12] 赵颖,王书茂等. 基于改进hough变换的公路快速检测算法[DB],2006,11(3) [13] 杨正帅. 基于视觉的道路识别技术在移动机器人导航中的应用研究[c],硕士学位论文,南京理工大学,2007 [14] 蒋杰. 新型智能车辆视觉系统及图像处理技术的研究[c],硕士学位论文,吉林大学,2003 [15] 董因平. 高速汽车偏离预警系统的算法研究[c],博士论文,吉林大学,2004 [16] 王驰. 基于单视目视觉的道路检测算法研究[c],硕士学位论文,长春理工大学,200 本论文的工作是在石彦辉老师的悉心指导下完成的。石老师严谨的学风、教书育人的敬业精神和对事业的执着追求,对我影响至深,将使我终生受益。在课题的研究过程中,她给了我很多帮助,如软件的使用、图像的选取和相关的参考资料,节省了我很多时间。在一些算法的选取和设计上,石老师也提出了一些宝贵的意见。在此,我向石老师表示最诚挚的感谢和致意! 论文的完成当然也离不开其他老师的帮助和指导。在此,感谢电气分院工程楼的所有实验老师和相关领导,在毕业设计过程中,他们免费开放机房供我们查询资料,给我们带来很大方便。尤其在后期,实验室老师的理解和支持,为我们延长实验室的开放时间。同时,感谢实验室所有的同学都严格要求自己,创造了良好的学习环境。

最后, 感谢一些室友和同学,在软件安装和使用上对我的帮助。另外,还有所有关心和关注我的朋友们。

附 录 实验中用到的部分程序如下:
clc %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%读图最后得到灰度图像rg A=imread('w516.jpg'); [r c d]=size(A); r2g=zeros(r,c); red=zeros(r,c); green=zeros(r,c); blue=zeros(r,c); rg=zeros(r,c); for i=1:r; for j=1:c; red(i,j)=A(i,j,1);%提取图像的红色分量 green(i,j)=A(i,j,2);%提取图像的绿色分量 blue(i,j)=A(i,j,3);%提取图像的蓝色分量 end end for i=1:r; for j=1:c; rg(i,j)=0.5*red(i,j)+0.5*green(i,j); end end rg=uint8(rg); for i=1:r; for j=1:c; if rg(i,j)>178; rg(i,j)=255; end end end figure; subplot(2,2,1);imshow(A);title('原图')% 显示原图像 subplot(222);imshow(rg);title('彩色通道提取法-灰度图'); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% figure r2g=rg; i=r2g;%输入灰度变换后的图像 subplot(221);imshow(i);title('原图') subplot(223);imhist(i);%显示直方图 h1=histeq(i); subplot(222);imshow(h1);title('直方图均衡化后的图') subplot(224);imhist(h1); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% i=h1;%直方图均衡化后的图像 j=imnoise(i,'salt & pepper',0.02) k1=medfilt2(j); figure; subplot(121);imshow(j);title('添加椒盐噪声图像') subplot(122);imshow(k1);title('3*3模板中值滤波') %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% clc r2g; figure; subplot(221);imshow(r2g); title('原图像'); W_H1=[2 3 0;%选用自定义差分模板增强左车道标记线 3 0 -3; 0 -3 -2]; W_V1=[ 0 3 2;%选用自定义差分模板增强右车道标记线 -3 0 3; -2 -3 0]; T = 0.28; % the threshold in the 2-value I = r2g; % read the image [height,width] = size(I); I1 = double(I); I3 = double(I); I4 = double(I); I2 = zeros(height+2,width+2); % put the image's data into a bigger array to void the edge I2(2:height+1,2:width+1) = I1; for i=2:height+1 % move the window and calculate the grads for j=2:width+1 sum3 = 0; % 不同方向的模板算子 sum4 = 0; for m=-1:1 for n=-1:1 sum3= sum3 + W_H1(m + 2,n + 2) * I2(i + m,j + n); end end for m=-1:1 for n=-1:1 sum4 = sum4 + W_V1(m + 2,n + 2) * I2(i + m,j + n); end end grey1 = abs(sum3) + abs(sum4); I3(i-1,j-1) = grey1; end end big = max(max(I3)); % 归一化 small = min(min(I3)); for i=1:height for j=1:width I3(i,j) = (I3(i,j)-small)/(big - small); % 归一化 if(I3(i,j) > T) I3(i,j) = 1; % 二值化 else I3(i,j) = 0; end end end subplot(222); imshow(I3);title('sl、sr算子处理的图像') %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% figure;subplot(221);imshow(A);title('原图') gg=bwmorph(I3,'thin',inf); subplot(222);imshow(gg);title('细化的图像') I = rg; [x,y]=size(I); [height,width] = size(I); seedx=round(x); seedy=round(y/2); gr=I(seedx,seedy) W_H = [ 1 1 1; % the model in the horizon direction 1 1 1; 1 1 1]; I1 = double(I); I2 = zeros(height+2,width+2); % put the image's data into a bigger array to void the edge I2(2:height+1,2:width+1) = I1; for i=2:height+1 % move the window and calculate the grads for j=2:width+1 sum1 = 0; % the cumulus for m=-1:1 for n=-1:1 sum1 = sum1 + W_H(m + 2,n + 2) * I2(i + m,j + n); end end grey=sum1/9; I1(i-1,j-1) = grey; end end I1=uint8(I1);%邻域平均化灰度图像 %subplot(222);imshow(I1);title('区域生长-路面区域图像') [x,y]=size(I1); I2=zeros(x,y); I=double(I); I1=double(I1); for i=1:x; for j=1:y; if abs(I1(i,j)-I(i,j))<=70&abs(I(seedx,seedy)-I1(i,j)<=90) I2(i,j)=1; end end end subplot(223) imshow(I2);title('区域生长-路面区域图像') I4=zeros(x,y); for i=round(5):x-4; for j=5:y-4; if gg(i,j)==1 for m=i-4:i+4; for n=j-4:j+4; if I2(m,n)==0&sqrt((i-m)^2+(j-n^2))<=2 I4(i,j)=1; end end end end end end subplot(224) imshow(I4);title('检测图像') %在一个窗口显示原图、区域生长-路面区域图像 figure;subplot(221);imshow(A);title('原图'); subplot(222) imshow(I2);title('区域生长-路面区域图像'); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% clc figure; t0=clock %===========提取特征直线==========% ff=I4;subplot(221);imshow(ff);title('检测的图像') %===========提取特征直线==========% [x,y]=size(ff); rho_max=floor(sqrt(x^2+y^2))+1; %由原图数组坐标算出ρ最大值, %并取整数部分加1 %此值作为ρ,θ坐标系ρ最大值 rho_max1=max(rho_max,180); accarray=zeros(rho_max1,180); %定义ρ,θ坐标系的数组,初值为0. %θ的最大值,180度 %Theta=[0:pi/180:180*pi/180]; %定义θ数组,确定θ取值范围181 Theta=[0:pi/180:180*pi/180]; %cos=cos(Theta); %sin=sin(Theta); for m=1:round(y/3); for n=round(x/3):x; if ff(n,m)==1; for k=1:180; %将θ值代入hough变换方程,求ρ值 rho=(n*cos(Theta(k)))+(m*sin(Theta(k))); %将ρ值与ρ最大值的和的一半作为ρ的坐标值(数组坐标),这样做 %是为了防止ρ值出现负数 rho_int=round(abs(rho/2+rho_max/2)); %在ρθ坐标(数组)中标识点,即计数累加,存于第ρ行θ列。

accarray(rho_int,k)=accarray(rho_int,k)+1; end end end end subplot(222);colormap(hot); gray; imagesc(accarray);title('hough变换后的图') xlabel('\theta'), ylabel('\rho'); %=======利用hough变换提取直线======% k1=1; %存储数组计数器 for rho_n=1:rho_max; %在hough变换后的数组中搜索 for theta_m=1:180; if accarray(rho_n,theta_m)>=36; %设定直线的最小值。

case_accarray_n(k1)=rho_n; %存储搜索出的数组下标 case_accarray_m(k1)=theta_m; k1=k1+1; end end end %把这些点构成的直线提取出来,输出图像数组为I_out I_out=zeros(x,y); for n=round(x/3):x; for m=1:round(y/3); if ff(n,m); for k=1:180; rho=(n*cos(Theta(k)))+(m*sin(Theta(k))); rho_int=round(rho/2+rho_max/2); %=======找符合的点并输出=======% for a=1:k1-1; if rho_int==case_accarray_n(a)&k==case_accarray_m(a); I_out(n,m)=1; end end end end end end subplot(223);imshow(I_out);title('利用经典hough变换提取的图像') time = etime(clock, t0) %=====================end=======================% %求最长直线 maxacc=accarray(1,1); for ii=1:rho_max1; for jj=1:180; if accarray(ii,jj)>=maxacc;%rho行,theta列 maxacc=accarray(ii,jj); rhomax=ii;%记录最长直线的参数rho值 thetamax=jj;%记录最长直线的参数theta值 end end end rhomax;%显示rho值 thetamax;%显示theta值 Theta(thetamax); II_out=zeros(x,y); k=1; for n=1:round(x); for m=1:round(y); if ff(n,m)==1; rho=(n* cos( Theta(thetamax)))+(m* sin( Theta(thetamax))); rho_int=round(abs(rho/2+rho_max/2)); if rho_int == rhomax ; II_out(n,m)=1;%找到像素点在角度Theta(thetamax)变换下等于最长直线变换的rho值点 end end end end subplot(224); imshow(I4);hold on; [xx,yy]=size(II_out); [xb,yb]=find(II_out); x1=xb(1); lastx=length(xb); xend=xb(lastx); y1=yb(1); lasty=length(yb); yend=yb(lasty);%找到起始点 hold on; line( [y1,yend] ,[x1,xend],'linewidth',3);title('根据hough做标记线'); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% clc; t0=clock ff=I4;%输入检测的图像 [x,y]=size(ff); a1=zeros(x,1); b1=zeros(y,1); k=1; for i=1:x for j=1:round(y/2); if ff(i,j)==1; a1(k)=i; b1(k)=j; k=k+1; end end end m=length(a1); a2=max(a1) h=1; for i=1:m; if a1(i)==a2; jiaobiao(h)=i; h=h+1; end end b1=b1(jiaobiao); b11=max(b1); %ff(a1,b1)为选中的车道线第一个像素点 k=1; for i=round(1):round(x); for j=1:round(y/2 ); if ff(i,j)==1&i~=a2&j~=b11; kkb(k)=(b11-j)/(a2-i); bbc(k)=b11-kkb(k)*a2; k=k+1; end end end theta=atan(-1./kkb); theta1= theta+pi, roi=bbc.*sin(theta); roi1= roi+abs(roi); maxtheta=max( theta1); maxroi=max(roi1); accum=zeros(round(maxtheta)+1,round( maxroi)+1); for i=1:length(theta); thetaint=round( maxtheta/2+theta1(i)/2); roiint=round( maxroi/2+roi1(i)/2)+1; accum(thetaint,roiint)=accum( thetaint,roiint)+1; end p=max(max(accum))%出现峰值处的累加器的值 for i=1:length(theta); thetaint=round( maxtheta/2+theta1(i)/2); roiint=round( maxroi/2+roi1(i)/2)+1; if accum(thetaint,roiint)==p; ji=i; end end k=1; m=1; for i=round(x/2):x; for j=1:round(y/2); if ff(i,j)==1&i~=a2&j~=b11; kk(k)=(b11-j)/(a2-i); bb(k)=b11-kk(k)*a2; theta(k)=atan(-1./kk(k)); if theta(k) ==theta(ji) ; xji(m)=i; yji(m)=j; m=m+1; end k=k+1; end end end %xji=median(xji); %yji=median(yji); ji; theta(ji); imshow(I4);hold on; line( [yji,b11] ,[xji,a2],'linewidth',3);title('根据改进的hough做标记线') time = etime(clock, t0) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% figure; subplot(221);imshow(A);title('原图'); subplot(222);imshow(I4);title('检测图像'); subplot(223);imshow(I4);hold on; line( [y1,yend] ,[x1,xend],'linewidth',3);title('根据hough做标记线'); subplot(224);imshow(I4);hold on; line( [yji,b11] ,[xji,a2],'linewidth',3);title('根据改进的hough做标记线') %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %中值截据输入检测图像 t0=clock clc; I_out=I4; ff=I4; [x,y]=size(ff); za1=zeros(x,1); zb1=zeros(y,1); k=1; for i=1:x for j=1:round(y/2); if ff(i,j)==1; za1(k)=i; zb1(k)=j; k=k+1; end end end m=length(za1); za2=max(za1) h=1; for i=1:m; if za1(i)==za2; jiaobiao(h)=i; h=h+1; end end %jiaobiao=max(jiaobiao) zb1=zb1(jiaobiao); zb2=max(zb1); za2 zb2 %ff(za2,zb2)为选中的车道线第一个像素点 [x,y]=size(I_out) %a=zeros(x*y,1); %b=zeros(x*y,1); [xindex,yindex]=find(I_out); lengthy=length(yindex); number=zeros(lengthy,1); k=1; for i=1:lengthy; sym=yindex(i); for j=i:lengthy; if sym == yindex(j); number(k)= number(k)+1; end end k=k+1; end if 3<number<=5; display ('图像没有垂直的车道线')%判断垂直的车道线 dis=1; else display ('图像有垂直的车道线') dis=0; end %中值截距法 if dis==1; k=1; for i=round(1):round(2*x/3); for j=1:round(y/2); if I_out(i,j); for m=i+1:i+2; for n=j+1:j+2; if I_out(m,n); a(k)=(m*j-i*n)/(j-n); b(k)=(i*n-m*j)/(i-m); k=k+1; end end end end end end a; b; a1=median(a) b1=median(b) %b1=abs(b1); kk=b1/a1; %ff(za2,zb2)为选中的车道线第一个像素点 %kk为中值截距法求出的斜率 yxia1=abs(round(zb2-(za2-1)*kk)) yxia2=abs(yxia1)-x figure; imshow(I_out);hold on; hold on yxia=72; line( [yxia1,zb2],[1,za2],'linewidth',3) %line( [72,zb2],[1,za2],'linewidth',1) za2; zb2; end time = etime(clock, t0) figure; subplot(221);imshow(A);title('原图'); subplot(222);imshow(I_out);hold on; line( [yxia1,zb2],[1,za2],'linewidth',3);title('中值截距法求出的斜率') 英文参考文献及翻译:
Due to a real-time constraint and, then,slow processor speed,the lane markings have been detected based on simple gradient changes,and much of the older work has presented results on straight roads /or highways with clear the lane markings or with an absence of obstacles on the road. Many commercial lane-detection systems are availabe and show good performance in many challenging road and illumination conditionns. however,they do not provide lane-curvature information but just lane positions to deliver robust results.although lane positions are sufficient for some applications,such as lane-departure warning,there are other applications which require lane-curvature information.For example,a collision-warning system can generate false alarms when the lane curvature is not known.as an alternative to a vision-based approach,one may use a global-positioning system with a geographic information system.however,the GPS has a limitation on the spatial and temporal resolution,and detailed information is often missing or not updated frequently in GIS,for example,it is important to detect the road curvature at an off-ramp because it can generate a false-collision warning,but most GPS-based systems suffer from even discriminating whether the vehicle entered an off-ramp or not.Recent efforts deal with cured roads,and robust detection results on challenging images,such as distracting shadows or a leading vehicle,have been reported.some of them work in real-time,and some do not.Sample road images are showed,many of the previous algorithms simply look for “horizontal intensity bumps” to detect lane markings,which shows reasonably good performance in many cases,but it cannot distinguish false intensity bumps caused by leading vehicles and road marking/texture from weak lane markings.for example,worn yellow markings often have similar grayscale intensity to the road pixels.in addition,we sometimes need to deal with a poor image quality,for example,when we need to postprocess an MPEG data.To deal with such problems,we apply machine learing,we applied various classifiers to the lane-marking-detection task and present a comparative analysis.since the size of the lane marking changes dramatically with respect to its distance from the car,we need to normalized them to apply a standard classifier.therefore,we first rectify the original image,when we assume that the ground is flat,we can apply a plane homography to find an image rectification.Once we have a rectified image,a lane-marking classfier is applied on a small image patch around each and every pixel.A typical width of the lane marking on the rectified images are about three pixels.therefore,raw pixel values of a 9*3 window were used as inputs(total 27 features for a grayscale image and 81 RGB values for a color image).to find a suitable classfication algorithm,we tested various classifiers. Once possible lane-marking pixels are detected,they are grouped into uniform cubicspline curves of two to four control points,splines are smooth piecewise polynomial functions,and they are widely used in representing curves.various simple representations have been proposed,and we use a cubic spline among them.in a cubic-spline representation,a point p on a curve between the and control points is represented as Where Where the parameters are uniquely determined by the control points so that the curve is smooth. is the control points, is the control points,and .a cubic-spline curve enables fast fitting,because the control points are actually on the cure. We use this property to apply a RANSAC algorithm. A RANSAC algorithm is a robust Fitting algorithm that has successfully been applied to various computer-vision problems.In,Wangetal.used a B-spline curve to represent a curved road .In a B-spline representation, control points reside outside of the curve, and its fitting procedure requires a significant number of iterations. On the other hand, the uniform cubic-spline fitting is much faster, but it may result in irregular curves when the spacing between the control points are not even. However, such irregular curves can be filtered out by applying a RANSAC technique while still maintaining the computation manageable. We also impose additional constraints to the cubic spline to prevent unreasonable hypotheses from being formed: and the maximum curvature should be smaller than 0.05. Our RANSAC fitting procedure is as follows. First, lane-marking points are grouped into line segments. Since the lane-marking detection result is noisy,we apply Gaussian smoothing followed by nonmaxima suppression to remove noise. Then, we follow a line-groupin g approach proposed in to generate line segments, as shown in Fig. The next step is to generate hypotheses. Each hypothesis is generated from a random set of one, two, or three line segments. First, for each hypothesis, it is Randomly determined whether to use two, three, or four control points. A spline curve with two control points represents a line, three for an approximate arc, and four for a more complex curve. Increasing numbers of control points increases the representational power, but at the same time, it decreases the robustness of the fitting. The use of a RANSAC algorithm makes it easier to handle this trade off because many hypotheses of various numbers of control points are generated and then evaluated by a single scoring function(presentedinSectionIV-B), which can handle this trade off. A straight line of two control points is generated from a random set of one or two line segments. Whereas a single-line segment is sufficient to make a straight-line hypothesis, we also use a pair of line segment for robust fitting.Note that we still Need hypotheses from single line segments, because sometimes, only one line segment is detected for a lane boundary, for example, for solid lane markings.An approximate arc of three control points is generated from a random set of two line segments, and a more complicated hypothesis of four control points is generated from a random set of three line segments. For robust hypothes is generation, some constraints were imposed. For example, the first(nearest) line segment should be close enough, fore xample, within 15m, to the vehicle. In addition, the two near by line segments should be on a common arc of a reasonable curvature within a small error bound. The first(nearest) control point is forced to be on the bottom of the rectified image. Its position is computed by extrapolating the fitted arc of the first two line segments. The last control point is set to the end point of the farthest line segment. It is important to force the control points in the middle to be evenly spaced, because uneven spacing of control points makes the uniform spline fitting unstable. Therefore,the rest of the control points are chosen from the end /center points of the line segments, where the spacings are as even as possible. In our implementation, atmost 100 random hypotheses are generated for each frame. Once hypotheses are generated and validated, an Overlap analysis is performed. The hypotheses are evaluated based on thei rlane-marking support, and a curve penalty scores. Details on the above scores are presented in Section IV-B. As a result, a small number of nonoverlapping (but may partially be overlapping) hypotheses are finally selected. Another set of hypotheses are generated by applying a tracking algorithm. Our tracking algorithm is based on a particle-filtering technique .Other tracking techniques, such as Kalman filtering or active contours SNAKE), can also be used within this framework. However, we chose a particle-filtering algorithm over the Kalman filter to prevent the result from being biased too much on the predicted vehicle motion but to give more weight to the image evidence. Due to vehicle’s vibration including pitch change, the motion of the lane boundaries in world(vehicle) coordinates is not smooth enough to be properly modeled by a Kalman filter. Active contours (such as the one used in) may provide a good tracking result, but it requires too much computation as compared to the proposed particle-filtering algorithm. We present a real-time lane-detection-and-tracking systemWhich is distinguished from the previous ones in the following ways. 1) It uses more sophisticated lane-marking-detectional gorithm to deal with challenging situations, such as worn lane markings and distracting objects/markings, for example, ataninter section and on a road surface. 2) It detects the left-and right-lane boundaries separately, whereas most of the previous work uses a fixed-width lane model. As a result, it can handle challenging sce-narios such as merging or splitting lane sandon-and off-ramp seffectively. 3) It combines lane detection and tracking into a single Probabilistic framework thatcan effectively deal with Lane changes, emerging, ending, merging, orsplitting lanes. Much previous work has focused on lane tracking And usually uses a time-consuming detection algorithm To initialize the tracking.We introduce a fast and robust lane-detection algorithm that can be applied in every frame in real-time. Our algorithm follows the“hypothesize and verify”paradigm. In the “hypothesize”step, lower level features are grouped into many higher level feature hypotheses, and they are filtered in the “verify” step to reduce the complexity of the higher level grouping. 由于受到实时性的限制,加上微处理器的处理速度慢,一般仅仅考虑梯度值的变化来检测车道标记线,并且以前的许多研究工作在直线型道路或高速公路上且没有障碍物的情况下取得了一定的成就。

目前有许多车道检测系统,在有障碍物和照明不均的条件下,取得了很好的效果。然而,一些算法只能定位车道曲线的位置,并不能给出车道曲线的具体信息。,当然,在某些情况下,尽管车道线位置信息对于应用一些系统已经足够,例如:车道线偏离预警系统,但是对于其它一些系统来讲,还需要车道线的具体信息是不可少的。例如,智能车辆防撞预警系统,在车道曲线具体信息不知道的情况下,可能产生错误的预警信号。当然,做为作为基于视觉导航的一个补充,可以用全球定位系统结合空间信息系统给出车道曲线的具体信息。然而,全球定位系统在解决空间和时间问题上,有很大局限性。细节信息经常丢失或不能及时更新。例如:在上坡情况下,检测出车道线的具体信息是重要的,因为若具体信息不知道的化,可能产生错误的防撞信号,但是大多数的GPS系统无论在车辆上坡还是下坡时,工作情况都是有差别的。目前,更多研究的是在有障碍物图像上的弯路识别和车道检测的鲁棒性能,例如:障碍物有移动的阴影和前方移动的车辆。目前,一些研究满足实时性要求满足,一些不能满足。这里提供车道图像的一些样本,许多以前的算法仅仅找到水平的灰度峰值来检测车道标记线,在许多时候,显示了好的检测效果,但是该方法不能区分由于前方车辆阴影或和失色的车道线标记线引起的错误的灰度值,例如:褪色的黄色标记线和真正的车道线像素点有相近的灰度值。另外,我们有时也需要处理一些质量差受损的车道图像,例如:当我们后继需要后继处理MPEG数据时。为了解决这个问题,我们应用了机器学习方法,我们用各种分类器提取车道线标记线,并且对各种分类器做了分析比较。因为车道线标记线在图像上的尺寸,在随着与车距离的远近,而随机变化。所以我们需要用一个标准的分类器使它们统一化。一旦得到了校正后的图像,在每一个像素点上,使用分类器。在一幅校正后的图像上,一个典型的车道线标记大约占据三个像素点。因此,我们用一幅9*3大小的原始图像作为输入,在灰度图像上占有27个灰度值,在彩色图像上占有81种色值。为了找到最佳的分类器,我们对每种分类器做了实验。

一旦车道线的像素点检测到后,它们可以表示成由2个或4个点控制的统一标准的三次方函数,由于样条是个光滑的多项式函数,因此提出了各种表达式,这里我们选用三次方约束的函数。在一个三次方约束的表达式中,一个曲线上的点P,若在第i个和第(i+1)个控制点之间,则它可以表示为:
其中:
是由参考控制点唯一确定的参数,因此这个曲线是平滑的。是第i个参考控制点, 是第i+1个参考控制点,t的范围是[0,1]。这里一个立方曲线拟合是相当快的,因为参考的控制点实际上在曲线上。我们利用这个特性应用RANSAC算法。RANSAC算法是一个鲁棒性很强的拟合算法,已经成功应用解决各种机器视觉问题。在文献中,王用一个B样条曲线代表弯曲的车道线。在B样条曲线表达式中,参考控制点一般在曲线的外部,并且它需要一些严格标准化的拟合步骤。另一方面,立方次的曲线拟合速度较快,但是在参考控制点之间的区域不平滑的情况下,它有可能产生不规则的拟合曲线。然而,这种不规则的拟合曲线可以通过应用RANSAC技术被滤掉,然而要有时间上的开销。我们也可以用一个附加的约束条件避免形成这种不合理的假设。我们提出的RANSAC拟合步骤如下:首先,道路标记线被分成直线段。由于车道线检测的结果会受到噪声的干扰,因此我们先用高斯滤波。然后,我们用上述的直线分类器处理图像产生分段的直线。接下来,我们用到假设。每一个假设从1、2、3条直线段构成的组合中随机产生。首先,对于每一种假设,是由2、3、4个参考控制点随机产生的。两个控制点的曲线代表一条直线,三个控制点的大致代表一个弧形,四个控制点的则代表更复杂的曲线。控制点数目的多少就增加了函数次数的复杂性,但是,同时它减少提高了拟合的鲁棒性。应用RANSAC算法很容易处理这种函数次数过大的问题,因为各种参考控制点的多种假设产生,并由一个记分函数在每种假设情况进行估计,可以用来解决这个问题。从1或2个直线段随机产生的由两个点控制一条直线,尽管一条直线段产生一条直线型假设已经是足够的,但我们用一组直线段做为产生该假设的条件,目的是增加拟合的鲁棒性。注意到,我们仍就需要从仅有的一条直线段的图像产生假设,因为,有些时候,仅有一条直线从道路图像的边缘被检测出来,例如,在一个块状车道标记线的图中。从2条直线段随机产生的由3个点控制的弧线,从3条直线段图像中随机产生的由4个点控制的更复杂的假设。为了产生鲁棒性假设的需要,我们提出一些约束条件。例如,第一条直线段应该距离车体较是近距离的,例如,离车15米。另外,两条邻近的直线段在一定的误差容许范围内应该是平行的弧线。第一个参考控制点应该控制在校正的图像的底部。它的位置通过推算两条直线段的拟合成弧的焦点来确定,最后一个参考控制点应该控制在最远的直线段的端点,选择第三个参考控制点的位置对于形成平滑的空间及其重要的,因为第3个参考控制点的不平滑性,可能使标准的拟合曲线不稳定。因此,剩下参考点的选择需在直线段的端点或中心位置,这样形成的点空间会尽可能的平滑。在我们的后继试验中,对于每一个框架大约有100种随机的假设产生,一旦假设产生且被证明是可能的,一种循环的分析过程就产生了。这种假设根据基于车道线像素的支持度被加以估计,一种评分系统的具体介绍在第5章。最后,只有几种假设被选中。另外,通过离子滤波器产生一些其它的假设。我们基于离子滤波技术追踪车道线,其它的追踪技术,例如,Kalman滤波,也可以用来追踪车道线。但是,我们选择的离子滤波有其独到的优越性,避免过多的依赖预测车辆的移动,可以再现图像。由于车辆的移动,在车体坐标系下,车道线在Kalman滤波后并不是按比例移动的。SNAKE算法可以产生一个好的追踪效果,但是相对本设计文提出的离子滤波计算量很大。

我们提出的实时性车道线检测和追踪系统,它在以下几个方面不同于以往的车道线检测工作:
1,它利用更复杂的车道线算法,不只是梯度和灰度上的差别处理有挑战性的情况,例如,褪色的车道线,分散的物体和标记线,例如在车道换道处。

2,它单独的检测左右两条车道线,许多以前的工作用一个固定宽度的车道模型。所以,它能高效的处理车道线丢失或出现、车道上下坡的情况。

3,它能结合检测和追踪的特点,高效的处理车道线出现、消失、裂开、换色等情况。许多以前的工作更多的工作在车道线检测上,通常用一个基于计时的检测算法初始化追踪条件。而我们介绍了一种快速的且具有鲁棒性的车道线检测算法能够及时应用在每个工作框架中。

我们的算法遵循“假设和检验”这样一种范例,在假设阶段,少量低级特征的点分进高级具体特征中,在检验阶段,为了减少高级特征分类的复杂性,根据一定条件它们进一步被过滤。

《基于视觉的车道线识别算法研究毕业论文.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:

文档为doc格式

相关热搜

《基于视觉的车道线识别算法研究毕业论文.doc》

VIP请直接点击按钮下载本文的Word文档下载到电脑,请使用最新版的WORD和WPS软件打开,如发现文档不全可以联系客服申请处理。

文档下载
VIP免费下载文档

浏览记录