基于Kinect及人脸识别的疲劳驾驶检测方法

文档序号:6715967阅读:409来源:国知局
基于Kinect及人脸识别的疲劳驾驶检测方法
【专利摘要】本发明公开了一种基于Kinect及人脸识别的疲劳驾驶监测方法,包括:步骤一、通过Kinect摄像头拍摄视频,进行人脸识别追踪分析,得到一个用户脸部的3D面具;步骤二、在Kinect人脸识别获得的3D面具上,提取人脸的121个特征点;在人脸特征点中人眼图像提取、嘴部图像区域的特征点并记录;步骤三、将人眼区域在识别到的人脸图像中标识出来,提取到新的画板中,并且对人眼图像进行灰度化处理和二值化处理;步骤四、引入判断疲劳驾驶的判断依据,即有关人眼的眨眼频率的变化率和闭眼时间的检测;有关嘴部打哈欠的检测。本发明对于目前国内仍处于初始阶段的基于视频的疲劳驾驶监测方法的研制与开发,具有一定科研价值与借鉴、关于疲劳驾驶方面的课题研究的促进意义。
【专利说明】基于Kinect及人脸识别的疲劳驾驶检测方法

【技术领域】
[0001]本发明涉及人脸识别技术,特别是涉及基于Kinect及人脸识别的疲劳驾驶检测方法。

【背景技术】
[0002]疲劳驾驶已经成为路面交通事故的一个主要原因,驾驶疲劳将使驾驶员的注意、感觉、知觉、思维、判断、意志、决定和运动诸方面受到影响。作为导致交通事故频频发生的一个重要原因,如何预防和检测疲劳驾驶已经成为科学领域的热门话题和研宄方向。而目前国内对基于视频的疲劳驾驶监测系统的研制与开发仍处于初始阶段,因此,关于疲劳驾驶方面的课题研宄具有极大的科研价值与意义
[0003]当今世界上有关疲劳驾驶检测的技术大致有三种,一是物理传感器,二是物理信号如脑电图,三是基于计算机视觉。相比而言,前两种技术对驾驶员要求较高,增加了驾驶的不便,而且对驾驶员有所损害。第三种基于计算机视觉尤其是人脸识别和检测方面的技术进行的疲劳驾驶检测,更加的方便,且具有实用性。当今世界基于人脸识别的疲劳驾驶检测系统大都使用OpenCV及其相关技术,使用OpenCV的库函数去实现人脸识别的算法,并优化识别结果。如果选取的人脸识别的算法不当,会对识别结果造成很大的影响,结果误差很大。
[0004]人眼识别在疲劳驾驶检测系统中运用也非常广泛,主要是由于疲劳特征在人眼处很容易找到。人眼识别算法有很多种。2004年的一种人眼识别和追踪算法,是将RGB (红绿蓝)颜色空间区域的图像转化到HSI (色调,亮度,饱和度)颜色空间域中,这样可以将亮度不同而造成的误差降到最小。另一种霍夫变换为基础的人眼识别和追踪算法,是根据人脸特征点的移动,将面部表情进行分解,此算法由于准确度很高,得到了很多人的重视,但是缺点是计算要求高。
[0005]由于Kinect技术的人脸识别特别是人眼处的识别结果更加精确,排除了由于定位人眼不准确对实验结果的影响。在人眼处提取特征时,首先进行灰度化的处理,这样去除了色彩的干扰,而后不是直接转换颜色空间,而且只提取HIS空间域的H分量,这样更加简便而且提取到了需要的灰度图像,最后进行二值化的处理,排除亮度不同对实验结果的干扰,继而进行眨眼和闭眼时间的判断和检测以及嘴部打哈欠的检测,作为疲劳依据,使得实验结果更加准确。


【发明内容】

