基于边缘检测与Hough变换的车道线检测文档格式.docx
- 文档编号:421793
- 上传时间:2023-04-28
- 格式:DOCX
- 页数:34
- 大小:965.87KB
基于边缘检测与Hough变换的车道线检测文档格式.docx
《基于边缘检测与Hough变换的车道线检测文档格式.docx》由会员分享,可在线阅读,更多相关《基于边缘检测与Hough变换的车道线检测文档格式.docx(34页珍藏版)》请在冰点文库上搜索。
Fourthly,makingabriefintroductionofprincipleofHoughtransformandusingHoughtoextractthelanemarker.
Finally,conclusionsaregivenwithrecommendationforfuturework.Overall,theproposedalgorithmcaneffectivelyextractthelane,withbetterrobustness.
Keywords:
LanedetectionEdgedetectionimagegreyHoughtransformMATLAB
第一章绪论
1.1研究意义及背景
高速公路的通行里程是一个国家发展水平的重要标志之一。
高速公路具有车辆通行能力大、交通事故少、经济效益高的特点,它的不断发展引起了经济社会的重大变革,不仅有力地改变了人们的时空观念和地域观念,更促进了公路沿线地区社会和经济的发展,便利了沿线地区人们的出行,人们的生活质量和办事效率也得到了极大提高。
汽车是高速公路的重要载体,凭借其灵活的机动性为人类生活的改善和现代社会的发展做出了巨大的贡献。
随着汽车的普及,交通安全问题越来越受到人们的普遍关注和极大重视[1]。
20世纪40年代时,人们开始研究人-车-道的相互影响问题,由于道路建设缓慢,世界各地的交通事故、环境污染、能源浪费、道路堵塞现象变得越来越严重【2】,尤其是在我国,交通问题日益突出,目前,我国已成世界上交通事故死亡人数最高的国家之一。
据报道,我国2014年交通事故死亡人数为34292,34人,比起2013年31604,3人、2012年30222,5人、2011年29618人,死亡人数呈逐年小幅度的上升趋势。
因此,从上世纪70年代开始,全世界各国的工程师开始利用迅猛发展的电子,信息,计算机等高新科技技术来缓解目前拥堵的交通状况,并陆续在世界各地建立新型交通系统,并由此产生了智能交通(ITS)
【3】【4】【5】的概念。
智能交通系统(IntelligentTrafficSystems,ITS)的前身是智能车辆道路系统(IntelligentVehicleHighwaySystem,IVHS)。
智能交通系统将先进的信息技术、数据通信技术、传感器技术、电子控制技术以及计算机技术等有效地综合运用于整个交通运输管理体系,从而建立起一种大范围内、全方位发挥作用的,实时、准确、高效的综合运输和管理系统。
该系统的一个主要子系统:
车道偏离警告系统。
因此,研发一种保障行车安全的综合系统十分必要。
当驾驶员疲劳以及精神分散或者车辆出现车道偏离以及车辆安全车距过小存在追尾可能时能给予主动报警,必能极大地降低交通事故发生的可能性,对于减少公路交通事故及人员伤亡有着特别重要的意义。
而该系统一个至关重要的工作就是快速地,准确地利用车载传感器获取前方道路的车道线或道路边缘。
1.2国内外技术发展状况
1.2.1国外车道偏离报警系统
车道线是道路交通中最重要的交通标志,可以对车辆的行驶起到约束保障的作用。
无论是在车辆安全驾驶系统中还是在基于机器视觉的智能车辆导航中,车道线的检测与识别都是一个基本的、必须的功能模块,通过它不仅可以降低交通事故的发生,而且可以为以后智能交通深入研究提供帮助。
因此早在人们对智能车以及智能交通研究开始阶段,就十分重视对车道线检测与识别的研究。
许多国家都投入大量资金以及人才对其进行深入研究并取得了丰硕的研究成果,在这些国家中尤以德国、美国、意大利、日本对这一技术研究的比较深入。
1.AURORA系统
该系统由美国卡内基梅隆大学机器人学院于1997年开发成功。
该系统由带广角镜头的彩色摄像机、数字转换器和一个便携SunSparc工作站等组成。
该系统通过安装在车辆一侧的视野大约为1.5m-1.6m区域的俯视彩色摄像机检测车辆旁边的车道标识,通过数字转换器采集摄像机的视频输出并在一个便携Sunspace工作站上进行处理,处理速度为60Hz。
2.AutoVue系统
该系统由前DaimlerChrysler公司和美国的Iteris公司联合开发。
该系统主要由一个安装在汽车内风窗玻璃后部的摄像机、两个立体音箱、一个小显示设备和控制单元等组成。
该系统工作原理是通过实时监测本车在当前车道中的位置,计算本车到车道标识线距离,然后与设定的报警距离相比较,判断是否进行预警。
当检测到将要发生车道偏离时,它将发出一种类似于车辆在隆声带上行驶时发出的隆隆作响的声音来提醒驾驶员修正车辆位置。
目前,AutoVue系统已经在欧洲的多种货车上作为一个选件进行了装备。
3.Mobileye_AWS系统
该系统由总部设在荷兰的Mobileye公司研制。
该系统利用安装在前风窗玻璃上的单个摄像机监测车道标识线,测量和监控本车与道路边界的距离。
该系统的车道偏离警告模块通过检测道路边界,计算车辆相对于车道的位置和车辆的侧向运动,预测车辆将横越车道标识的时间,当该时间低于设定值时,系统触发视觉警告和声音警告,以使驾驶员对不同的危险状态做出适当的反应而减少意外事故的发生。
该系统在有意识的车道偏离、制动和没有道路标识等情况下能对警告的产生进行了抑制。
4.DSS系统(DriverSupportSystem)
该系统由日本三菱汽车公司于1998年提出,并于1999年秋季应用于模型车上。
该系统由一个安装在汽车后视镜内的小型CCD摄像机、一些检测车辆状态和驾驶员操作行为的传感器以及视觉和听觉警告装置组成。
该系统利用由CCD摄像机获得的车辆前方的车道标识线、其他传感器获得的车辆状态数据和驾驶员的操作行为等信息,判断车辆是否已经开始偏离其车道。
如有必要,系统将利用视觉警告信息、听觉警告信息以及振动转向盘来提醒驾驶员小心驾驶车辆。
1.2.2国内车道偏离预警系统
1.JLUVA-1系统
该系统由吉林大学智能车辆课题组开发。
该系统是基于单目视觉的前视系统,主要由车载电源、嵌入式微机、显示设备、黑白CCD摄像机、数据线、音箱以及图像采集卡等组成。
系统利用安装在汽车后视镜位置处的CCD摄像机采集汽车前方的道路图像,通过图像处理获得汽车在当前车道中位置参数,当一旦检测到汽车距离自身车道白线过近有可能偏入邻近车道而且司机并没有打转向灯时,该系统就会发出警告信息提醒司机注意纠正这种无意识的车道偏离,从而尽可能地减少车道偏离事故的发生。
2.基于DSP技术的嵌入式车道偏离报警系统
该系统由东南大学开发,是基于单目视觉的前视系统,由模/数转化及解码电路模块、缓冲电路模块、媒体处理器DSP电路模块、编码及数/模转换电路模块等模块组成。
该系统通过车载摄像头采集被跟踪车道线的模拟视频信号,经解码生成数字信号码流缓冲后送到高速媒体处理器DSP的视频接口,然后再由视频处理模块对数字视频信号进行车道特征值的提取,最后将处理后的视频信号送编码及数/模转换电路输出显示。
1.3本文主要研究内容
本文研究的主要内容是车道线检测识别与软件设计。
车辆的自动或辅助驾驶、驾驶员预警系统是智能交通系统(IntelligentTransportationSystem)的重要研究内容,而道路边界的识别和跟踪是实现这一技术的首要问题。
本文在借鉴国内外研究成果的基础上,致力于提高我国快速车道线识别技术。
本文分为以下几个模块:
图像的采集、图像预处理(图像灰度化、边缘检测等)、基于Hough变换的直线检测算法、提取车道线。
本文共分五章:
第一章主要介绍了课题研究的背景、意义和研究的国内外现状,结尾介绍了本文主要研究内容和章节安排。
第二章介绍编程工具MATLAB图像处理模块的使用。
第三章主要介绍了道路图像预处理当中的一些技术,首先是图像灰度化,然后介绍几种图像增强的方法,如邻域平均法、中值滤波法等,并对各算法进行对比分析;
接着对几种常用的边缘检测算子如canny算子,prewitt算子,log算子的进行对比,并结合实践提出了一种新算法。
第四章介绍了进行车道线检测的主要算法,在这一章的开始简要介绍了本文需要使用的一些基本概念,然后详细介绍本文所使用的算法,给出了具体实现。
第五章对文章进行了简要的总结,指出本文的主要贡献和不足之处,对今后的车道线检测研究作了展望。
第二章MATLAB简介
MATLAB语言是当今国际科学界最具影响力,最具活力的软件。
它起源于矩阵运算,并已发展成一种高度集成的计算机语言。
MATLAB语言具有很多优点,它提供了强大的科学运算,灵活的程序设计流程,并为加快程序运行速度和产生独立应用程序提供了编译器。
基于以上原因,本课题采用MATLAB语言进行程序设计。
2.1MATLAB的语言特点
MATLAB是—种以矩阵为基本变量单元的可视化程序设计语言,语法结构简单,数据类型单一,命令表达方式接近于常用的数学公式。
这使MATLAB用户在短时间内就能快速掌握其主要内容和基本操作。
MATLAB不仅能免去大量的经常重复的基本数学运算,而且其编译和执行速度都远远超过了采用C和Fortran语言设计的程序。
可以说,MATLAB在科学计算与工程应用方面的编程效率远远高于其他高级语言。
MATLAB语言有不同于其他高级语言的特点,被称为第四代计算机语言。
正如第三代计算机语言如FORTRAN与C等使人们摆脱了对计算机硬件的操作一样,MATLAB语言使人们从繁琐的程序代码中解放出来。
它的丰富的函数是开发者无需重复编程,只要简单地调用和使用即可。
MATLAB语言最大的特点是简单和直接。
MATLAB语言的主要特点有:
1.编程效率高
MATLAB语言是一种面向科学与工程计算的高级语言,允许用数学形式的语言编写程序,且比BASIC、FORTRAN和C等语言更加接近我们书写计算公式的思维方式,用MATLAB编写程序犹如在演算纸上排列公式与求解问题。
因此,也可通俗地称MATLAB语言为演算纸式科学算法语言。
由于它编程简单,所以编程效率高,易学易懂。
2.高效方便的矩阵和数组运算
MATLAB语言像BASIC、FORTRAN和C语言一样规定了矩阵的算术运算符、关系运算符、逻辑运算符、条件运算符及赋值运算符,而且这些运算符大部分可以毫无改变的照搬到数组建的运算中。
有些如算术运算符只要增加“.”就可以用于数组建间的运算。
另外,它不需定义数组的维数,并给出矩阵函数、特殊矩阵专门的库函数,使之在求解数字图像处理问题时显得大为简洁、高效、方便,这是其他高级语言所不能相比的。
3.用户使用方便
MATLAB语言是一种解释执行的语言(在没有被专门的工具编译之前),它灵活、方便,起跳时程序手段丰富,调试速度快,需要学习时间少。
人们用任何一种语言编程和调试一般都要经过四个步骤:
编辑、编译、连接,以及执行和调试。
各个步骤之间是顺序关系,编程的过程就是在他们之间作瀑布型的循环。
MATLAB语言与其它语言相比,较好的解决了上述问题,把编辑、编译、连接和执行融为一体。
它能在同一画面上进行灵活操作,快速排除输入程序的书写错误、语法错误甚至语义错误,从而加快了用户编写、修改和调试程序的速度,可以说在编程和调试过程中它是一种比VB还要简单的语言,更不用谈C和C++。
4.扩充性强,交互性好
MATLAB语言有丰富的库函数,在进行复杂的数学运算时可以直接调用,且这些库函数同用户文件在形式上一样,所以用户文件也可以作为MATLAB的库函数来调用。
用户可以根据自己的需要方便的建立和扩充新的库函数,提高MATLAB使用效率和扩充它的功能。
另外,为了充分利用FORTRAN、C等语言的资源,包括用户自己编好的FORTRAN、C语言程序,通过建立M文件的形式,混合编程,方便地调用有关的FORTRAN、C语言子程序,还可以在C语言和FORTRAN语言中方便的使用MATLAB的数值计算功能。
良好的交互性增加了代码的重用性。
综上所述,MATLAB最适用的范围是科学计算,对于本文需要实现图像处理算法来说,MATLAB再合适不过了。
2.2MATLAB的技术特点:
1.运算符、库函数丰富
MATLAB的一个重要特色就是具有一套程序扩展系统和一组称之为工具箱的特殊应用子程序,每一个工具箱都是为某一类学科专业和应用而定制的。
MATLAB包含两个部分:
核心部分和各种可选的工具箱。
核心部分中有数百个核心内部函数。
其工具箱又分为两类:
功能性工具箱和学科性工具箱。
功能性工具箱主要用来扩充其符号计算功能,图示建模仿真功能,文字处理功能以及与硬件实时交互功能;
而学科性工具箱是专业性比较强的,如control,toolbox,signal
processingtoolbox等。
这些工具箱都是由该领域内学术水平很高的专家编写的,所以用户无需编写自己学科范围内的基础程序就可直接进行高、精、尖的研究。
2.强大的数值(矩阵)运算功能
MATLAB是一个包含大量计算算法的集合。
其拥有600多个工程中要用到的数学运算函数,可以方便的实现用户所需的各种计算功能。
函数中所使用的算法都是科研和工程计算中的最新研究成果,而前经过了各种优化和容错处理。
在通常情况下,可以用它来代替底层编程语言,如C和C++。
在计算要求相同的情况下,使用MATLAB的编程工作量会大大减少。
MATLAB的这些函数集包括从最简单最基本的函数到诸如矩阵、特征向量、快速傅立叶变换的复杂函数。
函数所能解决的问题其大致包括矩阵运算和线性方程组的求解、微分方程及偏微分方程组的求解、符号运算、傅立叶变换和数据的统计分析、工程中的优化问题、稀疏矩阵运算、复数的各种运算、三角函数和其他初等数学运算、多维数组操作以及建模动态仿真等。
3.界面友好、编程效率高
MATLAB程序书写形式自由,被称为“草稿式”语言,这是因为其函数名和表达更接近我们书写计算公式的思维表达方式,编写MATLAB程序犹如在草稿纸上排列公式与求解问题,因此可以快速地验证工程技术人员的算法。
此外MATLAB还是一种解释性语言,不需要专门的编译器。
具体地说,MATLAB运行时,可直接在命令行输入MATLAB语句,系统立即进行处理,完成编译、链接和运行的全过程。
利用丰富的库函数避开繁杂的子程序编程任务,压缩了一切不必要的编程工作
4.图形功能强大
MATLAB具有非常强大的以图形化显示矩阵和数组的能力,同时它能给这些图形增加注释并且可以对图形进行标注和打印。
MATLAB的图形技术包括二维和三维的可视化、图象处理、动画等高层次的专业图形的高级绘图函数(例如图形的光照处理、色度处理以及四维数据的表现等),又包括一些可以让用户灵活控制图形特点的低级绘图命令,可以利用MATLAB的句柄图形技术创建图形用户界面。
同时对一些特殊的可视化要求,例如图形对话等,MATLAB也有相应的功能函数,保证了用户不同层次的要求。
另外新版本的MATLAB还着重在图形用户界面(GUI)的制作上作了很大的改善,对这方面有特殊要求的用户也可以得到满足。
第三章道路图像预处理
要实现车道线检测与识别,首先必须要提取图像的特征点。
但是在现实道路环境中存在很多的干扰因素,如:
阳光,阴影,车道线不清楚,车辆和障碍物等,这些都给提取车道线带来了很多的干扰。
所以,本文使用了一些图像预处理的方法对拍摄的道路图像进行处理。
3.1道路图像灰度化
车道线检测系统中,如何提高实时性是一个非常关键的技术要点。
从车辆摄像头采集的图像一般为彩色图像,但是图像的边缘检测、平滑处理等问题,基本是在灰度图像上完成,而且彩色图像所含信息量较大,对其的处理也就需要很大的计算量和较长的时间,并且对硬件要求比较高,从而在各方面影响了系统的实时性。
因此在车道线检测系统中一般需要对摄像头采集的彩色图像进行灰度化处理,使之成为灰度图,以达到提高实时性的目的[6]。
图像的灰度化是指把彩色图像变换成灰度图像的过程。
红色(Red)、绿色(Green)、蓝色(Blue)三种色彩按不同比例构成了彩色图像中的各个像素点。
各自分量的亮度由灰度值表示,由于亮度信息由暗到明是连续变化的,所以要描述图像的灰度图,就需要把亮度值进行量化。
通常划分成0~255,共256个级别,0表示全黑,255表示全白。
1~254则表示介于全黑和全白之间的不同亮度。
一般有以下四种灰度化的方法:
分量法:
将彩色图像中的三个分量R,G,B的值作为灰度图像的灰度值,根据不同的情况选择其中一种灰度图像。
公式:
=
,
;
(1)
最大值法:
选择彩色图像R,G,B中亮度的最大值最为灰度图的灰度值。
(2)
平均值法:
将彩色图像中的三个分量R,G,B的值求和再求其平均值,并将此平均值设为新的灰度值。
=
(3)
加权平均法:
根据R,G,B三个分量的重要性,将三个分量赋以不同的权值再进行平均。
鉴于人眼对绿色敏感度最高而对蓝色敏感度最低这一视觉特性,按照下式进行加权得到的灰度图像较为合理,所以本文选择加权平均法将彩色图像灰度化。
;
(4)
原图
灰度图
3.2道路图像滤波
图像滤波处理用来消除图像中的噪声,滤波既可以在空域中进行也可以在变换域中实施,基本方法就是选取像素灰度的平均值或者中值。
尽可能的保留图像所需的特征条件而抑制图像中的噪声,减少后续处理的干扰并保证图像处理的可靠性。
二值化前后均可进行滤波处理。
二值化前的滤波处理是基于灰度图像进行,滤波后势必导致灰度图像有部分信息丢失但同时也抑制了噪声的干扰。
而在二值化以后,图像仍然会出现一些散点,这是为了有利于后续的处理仍需进行一次滤波处理。
本文采取的是对灰度图像直接滤波。
目前,图像滤波的方法有很多,例如:
中值滤波法、高通滤波、低通滤波、高斯滤波、均值滤波等。
在此本文不一一介绍,只对几种常用典型的滤波方法作简要的介绍。
平均邻域法:
假设相邻的像素点之间具有相关性,这个像素点的值可以用相邻像素点值的平均值来代替,以实现图像滤波。
数学表达式如下:
(5)
中值滤波法:
中值滤波是基于排序统计理论的一种能有效抑制噪声的非线性信号处理技术,其基本原理是把数字图像或数字序列中一点的值用该点的一个邻域中各点值的中值代替,让周围的像素值接近的真实值,从而消除孤立的噪声点。
同时,中值滤波法是一种非线性平滑技术,对脉冲噪声有良好的滤除作用,特别是在滤除噪声的同时,能够保护信号的边缘,使之不被模糊。
这些优良特性是线性滤波方法所不具有的。
此外,中值滤波的算法比较简单,也易于用硬件实现。
所以,中值滤波方法一经提出后,便得到重要的应用。
滤波效果图3-1
(6)
高斯滤波:
高斯滤波是一种线性平滑滤波,适用于消除高斯噪声,广泛应用于图像处理的减噪过程。
通俗的讲,高斯滤波就是对整幅图像进行加权平均的过程,每一个像素点的值,都由其本身和邻域内的其他像素值经过加权平均后得到。
高斯滤波的具体操
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 边缘 检测 Hough 变换 车道