基于MATLAB的汽车偏离车道报警系统

v2-1ce1ccae34149457cbfcfa7f67ea8465_b.jpg

一、背景

为提高汽车的主动安全性并克服现有的汽车偏离车道报警系统所存在的结构复杂和成本高等缺点,文章设计了 一 种基于Matlab的汽车偏离车道报警系统,利用摄像头获取车道图像并实时传给车内计算机系统,经过对图像一系列的处 理分析判断汽车是否偏离车道而进行报警经验证,该系统能够实时检测出左右车道标志线,可以根据车道夹角法判断 汽车是否偏离车道,满足了汽车偏离车道报警的需要.该系统结构简单高效,能显著提高汽车行驶的主动安全性 关键词:汽车;偏离车道;图像处理;报警系统

据统计,约有44%的汽车事故与汽车偏离正常车 道行驶有关,其主要原因是驾驶员注意力不集中或者 疲劳驾驶,造成汽车的无意识偏离"汽车偏离车道报 警系统正是基于基本交通规则的汽车安全系统,可使 司机保持直线行驶,在司机昏昏欲睡偏离车道时发出 报警以避免交通爭故的发生目前研发的汽车偏离车 道报警系统,结构和使用复杂且成本髙,为r克服现有 技术存在的缺点,文章介绍了一种简单高效的汽车偏 离车道报警系统。

二、课题算法

1系统的结构组成

基于Mallah的汽车偏离车道报警系统由1个摄像 头、1台计算机和1个扬声器组成 摄像头安装在汽车 的纵向中心线上,在汽车的行驶过程中,由它不断地对 路面进行拍摄,并将拍摄的图像实时地传给计算机;计 算机对采集到的图像进行灰度处理、平滑滤波、边缘检 测、膨胀与腐蚀和二值化等系列处理卜气然后利用Hough 变换得到车道线,根据摄像头内参、外参和在汽车上的 安装位置等参数确定汽车相对于车道标志线的位置并 进行车道标志线跟踪;当汽车偏离车道时,系统便驱动扬声器发声提醒驾驶员修正汽车行驶方向。

2系统的算法流程

2.1灰度处理与平滑滤波

汽车偏离车道报警系统的算法流程图,如图1所示、 由于气候条件、环境温度、汽车运动及电磁的干扰,摄 像头在采集图像的过程中会受到噪声(随机信号)和最 化误差的影响.使图像变得模糊。从图1可以看出,系 统初始化后,先将摄像头采集到的图像转变为灰度图, 然后计算机系统采用两维卷积运算对灰度图像进行平滑滤波。


v2-b4faac7214ea49e74848b154ae547df8_b.jpg


图1汽车偏离车道报警系统算法流程


在图像处理过程中,两维卷积运算为加权求和的 过程,使用到的图像区域中的每个像素分别与卷积核 (权矩阵)的每个元素对应相乘,所有乘积之和作为区 域中心像素的新值。两维卷积运算的公式为:

力(x,.y)寸f(u,v)g(x-u,y-v)

式中——图像中的某一个像素点;

  1. u 像素点的横坐标,mm;

y, v '象素点的纵坐标,mm。

通过此运算,利用输入像素临域像素的加权和来 代替该输入像素,就能使灰度图像的边界变得较为平 滑清晰。

2.2边缘检测与二值化处理

对滤波后的灰度图像进行边缘检测。由于车道标 志线与路面背景具有较强的对比度,车道边缘较明显, 利用边缘检测算法检测出车道标志线边缘。在边缘检 测中,采用Sobel算子模板。Sobel算子有2个,分别用 于检测水平边沿和垂直边沿。Sobel算子模板将方向差 分运算与局部平均相结合,具有一定的噪声抑制能力, 而且由于S。阮/算子的计算量比较小,便于实时系统的 采用。在本系统中,针对左右两侧车道,可以采用Sobel 算子分别对左右车道的水平边缘进行检测。取定的 Sobel算子为:

Sobel=[-1 -2-l;000;l 2 1]

利用边缘检测法检测出车道标志线的边缘后,再 利用Ostu法对边缘增强的图像序列进行二值化处理, 该算法能够自动确定分割阈值,使前景与背景两者的 方差最大。

2.3膨胀与腐蚀处理

图像在经过平滑滤波和边缘检测后,仍存在一些 噪声,如椒盐噪声。为了使后续的处理更加容易,减少 车道标志线在检测过程中受噪声的干扰,Matlab图像 处理采用了先膨胀后腐蚀的处理过程来消除遗留噪 声。由于椒盐噪声就是黑图像上的白点,白图像上的黑 点,因此利用膨胀腐蚀过程就能很好地消除遗留噪声 2.4车道标志线识别与跟踪

经过上述处理的图像中既包括了车道标志线,又 包括了很多杂散线条,因此要对车道线进行识别,需要 将车道标志线从杂散线条中提取出来。由于实际道路 中出现直道的概率远大于弯道出现的概率,所以本系 统采用了简化的道路模型,即直线车道模型,利用 Hough变换来检测车道标志线

