一种基于人脸ppg信号的疲劳检测方法和装置与流程

文档序号:29309608发布日期:2022-03-19 19:42阅读:318来源:国知局
一种基于人脸ppg信号的疲劳检测方法和装置与流程

1.本发明涉及人工智能算法技术领域,具体涉及一种基于人脸ppg信号的疲劳检测方法和装置。


背景技术:

2.在通过人脸进行疲劳检测的技术中,主流的方式是先检测出人脸及脸部关键点,对关键点进行追踪,从而提取出面部特征、眼部信号、头部运动等,以此来推断人的疲劳状态。然而这种检测方式缺失了一个关键特征——人体生理信号。从医学角度上来讲,人体的疲劳也是一种人体生理信息的表现,不同的疲劳程度所反映的生理信息是不一样的,因此本发明主要通过提取人脸的生理信号,并结合了头部运动信息进行疲劳的检测,从而提高通过人脸来进行疲劳检测的精度。其中,头部运动类型主要包括眨眼、打哈欠和低头动作的频率检测。


技术实现要素:

3.为了解决现有技术中存在的上述技术问题,本发明提出了一种基于人脸ppg信号的疲劳检测方法和装置,其具体技术方案如下:一种基于人脸ppg信号的疲劳检测方法,包括以下步骤:步骤一,通过摄像头采集包含人脸的视频帧,进行人脸提取;步骤二,使用关键点检测方法,提取人脸关键点,进行头部运动检测,检测得到运动信息包括计算出图像帧目标的眼睛的长宽比、嘴巴的长宽比和低头弧度,从而得到目标的眨眼频率、打哈欠频率和低头频率;步骤三,对视频帧及提取的人脸进行预处理,通过疲劳分类模型并结合检测到的目标的眨眼频率、打哈欠频率和低头频率,得到采集视频帧中的人脸疲劳检测结果。
4.进一步的,所述步骤二,具体包括以下步骤:步骤2.1,使用公开的人脸检测和关键点检测方法按帧提取视频中人脸,然后检测出人脸中的68个关键点,以shape表示关键点集合,每一个关键点为(x,y),通过视频眼部、嘴部和脸部的关键点位置变化,计算每一帧眼睛的长宽比、嘴巴的长宽比和低头弧度,其中低头弧度估计中的关键点提取替换成人脸关键点提取与匹配;步骤2.2,分别与闭眼、张嘴和低头的阈值条件相比较,当符合眨眼阈值条件时,眨眼次数加1;当符合打哈欠阈值条件时,打哈欠次数加1;当符合低头阈值条件时,低头次数加1,具体为:计算眨眼频率:当连续5帧以上的图像为闭眼状态时,记为一次眨眼,总的眨眼次数记为blinks;打哈欠频率:当连续5帧以上的图像为张嘴状态时,记为一次哈欠,总的哈欠次数记为yawns;低头频率:当连续10帧以上的图像为低头状态时,记为一次低头,总的低头次数记为heads;本发明通过上述阈值条件设置和计算,通过检测人体疲劳时头部的三个直观状态,对是否产生疲劳进行准确有效的判断。
5.步骤2.3,将累计的眨眼次数、打哈欠次数和低头次数除于视频总时长,得到目标
的眨眼频率、打哈欠频率和低头频率,具体为:假设每段视频的时长为times,则这段视频的眨眼频率bt=blinks/times、打哈欠频率yt=yawns/times和低头频率ht=heads/times。
6.进一步的,所述计算每一帧眼睛的长宽比:根据得到的68个人脸关键点,提取左眼关键点,计算左眼长left_x和左眼宽left_y ,得到左眼长宽比left为:提取右眼关键点,计算右眼长right_x 和右眼宽right_y ,得到右眼长宽比right为:当left》=α和right》=α同时满足时,此帧记为闭眼,其中,α值通过闭眼数据的眼睛长宽比计算得到,取数据中的最小值即为α;计算嘴巴长宽比:提取嘴巴关键点,计算得到嘴巴长宽比mouth,当mouth《β时,此帧记为张嘴,其中,β值通过张嘴数据的嘴巴长宽比计算得到,取数据中的最大值即为β;计算低头弧度:使用公开的单目姿态估计方法,将其中的特征点检测与匹配替换成人脸关键点的检测与匹配,根据人脸关键点的检测和匹配,像素坐标系与世界坐标系的变换公式,求解出像素坐标系与世界坐标系的变换矩阵,并求出头部姿态的旋转矩阵,从而求解欧拉角估计出低头的弧度c,当c》γ时,记为低头,其中,γ值通过计算低头数据的弧度得到,取数据中的最小值即为γ。
7.进一步的,所述步骤三,具体包括以下步骤:步骤3.1,数据预处理,提取ppg信号块和眨眼频率、打哈欠频率、低头频率数据;步骤3.2,初始化卷积神经网络和时序神经网络的参数和眨眼、打哈欠、低头权重;步骤3.3,使用卷积神经网络提取ppg信号块的时空特征,然后使用时序神经网络提取数据之间的时序特征;步骤3.4,使用时序特征和眨眼频率、打哈欠频率、低头频率数据计算预测值,即疲劳的概率与非疲劳的概率,再根据真实值与预测值得到此次训练损失值,迭代更新权重参数,直至损失达到收敛。
8.进一步的,所述步骤3.1,具体为:对人脸矩形框进行像素补充,使得人脸矩形框的长宽都能够被8整除,随后将补充后的人脸分成8*8个区块,每一块都分别计算区域内其r、g、b像素的均值,得到此帧图像的64*3ppg信号块;对视频每一帧处理,得到视频对应的ppg信号块,将其降采样至1/4之后,以128帧的长度对视频进行视频切分,从而得到一段段等长的ppg信号块;再对每一段视频进行头部运动检测,得到每段视频的眨眼频率、打哈欠频率和低头频率。
9.进一步的,所述步骤3.2,具体为:首先构建用于特征提取的卷积神经网络,接着构建时序神经网络用于提取时序特征,卷积神经网络和时序神经网络作为网络的主干网络,将分类损失网络交叉熵损失作为网络的头部网络,在构建完毕之后,对主干网络和头部网
络都进行初始化,主要包括参数的初始化和控制迭代的超参数初始化,在头部网络中分类网络前加全连接层,眨眼频率、哈欠频率和低头频率也加入整个网络进行迭代达到收敛,同时设置超参数batchsize,batchsize表示每一次训练的数据输入数量,在所有数据集中的训练集都经过一次迭代之后,记为一次训练迭代。
10.进一步的,所述步骤3.3,具体为:首先对ppg信号块的每一个ppg信号使用卷积神经网络进行卷积,每个ppg信号的维度映射处理后,再使用深度分离的卷积方式进行卷积,变为k*k*m的维度,然后将ppg信号块卷积之后的信号压缩,信号维度变为,即信号块的维度变为,之后对信号块使用时序神经网络提取其时序特征,最终得到的特征数目为n。
11.进一步的,所述步骤3.4,具体为:在特征提取之后使用全连接层,其输入为n个特征和眨眼频率bt、打哈欠频率yt、低头频率ht,之后根据真实标签值,经过损失网络之后,得到此次迭代的损失值,若达到收敛条件则停止迭代,若没有,对损失进行预先设置的超参数处理之后,再把损失向之前的主干网络传播,更新相应的参数,重复步骤3.2、步骤3.3、步骤3.4,进入下一次迭代。
12.一种基于人脸ppg信号的疲劳检测装置,包括一个或多个处理器,用于实现所述的基于人脸ppg信号的疲劳检测方法。
13.有益效果:本发明针对于人脸的生理信号变化,采用深度学习训练的方式,增加疲劳检测与人脸生理信号变化的相关性,从而提高基于人脸的疲劳检测精度。
附图说明
14.图1是本发明的疲劳检测整体流程示意图;图2是本发明的人脸68个关键点位置示意图;图3是本发明的头部运动检测流程框图;图4是本发明的疲劳分类模型的分类流程示意图;图5是本发明的一种基于人脸ppg信号的智能疲劳检测装置的结构图。
具体实施方式
15.为了使本发明的目的、技术方案和技术效果更加清楚明白,以下结合说明书附图和实施例,对本发明作进一步详细说明。
16.一种基于人脸ppg信号的智能疲劳检测方法,与现有的疲劳检测方法不同的是,本发明所提出的方法不仅依赖于眼部信号、面部特征和头部运动这些传统的检测方法,还使用了人脸ppg信号进行分类检测。而这种分类方法是通过深度学习的方式学习得到的。区别于现有的疲劳检测方法,本发明所提出的方法通过提取人脸的ppg信号,经深度学习的方法对信号块进行特征提取,再与眨眼、打哈欠、低头频率进行加权来确认是否疲劳,以提高疲劳检测的精度。
17.具体的,如图1所示,包括以下步骤:步骤一,通过摄像头采集包含人脸的视频帧,进行人脸提取;步骤二,使用关键点检测方法,提取人脸关键点,进行头部运动检测,检测得到运
动信息包括计算出图像帧目标的眼睛的长宽比、嘴巴的长宽比和低头弧度,从而得到目标的眨眼频率、打哈欠频率和低头频率;步骤三,对视频帧及提取的人脸进行预处理,通过疲劳分类模型并结合检测到的目标的眨眼频率、打哈欠频率和低头频率,得到采集视频帧中的人脸疲劳检测结果。
18.所述步骤二,如图3所示,具体包括:步骤2.1,获取人脸68关键点:使用公开的人脸检测和关键点检测方法按帧提取视频中人脸,然后检测出人脸中的68个关键点,以shape表示关键点集合,每一个关键点为(x,y),人脸关键点位置如图2所示,通过视频眼部、嘴部和脸部的关键点位置变化,计算每一帧眼睛的长宽比、嘴巴的长宽比和低头弧度,其中低头弧度估计中的关键点提取替换成人脸关键点提取与匹配,具体的:计算眼睛长宽:根据(2.1)得到的68个人脸关键点,提取左眼关键点{shape[36],

,shape[41]}和右眼关键点{shape[42],

,shape[47]},则左眼长left_x为:,左眼宽left_y为:,左眼长宽比left为:右眼长right_x为:,右眼宽right_y为:,右眼长宽比right为:当left》=α和right》=α同时满足时,此帧记为闭眼,其中,α值通过闭眼数据的眼睛长宽比计算得到,取数据中的最小值即为α。
[0019]
计算嘴巴长宽:根据(2.1)得到的68个人脸关键点,提取嘴巴关键点{shape[48],

,shape[67]},则嘴巴长宽比为:当mouth《β时,此帧记为张嘴,其中,β值通过张嘴数据的嘴巴长宽比计算得到,取数据中的最大值即为β。
[0020]
计算低头弧度:使用公开的单目姿态估计方法,如orb-slam,由于只需要对人脸姿态估计,所以将其中的特征点检测与匹配替换成人脸关键点的检测与匹配,主要步骤是根
据人脸关键点的检测和匹配,像素坐标系与世界坐标系的变换公式,求解出像素坐标系与世界坐标系的变换矩阵,并求出头部姿态的旋转矩阵,从而求解欧拉角估计出低头的弧度c,当c》γ时,记为低头,其中,γ值通过计算低头数据的弧度得到,取数据中的最小值即为γ。
[0021]
步骤2.2,分别与闭眼、张嘴和低头的阈值条件相比较,当符合眨眼阈值条件时,眨眼次数加1;当符合打哈欠阈值条件时,打哈欠次数加1;当符合低头阈值条件时,低头次数加1,具体为:计算眨眼频率:当连续5帧以上的图像为闭眼状态时,记为一次眨眼,总的眨眼次数记为blinks;打哈欠频率:当连续5帧以上的图像为张嘴状态时,记为一次哈欠,总的哈欠次数记为yawns;低头频率:当连续10帧以上的图像为低头状态时,记为一次低头,总的低头次数记为heads。
[0022]
步骤2.3,将累计的眨眼次数、打哈欠次数和低头次数除于视频总时长,得到目标的眨眼频率、打哈欠频率和低头频率,具体为:假设每段视频的时长为times,则这段视频的眨眼频率bt=blinks/times、打哈欠频率yt=yawns/times和低头频率ht=heads/times。
[0023]
所述步骤三,如图4所示,具体包括:步骤3.1,数据预处理,提取ppg信号块和眨眼频率、打哈欠频率、低头频率数据。采集人脸视频,要求每个视频中仅有一个人脸且正脸清晰,且每个视频都有对应的标签:疲劳或非疲劳。frames为总帧率对每个视频的处理方法如下:(一)使用人脸检测算法对每一帧进行人脸检测,提取出人脸区域(w*h),w表示宽,h表示高,对此区域进行像素插值补充,使得此人脸区域的宽高都可整除8,即w%8=0,h%8=0,再以(w//8)*(h//8)的窗口对区域进行划分切割,从而得到新的像素矩阵(8*8*(w//8)*(h//8)*3),然后对每一块(w//8)*(h//8)窗口分别求r、g、b三通道的像素均值,分别填入64*3的矩阵当中,得到此帧图像对应的ppg信号,对视频中的每一帧图像依次处理,存入文件当中,最终生成该视频对应的ppg信号块(64*3*frames)及对应的标签;(二)对ppg信号块进行降采样,每隔4帧采取一个样本,再以128为长度进行切分,得到(frames//(128*4)+1)个视频段及每个视频段相应的数据块(3*64*128)以及对应的标签;对每个视频段执行头部运动检测获得相应的眨眼频率、哈欠频率和低头频率。对每一个视频执行同样的处理之后,形成数据集,每一个数据包含ppg信号块、眨眼频率、哈欠频率和低头频率及相对应的疲劳标签,将数据集以一定的比例进行训练集与验证集的划分。
[0024]
步骤3.2,初始化卷积神经网络、时序神经网络的参数和眨眼、哈欠、低头权重,包括用于停止迭代的条件参数和超参数等。首先构建用于特征提取的卷积神经网络,如cnn,接着构建时序神经网络用于提取时序特征,如lstm,卷积神经网络和时序神经网络作为网络的主干网络,将分类损失网络如交叉熵损失作为网络的头部网络。在构建完毕之后,对主干网络和头部网络都进行初始化,主要包括参数的初始化和控制迭代的超参数初始化。在实施时,将头部网络中分类网络前加一个全连接层,眨眼频率、哈欠频率和低头频率也在此时加入整个网络进行迭代,迭代的次数可以是100或200,主要是让损失能够达到收敛即可。实施时,需要设置超参数batchsize,batchsize表示每一次训练的数据输入数量,在所有数据集中的训练集都经过一次迭代之后,记为一次训练迭代。
[0025]
步骤3.3,使用卷积神经网络提取ppg信号块的时空特征,然后使用时序神经网络提取数据之间的时序特征。首先对ppg信号块(64*3*128)的每一个ppg信号使用卷积神经网络进行卷积,每个ppg信号的维度为64*3,将其映射为8*8*3的维度后,使用深度分离的卷积方式进行卷积,在两到三次的卷积之后,其变为k*k*m的维度,然后将ppg信号块卷积之后的信号压缩,信号维度变为,即信号块的维度变为,之后对信号块使用时序神经网络提取其时序特征,最终得到的特征数目为n。
[0026]
步骤3.4,使用时序特征和眨眼、哈欠、低头频率数据计算预测值,即疲劳的概率与非疲劳的概率,再根据真实值与预测值得到此次训练损失值,迭代更新权重参数,直至损失达到收敛。首先在特征提取之后使用全连接层,其输入为n个特征和眨眼频率bt、打哈欠频率yt、低头频率ht,之后根据真实标签值,经过损失网络之后,得到此次迭代的损失值,若达到收敛条件则停止迭代,若没有,对损失进行预先设置的超参数处理之后,再把损失向之前的主干网络传播,更新相应的参数,重复步骤3.2、步骤3.3、步骤3.4,进入下一次迭代。
[0027]
与前述一种基于人脸ppg信号的疲劳检测方法的实施例相对应,本发明还提供了一种基于人脸ppg信号的疲劳检测装置的实施例。
[0028]
参见图5,本发明实施例提供的一种基于人脸ppg信号的疲劳检测装置,包括一个或多个处理器,用于实现上述实施例中的一种基于人脸ppg信号的疲劳检测方法。
[0029]
本发明一种基于人脸ppg信号的疲劳检测装置的实施例可以应用在任意具备数据处理能力的设备上,该任意具备数据处理能力的设备可以为诸如计算机等设备或装置。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在任意具备数据处理能力的设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图5所示,为本发明一种基于人脸ppg信号的疲劳检测装置所在任意具备数据处理能力的设备的一种硬件结构图,除了图5所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的任意具备数据处理能力的设备通常根据该任意具备数据处理能力的设备的实际功能,还可以包括其他硬件,对此不再赘述。
[0030]
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
[0031]
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本发明方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
[0032]
本发明实施例还提供一种计算机可读存储介质,其上存储有程序,该程序被处理器执行时,实现上述实施例中的一种基于人脸ppg信号的疲劳检测方法。
[0033]
所述计算机可读存储介质可以是前述任一实施例所述的任意具备数据处理能力的设备的内部存储单元,例如硬盘或内存。所述计算机可读存储介质也可以是风力发电机的外部存储设备,例如所述设备上配备的插接式硬盘、智能存储卡(smart media card,smc)、sd卡、闪存卡(flash card)等。进一步的,所述计算机可读存储介质还可以既包括任
意具备数据处理能力的设备的内部存储单元也包括外部存储设备。所述计算机可读存储介质用于存储所述计算机程序以及所述任意具备数据处理能力的设备所需的其他程序和数据,还可以用于暂时地存储已经输出或者将要输出的数据。
[0034]
以上所述,仅为本发明的优选实施案例,并非对本发明做任何形式上的限制。虽然前文对本发明的实施过程进行了详细说明,对于熟悉本领域的人员来说,其依然可以对前述各实例记载的技术方案进行修改,或者对其中部分技术特征进行同等替换。凡在本发明精神和原则之内所做修改、同等替换等,均应包含在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1