基于Android的车载疲劳驾驶监控系统研究与设计

2017-06-03 00:30黄志艳
电子技术与软件工程 2017年9期
关键词:人脸检测

黄志艳

摘 要随着移动通信、Android系统、智能终端等技术的快速发展和进步,Android应用软件已经在多个方面得到广泛普及和使用,取得了显著的应用成效。车载疲劳驾驶监控系统可以部署在Android系统终端上,将其安装在汽车上,可以通过摄像头采集人脸信息,这样就可以准确定位人眼睛的位置,判断人眼的信息状态,设置和处理相关的驾驶员是否存在严重的疲劳驾驶现象,提醒、帮助驾驶员作出一个准确的决策,进而可以有效保证驾驶员的生命健康和安全。

【关键词】Android 车载疲劳驾驶监控系统 人脸检测 人眼定位

1 引言

汽车已经在经济、工业高速发展的情况下进入到了千家万户,为每一个家庭外出旅游、出差等提供方便,但也带来了每年数以百万的交通事故。交通安全调查报告结果显示,疲劳驾驶是造成交通事故的重要原因。互联网、多媒体及机器视觉技术经过多年的发展和改进,已经在文档搜索、视频追踪、图像处理、声音识别等领域得到广泛普及和使用,并且在人们的日常生活中开发了指纹锁、虹膜保险柜、声音门卡等系统,提高了人类生活的便捷性和智能化水平。

汽车驾驶员在行车过程中,由于连续驾驶会产生疲惫现象,这样就很容易为驾驶员带来生命健康威胁,因此采取模式识别、机器视觉、特征检测等技术,构建一个人脸和人眼识别系统,判断驾驶员是否存在疲勞驾驶,及时为用户提供一个状态预警,可以大幅度的降低交通事故的发生概率。

2 车载疲劳驾驶监控系统功能分析

车载疲劳驾驶监控系统可以采用先进的机器视觉等技术实现驾驶员面部表情识别,以便能够准确的检查驾驶员是否存在疲劳驾驶现象,可以更好的确保驾驶员安全运行。车载疲劳驾驶架空系统的主要功能包括以下三个方面:

2.1 人脸检测及跟踪

汽车行驶过程中,驾驶员一直处于行动的状态,并且驾驶位与二排后座的人员容易重叠出现在目标区域,因此为了能够保证拍摄到人脸,系统需要具备一个人脸检测和跟踪的功能,从复杂的背景环境根据人脸的特征、轮廓将其检测出来。目前,常用的人脸检测及跟踪技术很多,比如BP神经网络、支持向量机、K均值算法等,这些算法均可以将拍摄到的人脸进行灰度化或二值化,更好的过滤掉噪声数据,也即是对图像进行小波过滤,过滤掉噪声数据之后就可以将图像数据进行数学建模,生成一个矩阵描述图像内容,然后接着可以使用BP神经网络从海量数据中识别出人脸,并且保持识别的精确度很高。人脸检测及跟踪模块可以持续的对摄像头拍摄的驾驶员图片进行处理,并且能够将驾驶员的面部位置标识出来,实现动态的跟踪定位。

2.2 人眼定位功能

人脸检测及跟踪仅仅可以针对人脸进行粗略定位,这样就可以缩小人眼检测的范围,更加直接、快速的定位到人眼。通常情况下,人眼处于面部的固定位置,人脸通常是人眼型长度的五倍,又被人们称为无眼,人眼的位置通常处于第二眼和第四眼之间,由此,我们可以根据此分布规律对人脸区域分割,进一步缩小人眼检测的范围。人眼定位完毕之后,可以采集驾驶员当前的人眼状态数据,并且将这些数据传输到疲劳检测模块。

2.3 疲劳检测模块

疲劳检测模块是系统的核心模块,其可以根据采集到的人眼数据,将人眼的状态划分为闭合、张开、眯缝等状态,比如,如果人眼露出的面积大于80%,则可以判定驾驶员的眼睛是张开状态,意识处于清醒状态,可以安全驾驶汽车;如果人眼露出的面积大于50%且小于80%,则可以判定驾驶员的眼睛是眯缝状态,属于轻度疲劳状态,及时的发出警报声音提醒驾驶员停车休息或更换驾驶员;如果人眼露出的面积小于50%,则表示驾驶员的眼睛处于闭合状态,则可以判定驾驶员是昏睡状态,此时应立即启动应急措施,比如大声鸣笛、震动驾驶位等,唤醒驾驶员,保证驾驶员不会真正入睡。

具体的,车载疲劳驾驶监控系统采用数据挖掘技术,从海量的数据资源中寻找潜在的知识信息。基于数据挖掘的车载疲劳驾驶监控系统可以利用管理系统、传感器等采集数据,将采集到的视频帧进行二值化,然后进行人脸检测和跟踪,定位和分析人眼状态,判断驾驶员驾驶状态,将结果其输出到显示器上,具体的车载疲劳驾驶监控系统信息处理流程如图1所示。

3 基于Android的车载疲劳驾驶监控系统设计