Hough变换是一种用于区域边界形状描述的方 法,其基本思想是将图像空间域变换为参数空间,用大 多数边缘点满足的某种参数形式来描述图像中的曲 线。Hough变换将原始图像中给定形状的曲线或直线 变换成参数空间的I个点,这样就把原始图像中曲线 或直线的检测问题,变换成寻找参数空间中峰点的问 题。直线的极坐标方程为:

p=A:cos 04-ysin 6 式中:p 像素点的极径,mm;

0一象素点的极角,(。)0

经过Hough变换系统获得直线拟合参数,然后经过 适当的变换到原图像坐标中就可以将车道标志线提取 出来。计算机系统再通过滤波器(Kalman滤波器叫对车 道标志线进行跟踪,预测出下一帧图像中车道标志线的 状态并进行参数计算,并将此参数传递给Hough变换. Hough变换在依据此参数的基础上再进行下一帧图像 中车道标志线的检测,减少Hough变换的计算负荷, 2.5偏离判断与报警

计算机系统将车道标志线提取出来后,根据车道夹角法来判断汽车是否偏离车道,如图2所示,图2 中:劣和分别为车道左右标志线与水平线夹角。

1 )左偏时的边界:当伍+仇> 左侧临界角+右侧临 界角时,左偏报警;

2)右偏时的边界:当仇+^v左侧临界角+右侧临 界角时,右偏报警。

本车道偏离决策不需要对相机进行标定,安装时 保持相机与汽车平行即可。如果汽车的左右车道夹角 之和超过某一设定阈值,则认为汽车偏离正常车道,系 统根据当前行驶状况综合判断驾驶员是否无意识偏离 了行车道,并发出报警,提醒驾驶员纠正行车路线。


v2-478d0e5d6e78b782b51c94474c50ab71_b.jpg



图2车道标志线偏离夹角示意图

3车道检测结果

