基于机器视觉的车道线检测方法研究

 2022-01-17 11:01

论文总字数:17802字

目 录

1 绪论 1

1.1 机器视觉

1.2 研究背景与意义

1.3 国内外研究现状

1.4 车道线检测的影响因素

2 系统设计方案 3

2.1 MATLAB 基本介绍

2.2 系统总体分析

2.3 系统结构设计

3 图像预处理 5

3.1 获取感兴趣的区域

3.2 灰度化处理 5

3.3 图像噪声滤除 6

4 车道线特征提取 7

4.1 边缘检测 7

4.2 直线检测 9

4.3 曲线拟合 11

4.4 复杂路况跟踪算法

4.4.1 卡尔曼滤波基本原理

4.4.2 基于卡尔曼滤波确定感兴趣区域

4.4.3 卡尔曼滤波跟踪算法消失点检测 14

5 系统的实现与分析 15

5.1 系统界面设计

5.2 部分关键函数

5.3 识别结果分析 18

6 总结 18

参考文献 18

致谢 20

基于机器视觉的车道线检测方法研究

舒雅

,China

Abstract: With the rapid development of the economy, families have increased their holdings of vehicles. In the process of driving a vehicle, for the driving safety, the recognition of lane lines is particularly important.For the situation, the goal of this design is to develop a lane detection system that can quickly identify lane lines.This design is based on machine vision and is programmed and implemented using Matlab.The processing module includes preprocessing, edge detection, line detection, curve fitting and complex tracking algorithms. Through practice, it is proved that the system can realize fast and presize discerning of lane lines.

Keywords: machine vision;lane line detection;MATLAB;image processing;kalman filter

1 绪论

1.1 机器视觉

人们对世界的理解,通常是通过五官来感知。随着科学技术的发展,单纯依靠人力来完成一些危险的工作是很困难的。因此,通过长期发展,机器视觉技术变得越来越成熟,机器视觉可以更加高效,准确地完成工作。

换而言之,机器视觉就是利用机器代替人类视觉进行判断。机器视觉是人工智能的一个分支,可以智能地模仿人类的相关行为。机器视觉检测系统是通过图像捕获设备将捕获的目标转换成图像信号,并将其发送到专用图像处理系统。根据像素分布、亮度、色彩等信息,将其转换为数字信号。然后根据所需条件输出结果,对设备进行最终控制,原理如图1.1所示。

图1.1 机器视觉检测原理图

机器视觉涉及诸如图像处理、光学成像、传感器、控制模拟以及计算机硬件和软件技术等技术。机器视觉技术的飞速发展极大地提高了智能化、自动化、使用效率和可靠性水平,本设计利用机器视觉智能地对车道线进行检测。

1.2 研究背景与意义

近年来,我国汽车产业快速发展。随着车辆智能化需求的日益增长,先进辅助驾驶系统是智能化交通的重要保障。生活中,大多数交通信号及道路情况均是通过人类视觉传递给驾驶员,而机器视觉在驾驶过程中能大大地提高对环境的感知及预警,这可以有效减少安全事件的发生。在实现辅助驾驶的过程中,对车道线进行快速准确的检测是必不可少的。车道线是重要的交通标志线,并且是在驾驶汽车期间的约束。鉴于这种情况,这种设计的目的是开发一个车道检测系统。硬件主要负责检测车辆前方的道路,收集车辆前方的车道线图像并传输数据。该设计负责软件部分,主要包括预处理、车道线图像处理等,以实现在更复杂的环境中快速准确地检测车道线。

本设计所研究的基于机器视觉的车道线检测系统可用于以下领域:(1)智能车的自动安全驾驶系统;(2)道路识别系统;(3)对道路的交通状况进行全面自动管理的现代交通系统。

1.3 国内外研究现状