车载疲劳驾驶监控系统部署于Android操作系统,人们操作系统时主要针对电容屏进行触碰,实现事件的输入,比如包括控制蓝牙连接摄像机、鸣笛喇叭和显示器等,因此可以针对Android开发板的发起蓝牙扫描,Android智能终端等待蓝牙连接。Android开发板可以根据需求编辑自己的名称,等待连接的Android智能终端需要按照开发板的要求设置。开发板可以选择Android智能终端的设备名称可以建立良好的连接,这样做的好处是手机端仅需要修改蓝牙设备名称即可,然后就可以进行连接配对。开发板作为扫描设备时,自动配对的步骤如下:

(1)根据需求强制打开蓝牙,此时蓝牙设备不需要手动打开,也不需要用户进行确认即可执行第二步。

(2)开发板自动获取蓝牙适配器,并且开始扫描操作。

(3)扫描到Android智能终端设备之后,开发板自动发起连接。

(4)开发板与Android智能终端能够自动化的进行配对操作,自动配对可以采用PIN码的模式,此时就不需要简单协议进行操作。

(5)开发板始终处于一个等待蓝牙通道传输数据,这样就可以从数据流中读取数据包。

Android智能终端作为等待连接的机器设备,其实现数据传输的步骤如下:

(1)人工手动打开Android智能终端的蓝牙功能。

(2)根据需求设置Android智能终端的蓝牙设备名称。

(3)等待连接。遥控系统发起连接的是Android开发板,因此需要精准的设置需要连接智能终端的名称,以便能够开发板更加快速和精准有效地实现通信连接。

(4)蓝牙连接成功之后,开始控制指令,通过输出数据流发送数据包,实现蓝牙通信传输。

Android系统、摄像机、鸣笛喇叭等设备连接完毕之后,车载疲劳驾驶监控系统可以采用ESB(企業服务总线)、SOA(面向服务架构)等技术从物理资源组织方面构建共享系统,弥补传统异构系统数据格式不一致的问题。SOA传输协议是新时期Web Service服务体系中的一种存在的标准传输协议,SOA协议定义了一个完善的逻辑业务服务请求者和逻辑业务服务提供者之间相关的信息传输规范,因此这些SOA协议可以促使XML数据传输的更加安全,这样能够使SOA协议采用了传统的互联网传输协议,这样就可以使HTTP作为数据传输的标准模式进行传输,这样就可以为用户提供一个格式化的相关协议信息,并且能够承载相关的HTTP传输协议,这些协议主要包括SOA封套信息、SOA编码规则、SOA RPC进行逻辑业务处理表示等信息。另外,本文引入了B/S体系架构,使得客户端连接服务器地址即可系统,即使后期系统运行升级也是在服务器端进行,车载疲劳驾驶监控系统整体架构如图2所示。

B/S架构将车载疲劳驾驶监控系统划分为三个层次,分别是表示层、逻辑业务处理层和数据业务处理层。首先,用户可以进入到表示层,利用键盘或电容屏等输入期望的逻辑业务处理信息,这样就可以将这些信息利用组件发送到每一个子系统;逻辑业务处理层可以根据业务请求需求接收处理信息,这样就可以将逻辑业务解析出来,划分为两个组成部分,分别是业务请求和数据请求,如果用户信息仅仅包括业务请求,逻辑业务处理层处理完毕之后就可以将结果集成、封装起来,发送给前台表示层,如果用户信息请求还包括数据请求,就可以发送给数据库,执行数据业务处理。逻辑业务处理内容执行完毕之后,业务请求涉及到数据信息,就可以通过JavaBean、SOA、ESB或云计算等工具将这些信息发送到数据层,实现数据的插入、修改、删除和查询,并且能够将数据操作结果封装起来反馈给服务层,服务层反馈输出到表示层,实现前端用户界面的操作和处理。

4 结束语

基于Android操作系统的车载疲劳驾驶监控系统可以利用前置摄像头采集驾驶员的面部图像,分析驾驶员的眼睛闭合状态,判断驾驶员是否处于疲劳驾驶,并且可以安装在开源的操作系统上,能够得到更快更迅速的改进,为降低车辆交通事故和保证驾驶人员的生命安全作出贡献,具有重要的作用和意义。

参考文献

[1]李翊,陈星,严华.基于多疲劳信息融合的车载疲劳检测系统的研究和实现[J].计算机测量与控制,2016,24(01):16-19.

[2]王浩,韩敏,董杰.基于Android平台的车载视频智能监控系统的研究[J].电子技术应用,2016,42(06):121-123.

[3]蔡菁,程雷,王红霞.基于Kinect的疲劳驾驶综合监测系统研究[J].计算机工程与科学,2015,37(12):2379-2385.

[4]张华,吴欣,庄志惠.智能控制技术在汽车疲劳驾驶监控中的应用研究[J].电气应用,2016,25(08):100-102.

[5]夏芹,宋义伟,朱学峰.基于PERCLOS的驾驶疲劳监控方法进展[J].自动化技术与应用,2016(06):43-46.

作者单位

泰山职业技术学院 山东省泰安市 271000

猜你喜欢
人脸检测
基于人脸特征定位的SNS网站应用组件研究与设计