掌桥专利:专业的专利平台
掌桥专利
首页

一种昏暗环境下闭眼检测方法及系统

文献发布时间:2023-06-19 19:30:30


一种昏暗环境下闭眼检测方法及系统

技术领域

本发明涉及一种视觉检测技术,尤其涉及一种昏暗环境下闭眼检测方法及系统。

背景技术

疲劳驾驶检测系统的一项重要指标是驾驶员的眼睛开闭状态,以睁眼、闭眼、眨眼等状态作为依据进一步分析驾驶员疲劳等级。在矿井等昏暗环境下,工作面有较大的粉尘,工作人员需要佩戴防护面罩,基本上只露出眼睛,因此对眼睛状态的准确判断至关重要。

检测睁闭眼的CV技术主要有两种,一种是训练一个分类模型,直接对视频中ROI(Region Of Interest)即眼部图像进行分类。另一种是先对脸部特征点检测,然后利用眼部关键点计算EAR(眼睛纵横比),最后将EAR与阈值对比来判断眼睛状态。前者需要大量真实环境下的人脸数据,且需要耗费大量标注成本,训练数据的质量直接影响模型的好坏,且通用性并不是很好。后一种由于不需要大量的训练数据,在恶劣环境下,检测误差较大。但无论使用哪种方案,都面临一个共同的难题,即在矿井这样的复杂恶劣环境下,无法保证系统的稳定性和实时性。

在矿井等昏暗环境下,无论是开车还是工作,都要需要保持良好的精神状态,否则极容易引发安全事故。因此需要有一种方法能够在昏暗环境下准确判断人员是否闭眼,从而进一步判断其是否疲劳或者身体不适。

但是矿井的工作环境下,视野昏暗、粉尘多,强光污染,场景变换等因素都对该目标构成了挑战。同时该检测方法必须具有很高的稳定性,它关系着工作人员的身体安全和心理承受能力。所以即要检测的出来又不能误报。

基于此,准确并及时检测司机是否闭眼不仅是一个重点,也是一个难点,它是整个系统成功与否的关键点。

发明内容

为解决现有技术中的问题,本发明提供一种昏暗环境下闭眼检测方法及系统,尤其适用于矿井等昏暗环境下,能够大大提高检测的准确率。

本发明昏暗环境下闭眼检测方法,其特征在于,包括如下步骤:

S1:设定下限阈值和上限阈值,其中下限阈值和上限阈值均为正数,且下限阈值小于上限阈值;

S2:接收视频帧,根据眼睛关键点坐标信息,计算EAR;

S3:根据双阈值法判断EAR,连续多帧满足设定条件时,则认定为闭眼状态,

其中,根据双阈值法判定眼睛状态的执行方法包括如下子步骤:

S31:判断EAR值是否小于下限阈值,

S32:如果小于下限阈值,则启动计数,且在小于上限阈值的情况下,次数累加;如果不小于上限阈值,则停止并重置计数;

S33:判断次数是否达到设定的门限次数,如果是,则判定为闭眼状态,如果否,则判定为睁眼状态。

本发明作进一步改进,在步骤S2执行后,步骤S3执行前,还包括更新上下限阈值步骤,用于根据计算的EAR值动态更新下限阈值和上限阈值。

本发明作进一步改进,所述更新上下限阈值步骤的执行方法包括如下子步骤:

判断用于存储EAR值的EAR缓存大小;

如果小于预设值,则将当前视频帧的EAR放入EAR缓存,然后执行步骤S3,

如果大于预设值,则直接执行步骤S3,

如果等于预设值,将当前视频帧的EAR放入EAR缓存,根据所述EAR缓存中所有的EAR值计算下限阈值和上限阈值。

本发明作进一步改进,判断用于存储EAR值的EAR缓存大小之前,还包括过滤步骤:当EAR值小于第一设定值时,则直接过滤掉,进行下一EAR值的判断处理,其中,所述第一设定值为正数,且小于下限阈值。

本发明作进一步改进,根据所述EAR缓存中所有的EAR值计算下限阈值和上限阈值的计算方法为:

计算所有EAR值的平均值mean和标准差delta;

下限阈值threshold_low的计算公式为:

threshold_low=mean/2.0+delta+bias

上限阈值threshold_high的计算公式为:

threshold_high=threshold_low+a

其中,bias为偏差因子,a为大于0的实数。

本发明作进一步改进,步骤S2执行前,还包括设置步骤:设置帧数初始值为0,并设置帧数门限及EAR缓存;

步骤S2中,接收视频帧时,对帧数累加计数,当帧数超过帧数门限时,则帧数归零,同时将后续的EAR缓存清空。

本发明作进一步改进,步骤S2中,采用深度学习模型YuNet对视频帧做人脸检测,如果检测到人脸,则截取人脸区域,得到人脸关键点坐标信息,得到人眼关键点坐标信息。

本发明作进一步改进,根据视频采集装置的安装位置,获取靠近视频采集装置侧的人单眼关键点坐标信息,根据该只眼睛的关键点坐标信息计算EAR。