在国内,汽车产业的迅速扩张导致了众多交通安全问题,这已成为一个急待解决的社会问题。为了解决这个问题,智能车的概念应运而生。近年来,智能汽车的应用在智能交通领域中具有重要意义,对于提高道路安全和减少交通事故的发生起到了关键性作用。我国的科技研究水平,与美国、德国和日本等国家相比,仍然存在着很大差距。随着我国人民生活水平的不断提高,人们的出行已经离不开汽车,实际汽车保有量也在不断增加。因此,对于车辆安全驾驶而言,车道线检测系统的研究在我国将会显得尤为重要。因此,我们迫切需要使用机器视觉技术来帮助运输行业快速准确地识别车辆前方的车道线。

在国外,机器视觉技术发展迅速。美国是最早拥有无人驾驶车这个概念的,并且在很早以前就开始鼓励无人驾驶车这个新兴领域发展。而在无人车领域,表现最为出色的无疑是谷歌公司。因此,开发基于机器视觉的识别技术尤其重要,该技术可以有效快速识别车道线。

目前基于机器视觉的车道线检测算法包括基于图像特征[1-2]和基于模型匹配[3-4]这两类。基于图像特征的算法主要是通过颜色、形状、纹理等信息对车道线信息进行提取,但是易受光照变化、标识线磨损、道路复杂情况等因素影响,干扰以及不确定性较大。基于模型匹配的算法主要需要先估计道路模型,然后根据图像信息建立道路模型[5-6]。经过大量研究发现:直线模型具有良好的实时性,但不适合弯道线检测,适用范围较窄;抛物线模型易受道路环境的复杂度影响,在处理车道直线与曲线连接处时,连续性较差;样条曲线模型虽然检测效果好,但是计算量较大。

为了解决上述问题,本设计提出了一个集成了机器视觉、图像处理和模式识别等技术的系统。首先通过摄像头拍摄到含有车辆前方车道线图像并传入到本系统,然后进行预处理,获取感兴趣区域并进行去噪等处理,再利用边缘检测算法、直线检测算法、曲线拟合算法,提取车道线参数并进行训练,实现对车道线的检测。

1.4 车道线检测的影响因素

通过研究与学习,总结出以下几种情况影响车道线的检测:(1)车道线图像易受光线,颜色等条件的影响,导致所得模糊或失真,难以准确检测;(2)车道线的图像中,易受前方车辆遮挡车道线,尤其是白色车辆遮挡车道线,如图1.2所示为前方车子遮挡下拍摄的车道线图像效果。(3)车辆在行驶的过程,车道线的检测易受地面其他标识的影响,如地面上的白色箭头等。

图1.2 前方车子遮挡下拍摄的车道线图像效果

2 系统设计方案

2.1 MATLAB基本介绍

MATLAB是美国Mathworks发布的,专注于科学计算、可视化和交互式编程。MATLAB的功能十分强大,其核心是由C语言编写而成的,可以执行矩阵操作、绘制函数和数据、实现算法、创建用户界面以及其他编程语言连接程序等。主要应用于工程计算、控制设计、信号处理与通信、图像处理、信号检测等领域。MATLAB的基本数据单元是一个矩阵,其指令表达式与数学和工程中常用的形式非常相似。MATLAB由一系列工具组成,这些工具使用户可以轻松使用MATLAB函数和文件,其中许多使用图形用户界面。随着MATLAB的不断升级,用户界面越来越精致,人机交互更加强大,操作更简单[7]

Matlab的特点有:(1)具有完备的图形处理功能,实现计算结果和编程的可视化,用户可以在命令窗口中将输入语句与执行命令同步,还可以编写一个大型的复杂应用程序(M文件)再运行;(2)友好的用户界面和接近数学表达式的自然语言使得学习者易于学习和掌握,并且更加有利于非计算机科学技术人员的使用;(3)它包含大量计算算法、高效数值计算和符号计算功能,使用户能够摆脱复杂的数学分析;(4)在开发环境中,它允许用户在编程时更容易控制多个文件和图形窗口,支持功能嵌套、条件中断等。

