APP下载

红外图像的疲劳状态识别方法

2017-08-30罗秋凤王海涛宿海燕

计算机测量与控制 2017年7期
关键词:人眼瞳孔像素点

黄 斌,罗秋凤,王海涛,颜 伟,宿海燕

(1.南京航空航天大学 自动化学院,南京 211016;2.山东烟台通用照明有限公司,山东 烟台 264006)

红外图像的疲劳状态识别方法

黄 斌1,罗秋凤1,王海涛1,颜 伟1,宿海燕2

(1.南京航空航天大学 自动化学院,南京 211016;2.山东烟台通用照明有限公司,山东 烟台 264006)

为了解决光照变化对疲劳检测系统造成的识别准确性不高的问题,提出了一种近红外环境下判断人眼状态的方法,即针对红外光补图像的人眼状态判断;首先,利用Adaboost算法进行人眼区域定位,在网格法标记人眼瞳孔部分的基础上,采用Retinex算法对红外图像进行增强;接着,结合“亮瞳效应”特性,对二值化以及边缘检测后的红外图像分别进行网格法闭合度计算,得到人眼闭合度大小;最后,根据闭合度计算结果设定双阈值并结合PERCLOS准则来判断人眼特征状态;另外,在DM642硬件平台上进行疲劳检测试验,实验结果表明,该方法的人眼状态识别率达到了90%以上,且平均每秒能处理21帧图片;证明了该方法不仅能有效解决光照变化带来的问题,而且满足疲劳状态检测系统的快速性、准确性和有效性等要求。

疲劳检测;红外图像;网格法;双阈值;人眼状态识别

0 引言

疲劳驾驶的危害巨大,据国外相关研究显示,如果司机在交通事故将要发生前能够提高0.5秒的反应速度,就能遏制60%以上的交通事故[1]。基于图像处理技术的疲劳检测算法,重点是眼睛区域特征图像分析技术,是防疲劳驾驶监测的主要手段之一。目前,主要采用基于Haar特征的Adaboost算法定位人眼,通过分析人眼状态结合PERCLOS标准来判断疲劳驾驶行为是否发生[2-4]。

在实际运用环境中,困扰眼部状态疲劳识别准确率提高的两大问题,一个是监测时间段内光照变化导致的计算精度不够高的问题,如垂直积分投影法、Hough变换法和眼睛宽高比等,但这些方法都易受光照影响。另一个是监测对象瞳孔周围干扰较多或者头部转动导致状态误判的问题,如眼镜边框会干扰特征判断。针对以上问题,提出了一种基于红外图像的快速眼睛状态识别方法,利用近红外图像的3个特点:红外图像具有光照不变特性,弥补常规系统光照不足、光照变化的缺陷[5];产生明亮的瞳孔效应,突出瞳孔特征;红外线对于驾驶员是不可视的,不会造成干扰。

1 方法设计

本文采用基于Haar特征的Adaboost算法进行人眼区域的定位,对眼部瞳孔进行网格标记的基础上进行Retinex图像增强,接着进行人眼闭合度计算以及疲劳状态的判断,算法流程图如图1所示。

图1 整体算法流程图

1.1 Adaboost算法

Adaboost算法是一种分类器,从众多的弱特征中训练出最能代表人眼特征的一部分弱特征,集成为强分类器,进而形成级联分类器。Adaboost 算法进行人眼检测主要利用的是人眼图像的灰度分布与非人眼图像不一样这一特性,采用积分图计算的Haar 特征,Haar 特征计算简单,检测速度快[6-7]。前期利用大小为35*16的红外人眼图像作为正样本,进行训练,得到19层分类器,加载到DSP中,Adaboost算法检测到人眼,返回包含人眼的矩形框,检测结果如图2所示。

图2 Adaboost算法检测人眼示意图

Adaboost算法得到矩形框的4个顶点A、B、C、D的位置坐标(xLU,yLU)、(xRU,yRU)、(xLD,yLD)、(xRD,yRD)、宽W和高H,标记网格利用的是人眼在矩形框中的几何位置,人眼瞳孔在该矩形框中的分布如图3(a)所示。

图3 人眼瞳孔分布及网格标记示意图

对自然光下戴眼镜、不带眼镜,近红外光下戴眼镜、不戴眼镜4种情况,分别用网格法在灰度图像中进行标记,实际标记结果如图4所示,其中(a)、(c)是自然光下的标记结果,(b)、(d)是近红外光下的标记结果。选取三网格标记的意义在闭合度计算时将进一步说明。

图4 网格定位示意图

1.2 图像增强

红外图像与自然光下的图像有所区别,图像处理的方式也有所区别。直接进行对红外图像二值化等操作会使感兴趣部分细节丢失,如图5所示,在Matlab中分别对两幅红外图像进行二值化操作,二值化后的图像无法体现原图的眼部特征。

