基于人眼特征的驾驶员疲劳检测方法分析

时间:2022-10-26 12:23:09

基于人眼特征的驾驶员疲劳检测方法分析

【摘要】驾驶员的疲劳驾驶是交通事故的主要原因之一,是一个重大的社会问题。人眼特征的识别是驾驶员疲劳状态识别中的关键,要判断驾驶员是否处于疲劳驾驶,首先需要判断其眼睛的状态,即眼睛的睁闭情况。本文对基于人眼特征识别的驾驶员疲劳检测技术进行了分析和讨论。

【关键词】驾驶员;疲劳检测;人眼特征

1.基于椭圆拟合的人眼特征分析

对人眼特征的分析,主要是对眼睛的睁开程度进行分析,具体与人眼的轮廓有关。常用的椭圆拟合方法包括两种,分别是基于Hough变换的椭圆拟合方法和使用最小二乘法的椭圆拟合方法。后者能够适用于各种复杂的对象模型,而且能够实现极高的拟合度。本文选择基于最小二乘法的椭圆拟合方法对人眼的轮廓进行拟合,然后根据拟合椭圆的长短轴对人眼的状态进行判断。

1.1 椭圆拟合

最小二乘法拟合椭圆,主要通过计算边缘点到理想拟合椭圆距离的平方和的最小值,并以此为依据确定理想的椭圆拟合参数。平面内任意椭圆曲线可以利用线面公式进行表示:

(1)

令,,则椭圆的方程可以表示为下面的形式:

令,其中为人眼轮廓上的一个点,则该点到所拟合的椭圆代数距离平方和为:

使得的最小为最终拟合的椭圆系数,即:

(2)

为了保证方程是椭圆,并且不会出现α的退化解,必须要使参数α满足以下条件:

(3)

但是,在上述条件的限制下,对α求解非常困难。而根据相关的研究,可以将参数按照一定的比例进行任意缩放,因此,可以将不等式3表示为等式,具体如下:

(4)

在等式4的约束条件下,该方法会产生唯一的椭圆解。令:

设,则可以得到:

(5)

则公式3可以表示为如下形式:

(6)

于是,公式2和公式4的条件约束问题就转化为在公式6的约束下,求解式5的条件极值问题,即求解:

(7)

(8)

容易求得公式7的一组广义特征值和特征向量,对于任意常量,也是公式的解,将其带入到公式8中,能够得到如下结果:

(9)

1.2 人眼特征识别

通过前面对人眼轮廓进行椭圆拟合之后,就可以利用所拟合的椭圆参数对人眼轮廓的特征信息进行表示,转换公式如下:

(10)

(11)

(12)

(13)

(14)

上述公式中,xc和yc表示椭圆中心坐标点,a表示椭圆的长轴,b表示椭圆的短轴,θ表示椭圆长轴相对于水平坐标的偏转角度。

因此,在对人眼轮廓进行椭圆拟合之后,就可以利用椭圆的长短轴比例来判定人眼的状态,即通过b/a对人眼的睁闭状态进行判断,经过分析,可以确定当b/a>0.24时,认定眼睛为睁开状态,否则眼睛处于疲劳状态。

基于椭圆拟合的人眼状态识别方法能够较好地识别人眼的睁闭状态,但是对图片的分辨率及清晰度要求较高,同时对半睁半闭合的状态进行判断时,主观性较强,识别率较低。

2.驾驶员疲劳检测

PERCLOS用于描述驾驶员的疲劳状态,当人处于疲劳状态时,眨眼的持续时间会增加,这与疲劳程度呈正比关系,在具体试验中,PERCLOS通常包括P70、P80和Em三种测量方式。为了方便检测,我们选择眼睛闭合帧数占总帧数的比值作为PERCLOS的值,即:

(15)

公式中的N表示单位时间内采集人眼图片的总帧数,n则为眼睛闭合状态下所占的帧数。根据PERCLOS的原理,当驾驶员处于疲劳状态时,眨眼的速度回降低,眼睛闭合的时间会增加,可以通过设定阈值对人眼的疲劳状态进行判断。

通常情况下,人眼在一分钟内的眨眼频率EBF大约为10-15次,如果眨眼频率过低,这可能是因为驾驶员过于疲劳,眼睛大多数时间处于闭合状态,或者是驾驶员走神所导致的。针对第一种情况,可以通过闭眼状态所占的帧数比例进行判断,即PERCLOS方法,而如果PERCLOS的值较低,且眨眼频率也低于标准值时,则说明驾驶员的眼睛处于异常状态,需要进行报警提醒。

