新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 基于ARM的非接触式安全驾驶预警系统方案设计

基于ARM的非接触式安全驾驶预警系统方案设计

作者:时间:2014-11-25来源:网络收藏

  0引言

本文引用地址:http://www.eepw.com.cn/article/265857.htm

  随着居民汽车拥有量的逐年增加以及人们生活节奏的加快,因疲劳驾驶导致的交通事故数也逐年增加。全世界每年因交通事故而导致的死亡人数达60万,直接经济损失约125亿美元,这些事故中57%的灾难性事故与驾驶员疲劳驾驶有关。因此,研究和开发一套非接触式疲劳驾驶监测系统有着非常大的社会现实意义。

  1系统硬件设计

  本预警系统主要由微控制器、图像数据采集模块、LED预警模块、通信接口以及电源模块五大部分组成,如图1所示。根据处理速度和精度的要求,采用32位处理器。为了减小对驾驶员的影响,更好地实现非接触式,本文选用了300万像素的CMOS摄像头OV3640模块,与CCD相比,CMOS具有灵敏度高、分辨率高、低功耗以及成本低廉等优势。

  

 

  图1 系统硬件组成

  

 

  图2 LED原理图

  

 

  图3 蜂蜜器原理图

  由于Rea16410开发板上没有蜂鸣器等发声的装置,并且蜂鸣器发声和LED发光的原理类似,所以本文使用LED发光报警。图2是开发板内LED的原理图。只要给后面的引脚一个低电平就能使LED发出耀眼的红光,从而报警。在这里再简单介绍下蜂鸣器发声的原理,原理图如图3所示给P1引脚低电平就能使蜂鸣器发声。

  2系统软件设计

  2.1开发环境的搭建

  如果说系统硬件是骨架和躯体,那么软件算法就是思想。编写程序之前需要先建立好软件开发环境。软件开发环境的搭建流程图如图4所示。

  

 

  图4 开发环境搭建流程图

  

 

  图5 人脸示范图

  2.2 Adaboost算法

  Adaboost算法的基本思想就是利用大量的分类能力一般的弱分类器(weak classifier)通过一定的方法叠加起来构成一个具有很强分类能力的强分类器(strong classifier)。

  Adaboost算法的实现,采用的是输入图像的矩形特征,也叫Haar特征。脸部的一些特征可以由矩形特征简单地描绘。用图5示范。

  上图中两个矩形特征,表示出人脸的某些特征。比如中间一幅表示眼睛区域的颜色比脸颊区域的颜色深,右边一幅表示鼻梁两侧比鼻梁的颜色要深。同样,其他目标,如眼睛等,为了得到眼睛图像的信息,必须进行眼睛定位。现有的眼睛定位方法很多,基于肤色模型的方法、灰度投影法、基于模板的方法、基于神经的方法、基于特征提取等。本系统利用Adaboost算法构造一个基于类Haar特征的层叠式分类器来进行人眼定位。类Haar特征通常由2~4个矩形组成,如图6所示。

  

 

  图6 类Haar特征图

  2.3使用Haar识别人眼

  人脸的Haar特征分类器是一个XML文件,该文件中会描述人脸的Haar特征值。Haar特征还可以描述眼睛嘴唇或其他物体。

  OpenCV已经自带了人脸的Haar特征分类器。在/usr/locaI/Opencv-2.4.3/data/haarcascades下。haarcascade_frontalface_al t.xml与haarcascade frontalface alt2.xml都是用来检测人脸的Haar分类器,haarcascade_eve.xm l与haarcascade eye tree eyegla sses.xml都是用来检测人眼的Haar分类器,这个haarcascades目录下还有人的全身,嘴唇的Haar分类器。图7是检测到的人脸。

  

 

  图7 人脸识别图

  

 

  图8 人眼阈值检测图

  2.4用阈值法判断疲劳状态

  由上述算法定位眼睛并截取下来,使用sobel实现边缘检测再进行二值化处理,将二值化的图像暂存在临时文件夹中,调用临时文件夹中的图片,for循环遍历图片像素点,比较黑色像素点坐标并得到上下最大落差值,据此给定相应的高度阈值。当检测到的眼睛高度值等于或小于设定的眼睛高度阈值就记录下来,若连续五帧眼睛的高度值等于或小于阈值,则系统判定驾驶员处于疲劳状态。整个系统流程如图9所示。

  

 

  图9 眼睛处理流程图

蜂鸣器相关文章:蜂鸣器原理

上一页 1 2 下一页

关键词: ARM 网络

评论


相关推荐

技术专区

关闭