图5 直接二值化图

为有效提高红外图像质量,方便后续进一步处理,本文采用基于Retinex理论的图像增强算法[8]。Retinex算法常用来对红外图像进行增强,主要用于受照射光变化影响严重的图像。Retinex理论模型如式5所示。

S(x,y)=R(x,y)·L(x,y)

(5)

对于图像中任一像素点(x,y),输入图像的灰度值S(x,y)由物体自身的反射系数R(x,y)与入射光照亮度L(x,y)相乘得到。L(x,y)是物体所处环境光照强度,它表征了图像中的灰度值的动态范围且对应着图像的低频信息,而R(x,y)代表成像物体的细节及对光照的反射性质,它包含图像的高频信息。先估计得到入射光L,而S是已知的,再通过式5求解得到反射部分R,也就得到了增强后的图像。将Retinex模型转换为对数形式可以将乘法变换为简单的加减运算,求解R如式(6)所示。

r=lnR=lnS-lnL=s-l

(6)

对于入射光L的估计,Jobson[9]论证了高斯卷积函数可以从已知图像中更好的估计出L,其可以表示为:

(7)

其中: *表示卷积操作,σ是尺度常数,σ越小,灰度动态范围压缩的越多,但反射图像的数据越少;反之,σ越大,图像锐化的程度越高,对应的反射图像数据越多[10]。

本文在Matlab中验证了该方法的可行性,如图6所示,其中图(a)为原图与增强后图像的比较,图(b)为原图二值化与增强后二值化图像的比较,图(c)为原图直方图与增强后图像直方图的对比。

图6 Retinex算法增强示意图

同时,在DM642硬件平台上进行了验证,选取不同对眼部红外图像进行增强的结果如图7所示。

图7 DSP中不同增强示意图

从图6、7可以发现,合适对应的高斯滤波器的SSR(Single Scale Retinex)算法能有效地增强红外图像,不仅使对比度得到了显著增强,且增强了目标图像的细节,为人眼闭合度计算带来方便。

此外,在光照环境差别较大时,该方法也能得到较好的效果,如图8所示。

图8 不同光照处理结果

1.3 闭合度计算

人眼对不同波长的红外光反射量程度不同,在850nm波长时,视网膜能够反射90%的入射光,在950nm时,视网膜只能反射40%的入射光,而在880±80 nm范围内,人脸的其他部分对于红外的反射程度却基本一致。因此对于850nm的近红外光,经视网膜成像并反射,会被CCD 摄像头接收到,会形成带有“亮瞳效应”[10-11]的视频帧。利用“亮瞳效应”,在增强后的图像中进行人眼闭合程度的计算,其流程如图9所示。

图9 闭合度计算流程图

1.3.1 二值化

为了明显区分瞳孔区域和非瞳孔区域,充分利用亮瞳效应,对网格中各像素点进行二值化,如式(8)所示。

(8)

阈值Tsplit的选取是利用OTSU大津法,使用的是聚类的思想,把图像的灰度数按灰度级分成两部分,使得两个部分之间的灰度值差异最大,每个部分之间的灰度差异最小,通过方差的计算来寻找一个合适的灰度级别来划分,并自动选取最佳阈值[13]。

眼部区域经过OTSU二值化的图像如图10所示,(a)、(b)、(c)依次为睁眼、半睁、闭眼状态。为了提高检测系统的实时性,仅仅对网格内的像素点进行二值化,减少运算量。

图10 OTSU二值化图

1.3.2 Sobel边缘检测

实际情况中,当眼睛闭合时,由于睫毛与眼睑的影响,二值化后的眼部区域存在干扰像素点,如图9(b)(c)所示,两者二值化后黑色像素点个数接近。由于Sobel边缘检测在红外光产生亮瞳效应的情况下,边缘特征提取效果较好,同时凸显了瞳孔部分,能够弥补二值化的不足,如图10所示。

Sobel算子采用了两个3*3卷积核卷积形成边缘检测算子,取中心点周围的八领域的像素[13]。用Sobel算子和图像的灰度矩阵做卷积,可以得到横向和纵向边缘检测的图像灰度值,如式(9)、(10)所示。

(9)

(10)

其中:Gx为横向边缘检测的图像灰度值矩阵,Gy为纵向边缘检测的图像灰度值矩阵。

接着,可以得到该中心像素点的灰度梯度G,如式(11)所示。为了提高实际在DSP中的运算速度,可以将式(13)简化为式(12)。

(11)

G=|Gx|+|Gy|

(12)

