驾驶员的疲劳驾驶是造成现代社会交通事故的主要原因之一,交通事故的发生,给我们带来了巨大的人员和财产损失。所以,对疲劳驾驶检测技术的研究已刻不容缓,亟需行之有效、简单易行的检测理论和测试装置。
Walt Wierwille[1]分析人眼光学变量和疲劳程度之间的关系,发现PERCLOS法(Percentage of Eyelid Closure Over the Pupil Over Time)在疲劳程度测定方面准确率很高。打瞌睡驾驶员侦探系统[2]DDDS(The Drowsy Driver Detection System),通过检测1)情绪波动,2)眨眼频率,3)眨眼时间,4)眼皮的活动情况,进而判断是否疲劳驾驶。反应时间测试仪PVT[3](The psychomotor vigilance test)通过测试驾驶员的反应时间,判断是否有疲劳驾驶。陈信[4]等利用融合特征来对飞行员的驾驶状态进行判定。阎淑芳[5]等人根据司机的反应时间、对突发问题的判断时间、行驶轨迹等信息判断司机的驾驶状态。
目前国内外均对人眼开闭状态识别进行了一些探索和研究,利用人眼状态来对疲劳驾驶行为进行检测。人眼状态的识别方法主要分为:基于人眼特征分析的方法,该方法包括模板匹配法、眼睑曲率法[6]、Hough找圆法等;基于模式分类的识别方法,该方法包括特征眼法等[7]。张斌[8]提出对大量图像进行统计的方法来定位人脸,然后利用眼睛模版来对眼睛的状态进行定位判定,获得了较好的识别效果。眼睑曲率法和Hough找圆法虽然算法实现较为简单、识别速度较快,但是由于光照等原因会引起眼睑和眼球信息的缺失,导致检测稳定性较差。提取眼睛的特征并采用模式识别的方法进行人眼状态检测得到广泛的应用,但是由于单个底层特征对人眼描述不足导致识别率较差,采用多个特征融合的技术虽然可以提高识别率,但是由于融合特征的维度过高,导致识别时间较长。
本文提出一种基于稀疏表示的眼睛状态识别的方法。利用K-SVD(K均值奇异值分解)方法对输入的训练集构造过完备冗余字典,利用正交匹配追踪法对测试的图像进行稀疏表示,来进行人眼睛状态的检测。该方法在检测精度上具有很大的优势。
1 稀疏表示理论基础 1.1 信号稀疏表示的方法目前,比较常用的信号稀疏的算法有匹配追踪[9]和正交匹配追踪[10,11]等,本文主要是使用了正交匹配追踪法。匹配追踪(Match Pursuit,MP)算法作为基本的贪婪算法,有一个明显的缺点,就是新投影的原子集合与其它的原子集合之间不是正交的关系,并且它的收敛速度比较缓慢,运算的次数会增加。
为了克服上面提到的所选取的原子之间非正交性的问题,有学者提出在MP 算法上加入正交化的过程,选用正交化方法(本文选取的是Gram-Schmidt法)对已经选取的原子进行正交化处理,即对每次选择的原子进行正交化处理,以保证获得最优的结果,使得残差最小,收敛速度最快,这样就形成了正交匹配追踪(Orthogonal Matching Pursuit或OMP)[12,13,14]算法。Gram-Schmidt正交化的具体方法如式(1)所示。
具体的实现过程描述为:先对输入信号在这个原子空间上寻找最佳原子,进行投影并作差,得到原始信号在这个原子上的分量和差值,然后对差值选取匹配原子,对原子进行正交化处理,进行投影和分解。重复上面的过程,经过有限次的投影和分解后,就可以得到一组正交的原子集合,原信号就可以由这N个正交原子的线性组合来表示了。在每一次的投影和分解的过程中,每一次原子的选择都是最优化的,这样,残差的收敛速度就比较快,而且可以用较少的原子进行表示原始信号。
1.2 过完备字典构造算法在对信号进行稀疏表示的时候,首先需要构造出合理的过完备字典,本文通过K-SVD算法来学习字典[15,16]。假设字典D={di}i=1K满足‖di‖=1,样本Y={yi}i=1N可以用D稀疏矩阵X来表达,即Y=DX+E。每一个样本都需要用尽可能少的原子(字典中的一列)来线性表示,且表示误差尽可能小,K-SVD的训练目标为:
参数S约束了矩阵X的稀疏度。K-SVD对字典的更新是逐列进行的。假设更新字典的第j列,如果字典D的第j列为dj,稀疏矩阵X的第j行为x′j,样本Y与DX的差异可表达为:
E′j表示去掉原子dj后在所有样本中造成的误差。显然,rank(djx′j)=1,要使E′j尽可能接近于djx′j,可以对E′j进行SVD分解,即
其中Λ=diag(λ1,λ2,…,λn),U和V为酉矩阵。由于λ1对E′j的影响最大,于是取U的首列ui替代dj,取λ1与V首行的乘积λ1v′1替代x′j[17,18]。
2 基于稀疏表示的眼睛状态识别 2.1 眼睛状态特征的提取输入的信号由眼睛的睁开图像、闭合图像和半开半闭的图像组成,将训练产生的字典里的原子数Y分成3类——眼睛的张开、闭合以及半开半闭状态。假设训练的过完备字典D共有Y列,眼睛张开图像经过训练得出原子放在D的前面,占N列;眼睛闭合图像经过训练得出的原子放在D的中间,占M列;眼睛半开半闭图像经过训练得到的原子放在D的最后,占Y-M-N列。这样,眼睛状态的过完备字典就得到了。
首先将RGB图像归一化为灰度图像,并对图像的尺寸进行归一化,最后在构建好的过完备字典上对眼睛区域图像进行稀疏表示。在我们自己构造的字典D上,利用OMP法对眼睛状态图像进行稀疏表示为:
式中,用u表示输入的眼睛图像信号,ΦN为分解N步后残差,原信号u的稀疏表示的结果用 表示,,该式中D表示自己构造的字典,x为原信号稀疏后的系数向量。
眼睛状态图像进行稀疏表示后,非零的系数就是提取出来的眼睛状态图像的特征,假设其中有K个非零系数,其他的都为零,表示得到的结果是K稀疏的。
2.2 眼睛状态特征的分类和识别在眼睛状态图像的过完备字典构造完成后,就要对新输入的图像进行识别,判断出眼睛的状态。在对眼睛状态识别前,先要对眼睛的状态进行分类,确定眼睛有哪些状态并确定分类的依据。本文将眼睛的状态分为眼睛张开、眼睛闭合和眼睛半开半闭3种状态。将眼睛的睁开程度达到80%及以上的定义为眼睛睁开,眼睛睁开程度小于20%的定义为眼睛处于闭合状态,眼睛状态在这两者之间的定义为眼睛的半闭半合状态。假设输入的原始眼睛状态图像信号为u,稀疏后的重构形式为 ,用e表示两者之间的误差,即 3类眼睛状态图像构造的子空间用C(A1)、C(A2)和C(A3)来分别表示,之后,根据距离最近原则,把重构后的图像 归类到相应的的那个子空间C(Aj)(j=1,2,3)所属的类中,即为眼睛状态的判决结果。
在构造的字典D中,假设原子总数为Y个,其中,最前面的N个原子为第1个子字典,由眼睛睁开图像集训练得到的;中间的M个原子为第2个子字典,由眼睛闭合图像集训练得到的;最后的Y-N-M个原子为第3个子字典,由眼睛的半开半闭图像集训练得到的。定义一个向量σj(其中j= 1,2,3),向量x为稀疏表示后的系数向量,σj表示向量x中第j个子库中原子的系数不变而对剩余两个字库原子系数置为0的向量,故σ1=[x1T 0....0]T,σ2=[0....0x2T 0....0]T,σ3=[0....0x3T]T,也就是说第j类的眼睛状态稀疏表示后,只有第j个子库对应的系数可能不为0,另外两个字库对应的系数均为0。
将同一个测试信号u分别在3个子库中稀疏表示,用σ1、σ2和σ3作为输入信号稀疏表示后的系数向量,重构后的图像信号用 1、2和3来表示,其中,1=Dσ1,2=Dσ2,1=Dσ3,利用式(6)中距离最小原则对测试信号u所属的类进行判别。
由上式可知,当测试信号与第j(j=1,2,3)类距离最近时,则可以判定信号属于第j类。
3 眼睛状态判别实验 3.1 实验图像的获取为了利用稀疏表示的方法对人眼状态进行识别并比较该算法的优劣,除了对本文中K-SVD+OMP算法进行实验外,还采用了其他3种方法进行人眼状态的识别,分别为K-SVD+FOCUSS法、MOD+FOCUSS法和MOD+OMP法。所有实验中,总共用到的图像集是由200张眼睛张开图、200张眼睛闭合图和200张眼睛半闭半开图组合成,在3类眼睛状态图中,每类选取1/4的图像作为测试信号集,剩余的3/4作为图像信号的训练集,以下实验过程均是在Matlab7.8的平台上完成的。部分原始图像如图1所示。
现代的图像采集设备采集的图像一般都是RGB图像,因此,在本文提出算法的实验中,首先对图像进行预处理,将RGB转化为灰度图像,然后对训练图像集和测试图像集的所有图像进行归一化处理,以减弱光照因素对图像产生的干扰;然后对所有的图像,包括训练图像集和测试图像集,变成统一大小的格式(本文把图片统一为12×10大小的图片),随后再用Raster扫描法把图片转化成为一维列向量,列向量的大小为120×1,所有训练图像组成的训练集和所有测试图像组成的测试集的大小分别为120×450和120×150。第二步,使用K-SVD法构造字典,在我们这个字典里面一共有450个原子,原子的大小为120×1,所以构造的字典为120×450,其中,最前面的150个原子表示了眼睛睁开状态图像的特征,中间的150个原子表示了眼睛闭合状态图像的特征,最后的150个表示了眼睛为半开半闭状态图像特征。本文在实验中,对测试图像进行稀疏表示时,将稀疏表示的形式设为10稀疏,也就是在系数向量(向量形式为450×1 )中只有10个是非零的元素,剩余的系数全部为零。
图2是表示3种眼睛状态图像各输入一张后的稀疏结果,由统计结果可看出不同类别的人眼状态可由不同类别的子字典表示。图3为训练组和测试组的稀疏表示的结果。
将600张图像(睁眼图像200张,闭眼图像200张和眼睛半开半闭图像200张)建立图片表,每次时随机抽取150张眼睛睁开图像、150张眼睛闭和图像和150张眼睛半开半闭图像作为训练组,将剩余的图像作为实验组,进行正确性的验证,实验结果如表1所示。
通过实验对比可以看出,使用K-SVD进行字典学习并稀疏表示的人眼状态图片的方法要好于MOD的方法。结果表明,识别效果较差的是MOD+FOCUSS方法,识别率仅为85%。经过K-SVD和OMP进行稀疏表示的方法识别率为95.79%,可见该方法大幅提高了识别率,相比其他方法能更好的识别出眼睛的状态。 为了比较各个方法的鲁棒性,根据同一种方法多次识别的数据,统计出同种方法下实验的方差,表中可以看出K-SVD和OMP组合的稀疏表示的方法比其他方法统计的方差更小,所以采用K-SVD和OMP结合方法来进行人眼状态识别比其他方法具有更高的鲁棒性和稳定性。
4 结束语为了通过检测人眼状态来判断驾驶员是否疲劳驾驶,从而减少事故的发生率,本文提出了基于稀疏表示的眼睛状态识别方法。首先介绍了信号稀疏表示的基本原理,其次讲述过完备字典的构造过程,最后利用K-SVD和OMP结合的稀疏表示方法对眼睛的状态特征进行提取,并与其它方法进行对比。实验结果可以看出,利用本文提出的方法,可进行合理、高效的特征提取;能够达到降低样本维数的目的,降低计算成本;并且可以减小图像信息的冗余度,通过实验验证了该方法的可行性。
[1] | Wierwille W W, Ellsworth L A, Wreggit S S, Fairbanks R J, Kirn C L. Research on vehicle-based driver status/performance monitoring; development, validation, and refinement of algorithms for detection of driver drowsiness. Final report[R]. U.S. Department of Transportation.1994. |
[2] | 高晓晶. 司机疲劳状况监控系统的研究与实现[D]. 电子科技大学, 2009. Gao X J.Research and implementation of driver fatigue monitoring system[D]. University of Electronic Science and Technology, 2009. |
[3] | Thorne D R, Johnson D E, Redmond D P, Sing H C, Belenky G, Shapiro J M. The Walter Reed palm-held psychomotor vigilance test[J]. Behavior Research Methods, 2005,37(1): 111-118. |
[4] | 陈信.鉴定疲劳的方法研究[J].航天医学工程研究所论文汇编,1978,1(1):1-10. Chen X. Method for identification of fatigue[J]. Compilation of Papers, Space Medical Engineering Institute,1978,1(1):1-10. |
[5] | 阎淑芳,呼庆媛,贾正锐.机动车驾驶员操作技能分析[J].人类工效学, 1997,3(2): 60-61. Yan S F, Hu Q Y, Jia Z R. Analysis of motor vehicle driver's operation skill[J]. Chinese Journal of Ergonomics, 1997,3(2): 60-61. |
[6] | 李立凌.基于人眼定位技术的疲劳驾驶检测方法[D].电子科技大学, 2012. Li L L.Fatigue driving detection method based on the human eye positioning technology[D]. University of Electronic Science and Technology, 2012. |
[7] | Li Q, Song K. The realization and software design of fatigue driving early warning device[J]. Journal of Liaoning University: Natural Science Edition, 2004,30(4): 367-369. |
[8] | 杨彬,黄耀志.基于PERCLOS的汽车司机疲劳监控方法的研究[J].微计算机信息, 2005,21(08): 119-121. Yang B, Huang Y Z. Research on fatigue monitoring method of automobile driver based on PERCLOS[J]. Micro Computer Information, 2005,21(08): 119-121. |
[9] | 王磊,周乐囡,姬红兵.一种面向信号分类的匹配追踪新方法[J].电子与信息学报, 2014,36(6): 1299-1306. Wang L, Zhou L N, Ji H B. A new method of matching pursuit based on signal classification[J]. Journal of Electronic and Information, 2014,36(6): 1299-1306. |
[10] | 马小薇.基于压缩感知的OMP图像重构算法改进[J].电子科技, 2015,4: 014. Ma X W. Improvement of OMP image reconstruction algorithm based on compressed sensing[J]. Electronic Science and Technology, 2015,4: 014. |
[11] | Haupt J, Nowak R. Signal reconstruction from noisy random projections[J]. Information Theory, IEEE Transactions on, 2006,52(9): 4036-4048. |
[12] | Huang J, Huang X, Metaxas D. Learning with dynamic group sparsity[C]. Computer Vision, 2009 IEEE 12th International Conference on. IEEE, 2009: 64-71. |
[13] | Mairal J, Bach F, Ponce J, Sapiro G. Online dictionary learning for sparse coding[C]. Proceedings of the 26th Annual International Conference on Machine Learning. ACM, 2009: 689-696. |
[14] | 郎利影,王勇,李思骞.基于压缩感知OMP改进算法的图像重构[J].电视技术, 2015,39(6): 8-12. Lang L Y, Wang Y, Li S Q. Image reconstruction based on compressed sensing OMP algorithm[J]. TV Technology, 2015,39(6): 8-12. |
[15] | 练秋生,石保顺,陈书贞.字典学习模型,算法及其应用研究进展[J].自动化学报, 2015,41(2): 240-260. Lian Q S, Shi B S, Chen S Z. Research progress of dictionary learning model, algorithm and its application[J]. Automation Journal, 2015,41(2): 240-260. |
[16] | 王小娜.基于字典学习的图像稀疏表示及其在压缩感知中的应用[D].燕山大学, 2013. Wang X N .Image sparse representation based on dictionary learning and its application in compressed sensing[D].Yanshan University, 2013. |
[17] | 赵广銮.稀疏表示在图像识别中的应用[D].北京邮电大学, 2013. Zhao G L. Application of sparse representation in image recognition[D]. Beijing University of Posts and Telecommunications. 2013. |
[18] | 孙锐,王晶晶.一种基于核K-SVD和稀疏表示的车辆识别方法[J].模式识别与人工智能, 2014, 5: 007. Sun R,Wang J J. A vehicle identification method based on kernel K-SVD and sparse representation[J]. Pattern Recognition and Artificial Intelligence, 2014, 5: 007. |