基于图像识别的模拟驾驶疲劳检测系统设计及实现
2016-12-16广东工业大学自动化学院
广东工业大学自动化学院 岳 翼
基于图像识别的模拟驾驶疲劳检测系统设计及实现
广东工业大学自动化学院 岳 翼
随着科技和社会的发展,城市车辆数目日益增长。汽车行业疾速发展的同时,交通问题也变得越来越突出。按照公安部交管局的统计,每一年由于交通事故死亡的人数超过1000万人,位居世界第一。交通问题无疑给人们的生活造成极大的不便与损失,同时也严重制约城市的发展,而疲劳驾驶[1]正是引发交通事故的主要原因之一。本文针对疲劳驾驶问题,提出了基于机器视觉[2]的疲劳驾驶检测解决方案。本方案用基于图像识别[3]的方法检测和鉴别疲劳驾驶。并且用智能小车和游戏方向盘等硬件搭建了模拟驾驶系统。模拟驾驶系统与疲劳驾驶整合。构建了完善的模拟驾驶和疲劳检测系统。实验表明该方案能准确、实时的判断驾驶员的疲劳状态。
疲劳驾驶检测;模拟驾驶系统
1.引言
本文针对交通安全问题中的疲劳驾驶问题,设计一种基于图像处理的疲劳驾驶检测系统,拟解决主要问题是驾驶员脸部信息实时,精确的检测和定位;对驾驶员面部信息的高效,准确的分析;以及对疲劳状态的可靠判断。
本系统能够实时,可靠的判断驾驶员是否在疲劳驾驶,当发现驾驶员正在疲劳驾驶,就及时向驾驶员出报警。通过这种实时监测,快速报警的机制,能有效避免因疲劳驾驶而引发的交通安全事故。可以保障行车驾驶的安全性,降低因疲劳驾驶引发的交通事故,进而能间接缓解交通拥堵,增强人们的出行效率,降低出行风险及时间成本。具有很好的社会效益。
此外本文设计并实现了模拟驾驶系统,既能远程驾驶智能小车,又能用于实验验证疲劳检测算法的有效性。
2.模拟驾驶疲劳检测系统硬件设计
2.1系统整体设计框架
本系统主要由疲劳检测子系统,模拟驾驶子系统组成。系统实现功能为:当被试者通过连接在电脑端的方向盘对远端的小车进行模拟驾驶时,后台运行的疲劳驾驶检测系统能实时检测被试者的疲劳状态,当发现其处于疲劳驾驶状态时候,就及时发出报警。
图1-1 系统结构框图
2.2模拟驾驶子系统设计
模拟驾驶子系统通过连接在电脑上的方向盘能远程模拟驾驶远方的小车,小车能实时发回前方的路况信息,并在电脑端的人机界面进行显示。
图1-2 模拟驾驶系统的结构示意图
模拟驾驶子系统硬件组成:模拟方向盘是由莱仕达劲驰生产的PXN-V66力反馈有线方向盘,这种方向盘是专为PC电脑主机而设计的。模拟方向盘具有方向盘,按键板,换挡杆,踏板等组件,较为真实的模拟实际方向盘。如图1-3(a)、(b)所示。模型小车由东莞博思电子数码科技有限公司生产的A型车模,尺寸为cm,有较好的调零装置,可以自由组装。根据模拟驾驶子系统的要求,模型车需要有相关的硬件电路,包括主控板,电机驱动板,传输网络视频的手机等。如图1-3中(c)所示。要控制这样一样模型车,需要有相应的硬件电路支持,主要包括主控芯片,电源模块,电机驱动,舵机驱动等组成,如图1-3中(d)所示。
图1-3 硬件结构
模拟驾驶子系统软件部分:模拟驾驶子系统软件部分主要为PC端的人机界面。人机界面使用LabVIEW进行编程,负责接收小车传输回来的视频数据,采集模拟方向盘的数据并且将这些控制指令发送给小车。人机界面主要由视频显示界面,URL配置文本框,COM配置框,以及一些图标组成。人机界面如图1-4所示。
图1-4 人机界面
图1-5 摄像头安装示意图以及实际检测的效果图
2.3疲劳检测子系统设计
疲劳检测子程序在电脑端后台运行,通过安装在驾驶员前方的摄像头,采集驾驶员图像信息,给后台的图像处理程序进行数据处理和疲劳分析,能够实时监测驾驶员的驾驶状态,当发现驾驶员处于疲劳驾驶时候,及时发出报警。
该子系统由图像采集模块,数据处理模块组成。其中图像采集主要靠硬件(USB摄像头)实现,数据处理主要由运行在电脑端后台的疲劳检测程序实现,如图1-5所示。
疲劳检测子系统主要数据处理步骤为:预处理;人脸检测;人脸跟踪;睁眼检测;疲劳判断。详见图1-6。
图1-6 疲劳检测系统主要数据处理步骤
本文主要负责图像预处理,人脸定位,人脸跟踪和疲劳驾驶检测程序的编写。完成工作有对输入图像进行灰度化,直方图均衡化,以及自定义算法的亮度增强和对比度增强。对人脸进行检测和定位。利用Kalman滤波器对人脸进行跟踪。并通过调用OpenCV函数库及项目组自己训练好的分类器,编写了疲劳驾驶检测程序。
3.软件设计
疲劳检测程序流程:主要由初始化,加载分类器,配置Kalman滤波器,捕获图像,预测人脸区域,检测人脸区域,检测眼睛区域,跟新Kalman滤波器,计算PERCLOS,疲劳报警等部分组成。其中主要的循环部分为人脸的检测和跟踪,眼睛的检测和疲劳的判断。见图2。
图2 疲劳检测程序流程图
4.测试
最后编写的疲劳检测程序能够采集驾驶员图像,并在后台实时处理,计算其PERCLOS参数并在波形图上画出PERCLOS曲线图,当PERCLOS值大于预设阀值(0.15)时,就发出声音警报。实际检测效果如图3所示,其中绿色矩形框为根据Kalman跟踪计算得到的感兴趣区域,蓝色框为实际检测到的人脸区域,眼睛用两个小矩形框标记出。每一时刻的PERCLOS曲线在左边“坐标纸”上绘制出。
图3 程序实际检测效果图
PERCLOS曲线画在一个的白色图像上,水平方向方向等分为20份,垂直方向方向等分为20份,并用循环的方式画出这些分割线,就绘成了一个“坐标纸”。方向表示帧数,方向表示PERCLOS的值。每一帧都计算其PERLCOS值(100帧中闭眼帧数比例值),并在“坐标纸”中用红线画出阀值(0.15),当PERCLOS值大于阀值时候,电脑就会发出报警声音和文字报警。PERCLOS曲线见图4。
图4 PERCLOS曲线
通过录制不同疲劳表现次数的视频给该系统进行检测,所得实验结果接近真实情况,误检测都在4次以内,误判率小于0.15。正确报警次数接近实际疲劳状态表现次数,正确率大于80%。平均检测时间小于40ms,一秒钟可以检测25帧以上,满足实时性的要求。证明,该疲劳检测系统能够实时、正确的分析出驾驶员疲劳状态。检测效果如表1所示。
表1 疲劳检测效
实验表明,本文方法对疲劳驾驶的检测平均正确率可达到85%以上,误判率在10%以下。证明该方案的可行性和有效性。
5.结论
本章阐述了疲劳驾驶检测程序的结构框架,以及数据处理流程。对程序的实际检测效果进行了分析。分析表明,本程序能够实时,正确的监控驾驶员的状态。并且对于光照和人脸的大角度偏转有很好的鲁棒性。
[1]周鹏.疲劳事故隐患消除技术与方法[J].汽车电器,1998(4):16-17.
[2]胡占奇,刘洪玮.基于小波分析和几何特征的人脸识别方法研究[J].微型机与应用,2009,28(15):21-24.
[3]刘洪榛.基于机器视觉的疲劳驾驶检测算法研究[D].广州:华南理工大学,2012.
岳翼(1990—),云南镇雄人,硕士研究生,现就读于广东工业大学。