通过基本全局门限判定的方法可以判断该点是否为边缘点,即当图像中(i,j)像素点G(i,j)大于或等于设定门限T时,规定该点的像素值为0,反之则为255,如式(13)所示。其中,本文设定的门限值T=130。

(13)

利用Sobel算子对红外图像进行边缘检测后的边缘图像如图11(a)(b)(c)所示,其中(a)为睁眼状态,(b)为半睁眼状态,(c)为闭眼状态。

图11 Sobel边缘二值化示意图

1.3.3 人眼闭合度计算

分别对二值化、边缘检测后的图像进行闭合度计算,得出Ⅰ、Ⅱ、Ⅲ三个区域像素值与眼睛闭合程度△的数学关系式。由于驾驶过程中由于头部的晃动以及眼神的漂移等因素,会引起瞳孔相对网格位置的变化,瞳孔并不完全在Ⅱ区域内,如图12所示。

图12 头部转动检测示意图

分析眼神左右漂移产生瞳孔位置的左右偏向对偏向邻域的灰度影响,用Ⅰ、Ⅱ区灰度面积与Ⅲ区域面积差、Ⅲ、Ⅱ区灰度面积与Ⅰ区域面积差的最大值来表征瞳孔闭合度△。如式(14)所示:

△=max(|3∑fI-∑fII,III|,|3∑fIII-∑fI,II|)

(14)

其中:∑f表示该区域内像素点灰度之和,|3∑fI-∑fII,III|对应眼神向右漂移的△,而|3∑fI-∑fII,III|则对应眼神向左漂移的△。从式(14)可以发现,计算表达式依然适用于眼神不存在漂移的情况。

从式(14)可以得出:△与眼睛睁开程度满足非线性递增关系,睁开时的△比较大;闭合时的△几乎为0。因此可以根据△可以判断眼睛的闭合程度,分别设定阈值T1、T2,其中T1对应二值化后人眼闭合时△的门限值,T2对应边缘检测后人眼闭合时△的门限值,采用双阈值判定人眼的状态。

选取三网格的目的在于:在实际应用过程中,由于头部晃动、眼神漂移、配戴眼镜,引起网格标记位置的偏差,导致网格内包含眼镜边框、眉毛等“外部”黑色像素点,而三网格的选取能有效地削弱这些像素点影响,提高了检测系统的鲁棒性。如图4(a)所示,网格内包含了眼镜的边框,如式14所示,网格之间的计算,抵消了外部像素点的影响。

1.4 疲劳判断

利用上述算法能够快速准确的判断人眼的状态,并通过PERCLOS原理中的P80准则[3,14]进行疲劳判断,即眼睑遮住瞳孔的面积超过80%就计为眼睛闭合,统计在一定时间内眼睛闭合时所占的时间比例,就能进一步判断人眼是否处于疲劳状态。

2 实验及结果分析

实验采用DM642芯片,主频为720 MHz,选用的定时器频率为主频的1/8。实验对视频帧图像进行疲劳状态的识别,对系统输出的4:2:2YCbCr格式的Y分量进行处理,选取的人眼分类器大小为35*16,共19层级联分类器,实验系统硬件框图如图13所示,红外CCD摄像头采集的图像大小为576*720。

图13 实验系统硬件框图

首先,验证了整体算法的流程的识别率和效率,对6个不同对象进行了“网格法”定位,验证了其有效性,定位结果如图14所示。

图14 不同对象网格法定位结果

可以发现,被测对象的瞳孔均在网格内,并且满足闭合度计算的条件,可以成功进行人眼状态的判断。

同时计算算法消耗的时间,具体时间花费如表1所示;接着,选取了六个被测者的视频帧,即共包括800帧闭眼状态和800帧睁眼状态视频,比较了其他疲劳检测算法的识别率,分别采用不同的方法,对视频图像进行识别,结果如表2所示。

表1 各部分算法时间花费

从表1可以发现,各个部分的运行速度相对较快,除了Retinex算法中包含对数运算以及高斯滤波等,时间花费相对较多,总的检测速度依然能达到21帧/s,满足实时性要求。从表2可以发现,相对于积分投影法,本文的方法具有明显的优势;相对于计算量较大的模板匹配法,本文方法的睁眼检测效果存在不足,但总的误判率低于模板匹配法,更具可行性。

表2 其他检测算法识别率比较

3 总结

本文讨论了基于红外图像的人眼疲劳状态快速识别方法,针对传统的基于Adaboost检测算法的不足进行了改进,利用Retinex算法对红外图像进行增强,提出了网格计算法来表征人眼闭合度,通过双判据结合PERCLOS判断人眼状态,提高了整个系统的鲁棒性和准确性。实验表明,该方法在DM642开发板上具有可行性,对大小576*720的视频帧,以21帧/秒的速度完成人眼的实时检测,同时正确率在90%以上,在疲劳检测领域具有较高的实用性和商业价值。未来可以进一步优化Retinex算法,实现尺度自适应的同时,减少时间消耗;可以进一步优化检测系统,解决眼镜反光带来的检测问题。