[0006]为了克服上述现有技术存在的问题,本发明提出了一种基于Kinect及人脸识别的疲劳驾驶检测方法,以Kinect为平台,借助Kinect更精确的人脸识别技术,检测和识别人眼区域,通过对人眼特征提取和分析,并且增加了嘴部打哈欠检测的判断,设计和实现了一个基于Kinect及人脸识别的疲劳驾驶检测方法。
[0007]本发明提出了基于Kinect及人脸识别的疲劳驾驶监测方法,其特征在于,该系统包括以下步骤:
[0008]步骤一、通过Kinect摄像头拍摄到用户关于脖子和头部的骨骼信息,进行人脸识别追踪分析,得到的人脸识别结果为一个用户脸部的3D面具;
[0009]步骤二、在Kinect人脸识别获得的3D面具上,提取人脸的121个特征点;通过人脸特征点去定位,进行人眼图像提取、嘴部图像提取,并将相关特征点并记录下来;
[0010]步骤三、根据步骤二获取的人眼区域的特征点,将人眼区域在识别到的人脸图像中标识出来,提取到新的画板中,并且对人眼图像进行灰度化处理和二值化处理;
[0011]步骤四、引入判断疲劳驾驶的判断依据,即:有关人眼的眨眼频率的变化率和闭眼时间的检测;有关嘴部的打哈欠的检测。
[0012]所述步骤一的人脸识别,具体包括以下步骤:
[0013]用于人脸识别所使用的类为FaceTracker和FaceTrackFrame,所述用户脸部的3D面具由121个特征点连线而形成的多个三角形拼接构成。
[0014]所述步骤二的人眼图像提取,具体包括以下步骤:
[0015]首先,获取彩色图像的位图数据;然后,获取人眼矩形框区域的大小,左眼睛的矩形区域由第19,20,23,24这四个特征点的坐标提供,矩形框的高是由特征点24和特征点19的Y坐标的差值表示,矩形框的宽由特征点23和特征点20的X坐标的差值表示。矩形框的顶点坐标的X坐标为特征点20的X坐标,Y坐标为特征点19的Y坐标。
[0016]所述步骤二的嘴部图像提取,具体包括以下步骤:
[0017]获取嘴巴外侧的四个特征点即特征点31,85,79和64。
[0018]所述步骤三的灰度化处理,具体计算方法为按照以下的公式将彩色图像转换为灰度图像:
[0019]Gray(i, j) = 0.299*R(i, j)+0.587*G(i, j)+0.114*B(i, j)。
[0020]所述二值化处理,具体包括以下步骤:
[0021]设定一个初始阈值,并对这个阈值进行迭代直至收敛;迭代算法如下:遍历像素点,得到最大值和最小值,求平均值即为初始阈值T ;像素值低于T的像素点集合Cl和高于T的像素点集合C2分别进行加权平均的计算,得到的值即迭代一次后的阈值,终止条件为前一次和后一次的迭代结果阈值不再发生变化。
[0022]所述步骤四中眨眼频率的变化率的判断,具体包括以下步骤:
[0023]每一分钟进行一次采样,并在后一次采样完成后计算和前一个采样样本的方差,依次迭代,出现波动较大的一个样本判断为疲劳。
[0024]所述步骤四中闭眼时间的判断,具体包括以下步骤:
[0025]设置一个阈值2秒;超过此阈值的闭眼时间判断为疲劳驾驶。
[0026]所述步骤四的嘴部的打哈欠的检测,具体包括以下步骤:
[0027]通过检测嘴部张开的角度大小,检测是正常说话还是由于疲劳有打哈欠的动作,出现打哈欠的动作判断为疲劳驾驶。
[0028]本发明对于目前国内仍处于初始阶段的基于视频的疲劳驾驶监测方法的研制与开发,具有一定科研价值与借鉴、关于疲劳驾驶方面的课题研宄的促进意义。

【专利附图】

【附图说明】
[0029]图1为本发明的整体流程图;
[0030]图2为人脸识别过程示意图;
[0031]图3为人脸的特征点描绘结果示意图;
[0032]图4为人眼识别结果示意图;
[0033]图5为人眼图像提取结果示意图;
[0034]图6为人眼区域图像灰度化处理结果示意图;
[0035]图7为人眼区域图像均值二值化处理结果示意图;
[0036]图8为人眼区域图像迭代二值化处理结果示意图;
[0037]图9为人眼状态转换示意图;
[0038]图10为人眼非法状态转换示意图;
[0039]图11为人眼睁眼检测结果示意图;
[0040]图12为人眼闭眼检测结果示意图;
[0041]图13为嘴部闭紧检测结果示意图;
[0042]图14为嘴部张开检测结果示意图
[0043]图15为眼部眨眼频率疲劳判断结果示意图;
[0044]图16为眼部闭眼时间疲劳特征判断结果示意图;
[0045]图17为嘴部疲劳特征判断结果示意图;

