基于计算机视觉的司机驾驶疲劳检测系统

2019-06-15 01:01黄永平
数字技术与应用 2019年3期

黄永平

摘要:疲劳驾驶已然成为了交通事故的主要原因,但我国的疲劳驾驶研究起步较晚,产品仍未广泛应用。为此,本文通过对人脸的特征点检测为核心设计疲劳检测系统,研究的思路主要是首先检测人脸特征点,然后提取人眼特征点,通过人眼特征点位置判断司机是否疲劳。

关键词:疲劳检测;特征点检测;疲劳驾驶

中图分类号:TP391.4 文献标识码:A 文章编号:1007-9416(2019)03-0101-02

0 引言

在疲劳状态驾驶车辆,驾驶员会感到困倦瞌睡,以致于注意力不能集中、判断能力下降,甚至出现精神恍惚或瞬间记忆消失的情况,存在大量安全隐患,极易发生道路交通事故。由于大多数人对疲劳驾驶的重视程度不够,因此疲劳驾驶所造成的交通事故往往多于酒驾。尤其当今社会生活节奏偏快,人们工作压力增加,以致精神和体力长期处于疲劳的状态,但我国目前还未投用针对疲劳驾驶检测的设备,由此疲劳驾驶仍是造成交通事故的主要原因之一且比例逐年呈上升趋势。虽然疲劳驾驶检测过程复杂,且检测方法不易掌握,但基于疲劳与眼睛状态两者的相关性,加上愈加便捷的摄像机和相机采集手段,通过驾驶员眼睛闭眼情况来判别其疲劳情况正渐渐演变为一个研宄的重要方向。本文得出了一种简单可行的疲劳驾驶检测技术,研究的思路主要是首先检测人脸特征点,然后提取人眼特征点,通过人眼特征点位置判断司机是否疲劳。

1 人脸识别及人眼定位算法设计

首先我们使用了opencv里自带的人脸识别和人眼定位功能,即haarcascades包,但是效果并不理想,在光泽比较好而且眼睛睁开的幅度比较大,用opencv自带功能可以识别出人脸和人眼。但是在人眼比较小且闭合比较大时人眼定位并不准确,有时候甚至连人脸都不能识别出来,可见这个haarcascades包的识别功能太弱。

由于haarcascades包的识别功能太弱,我们选择了使用dlib包进行人眼检测和人眼定位。dlib是一个现代化的C ++工具箱,其中包含用于在C ++中创建复杂软件以解决实际问题的机器学习算法和工具。它广泛应用于工业界和学术界,包括机器人,嵌入式设备,移动电话和大型高性能计算环境。dlib能够对人脸特征点进行检测,选取其中的68个特征点进行使用,其中36-47为左右眼的特征点,如图1。

本章主要讲述了我们在实验过程使用过的方法,最后确定的方法以及各自的成功率。在基于计算机视觉的司机驾驶疲劳检测系统中,人脸识别是非常重要的一环,只有正确定位人脸,我们才能对人眼区域进行更好更精准的预处理,才能提高疲劳驾驶检测的可信度。

2 眼部疲劳识别算法

2.1 算法现实依据

目前对疲劳驾驶的定义,主要基于连续驾驶时间。而现实生活中,年龄,性别,当前时间等因素,对司机是否疲劳的影响是很大的。

疲勞驾驶一般有一下几种表现:

(1)注意力不集中。(2)驾驶动作僵硬。(3)眨眼频繁。(4)闭眼或眯眼时间过长。(5)打哈欠,流眼泪等。(6)反应时间过长。

本章主要集中于人眼状态,通过对人眼不同行为分析,判断司机是否处于疲劳状态,降低性别,年龄等因素的影响。

2.2 基于眼部状态的疲劳驾驶检测算法