[1] S.A.Nobe, F.Y.Wang. An overview of recent developments in automated lateral and longitudinal vehicle controls[A].IEEE International Conference on SMC[C].2001:3447-3452.

[2] 朱振华,吴晓娟,王 磊等.基于眨眼持续时间的司机疲劳监测方法[J].计算机工程,2008,34 (5):201-206.

[3] 陈守明.驾驶员疲劳检测中人眼定位方法的研究[D].长沙:中南大学,2010.

[4] 苏起扬, 娄 震. 一种疲劳驾驶检测系统中快速人眼检测方法[J]. 现代电子技术, 2015(4): 87-90.

[5] 王 力. 基于红外图象的驾驶员疲劳检测研究[D]. 长沙:中南大学, 2008.

[6] 龙伶敏. 基于Adaboost的人脸检测方法及眼睛定位算法[D]. 成都:电子科技大学,2008.

[7] 陈秋玲. 基于Adaboost算法的人脸检测研究[D]. 武汉:武汉理工大学, 2012.

[8] 陈 亮. 一种快速的基于自适应尺度Retinex的图像增强算法[J].红外与激光工程,2010,39(S):522-525.

[9] Jobson D J. Rahman Z. Woodell G.A. Properties and performance of a center/surround Retinex [J]. IEEE Trans on Image Processing. 1997. 6(7):451-462.

[10] 赵 文, 张 意, 张卫华,等. 基于红外图像的眼睛开闭检测方法[J]. 计算机工程与设计, 2015(2): 436-440.

[11] 郭克友, 张广渊. 一种红外图像条件下的驾驶人眼睛定位算法[J]. 计算机工程与应用, 2008(15):170-172.

[12] Stan Z Li.Illumination invariant face recognition using near-in-frared Images [J]. IEEE Transactions on Pattern Analysis and Machine Intelligence,2007:627-639.

[13] 赵小强,李大湘,白本督.DSP原理及图像处理应用[M].北京:人民邮电出版社,2013.

[14] Lai S K L, Craig A, Boord P, et al. Development of an Algorithm for an EEG-based Driver Fatigue Countermeasure[J]. Journal of Safety Research, 2002, 34:321-328.

Detection Method for Fatigue State Recognition of Infrared Images

Huang Bin1, Luo Qiufeng1, Wang Haitao1, Yan Wei1, Su Haiyan2

(1.College of Automation Engineering, Nanjing University of Aeronautics and Astronautics, Nanjing 211016,China;2.Yantai General Lighting Co., Ltd., Yantai 264006,China)

In order to solve the problems of low accuracy caused by light changes in fatigue detection system, a method is proposed to judge the state of eyes in near infrared environment. i.e., it is a detection method for eyes state recognition of infrared images. First of all, it uses the grid method to mark eye's pupil and uses Retinex algorithm to enhance the infrared image based on the human eyes region located by Adaboost algorithm. Then, a grid method is adopted to calculate the closure of eyes after binaryzation and edge detection respective, which is related to bright pupil effect. Finally, the state of eyes is determined by setting the dual-threshold based on the results of the closure of eyes, which is combined with PERCLOS. Besides, The tests on the hardware platform of DM642 shows that the human eyes recognition rate is more than 90%, and the average processing speed is 21 images per second. It has proved that the method can not only solve the problems caused by light changes, but also meet the requirement of rapidity, accuracy and validity of the fatigue detection system.

fatigue detection; infrared image; grid method; dual-threshold; eyes state recognition

2016-08-17;

2016-09-22。

烟台开发区科技发展计划项目(201416);江苏省重点研发(社会发展)项目(BE2015725);国家质量监督检验检疫局公益性行业科研专项(2015424068)。

黄 斌(1992-),男,硕士,主要从事图像处理与模式识别方向的研究。

王海涛(1968-),男,江苏溧阳人,教授,博士研究生导师,主要从事电磁、超声、激光超声检测技术、无损检测技术方向的研究。

1671-4598(2017)07-0230-05

10.16526/j.cnki.11-4762/tp.2017.07.057

TP216

A

猜你喜欢

人眼瞳孔像素点
基于局部相似性的特征匹配筛选算法
瞳孔检查及常见瞳孔异常
人眼X光
人眼为什么能看到虚像
基于5×5邻域像素点相关性的划痕修复算法
瞳孔里的太阳
基于canvas的前端数据加密
瞳孔
基于逐像素点深度卷积网络分割模型的上皮和间质组织分割
闪瞎人眼的,还有唇