根据相关的研究发现,在利用PERCLOS对驾驶员额疲劳状态进行判断时,通常可以设置阈值为40%,当PERCLOS>40%,则判定驾驶员处于疲劳状态,反之,则需要对驾驶员的眨眼频率进行判断,当驾驶员的每分钟的眨眼次数≤5次时,则判定驾驶员处于疲劳状态。具体的检测过程如下:

(1)对已经定位好了的人眼进行状态识别,分别用“+1”和“-1”表示眼睛的睁闭状态,则检测过程中的驾驶员眼睛状态时一个由“+1”和“-1”组成的序列,并对当前人眼的状态进行保存。

(2)对PERCLOS值进行计算,每隔30秒统计一次总帧数以及闭眼的帧数,PERCLOS的值即是状态序列中“-1”所占的比例,眨眼的次数即是由“+1”转换为“-1”的次数,由于视频的采样率是30帧每秒,如果对每帧图像均进行识别,则需要进行大量计算,而根据人眼的眨眼变化特点,我们可以进行隔帧判断,即只识别每秒内的15张图像的眼睛变化特征。

(3)根据PERCLOS的值以及驾驶员的眨眼次数判断驾驶员是否处于疲劳状态。

其中,眨眼次数的具体算法流程如下:

以全局变量Sum表示一段时间内的眨眼次数,flag={1,-1}表示眼睛的变化状态序列,静态变量Preflag表示上一帧眼睛的状态,静态变量Change表示眼睛状态的变化次数。

(1)对Sum和Change进行初始化,并均赋值为0;

(2)读取一帧图像,并以此图像的眼睛状态,对flag进行初始化;

(3)读取下一帧图像,以上一帧眼睛的状态对Preflag进行赋值,然后分析当前的眼睛状态,并对flag进行更新。

(4)通过将flag与Preflag进行比较来判断人眼状态是否发生变化,当两个值相等时,则说明眼睛状态未发生变化,则继续执行第(3)步,而当两个值不等时,则对Change加1,如果Change等于2,则将眨眼次数Sum加1,并将Change的值设置为0,然后再执行第(3)步,如此循环,知道检测结束。

表1 疲劳检测仿真试验结果

测试集1 测试集2 测试集3

正确率(%) 100 83.3 80

如表1所示,表中列出了3组测试视频的疲劳检测试验方针结果,其中测试集1时长为92s均为清醒状态,正确检测出来;测试集2时长为182s,有2个清醒场景以及4个疲劳场景,漏检其中1个疲劳场景;测试集3的时长为302s,其中包含了5个清醒场景和5个疲劳场景,漏检了其中2个疲劳场景。

通过仿真实验来看,整体检测正确率处于较高的水平,对于睁眼和闭眼状态的疲劳检测效果较好,而对于驾驶员眼睛的半睁半闭合状态漏检较为严重,这主要是由于判断主观因素较重,导致判断结果产生误差,同时图片的清晰度也会对判断结果产生较大的影响,并且在对眼睛分类器进行训练时,采用Haar-Like特征在人脸侧倾斜度过大时不够明显,导致检测结果发生误差,进而出现错误的疲劳状态判断。另外,光照情况对系统的识别准确率也存在较大的影响,当光线较暗时,检测系统会失效,导致检测失败。

3.结论

本文选择了基于最小二乘法椭圆拟合的人眼特征判断算法,在基于PERCLOS疲劳判断理论的基础上,融合了眨眼频率的疲劳判断方法。通过仿真测试发现,本次研究的方法在识别准确率上整体保持了较高的水平,但是在疲劳状态检测时,出现了漏检的情况,这主要是由于在视频清晰度、光照条件以及角度等方面的问题都容易对疲劳判断的结果产生影响。针对这类问题,还需要不断进行研究并对系统进行改进,使系统的检测准确率进一步提高,从而能够有效降低因为疲劳问题所引发的交通事故的发生几率。

参考文献

[1]李智.基于视频图像的人脸疲劳状态检测技术研究[D].湖南:国防科学技术大学,2010.

[2]王荣本.基于机器视觉的行车安全综合保障系统研究[J].山东交通学院学报,2006,14(2):1-5.

[3]曹菊英,赵跃龙.基于水平投影和Hough查找圆法的人眼状态识别研究[J].科学技术与工程,2007,7(9):1969-1971.

项目来源:湖北省教育厅科学技术研究计划指导性项目(编号:B2013199)。

上一篇:浅谈医院的安全用电 下一篇:刍议多媒体在机械制图教学中的应用