本设计主要是在MATLAB R2015a环境下进行的,软件界面如图2.1所示。本设计的程序分为两个部分,一为对单帧车道线图像进行车道线检测,二为对车道线视频中的车道线进行检测。无论是对于单帧车道线图像进行检测,还是对于车道线视频中的车道线展开检测,都需要先通过Divide_frames.m程序将视频分解为单帧车道线图像,保存在Data文件夹中。对于单帧车道线图像的检测,再运行Picture_detection.m程序,即可以显示对单帧车道线图像的检测步骤以及结果。对于车道线视频中放入车道线检测,运行Lane_detection.m来检测车道线,则会在Matlab弹出的窗口呈现出对分解后的每一帧图像的连续的检测结果图像,这些图像会被自动保存在output文件夹中。最后通过Create_Video.m程序,通过output文件夹中的单帧车道线图像生成车道线检测视频并保存。

图2.1 MATLAB软件界面

2.2 系统总体分析

该设计提出了一个集成了机器视觉、图像处理和模式识别等技术的系统。首先通过行车记录仪拍摄到车辆行驶前方车道线图像并传入到本系统。紧接着,对图像进行初步的处理,即预处理。由于拍摄到的图像中含有车头、天空、路灯等部分无效信息,对输入的图像定位出大致有效的车道线区域,并对感兴趣的区域进行定位,再对图像进行灰度化处理,并实现对车道线图像的滤波处理,排除明显的噪声点。之后,对车道线图像进一步处理,运用边缘检测算法提取车道线边缘并对图像进行二值化处理,从而使得图像呈现鲜明的黑白效果,由此更加方便对图像中的有效信息进行提取。对目标区域进行多边形区域获取,并利用直线检测及曲线拟合算法,提取车道线参数并生成两条识别线与原图结合,利用卡尔曼滤波对感兴趣的目标区域进行追踪,实现对车道线的检测。

2.3 系统结构设计

本设计大致分为四个模块,结构图如图2.2所示,图2.3为系统的详细过程图。

图2.2 模块总体结构图 图2.3 系统的详细过程图

3 图像预处理

在此设计中,导入的车道线图像为.jpg格式。本设计的目标是检测车辆前方的车道线区域,但是通常情况下,摄像机所采集的图像信息包含很多干扰因素。因此,本设计要对车道线进行检测和识别,首先要对获取的图像进行预处理。预处理图像有助于提高图像质量并加快后续的计算机处理速度。

3.1 获取感兴趣的区域

在生活中,车辆通常配备驾驶记录器,车辆一般不会行驶在单一的情境中,而是比较复杂的情景。所以,通过行车记录仪所获取到的图像并不是十分理想,通常所获得的图像包含大量的非道路区域,如天空、车头、路边的树木等,由此图像的全局处理将增加计算复杂度,同时也会降低实时性能。此外,无效区域也会干扰车道线的信息并影响车道线检测的精度。因此,需要对获取的图像进行处理,去除大量无效区域并保留有效区域。图3.1中,红色框中显示的区域是用于车道检测的感兴趣区域,根据车辆前方行车记录仪的安装情况,该区域到达消失点并占据图像底部大约一半的区域,同时感兴趣区域必须移除包含车头的底部区域。

图3.1 车道检测的感兴趣区域

3.2 灰度化处理

通过摄像机获取的图像为RGB彩色图像,是彩色图像还原性好但占用内存也较大,增加处理器的负担,难以满足实时性的要求,而灰度图像所包含的信息量小,所需的内存空间为彩色图像的1/3,能够降低算法的复杂度。因此,彩色图像并不适合直接进行处理,通常的彩色图像是三通道的,为了便于处理,对其做单通道处理,即将彩色图像转化为灰度图像。

剩余内容已隐藏,请支付后下载全文,论文总字数:17802字

相关图片展示:

您需要先支付 80元 才能查看全部内容!立即支付

该课题毕业论文、开题报告、外文翻译、程序设计、图纸设计等资料可联系客服协助查找;