【具体实施方式】
[0046]Kinect的优势是其SDK包含了人脸识别和追踪的SDK,可以更加精确的检测定位人脸,这样是在更加准确的定为人脸基础上提取人脸特征,保证了实验结果的准确度,排除了由于定位人眼不准确对实验结果的影响。在人眼处提取特征时,首先进行灰度化的处理,去除了色彩的干扰,进行二值化的处理,排除亮度不同对实验结果的干扰,最后进行眨眼和闭眼时间的判断和检测,本文还增加了打哈欠的检测作为疲劳判断条件。本文借助Kinect平台,以人脸识别和检测为主,通过脸部一系列的特征检测判断疲劳驾驶是非常有研宄意义的。
[0047]下面结合附图对本发明技术方案和实施例进一步详细说明。
[0048]如图1所示,本发明的技术方案详述如下:
[0049]步骤1:Kinect (Kinect forffindows SDK)人脸识别使用的库中的类为FaceTracker和FaceTrackFrame,根据摄像机的输入(指Kinect传感器的彩色图像数据和深度图像数据作为输入,还包括脖子和头部的一些骨骼信息)进行分析和计算,人脸识别结果得到的是一个用户脸部的3D面具,面具包含了脸部121个特征点,由这些特征点连线而形成的一个个三角形拼接构成。这些特征点都是在Kinect的空间坐标系中输出结果,原点位于摄像机中心(传感器部分),Z轴指向用户,Y轴指向上,具体如图2所示。
[0050]步骤2:人眼识别主要使用Kinect识别出的121个人脸特征点去定位,这121个特征点的下标记为O?120,这些特征点有些是不需要的,接下来是找到人脸特征点中代表人眼区域的特征点。首先将获取的特征点的坐标写入文本文档,并通过Matlab模拟人脸形状,可以将这些特征点在人脸的大概位置绘制如图3所示,这样可以通过下标找到人眼特征点并记录下来。根据人眼图像的特征点将人脸中人眼区域图像标识出来,如图4所示。
[0051]步骤3:识别人眼图像提取前要准备两件事,第一件事是获取彩色图像的位图数据,第二件事情是获取人眼矩形框区域的大小,左眼睛的矩形区域由19,20,23,24四个特征点的坐标提供,矩形框的高是由特征点24和特征点19的Y坐标的差值表示,矩形框的宽由特征点23和特征点20的X坐标的差值表示。矩形框的顶点坐标(即左上角坐标)的X坐标为特征点20的X坐标,Y坐标为特征点19的Y坐标。将整张图像的位图数据中人眼位图数据提取出来,提取的人眼数据生成一个图片,显示在重新生成的矩形窗口中,如图5所不O
[0052]步骤4:灰度化是将彩色图像转换成灰度图像,也就是将每一个像素点的三个分量R,G,B通过计算使得三者的值相同。每个像素点和像素点之间只有明暗的变化。其原理包含在将RGB颜色空间域的图像转换成YUV颜色空间图像的过程中。YUV颜色空间,是欧洲电视系统采用的颜色编码格式。其中,Y表示明亮程度(Luminance),即灰度值;U和V都表示色度(Chrominance),描述色彩饱和度,是彩色的两个分量。YUV颜色空间的Y分量与U,V分量是分离开的,所以只取出其中的Y分量就可以得到灰度图像了,所以本文按照以下的公式将彩色图像转换为灰度图像:
[0053]Gray(i, j) =0。299*R(i, j)+0。587*G(i, j)+0。114*B(i,j)
[0054]转换结果如图6所示。
[0055]步骤5:二值化的方法核心思想是确定一个阈值,像素点值高于阈值的定为255,像素点值低于阈值的定为0,如果确定一个阈值,阈值是否准确是二值化的关键问题。
[0056]均值法求二值化是最简单的一种确定阈值的方法。将所有的像素点的值累加求平均得到的就是阈值,遍历所有的像素点,像素值低于阈值设为0,像素值高于阈值设为255。使用此方法进行二值化得到的效果图如图7所示。
[0057]迭代二值化的核心思想是设定一个初始阈值,并对这个阈值进行迭代直至收敛。迭代算法如下:遍历像素点,得到最大值和最小值,求平均值即为初始阈值T。像素值低于T的像素点集合Cl和高于T的像素点集合C2分别进行加权平均的计算,得到的值即迭代一次后的阈值,终止条件为前一次和后一次的迭代结果阈值不再发生变化。使用此方法进行二值化得到的效果图如图8所示。
[0058]步骤6:引入本发明的疲劳驾驶检测的两个判断依据:眨眼频率和闭眼时间。二者都需要对眼睛进行眨眼判断,在研宄眨眼过程中,将人眼按状态进行划分,共分为三个状态:一是睁眼状态0,二是闭眼状态C,二是在睁眼状态和闭眼状态之间的一种中间状态M。完整一次眨眼过程,包括从睁眼状态O到中间状态M,再到闭眼状态C,再回到中间状态M,回到睁眼状态O。状态转换图如图9,非法状态转换图如图10,所以根据相邻状态就有如下规律:
[0059](I)、如果当前状态为0,那么下一个状态只有两种可能,M或者0,不可能为C ;
[0060](2)、如果当前状态为M,那么下一个状态有三种可能,O或者M或者C ;
[0061](3)、如果当前状态为C,那么下一个状态只有两种可能,C或者M,不可能为O。非法状态:
[0062](I)当前状态为0,下一个状态为C ;
[0063](2)当前状态为C,下一个状态为O。
[0064]步骤7:完整一次眨眼过程,包括从睁眼状态O到中间状态M,再到闭眼状态C,再回到中间状态M,回到睁眼状态O。每个状态由黑像素点占的百分比标识。睁眼状态识别图像如图11,闭眼状态识别图像如图12所示。
[0065]步骤8:打哈欠的检测主要使用了嘴巴外侧的四个特征点即31,85,79和64。通过嘴角张开角度判断打哈欠。嘴巴闭紧检测效果如图13,嘴巴张开检测效果如图14。
[0066]步骤9:疲劳判断识别结果如图15和图16所示。
[0067]本发明运用本发明对志愿者进行了疲劳检测实验,实验结果准确率高,具有较高可行性。
【权利要求】
1.基于Kinect及人脸识别的疲劳驾驶监测方法,其特征在于,该系统包括以下步骤: 步骤一、通过Kinect摄像头拍摄到用户关于脖子和头部的骨骼信息,进行人脸识别追踪分析,得到的人脸识别结果为一个用户脸部的3D面具; 步骤二、在Kinect人脸识别获得的3D面具上,提取人脸的121个特征点;通过人脸特征点去定位,进行人眼图像提取、嘴部图像提取,并将相关特征点并记录下来; 步骤三、根据步骤二获取的人眼区域的特征点,将人眼区域在识别到的人脸图像中标识出来,提取到新的画板中,并且对人眼图像进行灰度化处理和二值化处理; 步骤四、引入判断疲劳驾驶的判断依据,即:有关人眼的眨眼频率的变化率和闭眼时间的检测;有关嘴部打哈欠的检测。
2.如权利要求1所述的基于Kinect及人脸识别的疲劳驾驶监测方法,其特征在于,所述步骤一的人脸识别,具体包括以下步骤: 用于人脸识别所使用的类为FaceTracker和FaceTrackFrame,所述用户脸部的3D面具由121个特征点连线而形成的多个三角形拼接构成。
3.如权利要求1所述的基于Kinect及人脸识别的疲劳驾驶监测方法,其特征在于,所述步骤二中的人眼图像提取,具体包括以下步骤: 首先,获取彩色图像的位图数据;然后,获取人眼矩形框区域的大小,左眼睛的矩形区域由第19,20,23,24这四个特征点的坐标提供,矩形框的高是由特征点24和特征点19的Y坐标的差值表示,矩形框的宽由特征点23和特征点20的X坐标的差值表示。矩形框的顶点坐标的X坐标为特征点20的X坐标,Y坐标为特征点19的Y坐标。
4.如权利要求1所述的基于Kinect及人脸识别的疲劳驾驶监测方法,其特征在于,所述步骤二中的嘴部图像提取,具体包括以下步骤 获取嘴巴外侧的四个特征点即特征点31,85,79和64。
5.如权利要求1所述的基于Kinect及人脸识别的疲劳驾驶监测方法,其特征在于,所述灰度化,具体计算方法为按照以下的公式将彩色图像转换为灰度图像:
Gray(i, j) = 0.299*R(i, j)+0.587*G(i, j)+0.114*B(i, j)。
6.如权利要求1所述的基于Kinect及人脸识别的疲劳驾驶监测方法,其特征在于,所述二值化的处理,具体包括以下步骤: 设定一个初始阈值,并对这个阈值进行迭代直至收敛;迭代算法如下:遍历像素点,得到最大值和最小值,求平均值即为初始阈值T ;像素值低于T的像素点集合Cl和高于T的像素点集合C2分别进行加权平均的计算,得到的值即迭代一次后的阈值,终止条件为前一次和后一次的迭代结果阈值不再发生变化。
7.如权利要求1所述的基于Kinect及人脸识别的疲劳驾驶监测方法,其特征在于,所述步骤四的眨眼频率的变化率的判断,具体包括以下步骤: 每一分钟进行一次采样,并在后一次采样完成后计算和前一个采样样本的方差,依次迭代,出现波动较大的一个样本判断为疲劳。
8.如权利要求1所述的基于Kinect及人脸识别的疲劳驾驶监测方法,其特征在于,所述步骤四的闭眼时间的判断,具体包括以下步骤: 设置一个阈值2秒;超过此阈值的闭眼时间判断为疲劳驾驶。
9.如权利要求1所述的基于Kinect及人脸识别的疲劳驾驶监测方法,其特征在于,所述步骤四的嘴部打哈欠的检测,具体包括以下步骤: 通过检测嘴部张开的角度大小,检测是正常说话还是由于疲劳有打哈欠的动作,出现打哈欠的动作判断为疲劳驾驶。
【文档编号】G08B21/06GK104504856SQ201410848027
【公开日】2015年4月8日 申请日期:2014年12月30日 优先权日:2014年12月30日
【发明者】杨天培, 孟昭鹏, 陶文源 申请人:天津大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1