本发明还提供一种系统,用于实现权利要求1-9任一项所述的昏暗环境下闭眼检测方法,其特征在于,包括:

设定模块:设定下限阈值和上限阈值,其中下限阈值和上限阈值均为正数,且下限阈值小于上限阈值;

接收模块:用于接收视频帧;

计算模块:用于根据眼睛关键点坐标信息,计算EAR;

判定模块:用于根据双阈值法判断EAR,连续多帧满足时,则认定为闭眼,

其中,所述双阈值法的执行方法包括:

判断EAR值,

如果小于下限阈值,则启动计数,每小于下限阈值一次,则次数加1,当次数达到设定门限次数时,则判定为闭眼;

如果大于上限阈值,则停止并重置计数。

本发明作进一步改进,还包括更新上下限阈值模块:用于根据计算的EAR值动态更新下限阈值和上限阈值。

与现有技术相比,本发明的有益效果是:

1、本发明采用EAR作为判定的基础,不需要大量真实的人脸数据,通用性好,操作更加灵活高效;

2、本发明采用双阈值法进行判定,使得在一定波动范围内可以快速准确的做出判断。通过大量实验,本发明在矿井等昏暗环境下,有很好的表现,能够实时、准确的识别人是否为闭眼,尤其是在矿井等昏暗环境下仍能稳定准确检测,从而为疲劳驾驶检测等系统提供支撑;

3、本发明通过动态计算和更新上下限阈值,从而使本发明能够适用于不同背景环境下、不同人的实时检测,在不断变换的背景和场景下,检测准确度更高。

附图说明

图1为本发明方法流程图;

图2为本发明一实施例方法流程图;

图3为人眼关键点坐标信息示意图;

图4为本发明双阈值法执行方法流程图。

具体实施方式

下面结合附图和实施例对本发明做进一步详细说明。

由于基于EAR检测正闭眼模型,对训练数据并没有那么高的要求,可以使用优秀的开源深度模型,因此,本例将此技术作为本发明的起始点,操作起来更加灵活。

如图1所示,本发明昏暗环境下闭眼检测方法,其特征在于,包括如下步骤:

S1:设定下限阈值和上限阈值,其中下限阈值和上限阈值均为正数,且下限阈值小于上限阈值;

S2:接收视频帧,根据眼睛关键点坐标信息,计算EAR;

S3:根据双阈值法判断EAR,连续多帧满足设定条件时,则认定为闭眼状态。

其中,根据双阈值法判定眼睛状态的执行方法包括如下子步骤:

S31:判断EAR值是否小于下限阈值,

S32:如果小于下限阈值,则启动计数,且在小于上限阈值的情况下,次数累加;如果不小于上限阈值,则停止并重置计数;

S33:判断次数是否达到设定的门限次数,如果是,则判定为闭眼状态,如果否,则判定为睁眼状态。

针对闭眼的判定,现有技术是直接设置一个固定阈值threshold,比如0.2,当连续5帧(连续帧是为了过滤异常波动)EAR小于0.2即认为闭眼。这种固定阈值法虽然简单直接,但稳定性不足且适用性不强。由于受环境的复杂性及深度模型能力等多种因素影响,计算得出的EAR值是不断波动的,且有的场景下波动很大。这种波动性导致当threshold偏小时,很难有连续多帧都小于阈值,从而无法快速检测出闭眼。而当threshold偏大时,又会导致误报。这种波动性使得无法找到一个完美的单阈值。

本发明采用双阈值法进行判定,使得在一定波动范围内可以快速准确的做出判断。本发明将下限阈值作为启动开关,将上限阈值作为停止开关,能够有效避免因眯眼或眨眼等操作造成的误判。特别是在矿井的环境下,环境比较昏暗,当到达矿灯处时,由于强光刺激,人眼会不自主条件反射,产生眯眼等动作,而本发明通过上限阈值的设置,到达上限阈值时,停止计数,并将计数重置,则能够有效地滤除该种情形下的误判。

通过大量实验,本发明在矿井等昏暗环境下,有很好的表现,能够实时、准确的识别人是否为闭眼,尤其是在矿井等昏暗环境下仍能稳定准确检测,从而为疲劳驾驶检测等系统提供支撑。

但该方法限于司机不换人,单线运行,不换工作环境的情况下,如果再换一个眼睛偏小的人测试,或者同一个人更换与现有工作环境差异大的实验场所,效果可能会变差很多,就是算法的普适性仍然不够。这是因为不同的人眼形状不同,自然每个人EAR就不同,之前设置的阈值无法适用新的测试人员。尤其是测试人员眼睛偏小时,EAR值很低接近于正常人闭眼时的EAR,这点是当时困扰研发的一大难点。

因此本发明通过大量实验,提出一种结合动态阈值与双阈值的方法,我们称之为动态双阈值法。

具体地,本例为了能够适应于各种环境及换人后的检测,在步骤S2执行后,步骤S3执行前,还包括更新上下限阈值步骤,用于根据计算的EAR值动态更新下限阈值和上限阈值。

本例除了在步骤S1中设置下限阈值和上限阈值外,还包括还包括设置步骤:设置帧数初始值为0,并设置帧数门限及EAR缓存。从而实现上下限阈值的动态更新。

如图2所示,作为本发明的一个实施例,本发明的详细实现过程如下:

1、使用红外摄像头作为硬件输入接口,输入视频帧,当然,本例也可以采用其他的视频采集装置;

2、将视频流逐帧传入本发明算法模块,对帧数frameCount累加,若帧数frameCount超过帧数门限(比如300),则帧数frameCount归零,同时将后续的EAR缓存清空。这一步的目的是周期性更新EAR缓存,为了后面动态更新上下限阈值。这里的门限300用于控制更新的周期,可根据设备的实际帧率和场景来调整。

3、使用深度学习模型YuNet对视频帧做人脸检测,如果检测到人脸则进入下一步,若无则返回步骤1。

4、截取人脸区域ROI(Region Of Interest),并将其输入到Landmarks坐标模型,得到人脸关键点坐标信息。

5、根据眼睛关键点坐标信息,计算EAR(Eye Aspect Ratio)。EAR代表眼睛的高宽比,是一个比值所以不受人脸远近的影响,它是接下来判断是否闭眼的基础参数。现有技术是计算双眼EAR获取平均值,但由于摄像头不会安装在脸部正前方,而原理摄像头的一侧眼部会存在较大变形,因此,本发明采用单眼计算。本例根据摄像头的安装位置(假如摄像头在司机偏右侧),由于左眼在图像中会因为角度有较大的变形,本例只用右眼EAR会更准确。眼睛关键点坐标信息43-48如图3所示,本例EAR的计算公式如下:

其中,||P

6、判断EAR缓存大小,若小于预设的buffer_size(比如50),则将上步计算的EAR放入EAR缓存,然后进入下一步。若大于buffer_size则直接进入下一步。若等于buffer_size则将上步计算的EAR放入EAR缓存后,采用公式计算并更新上下限阈值。然后进入下一步。本例的buffer_size也是一个预设的门限,目的是利用这么大的缓存数据计算EAR阈值,显然这个值越大计算结果越准确,但会消耗更长的时间来填满缓存。所以要在时间上做一个折衷。

本例的动态计算阈值的实现方法如下:

(1)根据真实数据动态计算阈值,而非预设固定值。目的是得出最适用的阈值。

即统计一段连续时长的视频,将连续N帧的人眼EAR放入EAR缓存,在存入EAR缓存前,本例还设有一个过滤策略,将过小的EAR(比如低于0.2)过滤掉,因为过小的EAR要么是闭眼要么是异常数据,是没有统计意义的,只会影响有效阈值的计算。

当EAR缓存满时,对该缓存内的EAR计算平均值mean,和标准差delta。显然平均值mean代表目标人员正常睁眼状态的EAR,delta是波动幅度。

本发明下限阈值threshold_low的计算公式为:

threshold_low=mean/2.0+delta+bias

上限阈值threshold_high的计算公式为:

threshold_high=threshold_low+a

其中,a为大于0的实数。本例a取值为0.06,。bias是一个很小的偏差因子,用于进一步调整阈值,以调试系统达到最优。

(2)周期性更新EAR,目的是适应变化的环境和人眼对象。

如果只是在系统启动初期计算一次双阈值就不再改变,会有两点不足。一是中途换人,上下限阈值将不再适用。二是不同的背景环境计算的EAR可能是不同的,而我们车载摄像头是不断移动的,很可能过一段时间会到完全不同的工作环境,所以本发明会周期性的重新计算以适应不断变换的场景。

7、根据EAR的双阈值法判定逻辑,当连续多帧满足时认为闭眼。

如图3所示,本发明双阈值法判定方法为:

(1)输入当前帧的EAR,

(2)判断当前的EAR是否小于下限阈值,如果是,开始计数,次数close_count累加,然后执行步骤(3),如果否,判断是否开启计数,如果是,判断是否小于上限阈值,如果小于上限阈值,则次数close_count累加,如果大于或等于上限阈值,则次数close_count归零且关闭计数状态;

(3)判断close_count是否大于设定的次数门限,如果是,判定为闭眼状态,如果否,则判定为睁眼状态。本例的次数门限为4,也可以根据实际情况设置为其他值。

与现有技术相比,本发明能够在矿井这样的昏暗环境下稳定、准确和实时的检测出不同人眼的开闭状态。经过大量实验和矿井的实际应用,本发明已经达到了非常理想的效果。

以上所述之具体实施方式为本发明的较佳实施方式,并非以此限定本发明的具体实施范围,本发明的范围包括并不限于本具体实施方式,凡依照本发明所作的等效变化均在本发明的保护范围内。

相关技术
  • 一种空调系统、空调的环境温度检测方法及控制方法
  • 一种昏暗环境下空调管道指针式仪表智能识别系统与方法
  • 一种复杂环境下突发信号检测方法及检测系统
技术分类

06120115938527