疲劳驾驶是指驾驶员在长时间的行车过程中,由于驾驶动作的反复连续,使其生理上、心理上发生某种变化,出现驾驶机能下降的现象。据公安部调查显示,近几年因交通事故造成的死亡人数高达7万多人,其中由于疲劳驾驶造成的死亡人数占总死亡人数的65%[1]。因此,研究驾驶员在行车过程中的疲劳状态识别方法对预防交通事故的发生有着重大的意义。
现阶段,驾驶员疲劳状态的识别方法主要有五类:1) 基于生理信息的识别方法[2-3],有脑电图信号监测、眼电图信号监测、心电图信号监测等;2) 基于行车参数的识别方法[4-5],有车速测量、运动轨迹监测、横向位移监测等;3) 基于操控行为的识别方法[6-7],有方向盘运动情况监测、转向角信号监测等;4) 基于计算机视觉的识别方法[8-10],有PERCLOS值检测、眨眼频率检测、视线方向检测等;5) 融合多源信息的识别方法[11]。经分析可知,基于生理测量的方法可以实时、准确地对疲劳状态进行识别,但是监控设备复杂,成本高,而且与驾驶员直接的接触,不太适合扩展应用;基于操控行为和行车参数的识别方法可以具有很好地应用前景,但是算法复杂,易受环境因素的影响,抗干扰能力差,识别率较低;融合多源信息的识别方法受限于实验条件,现阶段研究较少,识别效果不一定优于单一信息。基于计算机视觉的识别方法是目前应用最广泛的识别方法,具有非接触的优点,且可以直接观察到驾驶员疲劳时的面部变化特征。
针对现有识别方法对光照敏感、特征维数大和识别率较低等问题,本文提出一种在线字典学习形变模型的疲劳状态识别算法。该算法首先提取红外人脸图像中与疲劳相关的变形区域LBP特征,并将其用于表征疲劳人脸图像,构建疲劳人脸图像的形变模型;然后采用在线字典学习算法提取训练样本整体的过完备基函数,引入到形变模型中,建立在线字典学习形变模型并对图像的疲劳状态进行分类识别;最后考虑不同时间阶段对人脸图像疲劳状态的影响,采用时间窗的方式对识别算法进行优化。
1 疲劳特征提取与形变模型表示 1.1 疲劳特征提取考虑到实际行车过程中驾驶员的头部会发生摆动,且在自然光照下易受光照影响。为了保证后续疲劳状态的正确识别,本文选用具有几何结构旋转不变性和光照鲁棒性的纹理检测算子LBP对红外人脸图像中与疲劳相关的关键变形区域(眉毛、眼睛、嘴巴等)进行特征提取[12-13]。
设疲劳时面部发生形变的区域有k(k=0, 1,…, k-1) 个,根据变形区域在面部的比重将其对应划分不同的子区域块,区域比重越大,子区域块越多,反之越少。为保证后续人脸特征数量的一致性,所有子区域的大小相同。若子区域块的中心像素为fc,p个邻点的像素为fp(p=0, 1,…, p-1),则该子区域内(x, y)点的LBP值为
$ {\rm{LBP}}\left( {x,y} \right) = \sum\limits_{p = 0}^{p - 1} {S{{\left( {{f_p} - {f_T}} \right)}^{2p}}} $ | (1) |
式中:
第k个变形区域中子区域的直方图可表示为
$ H_{{m_k}}^k = \sum\limits_{x,y} {f\left\{ {{m_k},{\rm{LBP}}\left( {x,y} \right)} \right\}} $ | (2) |
式中:mk为第k个变形区域的子区域块数量。
顺序连接第k个变形区域中所有子区域直方图获得其特征向量,即
$ {\mathit{\boldsymbol{H}}^k} = \left\{ {H_1^k,H_2^k, \cdots ,H_{{m_k}}^k} \right\} $ | (3) |
疲劳人脸图像的特征向量可看作所有变形区域特征向量的串联,则
$ \mathit{\boldsymbol{H = }}\left\{ {{H^0},{H^1}, \cdots ,{H^{k - 1}}} \right\} \in {{\bf{R}}^m} $ | (4) |
本文针对疲劳人脸的关键变形区域进行LBP特征提取,一定程度上提高了疲劳特征的有效性,且提取的特征不受光照和头部摆动的影响,为后续疲劳状态准确识别奠定了基础。
1.2 疲劳人脸图像的形变模型表示形变模型[14-15]是一种线性组合模型,将形变模型应用于疲劳人脸图像表示中,旨在通过疲劳人脸的关键变形区域特征建立疲劳人脸形变模型。根据行车过程中人脸可能出现的疲劳状态将训练样本图像分为清醒状态、轻度疲劳状态、中度疲劳状态和重度疲劳状态四类。具体算法过程如下:
将训练样本图像中每个样本图像用其关键变形区域的LBP特征向量表示,则第i类训练样本可表示为
$ {\mathit{\boldsymbol{F}}_i} = \left\{ {f_i^1,f_i^2, \cdots ,f_i^{{n_i}}} \right\} \in {{\bf{R}}^{m \times {n_i}}} $ | (5) |
式中:ni为第i类训练样本的数量,fini表示第i类训练样本的第ni个样本的特征向量。
则整个训练样本可表示为
$ \mathit{\boldsymbol{F}} = \left[ {{F_1},{F_2}, \cdots ,{F_p}} \right] = \left[ {f_1^1,f_2^2, \cdots ,f_p^{{n_p}}} \right] \in {{\bf{R}}^{m \times n}} $ | (6) |
式中:m为样本大小,p=4,为训练样本类别数,n为训练样本总数,则有n=n1+n2+…+np。
设y为某一待测样本,则有:
$ y = \sum\limits_{i = 1}^p {\sum\limits_{j = 1}^{{n_i}} {\alpha _i^jf_i^j} } = \mathit{\boldsymbol{F}}{\mathit{\boldsymbol{x}}_0} \in {{\bf{R}}^m} $ | (7) |
式中:αij表示第i类训练样本中第j个样本的稀疏系数,
传统的疲劳人脸形变模型表示采用所有训练样本图像来对待测样本进行线性组合描述,此模型虽然能够较好的表征疲劳人脸图像,但由于特征维数的庞大使得系统运行速度变慢,识别率降低。根据线性知识,本文采用在线字典学习算法提取出能有效表达训练样本整体的过完备基函数矩阵,并用其代替训练样本整体对待测样本进行线性组合表示,最后利用组合系数的稀疏性进行人脸疲劳状态分类识别。该算法在一定程度上降低了特征的维数, 进一步降低了算法的运算量,提高了算法的识别率。
2.1 在线字典学习提取过完备基函数矩阵在线字典学习算法(online dictionary learning, ODL)[16]是一种随机逼近优化算法。采用ODL算法提取形变模型的过完备基函数矩阵,主要是采用快速坐标下降的方式迭代更新基函数矩阵,从而快速地得到能够充分表示训练样本集的过完备基函数矩阵,更好地实现待测图像的形变模型表示。
设训练样本集为X=[x1, x2, …, xn]∈Rm×n,过完备基函数矩阵为
$ {{\mathit{\boldsymbol{\hat F}}}_t}\left( {\mathit{\boldsymbol{\hat F}}} \right) \buildrel \Delta \over = \min \frac{1}{t}\sum\limits_{i = 1}^t {\left( {\frac{1}{2}\left\| {{\mathit{\boldsymbol{x}}_i} - \mathit{\boldsymbol{\hat F}}{{\mathit{\boldsymbol{\hat \alpha }}}_i}} \right\|_2^2 + \lambda {{\left\| {{{\mathit{\boldsymbol{\hat \alpha }}}_i}} \right\|}_1}} \right)} $ | (8) |
式中:λ为正则化因子,λ越大,则稀疏系数
1) 构建初始基函数矩阵
2) 初始化:初始化
3) 人脸形变模型求解:随机选取训练样本集xt=[xt1xt2…xtnt]∈Rm×nt,nt为样本xt的数量,在
$ {{\mathit{\boldsymbol{\hat \alpha }}}_t} \buildrel \Delta \over = \arg \min \frac{1}{2}\left\| {{\mathit{\boldsymbol{x}}_t} - {{\mathit{\boldsymbol{\hat F}}}_{t - 1}}\mathit{\boldsymbol{\hat \alpha }}} \right\|_2^2 + \lambda {\left\| {\mathit{\boldsymbol{\hat \alpha }}} \right\|_1} $ | (9) |
4) 更新矩阵A、B:
$ \begin{array}{l} {\mathit{\boldsymbol{A}}_t} \leftarrow {\mathit{\boldsymbol{A}}_{t - 1}} + \sum\limits_{i = 1}^d {\mathit{\boldsymbol{\alpha }}_t^i{{\left( {\mathit{\boldsymbol{\alpha }}_t^i} \right)}^{\rm{T}}}} \\ {\mathit{\boldsymbol{B}}_t} \leftarrow {\mathit{\boldsymbol{B}}_{t - 1}} + \sum\limits_{i = 1}^d {\mathit{\boldsymbol{x}}_t^i{{\left( {\mathit{\boldsymbol{\alpha }}_t^i} \right)}^{\rm{T}}}} \end{array} $ | (10) |
5) 更新基函数矩阵
$ \begin{array}{l} {u^j} = \frac{1}{{{\mathit{\boldsymbol{A}}_t}\left( {j,j} \right)}}\left( {{b^j} - {{\mathit{\boldsymbol{\hat F}}}_{t - 1}}{\mathit{\boldsymbol{\alpha }}^j}} \right) + \hat f_{t - 1}^1\\ \hat f_{t - 1}^1 = \frac{1}{{\max \left( {{{\left\| {{\mathit{\boldsymbol{u}}^j}} \right\|}_2},1} \right)}}{\mathit{\boldsymbol{u}}^j} \end{array} $ | (11) |
6) 判断t=T是否成立:成立则获得最终的过完备基函数矩阵
针对疲劳人脸图像的原形变模型表示,将式(7) 中的训练样本整体F用ODL算法提取到的过完备基函数矩阵
$ \mathit{\boldsymbol{y}} = \mathit{\boldsymbol{\hat F}}{{\mathit{\boldsymbol{\hat x}}}_0} $ | (12) |
式中:y为待测样本,
比较F和
将在线字典学习形变模型表示的待测样本图像进行分类识别主要是通过求解式(12) 中最优稀疏系数
$ \hat x = \arg \min {\left\| \mathit{\boldsymbol{x}} \right\|_1}\;\;\;\;\;{\rm{s}}{\rm{.t}}{\rm{.}}\;\;\;\;\mathit{\boldsymbol{Fx = y}} $ | (13) |
但实际驾驶情况下,由于环境干扰、面部遮挡与建模误差等因素,并不能保证y只被F中同类别的数据表示。因此,通过求取到的
$ \begin{array}{*{20}{c}} {{\rm{identify}}\left( y \right) = \arg {{\min }_i}{r_i}\left( \mathit{\boldsymbol{y}} \right) = }\\ {\arg {{\min }_i}{{\left\| {\mathit{\boldsymbol{y}} - \mathit{\boldsymbol{\hat F}}{\mathit{\boldsymbol{\delta }}_i}\left( \mathit{\boldsymbol{x}} \right)} \right\|}_2}} \end{array} $ | (14) |
式中:δi(x)=[0…αi1…αini0…0]T∈Rn,Fδi(x)为重构图像,ri(y)为两图像误差。
定义 ε>0,则当identify(y) < ε时,输出识别结果,否则重新获取重构图像。具体识别流程图如图 1所示。
在识别过程中,由于基函数矩阵维数大大低于训练样本整体,使得求解最优稀疏系数的运算量大幅度降低,减少了运行时间,提高了对疲劳面部状态的识别率和鲁棒性。
3 融合时间窗优化识别由于疲劳驾驶是指持续一段时间内驾驶员面部出现疲劳特征,一帧图像的识别往往不能准确判断驾驶员是否真正处于疲劳状态。而在一段时间内驾驶员的疲劳状态转移具有一定的规律,一般会随着行车时间的加长而变得越来越疲劳。因此在识别过程中加入时间窗[17-18],采用序贯信息的前后相关性对时间窗内的帧图像进行分类识别。为了能够有效利用时间窗内的先验知识,本文采用贝叶斯方法的进行疲劳状态识别。
首先根据驾驶员一天中不同时间段的生理机能不同规定不同时间窗大小t_k(k=1, 2分别表示易疲劳阶段和清醒阶段),获取该时间窗内的r帧图像作为输入,如图 2所示。为了避免输入图像是闭眼图像造成识别错误,根据驾驶员的眨眼频率选取不同阶段的时间间隔tk,其中tk=ti, rk-ti, r-1k,表示人每次眨眼的时间间隔。设疲劳状态类别的集合为{wi, i=1, 2, …, 4},某一时刻的帧图象为xj(j=1, 2, …, r),则由贝叶斯理论可知,帧图像xj属于疲劳状态类别wi的概率为
$ \begin{array}{*{20}{c}} {p\left( {{w_i}\left| {{x_j}} \right.} \right) = \frac{{p\left( {{x_j}\left| {{w_i}} \right.} \right) \cdot p\left( {{w_i}} \right)}}{{p\left( x \right)}} = }\\ {\frac{{p\left( {{x_j}\left| {{w_i}} \right.} \right) \cdot p\left( w \right)}}{{\sum\nolimits_{i = 1}^4 {\left( {p\left( {{x_j}\left| {{w_i}} \right.} \right) \cdot p\left( {{w_i}} \right)} \right)} }}} \end{array} $ | (15) |
式中:p(xj|wi)为疲劳状态类别wi对帧图像xj生成的概率,p(wi)为先验概率,即前段时间到当前时刻疲劳状态类别的转移概率。p(wi)的选取是根据疲劳状态转移规律确定的,其值大小如表 1所示。
计算时间窗内r帧图像属于疲劳状态类别wi的概率得分
为了验证本文所提算法的有效性,以车内红外摄像机CCD拍摄的连续视频段图像作为实验数据库,其中有不同时间段和不同光照条件下包含40个人四种疲劳状态的6 400张人脸图像。根据文献[18]将实验数据库分为清醒阶段的数据库(A数据库)和易疲劳阶段的数据库(B数据库)。两数据库均包含20名测试者,每人包含四种疲劳状态的20个视频段,共3 200张人脸图像。
A数据库:在清醒阶段,为保证疲劳状态的一致性,每个视频段设为15 s;为避免由于眨眼造成识别错误,根据正常情况下眨眼频率是12~15次/s设定每个时间段内提取的图像帧数为8帧。
B数据库:易疲劳阶段人的生理机能下降,如人的眨眼频率加快等,为保证提取到的图像帧数与A数据库相同,每个视频段设为10 s,获取的图像帧数为8帧。
本文提取实验数据库中图像的LBP特征,采用人脸形变模型识别方法(DM)和人脸在线字典学习形变模型识别方法(ODM)在数据库A和数据库B上进行实验,并与采用D-KSVD[19]和FDDL[20]字典学习的形变模型识别方法进行比较。实验中,设定在线字典学习过程中的正则化因子λ=0.15。
采用四种算法分别在A数据库和B数据库中进行实验,其中两个数据库均随机选取2 000张包含四种疲劳状态的图像作为训练样本,其余1 200张作为测试样本,不同疲劳状态的识别率如表 2和表 3所示。
由表 2和表 3可以看出,ODM算法、FDDL算法和D-KSVD算法的平均识别率均高于DM算法,充分说明字典学习算法可以有效提高形变模型识别方法对疲劳状态的识别率;比较采用三种字典学习算法后的平均识别率,从高到低依次是ODM算法、FDDL算法和D-KSVD算法,这也验证了采用在线字典学习对形变模型进行改进可以进一步提高识别率。
比较表 2和表 3,表 2中的疲劳状态识别率明显高于表 3,即清醒阶段的疲劳状态识别结果优于易疲劳阶段。分析四种算法对两个数据库的平均识别率,相比于A数据库,DM、D-KSVD、FDDL和ODM算法在B中平均识别率分别降低了1.59%、0.41%、0.51%和0.32%。比较得知,ODM算法在A、B实验库中平均识别率差距最小,进而说明该算法对疲劳状态识别的鲁棒性能优于其他两种字典学习算法,可以更好的应用于不同时间段的疲劳状态识别。
算法计算量的大小影响着识别系统的实时性和准确性,可以直接反映在系统运行时间上。计算四种识别算法的运行时间,如表 4所示。从表中可以看出,ODM算法的运行时间是最短的,即计算量最小, 相比于DM、D-KSVD和FDDL算法分别减少了100.41、55.66和12.37 ms。更能满足实际识别系统的需求。
本实验将一个视频段视为一个时间窗,分别在A数据库和B数据库中随机选取350个包含四种疲劳状态的视频段作为训练样本,剩余50个视频段作为测试集。基于时间窗的方法,采用四种算法对测试集进行疲劳状态识别,即每个测试集的疲劳状态识别结果采用贝叶斯方法确定,其中阈值T=0.5。则不同算法下的平均识别率如图 4所示。
由图 4知,基于时间窗的方法,DM、D-KSVD、FDDL和ODM四种算法在数据库A上的平均识别率分别为92.94%、93.96%、95.20%和96.28%,在B数据库中的平均识别率分别为92.17%、93.54%、94.65%和95.92%。与4.1节中的实验结果相比,经时间窗优化后,算法的平均识别率明显有所提高,对实际驾驶环境更为有利。
5 结论1) 采用过完备基函数矩阵代替整个训练样本构建在线字典学习形变模型,实现了用较少的稀疏系数对待测样本进行线性组合描述,一定程度上降低了疲劳特征的维数和分类识别时整体算法的计算量,提高了疲劳状态识别的鲁棒性。
2) 采用基于贝叶斯方法的时间窗对疲劳状态进行优化识别,有效利用了人的疲劳状态转移规律,提高了实际驾驶环境下疲劳状态的识别率。
由于实验过程中数据库图像大多是无遮挡、无伪装的人脸图像,使得该算法在实际应用中仍具有一定局限性。因此,如何增强在遮挡、伪装和外界环境等因素下的算法鲁棒性,是该算法后续的研究方向。
[1] |
牛清宁, 周志强, 金立生, 等. 基于眼动特征的疲劳驾驶检测方法[J]. 哈尔滨工程大学学报, 2015, 36(3): 394-398. NIU Qingning, ZHOU Zhiqiang, JIN Lisheng, et al. Fatigue driving detection method based on eye movement characteristics[J]. Journal of Harbin Engineering University, 2015, 36(3): 394-398. (0) |
[2] | PATEL M, LAL S K L, KAVANAGH D, et al. Applying neural network analysis on heart rate variability data to assess driver fatigue[J]. Expert systems with applications, 2011, 38(6): 7235-7242. DOI:10.1016/j.eswa.2010.12.028 (0) |
[3] |
金纯, 曾伟. 基于脑电的实时疲劳监测算法的研究[J]. 科学技术与工程, 2015, 15(34): 231-234. JIN Chun, ZENG Wei. Fatigue monitor algorithm research based on EEG[J]. Science technology and engineering, 2015, 15(34): 231-234. DOI:10.3969/j.issn.1671-1815.2015.34.041 (0) |
[4] | SANDBERG D, WAHDE M. Particle swarm optimization of feedforward neural networks for the detection of drowsy driving[C]//IEEE International Joint Conference on Neural Networks. IEEE, 2008:788-793. (0) |
[5] | JIN L, NIU Q, HOU H, et al. Driver cognitive distraction detection using driving performance measures[J]. Discrete dynamics in nature & society, 2012, 30(2012): 1555-1565. (0) |
[6] | TAKEI Y, FURUKAWA Y. Estimate of driver's fatigue through steering motion[C]//IEEE International Conference on Systems, Man and Cybernetics, 2005:1765-1770. (0) |
[7] |
张希波, 成波, 冯睿嘉. 基于方向盘操作的驾驶人疲劳状态实时检测方法[J]. 清华大学学报:自然科学版, 2010, 50(7): 1072-1076. ZHANG Xibo, CHENG Bo, FENG Ruijia. Real-time detection of driver drowsiness based on steering performance[J]. Journal of Tsinghua University:science and technology, 2010, 50(7): 1072-1076. (0) |
[8] | JIN L, NIU Q, JIANG Y, et al. Driver sleepiness detection system based on eye movements variables[J]. Advances in mechanical engineering, 2013(5): 1-7. (0) |
[9] | AZIM T, JAFFAR M A, MIRZA A M. Fully automated real time fatigue detection of drivers through fuzzy expert systems[J]. Applied soft computing, 2014, 18(1): 25-38. (0) |
[10] |
何明山, 罗卫东, 陈启新, 等. 基于DSP虹膜识别防疲劳驾驶报警系统的研究[J]. 中国安全生产科学技术, 2016, 12(1): 127-131. HE Mingshan, LUO Weidong, CHEN Qixin, et al. Research on anti-fatigue driving alarm system based on DSP for iris recognition[J]. Journal of safety science and technology, 2016, 12(1): 127-131. (0) |
[11] |
牛清宁. 基于信息融合的疲劳驾驶检测方法研究[D]. 长春: 吉林大学, 2014. NIU Qingning. Research on driver fatigue detection based on hybrid measures[D]. Changchun:Jilin University, 2014. http: //cdmd. cnki. com. cn/Article/CDMD-10183-1014292594. htm (0) |
[12] |
王辉, 于立君, 毕晓君, 等. 自适应熵疫苗算子的免疫图像分割方法[J]. 哈尔滨工业大学学报, 2014, 46(1): 682-686. WANG Hui, YU Lijun, BI Xiaojun, et al. Immune image segmentation algorithm based on adaptive entropy vaccine operator[J]. Journal of Harbin Institute of Technology, 2014, 46(1): 682-686. (0) |
[13] |
齐兴, 苏本跃. 基于区域块LBP特征的人脸表情识别[J]. 安庆师范学院学报:自然科学版, 2015, 21(4): 48-51. QI Xing, SU Benyue. Human face recognition Based on the Regional Block LBP[J]. Journal of Anqing Teachers College:Natural Science Edition, 2015, 21(4): 48-51. (0) |
[14] |
廖海斌, 陈庆虎, 王宏勇. 融合局部形变模型的鲁棒性人脸识别[J]. 武汉大学学报:信息科学版, 2011, 36(7): 877-881. LIAO Haibin, CHEN Qinghu, WANG Gongyong. Robust face recognition based on local deformation model[J]. Geomatics and Information Science of Wuhan University, 2011, 36(7): 877-881. (0) |
[15] | WANG Hui, TONG Lifeng, YU Lijun, et al. The research of facial features localization based on posterior probability deformable model[C]//[S.l.], International Conference on Mechatronics and Automation. IEEE, 2015:2392-2396. (0) |
[16] | MAIRAL J, BACH F, PONCE J, et al. Online dictionary learning for sparse coding[C]//International Conference on Machine Learning. [S.l.], 2009:689-696. (0) |
[17] |
李都厚, 刘群, 袁伟, 等. 疲劳驾驶与交通事故关系[J]. 交通运输工程学报, 2010, 10(2): 104-108. LI Douhou, LIU Qun, YUAN Wei, et al. The Relationship between fatigue driving and traffic accidents[J]. Journal of traffic and transportation engineering, 2010, 10(2): 104-108. (0) |
[18] | GASTALDI M, ROSSI R, GECCHELE G. Effects of Driver Task-related Fatigue on Driving Performance[J]. Procedia-social and behavioral sciences, 2014, 111: 955-964. DOI:10.1016/j.sbspro.2014.01.130 (0) |
[19] | ZHANG Q, LI B. Discriminative K-SVD for dictionary learning in face recognition[C]//IEEE Conference on Computer Vision & Pattern Recognition.[S.l.], 2010:2691-2698. (0) |
[20] | YANG M, ZHANG L, FENG X, et al. Fisher Discrimination Dictionary Learning for sparse representation[C]//International Conference on Computer Vision.[S.l.], 2011:543-550. (0) |