Android平台下车道线检测程序设计毕业论文
2020-04-01 11:02:42
摘 要
随着人们生活水平的提高,私人汽车数量越来越多 ,交通事故频发,辅助驾驶员安全驾驶的智能交通系统受到研究人员的广泛关注。车道线检测则是智能交通系统中的一个重要研究环节,因其能识别出具有导航作用的车道线而受到重视。本设计从透视形变的原理入手,以基于矩阵的变换的逆透视方法为基础,开发了一种基于视觉的安卓系统,能对车道线进行实时检测。主要实现步骤如下:
(1)通过已知的参照物提取角点并计算逆透视矩阵。在不需要获取相机参数的情况下,通过透视图像与俯视图像上四组共八个准确对应的点来计算逆透视矩阵,并定义ROI来加快角点的识别。
(2)对透视图进行逆透视变换。通过逆透视矩阵对透视图进行转换,逆透视矩阵来源于我们已经获取的角点。
(3)对获取的逆透视图像进行边缘提取。首先将图像转换成灰度图,通过Canny算法提取边缘。Canny算法将明显轮廓与低阈值轮廓结合进行,可以准确地获取图像的边缘。
(4)使用直线拟合算法对点进行直线拟合,使用ROI限定检测区间,计算直线的斜率来去除非目标直线,最终获得准确结果。
(5)将程序移植到安卓中,编写安卓界面,调用手机硬件以实现车道线检测功能。
关键词:车道线检测,逆透视变换,轮廓提取,霍夫变换,android平台
Abstract
With the improvement of people's quality of life, the number of private cars is increasing, and traffic accidents also occur frequently. Intelligent traffic systems that assist drivers in driving safety have received extensive attention from many researchers. Lane line detection is an important field in the research of the intelligent transportation system, and it is valued because it can identify lane lines which act as the navigation identifier. This takes the method which based on matrix transform as the starting point ,and developes an Android program based on vision-based real-time lane detection to implement the detection of lane lines. The main steps are as follows:
(1) Extract corner points from known reference objects, and calculate the inverse perspective matrix through four groups of points which are precise as well as corresponding without acquiring camera parameters, and define the ROI to speed up identificating corner points.
(2)use the transform matrix to get the inverse perspective projection image.The transform matrix is acquired from the eight corner points which we have already detected.
(3) The Canny operator is used to outline the grayscale image obtained by the camera. First convert the image to a grayscale image and use the Canny algorithm. The Canny algorithm combines an explicit contour with the low threshold contour to accurately capture the edges of the image.
(4) Use a line fitting algorithm to fit the points to a single line, use the ROI to define the detection area, calculate the slope of lines to remove non-target lines, and finally obtain accurate results.
(5) Transplant the program into Android platform, design Android interface, make use of the phone hardwares to implement the function of lane detection.
Key Words:Lane detection,inverse perspective projection,Contour extraction,Hough transform,Android platform
目录
第 1 章 绪 论 1
1.1研究的目的与意义 1
1.2国内外研究现状 2
1.2.1车道线检测系统的研究现状 2
1.2.2Android操作系统的发展状况 3
1.3论文主要研究内容 4
第2章 逆透视投影变换算法研究 6
2.1逆透视投影原理分析 6
2.2常用的逆透视变换方法研究 8
2.2.1 基于简化相机模型的逆透视变换 8
2.2.2 基于图像消失点的逆透视变换 9
2.2.3 基于矩阵变换的逆透视变换 10
2.3获取匹配点 11
2.3.1基于Harris角点的精确定位 11
2.3.2寻找透视图像中棋盘上的角点 12
2.3.3寻找俯视图像中棋盘上的角点 16
第3章 车道线检测算法 20
3.1图像预处理 20
3.2车道线边缘检测 22
3.3霍夫变换检测车道线 24
3.3.1Hough变换原理 24
3.3.2Hough变换实现 25
3.4直线拟合算法 28
第 4 章 安卓实现与系统测试 31
4.1系统模块设计 31
4.2在安卓运行C 程序 31
4.3安卓界面与测试 32
第5章总结与展望 36
5.1 总结 36
5.2 展望 36
致谢 38
参考文献 39
第 1 章 绪 论
1.1研究的目的与意义
近些年来,由于人们生活水平的不断提高以及公共基础设施的日益完善,汽车成为了人们出行的一大重要交通方式,道路上汽车数量的增长,也带来了一系列的问题,尤其是驾驶安全问题,交通事故数量随着汽车保有量的增长而增长。据调查,75%以上的交通事故是由于驾驶员的驾驶疏忽导致的,而这些疏忽行为虽然导致的后果十分严重,但同时也是交通事故中最容易减少和避免的类型。因此,辅助驾驶员安全驾驶的智能交通系统(ITS——Intelligent Transport System)一直是人们研究的重点。ITS是计算机技术,智能硬件技术,信息技术的综合产物,并随着时代一直在发展,为提高车辆驾驶安全性,减少交通事故,以及汽车的辅助驾驶和自动驾驶开辟了广阔的应用空间。车道线作为交通标志中的一个重要部分,其诞生之初作用就是引导行驶方向,方便驾驶员更好地对道路信息进行判断,因此,车道线检测作为智能交通系统中的一个重要部分,一直以来是研究的重点。
对车道线进行检测,不仅可以不仅可以减轻驾驶员的驾驶压力,还可以对车辆突然偏离车道的危险驾驶行为作出告警,增加驾驶的安全性。因此许多科学工作者在此领域投入了大量心血,运用多种硬件进行车道线检测。根据使用硬件方法进行分类,主要有基于GPS,GIS,IMU的综合方法以及基于激光雷达传感器、基于超声波传感器与基于视觉传感器的方法[2]。
基于GPS,GIS与IMU共同作用的方法,是使用真实的地理映射,通过卫星对用户进行定位,使用PTK提供实时运动学信息。这种方法精度高,可靠性好,但是需要PTK基站,成本高。LIDAR即激光雷达测距的技术,精度很高。但是此项技术中所需要的LIDAR设备非常昂贵。超声波传感器的方法。超声波传感器成本低,易获得,但是测量距离十分有限,对环境比较敏感,最大的缺陷是不够精确。CCD(Charge Coupled Device)视觉传感器价格低、体积小,能够采集到丰富的图像信息,并且还具有采集周期短,以及保持现有道路条件不变的优势。如今随着硬件技术,图形处理技术的快速发展,使用CCD视觉传感器的方法也突破了上个世纪的计算速度,成为目前十分有前途的一种车道线检测技术。
目前,基于单目相机的车道线检测系统也发展迅猛。由于摄像机成像的透视原理使得原本平行的车道线在图像上发生透视形变相交于无穷远处,对车道线的检测造成了诸多不利影响,因此,许多学者开始研究利用逆透视投影变换来改进车道线的检测及跟踪,即将原来的平面图像经过特殊处理变换为俯视图,消除透视造成的图像变形。当前国际上的一些权威期刊及重要学术会议以及该领域的最新研究成果都证实了该方法的有效性。但是单目视觉下的逆透视投影由于深度信息的丢失而需要一定的先验条件,如相机的内外参数等,需要在本研究中一起解决。如果能在手机这个简单易得的安卓平台上开发一个车道线识别系统,那么将具有许多优势。第一个优势是使用简单方便。作为android智能手机的一个应用,用户只需要安装这个软件并运行,然后将手机置于挡风玻璃之下,拍摄参照物并识别,就可以自动检测车行道标志,进行辅助驾驶了。与此同时,该设备是即装即用,任何一个手机都可以安装此软件,并且可以随时安装或撤除。二是成本低。作为一个智能硬件平台,智能手机在中国普及率目前已经超过96部/百人,其中大部分都是Android智能机。该系统所需的硬件软件都可以在手机上得到满足。同时在手机上安装软件,在驾驶时运行软件,结束驾驶时结束运行,仍可作为智能手机使用。因此此项系统可以说是成本十分低廉,甚至可以说没有成本。三是精度较高。在成本如此低情况下,该系统仍然能以较高的精度运行,主要得益于手机上良好的硬件设备,较强的运行速度,以及成熟可靠的算法。在路况良好的情况下,该系统可以以较高的频率精确地识别并标记车道线用以辅助驾驶。开发一个基于安卓的车道线检测系统,则对于完成车道线检测,增强车辆辅助驾驶和自动驾驶的可靠性,提供驾驶安全,具有十分重要的意义。
1.2国内外研究现状
1.2.1车道线检测系统的研究现状
自智能汽车的概念在20世纪中期被提出,到二十世纪90年代,一直都是汽车发展中的热门方向。作为在发展缓慢的汽车领域取得巨大优势的机遇,智能汽车成为众多公司与学者研究的热门课题。而其中车道线识别作为其中十分重要的一环,也被注入了大量心血。
早期的车行道识别一般被集成在大型视觉导航系统之中,其中十分有代表性的两个方案分别是1995年美国卡内基梅隆大学的RALPH视觉导航系统[4]以及1998年意大利帕尔玛大学的GOLD视觉系统[5]。两个系统都是使用双目相机获取立体视觉,并进行逆透视变换获取道路俯视图,只是RALPH使用了训练神经网络进行辅助,并且算法中很多复杂计算,在当时的硬件条件下实时性较差,而GOLD系统则使用专门硬件来进行逆透视变换,使用并行SIMD硬件结构来处理算法中的复杂计算,提高实时性。此外,还有德国慕尼黑联保国防大学的EMS视觉系统[6],使用四台双核处理器处理图像,并且在以太网中通信。但是在车道线模糊和太阳直射下会导致车道线检测失败。1999年由清华大学重点实验室研制THMR智能车[7],使用视觉传感器,激光测距仪与查分GPS,磁罗盘等结合的方式,实时性好,但只能检测直线车道。美国加州大学则使用磁力来检测车道线[8]。虽然稳定可靠,但是由于要提前将磁性标记安装在公路上,即要对公路设施进行改装,推广起来工作量巨大,因此不能大规模应用。国防科技大学2002年的CITAVT-Ⅲ系统,使用了自行开发的图像处理系统,使用工控机进行特征障碍识别。
由于在一般情况下,车道线大部分时间都是直线,因此人们在假定道路车道线是直线的情况下,提出了基于车道线模型的检测方法。比如刘富强等人提出的车道线模型中采用的广义曲线方法,以及徐华荣等人的模型中包含的B样条模型。这些模型的提出前提就是车道线是直线或者近似直线,虽然效果不错,但是在实际道路变化不可预测的情况下,应用十分有限。
此外,人们还发现,随着道路标线的规范化,车道线的位置,长度,宽度,颜色等是我们可以准确预知的重要信息。因此,人们也开始研究基于车道线特征的车道线识别算法。在彩色图像中,根据颜色来处理识别车道线的方法有Watanabe的方法,根据获取的彩色图像中的颜色信息对车道线进行提取。此外还有Zheng等人的方法,将RGB彩色图像转换到CIE颜色空间进行特征提取。但是,使用颜色进行处理,不仅通道数多,数据量大,并且还要对整张图进行分析,不能采用局部处理的方法,,降低了实时性,因此不适用。
根据标准的车道线标记,我们还可以通过识别灰度图像的边缘来提取车道线标记。比如Liu HJ等人利用边缘分布函数 EDF 来检测车道线边缘的方法,以及付永春利用消失点约束中心直线提取车道线的方法。使用灰度图中的轮廓提取车道线,不仅由于图像的单通道原因降低了计算量,还适用于多变的道路环境。
分析以上车道线检测成果,我们可以看出,早期的车道线识别系统不仅受制于硬件的处理速度,还对道路条件十分敏感。车道线识别硬件五花八门,成本精确度各不相同,并且基于车道线模型的算法在车道线类型多变时会不实用。而另外的基于车道线特征的检测算法中,通过车道线的颜色特征进行处理的方法计算量大,降低实时性,而基于车道线边缘的方法虽然会在检测过程中受到阴影和其他车辆的干扰,但实时性强,检测精度符合实际要求。
1.2.2Android操作系统的发展状况
目前,市场上常见的智能终端上主要运行苹果公司的IOS操作系统以及Google公司推出的Android系统,而其他系统,比如诺基亚的塞班,微软的windows mobile,由于未赶上开源的时代而没落,最终几乎不被使用,已被母公司放弃,停止开发。其中Android操作系统是2007年由Google公司推出的智能终端系统,在智能机的浪潮中和IOS一道大放异彩,其开源性使得它能够与IOS系统竞争中不落下风,成为世界上应用最为广泛的智能终端操作系统。2017年Android操作系统中国市场占有率高达86.4%。
1.3论文主要研究内容
本课题使用目前占有率较高的Android操作系统,在Android Studio平台上完成行道识别系统的开发。
在车道线系统进行车道线检测时,首先通过照片上的棋盘角点与推测的角点获取逆透视矩阵,然后使用逆透视矩阵获取逆透视图像,对图像进行灰度化处理,提取轮廓,最终用Hough变换检测直线并绘制在图像上。
(1)获取逆透视矩阵。为了获取逆透视矩阵,我们需要知道透视图像上的四个点和俯视图上四个点的坐标,并且它们需要一一对应。为了获取这四对点,我们可以使用人工参照物——棋盘格。偏航角为0的情况下,我们知道透视图中棋盘格的角点,可以推测出这四个点在俯视图中的相应位置,从而计算出逆透视矩阵,棋盘格由于其色块边缘锐利,非常容易识别其中的角点,因此作为我们的参照物。
(2)获取逆透视变换图像。相机拍摄后的图像在逆透视变换处理后变成梯形,通过这个测算,可以使拍摄到的矩形图像的四个角点分别与逆透视变换后的梯形的四个角点进行匹配,而逆透视变换后梯形形状和大小是固定的,因此可以通过两组四个角点的匹配计算出基础矩阵,然后通过实时拍摄的道路图像,以及一个已知的逆透视矩阵,我们可以实时地求出逆透视变换后的道路图像,完成逆透视变换,为下一步检测车道线信息作准备。
(3)进行霍夫变换检测直线。要进行霍夫变换检测直线,首先要使图像的轮廓进行提取,然后进行直线检测。霍夫变换的目的是找到二值图像中经过足够多数量点的所有支线,它分析每个单独的像素点,并识别所有可能经过他的直线。当同一条直线穿过许多点,便意味着这条直线的存在足够明显。在检测到直线后,我们可以在使用直线拟合一组相近的组成直线的点,从而避免一条车道线中检测出许多条直线。首先在表示车道线的直线中选出一条,将其设为特定宽度的直线从而提高其容忍度,然后记录这条有宽度的直线所接收的点,找到最能拟合这些点的直线,最后绘出这条最佳直线。
本文的组织结构安排如下:
第 1 章,绪论。简述了本课题研究的目的与意义,分析了国内外车道线检测研究现状以及 Android 操作系统的发展现状。此外,本章也总结了论文的主要研究内容与组织结构
第 2 章,逆透视投影变换算法研究。首先通过逆透视变换几何原理阐述其在车道线检测中的作用,然后简要分析了当前几种逆透视变换方法的优缺点, 研究设计了本文所采用逆透视变换方法,对获取的图像进行逆透视变换。
第 3 章,车道线检测算法研究。首先根据本研究的实用性来选择对图像进行预处理的相关方法,简要分析车道线边缘检测算子及检测效果,然后分析了Hough 变换检测直线的原理及实现,结合 RANSAC 算法拟合出车道线,最后在源图像上显示车道线。
第 4 章,Android设计与测试。介绍安卓设计界面和使用方法,对Android平台成果进行测试。
第 5 章,总结与展望。总结了本设计的实现成果和不足,以及可以改进和发展的内容。
第2章 逆透视投影变换算法研究
根据相机的成像原理,相机拍摄到的图像实际是三维的场景在相机的二维成像平面的透视投影[9],这种投影对空间物体的反应十分逼真,但是丢失了深度信息,产生形变。因此,可以利用逆透视投影变换对图像的形变进行校正。所以为了实现车道线检测,我们不仅要了解逆透视的原理,还要分析多种逆透视算法,选择最适合的方法进行本次设
计。本设计最终选用基于矩阵变换的逆透视方法,寻找匹配点从而计算逆透视矩阵来进行变换。
2.1逆透视投影原理分析
为了能将我们所获取的透视图像通过逆透视变换转换成俯视图,我们首先要了解透视投影与逆透视投影的原理。透视投影是从某个投射中心将空间中的三维物体投影到一个二维平面所产生的图形,其与人们实际的视觉效果非常接近,因此可以更真实生动地展现空间三维物体的形象。由于在现实生活中,在不同角度高度观察同一个三维物体,在视觉上会有不同的反应,并且由于其成像原理,平行投影中的平行性,定比性不再适用,因此对透视投影进行研究,找出并利用其规律,具有重要意义。
以上是毕业论文大纲或资料介绍,该课题完整毕业论文、开题报告、任务书、程序设计、图纸设计等资料请添加微信获取,微信号:bysjorg。
相关图片展示: