论文笔记:疲劳检测与分心检测

Vision-based method for detecting driver drowsiness and distraction in driver monitoring system [2011 Optical Engineering]

疲劳检测与分心检测

一、五个问题

1.要解决什么问题?
    1.对驾驶员进行疲劳与分心的监控,预防交通事故的发生。
2.用了什么方法解决?
    1.作者通过对驾驶员的面部朝向进行判断,然后疲劳检测与分心检测。
    2.作者提出了一种将自适应增强、模板匹配、斑点检测与人眼验证相结合的人眼检测算法。
    3.用PCA+LAD得到外观特征,用水平边缘直方图的稀疏度与峰度得到统计特征,两者进行结合的新的眼睛状态检测算法。
3.效果如何?
    1.在作者自己采集的数据集中,获得了较好的结果。在白天和夜晚以及佩戴太阳镜或眼镜时,对12个人进行的测试中实现了较高的检测率,分类错误率均< 3%。
4.还存在什么问题?
    1.这篇论文是在2011年发表的,现在已经算是比较落后的了。
    2.实验中,驾驶员因为大笑引起检测错误,
5.需要改进的地方?
    1.疲劳检测方法中,可以采用面部表情识别来区分因疲劳而闭眼和因剧烈地笑而闭眼。
    2.由于眼睛大小,眨眼频率和驾驶习惯因驾驶员而异,需要使用线上培训方法的监控系统。
    3.集成其他传感器,例如加速器,方向盘和车道位置传感器,该系统将表现出更好的性能。

二、论文概述

1.系统框架概述
  疲劳和分心是由驾驶员的头部姿势决定的。该系统从驾驶员的头部姿势得到其是否正在充分关注前方道路。如果驾驶员在一段时间内没有看到前方道路的时间频率大于预定阈值,则通过分心检测产生警告信号。如果驾驶员正向前看,在特定时间段内闭眼的时间百分比超过预定阈值,则疲劳检测系统也产生警告信号。如图所示。
论文笔记:疲劳检测与分心检测
2.考虑驾驶员头部姿态的眼睛检测方法
2.1考虑头部姿态确定眼睛检测范围
  作者提出了一种驾驶员监控系统,驾驶员向前看时检测疲劳,不向前看时监控驾驶员分心。文章指出在正常的直线行驶中,当驾驶员注意前方道路时,他们的面部方向与直线法线相差约±15度。因此,±15度的面部方向的范围被指定为“前方”,大于±15度的面部方向被指定为“非前方”。
2.2眼睛检测方法
  文章中眼睛检测算法是通过自适应增强(adaboost)、模板匹配、斑点检测以及眼睛验证相结合完成。
adaboost方法将弱分类器以级联方式组合,从而产生更强的分类器。论文中直接使用标准的OpenCV Haar级联来检测面部和眼睛。
  自适应增强模板匹配方法识别输入图像与模板相对应部分的技术。论文给出一种方法如下式:
论文笔记:疲劳检测与分心检测
其中I表示输入图像,T表示模板,R(x,y)表示位置(x,y)的匹配结果。 x’和y’的范围分别是[0,w-1]和[0,h-1]。 w和h分别是模板图像的宽度和高度。如果匹配值R(x,y)小,则表示相似度较高;如果它很大,那么它表示较低的相似性。在所有计算的R(x,y)中,选择R(x,y)最小的位置(x,y)作为最终匹配位置。
  斑点检测,从眼睛图像中,经过自适应阈值获得二值图像,然后再进行形态学操作(腐蚀、膨胀),从而移除眼镜框的影响。
  眼睛验证,通过自适应模板匹配连续检测不包含眼睛的区域,则需要眼睛验证来防止错误传播。在眼睛验证过程中,作者使用了PCA+LDA相结合的方法。首先通过PCA将原始数据从n维特征空间映射到m维特征子空间,然后接着用LDA继续对m维特征子空间继续降维,最后用SVM对有眼睛与无眼睛进行分类。
眼睛检测流程图如下。
论文笔记:疲劳检测与分心检测
眼睛验证流程图如下。
论文笔记:疲劳检测与分心检测
2.2眼睛状态检测(睁眼或闭眼)
  首先通过PCA + LDA外观特征中提取,然后通过稀疏度和峰度从两个维度的统计特征中提取,最后这些提取的特征应用于SVM分类器。
  稀疏和峰度,通过水平sobel算子得到水平边缘图像并将其转换为二值图像,再将二值图像投影到水平轴(x轴)上得到垂直投影直方图。睁眼的直方图显示集中在峰值。该峰值是由瞳孔的亮度差异,镜面反射和虹膜引起的。相反,闭合眼睛的直方图在x轴上呈现平坦分布。如下图所示
论文笔记:疲劳检测与分心检测
稀疏和峰度的方程如下。
论文笔记:疲劳检测与分心检测
其中d表示第j个分量为xj的向量x的维数。
论文笔记:疲劳检测与分心检测
2.3疲劳与分心的判定
  在对睁眼或闭眼进行分类并估计驾驶员的头部姿势之后,驾驶员的疲劳程度与分心程度分别由PECLOS和PERLOOK确定。
PERCLOS为驾驶员的眼睛在一定时间内闭合的时间比例。
论文笔记:疲劳检测与分心检测
当PERCLOS超过预定阈值时,建议的系统会产生疏忽警告。通过作者的训练数据实验将预定阈值实验确定为0.2。

PERLOOK定义为驾驶员头部旋转且驾驶员不看前方道路的时间比例。
论文笔记:疲劳检测与分心检测
当PERLOOK大于预定阈值时,建议的系统产生疏忽警告。通过作者的训练数据实验,预定阈值通过实验确定为0.35。