一般的情况,睁眼时眼睛区域上下特征点距离较大,闭眼时上下特征点的距离较小。在得到眼部特征点后,利用眼部特征点的距离求出眼睛的高度和宽度,计算眼睛的纵横比即EAR值,用来描述眼睛的张开程度,且EAR值对摄像头和眼睛的距离不敏感。左右两只眼睛的张开程度分别表示为EAR1和EAR2,一般来说两只眼睛的张开程度是同步的,所以EAR取两只眼睛张开程度的平均值。

每个人眼睛的长宽比在眼睛开着时几乎恒定,但当眨眼发生时,眼睛的宽度会迅速下降到零,因此可以通过眼睛长宽比率判断闭眼情况,根据闭眼的时间和频率进而判断驾驶员是否打疲劳驾驶,如图2。

2.3 本章小结

本章我们设计了疲劳驾驶检测系统中最重要的算法-疲劳检测算法。该算法在人脸识别人眼定位的基础上,对视频流进行预处理,通过EAR值判断人眼状态,通过人眼状态判断是否疲劳。我们还在不同的环境中检测该算法的可信度,在现实中的各种干扰下,该检测系统均得到了预计范围内的可信度。

3 疲劳驾驶检测系统

3.1 疲劳驾驶检测流程

(1)将视频帧转化为灰度图。

(2)加载dlib人脸检测器和人脸特征点检测器。

(3)检测视频帧的人脸,并用检测器生成面部特征点集合。

(4)提取人眼区域特征点,并计算EAR的值。

(5)将EAR与闭眼阈值进行比较,如果小于阈值则计数器加一,否则计数器清零。

(6)当计数器大于疲劳阈值时即连续帧EAR小于闭眼阈值的数量大于疲劳阈值时对司机进行疲劳警告,否则循环继续。

3.2 总体设计图(如图3)

3.3 接口设计(如图4)

3.4 本章小结

本章给出了疲劳驾驶检测系统的总体流程图,总体设计,接口与硬件设计。

4 结语

本文在人的生理特征参数上,依靠当前较为先进的图像处理技术和视觉分析软件,对图像及视频流中司机的眼部区域进行处理,对人眼定位并分析人眼状态,通过我们预先设定的标准进行判断。本文采用实用性高,较为精准的dlib包进行人脸识别及人眼定位追踪,通过EAR值进行人眼状态分析。在算法设计完成后,我们在不同的环境在进行的大量的实验,并证实了该系统在大部分状态下,能保证较为良好的成功率。

但是我们所有的理论研究与实验,均在实验室中进行,此时成功率均在我们预估范围内。但在现实操控中,由于道路的复杂性,光线的变化,正侧面等因素,以及实验条件的局限性,该算法必然存在诸多不足。我们希望,在今后的研究中,系统能够更好,更准确的应用于实际生活。

參考文献

[1] 卢阳.疲劳驾驶检测系统的设计及FPGA实现[D].重庆:重庆大学,2013.

[2] 陈明初.基于人眼状态的驾驶员疲劳检测技术研究[D].重庆:重庆大学,2012.

[3] 李延枫.基于眼部识别的疲劳驾驶检测系统设计[D].四川:成都理工大学,2017.

[4] 王晓婷.基于深度学习的驾驶疲劳检测应用的设计与实现[D].辽宁:大连海事大学,2017.

[5] 陈兴劼.基于面部图像的列车司机疲劳驾驶检测与实现[D].四川:西南交通大学,2017.

Driver Driving Fatigue Detection System Based on Computer Vision

HUANG Yong-ping

(College of Computer Science and Technology, Jilin University,Changchun Jilin  130012)

Abstract:Fatigue driving has become the main cause of traffic accidents, but the research on fatigue driving in China started late and the products have not been widely used. Therefore, this paper designs a fatigue detection system based on face feature point detection. The main idea of the research is to detect face feature points first, then extract eye feature points, and judge whether the driver is tired by the position of eye feature points.

Key words:fatigue detection;feature point detection;fatigue driving