汽车在非结构化道路中的偏离检测讲解.docx
《汽车在非结构化道路中的偏离检测讲解.docx》由会员分享,可在线阅读,更多相关《汽车在非结构化道路中的偏离检测讲解.docx(26页珍藏版)》请在冰豆网上搜索。
汽车在非结构化道路中的偏离检测讲解
第1章绪论
1.1研究意义
从1886年德国著名的戴姆勒-奔驰汽车公司的创始人:
卡尔·弗里特立奇·本茨造出世界上第一辆汽车到现在,汽车在改变这个世界,改变我们的生活。
汽车给我们带来了很大便利的同时也带来了很大的烦恼。
空气污染,噪声污染,能源的紧缺等很多的问题,可是最烦恼的问题还是生命的问题,就是车祸的问题。
根据有关报道:
2012年末中国的民用汽车保有量已经达到12089万辆。
中国是世界上第二大汽车保有量国家。
越来越多的汽车走进普通人家的家庭。
汽车已经是现代社会中人们工作、生活不可缺少的一部分。
随着汽车的增多,车祸也越来越多。
中国是世界上车祸死亡人数最多的国家,根据国家官方数字统计有:
2011年全国共接报涉及人员伤亡的道路交通事故210812起,共造成62387人死亡。
我国每年都超过10万人在车祸中伤亡。
车祸给人们带来很大的伤亡和财产损失。
在众多的交通事故中,因为汽车偏离车道而发生车祸的概率很大。
根据相关的调查在发生有人员伤亡的车祸中将近有一半的车祸与汽车偏离车道有关。
在平时开车时候受到侧风、爆胎等影响时候汽车可能会发生侧翻。
而在侧翻车祸中车道偏离是最主要的原因。
每年车祸中有很大一部分车祸是由于驾驶员疲劳驾驶和酒驾所造成的。
驾驶员的疲劳驾驶和酒驾都很容易造成汽车无意识的车道偏离,是汽车安全行驶中最大的隐患。
所以车道偏离系统的存在将减少很多车祸的发生,减少不必要的人员和财产损失。
而且随着技术的发展和人们对于驾驶安全性和舒适性要求的不断提高。
无人驾驶系统和辅助驾驶系统在汽车中应用越来越广泛。
汽车的偏移检测也是汽车辅助系统的一个重要发展方向。
车道偏离预警系统是一种通过报警的方式辅助驾驶员减少汽车因车道偏离而发生交通事故的系统。
很多事故的发生是因为驾驶员疲劳后无意识偏移而发生事故,所以如果偏移检测系统在这时候向驾驶人员发出预警就可以大大降低事故的发生率。
该系统是辅助驾驶系统,在减少驾驶人员因为疲劳驾驶而使汽车因车道偏离而发生交通事故的同时也可以降低驾驶员实时的关注汽车是否偏离的频率,还降低了驾驶员的驾驶疲劳。
大大的提高了汽车的主动安全性。
1.2国内外发展现状
车辆辅助驾驶和无人驾驶系统不断的发展。
无论是现在汽车中的ACC主动巡航系统还是自动刹车系统等辅助系统,处理的都是车辆行驶时纵向上的问题,而当车辆发生横向上的位移时,它们是无能为力的。
不过目前汽车厂商和一些技术厂商已经研发出可以部分解决横向位移的配置———车道偏移辅助系统。
目前各大汽车厂商都在争相研发自己的车道偏离预警系统系统,名称也不尽相同,但是主体设计思想以及功能都十分接近。
这种系统的作用就是在车辆偏离车道时,传感器检测到车头前方两侧的分道线发生了变化,就会迅速判断这个变化是否来自于驾驶者的真实意愿。
如果驾驶者打开转向灯,正常进行变线行驶,那么系统不会做出任何提示。
而如果驾驶者既没有打开转向灯,也没有主动减速、转动方向盘,那么系统就会使用视觉、听觉甚至振动方向盘来提醒驾驶者潜在的危险,但提醒不会直接影响到车辆的行驶状态,这显然和未来的自动驾驶有些差距。
而现在汽车厂商在这方面又向未来的标准靠近了一步。
在对车辆控制介入程度更高的系统当中,车道偏离预警系统就被称为车道保持辅助系统,它能够暂时接管并控制车辆主动驶回原车道。
国外车道偏离预警系统有:
1、AURORA系统;2、AutoVue系统;3、Mobileye_AWS系统;4、DriverSupportSystem系统。
国内车道偏离预警系统有:
1、Jluva-1系统;2、基于DSP技术的嵌入式车道偏离报警系统。
车道偏移系统对于应用环境有着比较高的要求,比如行车速度、路面宽度以及分道线的清晰程度,所以在我国恐怕只有路况较好的高速公路上才有施展才能的机会,而对于山道省道或者路况较差的非结构化道路面来说,这套系统恐怕也鞭长莫及了。
同时如果因为雨雪及大雾天气造成路面被覆盖或者辨识度不高时,该系统也无法进行正常工作。
在由于非结构化道路的道路区域和非道路区域难以区分,所以针对非结构化道路的道路检测技术尚处于研究阶段。
1.3研究的关键技术
1.3.1图像的获取
在现在的汽车辅助驾驶中,为了解决驾驶员的盲区所带来的危险,包括前置摄像头、后置摄像头及全景摄像头应用越来越多。
例如车辆中的泊车系统和倒车系统都用到摄像头。
在偏移检测中,摄像头是关键的部件之一。
摄像头将汽车前方的实时道路通过拍照,然后向车载计算机系统。
1.3.2图像的处理
图像的处理是偏移检测的关键,由摄像头上传的图片要在车载计算机中进行一系列的处理。
图像先后要经过分割,滤波处理,边缘检测,膨胀与腐蚀处理hough变换后才能得到道路的边缘线。
1.3.3预警系统
根据图片处理后得到的道路边缘线,计算出车道的中间线,再根据汽车中部和中间线相差的距离而向驾驶员发出预警。
1.4主要研究内容
1.4.1摄像头的相关参数
在摄像头相关参数中包括摄像头的内参、外参。
内参即为摄像头的性能参数,他包括分辨率,刷新速度,开度角,扫描范围。
外参指摄像头在安装参数和相关的汽车参数。
1.4.2图像的处理
图像处理图像先后要经过分割,滤波处理,边缘检测,膨胀与腐蚀处理hough变换后才能得到道路的中间线。
1.4.2.1图像分割
为了有效地进行图像描述和分析,往往需要先将图像划分成若干个有意义的区域。
图像分割在图像处理、分析和理解中是十分重要的技术环节,图像分割的质量的优劣直接影响到后续的区域描述以及图像的分析和理解。
1.4.2.2滤波处理
由于环境等各方面条件的影响,经过分割的图像还有很多的噪音,想得到比较清晰的图像并不是很容易的事,为了得到清晰的图像要设计一个适合、匹配的滤波器和恰当的阀值。
1.4.2.3边缘检测
非结构化道路没有车道线和清晰的道路边界,道路形状不规则,没有明确的边缘,光照、天气、景物复杂多变,但是经过分割和滤波后的图像,再用laplace算子边界检测出边界。
1.4.2.4膨胀与腐蚀处理
图像在经过滤波和边缘检测后,仍存在一些噪音,为了使后续的处理更加容易,减少车道标志线在检测过程中受噪声的干扰,matlab图像处理采用了先膨胀后腐蚀的处理过程来消除遗留噪音。
1.4.2.5车道标志线识别与跟踪
利用hough变换将原始图像中给定形状的曲线或直线变换成参数空间里的一个点,然后把这些点整合成车道标志线。
1.4.3预警系统
当车身偏移超过剩下宽度的30%时候,系统向驾驶人员发出预警,提醒驾驶人员及时修正汽车行驶方向,以减少不必要的危险发生。
1.4.4建模与仿真
通过编写相关程序对非结构道路数字图像处理,和以simulink为基础的视频和图像处理模块集对系统进行仿真。
第2章系统介绍
2.1设计思路
根据调查统计,约有44%的汽车事故与汽车偏离车道行驶有关,主要原因是驾驶员注意力不集中或者疲劳驾驶而造成汽车的无意识偏离。
而偏移检测系统正好可以在驾驶员疲劳注意力不集中时候给驾驶员发出预警以避免交通事故的发生。
一定程度下可以降低驾驶员的疲劳。
该系统基于Matlab的数字图像处理。
主要对汽车在非结构化道路中行驶时的偏离检测。
系统通过摄像头对前方道路进行实时拍照,然后把拍到的数字图像上传到车载计算机系统,通过对图像的处理检测出两侧道路,再通过计算知道汽车是否发生偏离而发出预警。
系统工作流程图:
2.2非结构化道路的理解
实际的道路往往可以分为结构化道路和非结构化道路两类。
结构化道路一般是指高速公路和部分结构化好的道路,这类道路具有清晰的车道线或道路边界,道路条件比较好。
而非结构道路一般是指越野环境道路、乡村道路或者一些结构化较低的道路等。
这类道路没有车道线和清晰的道路边界,道路形状不规则,没有明确的边缘,光照、天气、景物复杂多变,道路区域和非道路区域难于区分。
由于非结构道路的特性,所以对非结构道路的检测最好是对道路的边缘进行检测。
但是道路的边缘的景物、特点一直是变化的,给检测带来很多的麻烦。
相对于结构化道路,非结构化道路的检测很难。
第3章图像收集与预处理
3.1图像的收集
该系统的图像通过安装在汽车后视镜上的摄像头进行收集。
摄像头以一定的参数安装在驾驶员右上方的后视镜前面。
摄像头能清楚地记录汽车前方所发生的一切。
当汽车在道路上行驶时候,摄像头按照一定的拍照频率对汽车前方的道路进行拍照,并把拍下来的数字图像上传到系统的车载计算机。
3.2图像的灰度化
把彩色的图像转化成灰度图像的过程就是图像的灰度化。
彩色图像的每一个像素点都由三个分量来决定,而灰度图像的像素点是由一个分量来决定,相对于彩色图像,灰度图像和二值图像更有利于图像的后期处理,灰度图像在后期处理中的计算量将大大的减少。
因为系统从摄像头中得到的图像是彩色图像,所以在对图像进行处理之前要把彩色图片转化成灰色图片。
Matlab中源程序为:
a=imread('11.jpg');
b=rgb2gray(a);
subplot(1,2,1),subimage(a)
subplot(1,2,2),subimage(b)
图3.1图3.2
上图3.1为摄像头拍下来的彩色图像,图3.2为灰度图像。
彩色经过处理后转变为只由黑白两种颜色组成,转化后的图像就特征没有任何的影响。
灰度图像的每个像素点还是用三个分量来表示,只是为后续的处理减少计算量而已。
3.3图像的灰度值调整
灰度化后的图像虽然为后期处理减少了计算量,但是每个像素点分量范围的减少影响到了图像之间的对比,很多图像的对比程度较低不利于后期处理,所以需要对图像的对比度增强或者均衡化。
图3.3
图3.4
上图3.3、3.4为灰度化图像的直方图和均衡后的直方图,由此图3.3可知灰度化后的的数字图像的对比度相对之下还很低,绝大多数灰度级集中在20~125的范围内,但均衡化后图像的对比度有很大的提高。
有利于图像后期的处理。
3.4噪声消除
现实生活中的图像通常都带有噪声,噪声主要分为两大类——高斯噪声和脉冲噪声。
高斯噪声是一种随机噪声,最主要是因为电路中的电流和电压干扰所产生,他不带有图像的信息,只会对图像造成影响。
脉冲噪声是一种不连续的噪声,最主要是外界的干扰所引起的。
脉冲噪声通常是突然的爆发然后在短时间内消失,一般是由振动等原因所引起的。
在图像的收集时候收到噪声的影响是不可避免的,我们不可能完全消除噪声的存在,只能通过其他的方法把图像中的噪声降低到最小,减少对图像处理的影响。
为了提高系统性能与准确性,需要去除图像中的噪声成分,以便于我们能提取在更加清晰的信息。
图像增强是数字图像处理最基本方法之一。
在图像的处理中经常会用到,它是通过人为的增强图像中的某部分、某个区域或者消除某部分、某个区域对图像中重要信息的影响,以便有利于计算机或者一些识别系统能更加容易的读取图像中的信息。
车辆在非结构化道路上运行时,由于非结构化道路的路况较差,汽车会发生很明显的振动,安装在汽车的摄像头会跟着汽车一起发生振动,在加上光照等各方面的原因的影响,摄像头实时记录下的图像不可避免会含有很多噪声的成分。
其中既有高斯噪声又有脉冲噪声。
但脉冲噪声远大于高斯噪声。
我们要将图像中的噪声有效的去除即使对图像进行图像滤波。
图像滤波可分为空间域、频域和小波域滤波。
最常用的空间域去噪滤波器有线性滤波和非线性滤波两种。
线性滤波器主要有均值滤波、线性加权滤波、倒数梯度加权滤波。
非线性的滤波器主要是中值滤波。
线性滤波主要用于消除高斯噪声,而中值滤波则用于消除脉冲噪声。
因为汽车在非结构化道路上行驶时候脉冲噪声远大于高斯噪声。
所以系统选择中值滤波对摄像头上传来的数字图像进行去噪处理。
3.4.1中值滤波
closeall;
clearall;
a=imread('11.jpg');
b=rgb2gray(a);
k1=medfilt2(b);
k2=medfilt2(b,[5,5]);
subplot(1,2,1),subimage(k1);
subplot(1,2,2),subimage(k2)
图3.5
图3.6
上图3.5为3x3中值滤波,3.6为5x5中值滤波,从图像中看不出他们之间的不同,但根据中值滤波的理论,右图比左图滤波的效果更加的平滑。
即使两幅图像的后期处理一样,得到的结果也会用很大的不同。
3.4.2高斯滤波
高斯滤波源程序:
closeall
clearall
%生成高斯平滑滤波模板%
hg=zeros(3,3);%设定高斯平滑滤波模板的大小为3*3
delta=0.5;
forx=1:
1:
3
fory=1:
1:
3
u=x-2;
v=y-2;
hg(x,y)=exp(-(u^2+v^2)/(2*pi*delta^2));
end
end
h=hg/sum(hg(:
));
f=imread('1.jpg');%读入图像文件
f=rgb2gray(im2double(f));
[m,n]=size(f);
ftemp=zeros(m,n);
rowhigh=m-1;
colhigh=n-1;
%%%高斯滤波%%%
forx=2:
1:
rowhigh-1
fory=2:
1:
colhigh-1
mod=[f(x-1,y-1)f(x-1,y)f(x-1,y+1);f(x,y-1)f(x,y)f(x,y+1);f(x+1,y-1)f(x+1,y)f(x+1,y+1)];
A=h.*mod;
ftemp(x,y)=sum(A(:
));
end
end
f=ftemp
figure,imshow(f);
下图3.7为高斯滤波加过图。
图3.7
3.4.3两种滤波的比较
经过高斯滤波后的图像和中值滤波似乎没有什么不同,但是后期的处理会有很大的不同,高斯滤波去除了摄像头和上传时候电子系统对图像所产生的噪声,中值滤波去除了图像中的脉冲噪声。
图3.8图3.9
3.8图是经过高斯滤波后在经过sobel边缘检测的图像,图3.9是经过中值滤波后同样进行sobel边缘检测的图像。
从两幅图像就很容易的看出两种滤波对图像后期处理的影响。
中值滤波已经把道路两边缘当成噪声给去除了,提取后续提取边缘线有很大的影响。
第4章图像处理
4.1图像分割
4.1.1图像分割的作用
图像分割是一种重要的图像技术,也是一种基本的计算机视觉技术,在实际中得到了大量的应用。
数字图像就是由很多的特征和区域组成,区域分割就是把这些区域分割区分出来,这种将一副图像分解为若干互补交叠的、有意义、具有相同性质的区域,将图像表示为物理上有意义的连通区域的集合就是图像的分割[1]。
图像分割其作用就是把反映物体真实情况的占据不同领域的具有不同特征的目标区域给区分出来,并形成数学特征。
在图像处理、分析和理解中是十分重要的环节,图像分割的质量的优劣、区域界线定位的精度直接影响后续的区域描述以及图像的分析和理解,所以图像分割至关重要。
4.1.2图像分割的定义[2]
图像分割可以形式化定义如下:
令有序集合R表示图像区域(像点集),对R分割是将R分成若干个满足下面5个条件的有序非空子集
:
(1)
、
(2)、
(3)
、
(4)、
(5)、
是连通区域
式中,是对集合中所有元素的逻辑谓词,即属性或特征均一性准则,
是空集。
属于
条件
(1)表示图像中任一个像点都某一子区域,即分割是彻底的;条件
(2)表示一个像点不能同时属于两个区域,即区域不能重叠;条件(3)表示区域内各像点属性或特征是相近的;条件(4)表示相邻的两个区域属性或特征是不同的;条件(5)表示同一区域中的像点是连通的。
4.1.3图像分割的方法
图像分割有很多的方法,依据分割时候所依据的图像特性不同,大致可以分为三大类:
阀值方法、边缘检测法、区域分割法。
阀值分割法是根据图像的灰度值的分布特性确定某个阀值来进行图像分割。
边缘检测法首先检测出图像局部特征的不连续性,然后再将不连续的边缘连成完整的边界。
区域分割方法是利用图像的空间性质,认为分割出来的属性同一区域的像素应具有相似的性质。
4.1.3.1阀值分割法
阀值法是一种传统的图像分割方法。
由于阀值处理直观、实现简单且计算速度快,因此图像阀值处理在图像分割应用中处于核心地位。
图像阀值化的目地是要按照灰度级,对图像集合进行一个划分,得到的每个子集形成一个与现实景物相对应的区域,使得各个区域内部具有一致的属性,而相邻区域布局也有这样一致属性。
其基本原理是确定某个阀值T,根据图像中每个像素的灰度值大于或者小于该阀值T,来进行图像分割【3】。
阀值方法的数学模型如下:
设原始图像为,首先以一定的准则中找出一个灰度值T作为阀值,将图像分割为两部分,即把大于等于该阀值的像素点的值置为1,小于该阀值的像素点的值置成0.在经过分割处理后的图像为二值图像,如下式表示:
(4-1)
根据上式可知,阀值方法的核心就是阀值T的确定,全局阀值T的选择直接影响分割效果。
图4.1
4.1.3.2边缘检测
在图像中,相邻的两个类型区域的分界线称为边界。
边界线是分隔物体与物体之间的线。
现实中物体的不同棱角、界线、粗糙度、阴影等原因对光的反射的程度不同,在数字图像中都会以边界的形式表示出来,特别是在灰度和二值图像中,只有黑白两种颜色,图像中的物体就是通过边界线清晰的表示出来的。
为了检测出图像中物体,很多时候就是检测物体的边界线,通过检测物体的边缘线来识别物体,但是经过预处理后一些边缘可能会很容易显示出来,可是有些边缘可能被消除掉。
影响到物体的识别。
图4.2
图4.3
上图4.2为sobel边缘分割,4.3为laplace边缘分割。
根据处理的图像可看出sobel边缘右边缘已经消失,而laplace边缘分割后边缘还能清楚的看到。
数字图像即使是经过一样,用不同算子的边缘检测就会得出不同的结果。
从以上三幅图像可以得知laplace边缘分割收到噪声的影响是最明显的。
图像中道路部分出现了很多的白点,对后续的处理有很大的影响。
可是相对与sobel算子,laplace边缘分割后道路两侧的边缘线还存在。
4.1.3.3区域分割法
区域分割法最常用的就是区域生长法。
区域生长法是根据预先定义好的的生长准则将像素或子区域组合为更大的区域的过程。
基本方法就是先定义一组种子,从定义好的种子开始,将与预先定义还的种子性质、特性相似的那些领域像素添加到每个种子上来而形成这些生长区域。
4.2形态学修正
数学形态学是一门建立在数学理论上的科学。
是一种非线性图像处理与分析的理论。
数学形态学是由一组形态学的代数运算子组成的,他的基本运算有4个:
膨胀、腐蚀、开启和闭合。
4.2.1膨胀
假设A和B是中的集合,那么B对A的膨胀
定义是【4】:
(4-2)
这个公式是以B关于它的原点的映像,并且以Z对映像进行平移为基础的。
上面的式子还可以写成:
(4-3)
图像的膨胀其实就是就是用结构元素与图像中的元素做“与”运算。
结构元素就是图像中的边缘元素,通过做“与”元算增强边缘,以增加边缘的连续性。
4.2.2腐蚀
作为中的集合A和B,表示为
的B对A的腐蚀为【4】:
(4-4)
该式指出B对A的腐蚀是一个用z平移的B包含在A中的所有的点z的集合。
式子的另外一种表达是:
(4-5)
其中
是A的补集,
是空集。
从式子可以看出膨胀和腐蚀都是对图像做“与”运算。
不同的是结构元素,膨胀是集合里的非B元素,而腐蚀是集合中的B元素。
4.2.3开运算
开运算一般会平滑物体的轮廓、断开较窄的狭颈并消除细的突出物。
结构元B对集合A的开操作,表示为,其定义如下【4】:
(4-6)
因此,B对A的开操作就是B对A的腐蚀,紧接着用B对结果进行膨胀。
4.2.4闭运算
闭运算会平滑轮廓的一部分,但与开操作相反,它通常会弥合较窄的间断和
细长的沟壑,消除小的空间,填补轮廓中的断裂。
用结构元B对集合A的闭操作,表示为
定义如下【4】:
(4-7)
B对集合A的闭操作就是简单地用B对A膨胀,紧接着用B对结果进行腐蚀。
4.3边缘检测
图像边缘是一种重要的视觉信息,在日常生活中我们可以根据边缘很容易分辨出不同的物件,而在数字图像处理中计算机可以根据边缘来识别不同物件。
从而图像边缘检测是图像处理、图像分析。
模式识别、计算机视觉以及人类视觉的基本步骤。
经过预处理后的数字图像边缘会明显的很多,且收到噪音影响变得较小。
这时候对图像进行边缘检测所得到的结果较为准确和可靠,对图像的后续处理和分析较为有利。
为了得到更加准确和可靠的结果,边缘检测一直在研究中,实现边缘检测的方法也有很多,经典的算子有:
灰度梯度算子、Roberts算子、sobel算子、Laplace算子等。
4.3.1灰度梯度算子
梯度算子又称为一阶微分算子,图像的梯度函数既是函数灰度变化的速率,它在边缘处为局部极大值。
通过梯度算子估计图像灰度变化的方向,增强图像中的灰度变化区域,然后对增强的区域进一部判断边缘。
对图像进行微分运算后,每一个像素点都有一梯度值反映该点的边缘强度[5]:
(4-8)
相应的幅值:
(4-9)
相应的方向:
(4-10)
4.3.2Roberts算子
灰度算子一般是用来检测水平和垂直边缘的,因此灰度算子对水平和垂直的边缘比较敏感。
Roberts算子一般是用来检测45度和135度边缘。
(4-11)
所以灰度算子和Roberts算子可以根据图像边缘的特征来选择使用。
图4.4
图4.5
4.3.3Sobel算子
sobel算子对图像进行处理时候,对图像中的任何一点都会产生对应的梯度矢量和相应的法向矢量,sobel算子另一种检测形式是各向同性sobel算子,它对图像边缘不的检测也是检测图像水平和图像的垂直边缘。
与普通的sobel算子相比较,各向同性sobel算子具有加权作用,所以对边缘的检测更加的准确。
(a)(b)
上图(a)为Sobel算子垂直方向上模版,(b)为Sobel算子水平方向模版。
对于水平方向模版有:
(4-12)
如果,则认为当前中心像素点为垂直边缘上的点。
对于垂直方向模版有:
(4-13)
如果有,则认为当前中心像素点为水平边缘的点。
如果不考虑边缘的方向
(4-14)
则认为当前中心像素点为图像边缘上的点。
T是门限值。
图4.6
图4.7
图4.8
4.3.4Laplace算子
Laplace算子是一种重要的边缘检测算子,灰度梯度算子是对图像一阶导数。
Laplace算子是对图像二阶导。
(4-15)
用二阶差分方程表示为:
(4-16)
Laplace算子还可以用矩阵来表示,它有下图几个模版:
图4.9
4.3.5几种算子的比较和选择
图4.4到图4.9展示了几种边缘检测算子对图像边缘检测的结果。
从图中我们可以很容易看到这幅图像的Roberts算子检测相对其他几种道路的边缘是最完整的清晰的,但同时路边的其他景物的边缘也很清晰。
Sobel算子的垂直检测几乎看不到道路的边缘,水平检测中的边缘线也是断断续续,而叠加后的效果同样很不明显,道路两边的其他景物的边缘一样不是很清楚。
Laplace算子检测虽然很能显示出边缘线,但是道路中间出现很多的小白点,说