图3示出提取出的车道标志线结果(车道标志线 上的2条绿实线儿试验结果表明,该系统能够实时检 测出左右车道标志线,可以满足汽车偏离车道报警的 需要。


v2-da2118242e946ec65ca5bca883a0bee4_b.jpg


图3车道标志线检测结果


4结论

该系统能够较好地实时检测出车道的左右标志 线,达到了预期的要求,显著提高了汽车行驶的主动安 全性。

参考文献

[1]易强,秦文虎.一种基于机器视觉的车道偏离报警系统[JI.轻型汽车 技术,2007(1):18-20.

|2]毕雁冰.车道偏离预警系统的一种图像预处理方法[J].深圳信息职业 技术学院学报,2006,4(3): 25-28.

[3] 王琪.一种基于MATLAB的视频图像信号提取方法[J].大众科技,2008

(4):60-61.

[4] 王宇,程耀瑜.基于Kalman滤波原理的运动目标跟踪[J].信息技术,

2008(10):56-58.

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
   安全辅助驾驶(Safety Driving Assist,简称SDA)是当前国际智能交通系统研究的重要内容, 它主要解决交通安全的问题,对于困扰运输领域的交通堵塞及环境污染两个问题也有缓解作用。基于此,世界上很多国家都在加强车辆安全辅助驾驶技术领域的研究。关于安全辅助驾驶技术的研究主要集中在车道偏离预警,前方障碍物探测,以及驾驶员状态监测等方面。近20年来,车道偏离预警系统作为安全辅助驾驶研究领域的一个组成部分,已经受到越来越多的关注,很多国家都投入大量的人力、物力和财力进行系统研发。    车道偏离预警系统研究背景 根据(美国)联邦公路局的估计,美国2002年所有致命的交通事故中44%是跟车道偏离有关的,同时车道偏离也被看成车辆侧翻事故的主要原因。AssitWare网站的分析结果认为:23%的汽车驾驶员一个月内至少在转向盘上睡着一次;66%的卡车驾驶员自己在驾驶过程中打瞌睡;28%的卡车驾驶员在一个月内有在转向盘上睡着的经历。四个驾驶员中就有一个驾驶员经历过车道偏离引起的伤亡事故。    在汽车应用中通过高性能技术提高安全性 汽车分析师认为,主动安全系统与ADAS 将成为 2010 年的顶级新技术,不仅能进一步避免事故的发生,即便发生事故,也能显著降低事故的严重性。车道偏离预警系统 (LDWS)、睡意检测以及夜视技术等将成为今后五年内高速发展的应用领域,预计复合年均增长率(CAAGR) 将超过 50%(资料来源:摘自《2004 至 2013 年车载半导体预测:安全性与便捷性电子技术将成为发展的关键》第 10 页)。在进行市场营销时,应积极向消费者宣传上述系统的优势,预计他们将非常乐于接受这种新技术,进而需求也会相应增长。对于汽车 OEM 厂商而言,在引擎、被动安全系统以及信息娱乐设备已成为当前智能化汽车的标准设备之际,主动安全系统与 ADAS 还能作为产品差异化的增值亮点。凭借其达芬奇技术 (DaVinci™) 与专为车载安全应用设计而精心优化的最新 TMS320DM643x 处理器,TI 为 OEM 厂商带来了可帮助他们向当前市场快速推出主动安全与 ADAS 解决方案的先进技术。 不过,主动安全系统与 ADAS 并不是完全无需驾驶人员干预就能完全控制汽车的保护技术,而是要为驾驶人员提供车辆周边的操作和环境条件的相关信息,以提高汽车的整体安全性。通常说来,这些系统会发出适当的预警,警告驾驶人员可能存在潜在危险,不过在特定条件下,主动安全系统也能自行做出干预,比方说自适应巡航控制等。主动安全系统目前仅在豪华轿车中处于早期实施阶段,预计今后该技术将普遍用于各类汽车中,随着技术的不断普及和成熟,规模经济效益将日益突显。举例来说,当前正处于开发阶段以及已在汽车中部署的主动安全系统包括车道偏离预警、线内行驶辅助 (lane keep assistance)、交通标志识别、盲区检测和睡意检测等。众多主动安全系统均采用图像传感器来收集可视数据。这些数据经过处理后,可提取出对象检测与对象跟踪所需的相关特性。
菜鸟提问基于MATLAB的防盗报警系统的有关问题-voice.m 话不多说,之前有人做出视频防盗系统,详见此贴。 原来的一个版本:视频监控,有东西经过监控区域就报警: 贴子如下: https://www.ilovematlab.cn/thread-133835-1-1.html 后来又有人加上了声音报警系统。声音过大就会报警。 详见此贴 声音监控,有东西发出声音就进行报警 https://www.ilovematlab.cn/thread-133881-1-1.html 。。 然后就是我们有个大作业,我想到的是将两者结合在一起,在视频监控的同时,如果声音过大就进行报警,然后拍照(要是能把照片发到邮箱就好了)。 以下是我的修改,但是一直报错。希望有人能帮忙修改下实现上面的功能。 代码贴出: function intruderdetecting2 % 运动参数阈值 motionThreshold = 200;         %  0 ~ 255 secondsToRecord = 10; % 声音参数阈值 soundThreshold = 0.1;         % 0.0 ~ 1.0 %声音麦克风 ai = analoginput; addchannel; set; set; set; samplesToRecord = ceil; set; set; set; set; %启动摄像头 a = imaqhwinfo; [camera_name, camera_id, format] = getCameraInfo; vid = videoinput; set; set; triggerconfig; start; trigger; try     wait; catch     stop; end %启动函数,时间函数 set; set; set; %创建figure fig = figure('DoubleBuffer','on', ...     'Name', 'Intruder Detection', ...     'NumberTitle', 'off', ...     'WindowStyle', 'docked', ...     'Toolbar', 'none', ...     'MenuBar', 'none', ...     'Color',[.1 .1 .1], ...     'CloseRequestFcn', @figureCloseFcn, ...     'DeleteFcn', @figureDeleteFcn); %对界面初始化 timePrevious = []; start; imagePrevious = []; start; %视频的启动函数     function videoStartFcn             imagePrevious = getsnapshot;     end %声音启动函数     function soundStartFcn             timePrevious = now;     end %视频时间函数         function videoTimerFcn         try             imageCurrent = getsnapshot;             timeCurrent = now;         catch             % getsnapshot can fail if object is deleted while we are waiting.             return;         end samplesRequested = ceil * *... ai.SampleRate); warning; try sound = peekdata; catch sound = zeros); end warning; sound = sound - mean); % Center about the mean. soundMax = max)); % Calculate max deviation from mean. timePrevious = timeCurrent; % Make our figure current. figOld = get; %if fig ~= figOld %set; %end %plot;         imageDifference = abs;         imageMax = max);         imagePrevious = imageCurrent;         figOld = get;         if fig ~= figOld             set;         end         image;         label = datestr;         xlabel;         set;         if imageMax > motionThreshold             motion = true;         else             motion = false;         end         if ~islogging             % 如果有东西闯入,进行响应             if motion                 % 将figure变红                 set;                 % 将闯入者的视频发送到你的邮箱                 str=['SB.jpg'];                 imwrite; %保存拍下来的图像                 customIntruderAction();             else                 set;             end;         end     if ~islogging    % if noise       customIntruderAction();%有人闯入时发进行报警         if fig ~= figOld             set;         end    % end     end    %function customIntruderAction()      % [y,fs]=wavread;      % sound; end     function figureCloseFcn         %关闭视频和声音         try             stop;             stop;         catch         end         closereq;     end     function figureDeleteFcn         delete;         delete;     end end 纯M文件编程。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值