本发明涉及机器学习技术领域,尤其涉及一种疲劳状态检测方法和装置。
背景技术:
由于疲劳驾驶是造成交通事故的重要原因之一,市场上对于疲劳检设备的需求日益增大,利用疲劳检测设备监测闭眼、打哈欠、低头等动作来判断驾驶员疲劳状态,进而选择相应的报警级别,这对于避免交通事故,提高行车安全有着重要意义。
现有技术中,大多是基于rgb相机或者红外相机并配合机器学习算法,通过人眼、人脸或嘴巴的实时状态进行疲劳状态检测。其中,使用rgb相机容易受到光照影响,例如在白天光照不均匀的情况下,不均匀的光线对图像的识别干扰极大,导致疲劳状态检测结果不准确;而使用红外相机可以避免光照影响,但由于红外相机采集的图片没有深度信息,无法得到相机和驾驶员之间的距离,当驾驶员或相机位置发生变动,无法根据距离调节亮度,进而影响疲劳状态检测结果的准确性。
技术实现要素:
本发明提供了一种疲劳状态检测方法和装置,以解决现有技术无法准确识别驾驶员疲劳状态的问题。
本发明一方面提供了一种疲劳状态检测方法,包括:利用相机参数实时调整的tof相机对用户摄像,获取用户的红外图像序列和深度图像序列,同时间拍摄的红外图像和深度图像的像素点之间一一对应;利用人脸识别模型对红外图像序列进行人脸识别,获取人脸位置和动作单元检测值,利用动作单元检测值实现疲劳状态检测;根据红外图像和深度图像像素点的对应关系,获取深度图像序列中人脸位置对应的深度信息,利用深度信息调整tof相机的参数。
本发明一方面提供了一种疲劳状态检测装置,包括:图像获取单元,用于利用相机参数实时调整的tof相机对用户摄像,获取用户的红外图像序列和深度图像序列,同时间拍摄的红外图像和深度图像的像素点之间一一对应;图像识别单元,用于利用人脸识别模型对红外图像序列进行人脸识别,获取人脸位置和动作单元检测值,利用动作单元检测值实现疲劳状态检测;相机调整单元,用于根据红外图像和深度图像像素点的对应关系,获取深度图像序列中人脸位置对应的深度信息,利用深度信息调整tof相机的参数。
本发明利用tof相机同时获得红外图和深度图,基于红外成像不受光照环境影响,可以准确识别疲劳状态,而深度图可以测算tof相机与用户之间的距离变化,根据tof相机与用户之间的距离实时调节亮度,进一步提高疲劳检测的准确性。
附图说明
图1为本发明实施例示出的疲劳状态检测方法的流程图;
图2为本发明实施例示出的动作单元检测值的变化情况示意图;
图3为本发明实施例示出的闭眼动作检测流程图;
图4为本发明实施例示出的张嘴动作检测流程图;
图5为本发明实施例示出的疲劳状态检测装置的结构框图;
图6为本发明实施例示出的疲劳状态检测装置的硬件结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
以下,将参照附图来描述本发明的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本发明的范围。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本发明的概念。
在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本发明。这里使用的词语“一”、“一个(种)”和“该”等也应包括“多个”、“多种”的意思,除非上下文另外明确指出。此外,在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。
在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
附图中示出了一些方框图和/或流程图。应理解,方框图和/或流程图中的一些方框或其组合可以由计算机程序指令来实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,从而这些指令在由该处理器执行时可以创建用于实现这些方框图和/或流程图中所说明的功能/操作的装置。
因此,本发明的技术可以硬件和/或软件(包括固件、微代码等)的形式来实现。另外,本发明的技术可以采取存储有指令的机器可读介质上的计算机程序产品的形式,该计算机程序产品可供指令执行系统使用或者结合指令执行系统使用。在本发明的上下文中,机器可读介质可以是能够包含、存储、传送、传播或传输指令的任意介质。例如,机器可读介质可以包括但不限于电、磁、光、电磁、红外或半导体系统、装置、器件或传播介质。机器可读介质的具体示例包括:磁存储装置,如磁带或硬盘(hdd);光存储装置,如光盘(cd-rom);存储器,如随机存取存储器(ram)或闪存;和/或有线/无线通信链路。
本发明一方面提供一种疲劳状态检测方法。
图1为本发明实施例示出的疲劳状态检测方法的流程图,如图1所示,本实施例的方法包括:
s110,利用相机参数实时调整的tof相机对用户摄像,获取用户的红外图像序列和深度图像序列,同时间拍摄的红外图像和深度图像的像素点之间一一对应。
tof相机为采用飞行时间(timeofflight,tof)技术的相机,即传感器发出经调制的近红外光,遇物体后反射,传感器通过计算光线发射和反射时间差或相位差,来获得被拍摄物体的距离,以产生深度信息,此外再结合传统的相机拍摄,就能将物体的三维轮廓以不同颜色代表不同距离的地形图方式呈现出来。
s120,利用人脸识别模型对红外图像序列进行人脸识别,获取人脸位置和动作单元检测值,利用动作单元检测值实现疲劳状态检测。
s130,根据红外图像和深度图像像素点的对应关系,获取深度图像序列中人脸位置对应的深度信息,利用深度信息调整所述tof相机的参数。
其中,深度信息表示tof相机与人脸之间的距离。
本实施例利用tof相机同时获得红外图和深度图,红外成像不受光照环境影响,可以准确识别疲劳状态,而深度图可以测算tof相机与用户之间的距离变化,根据距离调节亮度,进一步提高疲劳检测的准确性。
图2为本发明实施例示出的动作单元检测值的变化情况示意图,图3为本发明实施例示出的闭眼动作检测流程图,图4为本发明实施例示出的张嘴动作检测流程图,下面结合如图2-4对上述步骤s110-s130进行详细说明。
首先,执行步骤s110,即利用相机参数实时调整的tof相机对用户摄像,获取用户的红外图像序列和深度图像序列,同时间拍摄的红外图像和深度图像的像素点之间一一对应。
本实施例利用tof相机可以得到红外图像序列和深度图像序列,由于红外图像序列和深度图像序列是由同一个传感器产生,因此同时间拍摄得到的红外图像帧和深度图像帧之间的像素点是一一对应的。本实施例可以利用同时间拍摄得到的红外图像帧和深度图像帧像素点之间的对应关系获得每帧深度图像中人脸位置,进而获得人脸相对tof相机的距离。
在获得红外图像序列和深度图像序列之后,继续执行步骤s120,即利用人脸识别模型对红外图像序列进行人脸识别,获取人脸位置和动作单元检测值,利用动作单元检测值实现疲劳状态检测。
本实施例根据下述方法获取人脸位置和动作单元检测值:首先利用openface人脸识别模型中的线性支持向量器对红外图像序列进行识别,获得人脸位置的像素点信息,以及获得动作单元检测值的变化情况,动作单元检测值的变化情况包括嘴唇动作检测值变化情况和眼睛动作检测值变化情况,嘴唇动作检测值的变化表示是否发生张开嘴巴的动作,眼睛动作检测值的变化情况表示是否发生眨眼动作;然后根据动作单元检测值的变化情况进行疲劳状态检测;最后根据发生的打哈欠动作和/或闭眼动作识别疲劳状态,例如当发生打哈欠动作和闭眼动作时,识别用户处于非常疲劳状态,当只发生打哈欠动作时,识别用户处于较疲劳状态,当只发生闭眼动作时,识别用户处于一般疲劳状态。
在本实施例中,可以开辟动作单元检测值(即actionunits,au)计算线程,利用动作单元检测值计算线程进行人脸位置检测和au值的计算,例如在openface人脸识别模型中使用线性支持向量器(linearkernelsupportvectormachine)对au的存在性进行预测,在确定存在au时,使用线性支持向量回归(linearkernelsupportvectorregression)对au值进行计算。开辟疲劳行为检测线程进行疲劳检测。
在openface中,本实施例au25和au26属于嘴唇动作检测,用于识别打哈欠;au45属于眨眼动作检测,用于识别闭眼。
在openface人脸识别模型中使用线性支持向量回归可以计算得到每帧红图像中的au45值,对于红外图像序列,当存在闭眼动作时,计算得到au45值的变化情况如图2所示,au45的值会发生急剧上升,并平稳保持一段时间,张开眼睛时就又迅速回落,那么根据此规律本实施例在眼睛动作检测值持续大于眨眼特征值的时间大于第二时间阈值,确定发生闭眼动作。
如图3所示,根据计算得到的au45值,可以判断红外图像序列中是否存在au45值突变的第一红外图像帧upframe,当没有存在第一红外图像帧upframe时确定没有发生闭眼动作,处于正常normal状态;当存在第一红外图像帧upframe时,进行突变值检测updetect,在没有检测到au45值等于或大于眨眼特征值holdframe时,确定没有发生闭眼动作,处于正常normal状态;在检测到au45值等于或大于眨眼特征值时,进行闭眼检测closeeyedetect,当au45值等于或大于眨眼特征值的持续时间holdontime大于第二时间阈值t2时,确定发生闭眼动作,否则,在au45值等于或大于眨眼特征值的持续时间holdontime不大于第二时间阈值t2时,确定没有发生闭眼动作,处于正常normal状态。
同样的,在openface人脸识别模型中使用线性支持向量回归可以计算得到每帧红外图像中的au25值和au26值,对于红外图像序列,当存在打哈欠动作时,计算得到au25值和au26值的变化情况均如图2所示,au25值和au26值均会发生急剧上升,并平稳保持一段时间,闭上嘴巴时就又迅速回落,那么根据此规律本实施例在嘴唇动作检测值持续大于张嘴特征值的时间大于第一时间阈值时,确定发生打哈欠动作。
如图4所示,根据计算得到的au25值和au26值,可以判断红外图像序列中是否存在au25值和au26值突变的第二红外图像帧upframe’,当没有存在第二红外图像帧upframe’时确定没有发生打哈欠动作,处于正常normal状态;当存在第二红外图像帧upframe’时,进行突变值检测updetect,在没有检测到au25值和au26值等于或大于张嘴特征值holdframe’时,确定没有发生打哈欠动作,处于正常normal状态;在检测到au25值和au26值等于或大于打哈欠特征值时,进行打哈欠检测openmouthdetect,当au25值和au26值等于或大于张嘴特征值的持续时间holdontime’大于第一时间阈值t1时,确定发生打哈欠动作,否则,在au25值和au26值等于或大于张嘴特征值的持续时间holdontime’不大于第一时间阈值t1时,确定没有发生打哈欠动作,处于正常normal状态。
在实现疲劳状态检测之后,继续执行步骤s130,即根据红外图像和深度图像像素点的对应关系,获取深度图像序列中人脸位置对应的深度信息,利用深度信息调整tof相机的参数。
本实施例中的深度信息为每帧深度图像中人脸位置对应的人脸区域内各像素点深度值之和的平均值,相机参数包括增益参数gain和激光亮度参数pulsecnt。
本实施例可以开辟相机参数调整线程进行参数调整,利用深度信息所指示的tof相机与人脸之间的距离,在根据深度信息确定用户与tof相机距离变近时,调小tof相机的增益参数gain和激光亮度参数pulsecnt,使亮度变暗;在根据深度信息确定用户与tof相机距离变远时,调大tof相机的增益参数gain和激光亮度参数pulsecnt,使亮度变亮,以达到更好的成像效果,使疲劳检测更准确。
本实施例启用多线程进行疲劳状态检测,能够提高检测速度,并利用openface人脸识别模型,基于动作单元检测值的变化情况识别闭眼、打哈欠等状态进而进行疲劳检测,逻辑简单、检测效果准确度高。
本发明另一方面提供一种疲劳状态检测装置。
图5为本发明实施例示出的疲劳状态检测装置的结构框图,如图5所示,本实施例的控制装置包括:
图像获取单元51,用于利用相机参数实时调整的tof相机对用户摄像,获取用户的红外图像序列和深度图像序列,同时间拍摄的红外图像和深度图像的像素点之间一一对应;
图像识别单元52,用于利用人脸识别模型对红外图像序列进行人脸识别,获取人脸位置和动作单元检测值,利用动作单元检测值实现疲劳状态检测;
相机调整单元53,用于根据红外图像和深度图像像素点的对应关系,获取深度图像序列中所述人脸位置对应的深度信息,利用深度信息调整tof相机的参数。
本实施例中的深度信息为深度图像中人脸位置对应的人脸区域内各像素点深度值之和的平均值。
在本实施例中,图像识别单元52用于利用openface人脸识别模型中的线性支持向量器对红外图像序列进行识别,获得人脸位置的像素点信息,以及获得动作单元检测值的变化情况,动作单元检测值的变化情况包括嘴唇动作检测值变化情况和眼睛动作检测值变化情况,嘴唇动作检测值的变化表示是否发生张开嘴巴的动作,眼睛动作检测值的变化情况表示是否发生眨眼动作;根据动作单元检测值的变化情况进行疲劳状态检测。
图像识别单元52还用于在嘴唇动作检测值持续大于张嘴特征值的时间大于第一时间阈值时,确定发生打哈欠动作;在眼睛动作检测值持续大于眨眼特征值的时间大于第二时间阈值,确定发生闭眼动作;根据发生的打哈欠动作和/或闭眼动作识别疲劳状态。
在本实施例中,相机调整单元53用于在根据深度信息确定用户与tof相机距离变近时,调小tof相机的增益参数和激光亮度参数,使亮度变暗;在根据深度信息确定用户与tof相机距离变远时,调大tof相机的增益参数和激光亮度参数,使亮度变亮。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
本发明提供的疲劳状态检测装置可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,参照图6所示,本发明提供的疲劳状态检测装置可包括处理器601、存储有机器可执行指令的机器可读存储介质602。处理器601与机器可读存储介质602可经由系统总线603通信。并且,通过读取并执行机器可读存储介质602中与控制逻辑对应的机器可执行指令,处理器601可执行上文描述的疲劳状态检测方法。
本发明中提到的机器可读存储介质602可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,机器可读存储介质可以是:ram(radomaccessmemory,随机存取存储器)、易失存储器、非易失性存储器、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。
根据本发明公开的示例,本发明还提供了一种包括机器可执行指令的机器可读存储介质,例如图6中的机器可读存储介质602,机器可执行指令可由疲劳状态检测装置中的处理器601执行以实现上文描述的疲劳状态检测方法。
以上所述,仅为本发明的具体实施方式,在本发明的上述教导下,本领域技术人员可以在上述实施例的基础上进行其他的改进或变形。本领域技术人员应该明白,上述的具体描述只是更好的解释本发明的目的,本发明的保护范围应以权利要求的保护范围为准。