人脸动态表情的检测方法、装置、设备及存储介质与流程

文档序号:21410201发布日期:2020-07-07 14:45阅读:316来源:国知局
人脸动态表情的检测方法、装置、设备及存储介质与流程

本发明涉及图像识别技术领域,尤其涉及人脸动态表情的检测方法、装置、设备及存储介质。



背景技术:

在人机交互场景(如直播平台及活体检测等应用场景)中,往往需要通过面部图像检测面部动态表情,计算机通过对人机交互场景中面部动态表情的检测识别,从而能够更好地理解用户的情感状态,进而提高用户在人机交互过程中的用户体验。

一般而言,动态表情检测的关键在于检测一段时间内的视频信息中是否存在人脸表情变化,目前,现有常见的动态表情检测方法有:1)分析一段时间内每帧图片的纹理和几何信息并对各图片的特征进行融合,最后通过分类模型,判别该时间段内的对应的动态表情;2)检测一段时间内人脸图片中的关键点位置信息,并将该段时间内的人脸的关键点作为分类器的输入,通过训练分类模型来预测该时间段内的动态表情。

上述两类方案尽管具有较快的检测速度,但均需要采集相对应的动态表情视频数据,因而影响方案的可扩展性。此外,还有一类方案可以通过深度神经网络自适应地提取视频中的特征来实现动态表情检测,该类方案尽管具有较高准确率,且具有较好可扩展性,但是需要大量的视频数据作为训练样本,且计算复杂度高,很难实现动态表情的实时检测。



技术实现要素:

本发明实施例提供了人脸动态表情的检测方法、装置、设备及存储介质,能够实时准确的检测视频流中所出现人物的动态表情。

一方面,本发明实施例提供了一种人脸动态表情的检测方法,包括:

获取视频流中的至少两帧人脸图像;

根据各所述人脸图像中关键点坐标信息集,确定脸部状态序列;

比较所述脸部状态序列和预设的动态表情序列确定脸部动态表情。

可选的,所述脸部状态为下述至少一种:眼睛状态、眉毛状态、嘴巴状态、脸部左右摆动以及脸部上下摆动;相应的,所述脸部状态序列为下述至少一种:眼睛睁闭状态序列、眉毛收挑状态序列、嘴巴张合状态序列、摇头状态序列以及点头状态序列;所述动态表情序列包括:眼睛动态变化序列、眉毛动态变化序列、嘴巴动态变化序列、摇头变化序列以及点头变化序列。

进一步地,针对每帧人脸图像,所述脸部状态通过如下方式确定:

基于相应关键点坐标信息集中标识上眼睑和下眼睑的关键点坐标信息,确定所述人脸图像中上眼睑到下眼睑的眼睑距离值;基于所述关键点坐标信息集中标识鼻子的关键点坐标信息,确定所述人脸图像中鼻子的鼻梁长度,并将所述鼻梁长度作为眼部归一标准值得到所述眼睑距离值的归一值;如果所述归一值小于设定的眼部状态阈值,则所述脸部状态为眼睛闭合;否则,所述脸部状态为眼睛睁开。

可选的,针对每帧人脸图像,所述脸部状态通过如下方式确定:

基于相应关键点坐标信息集中标识上眉根及眼角的关键点坐标信息,确定所述人脸图像中上眉根到同侧眼角的连线距离值;基于所述关键点坐标信息集中标识上眉根及下眉根的关键点坐标信息,确定所述人脸图像中的眉根宽度,并将所述眉根宽度作为眉部归一标准值得到所述连线距离值的归一值;如果所述归一值大于设定的眉毛状态阈值,则所述脸部状态为眉毛上挑;否则,所述脸部状态为眉毛正常。

可选的,针对每帧人脸图像,所述脸部状态通过如下方式确定:

基于相应关键点坐标信息集中上唇下边缘及下唇上边缘的关键点坐标信息,确定所述人脸图像中上唇下边缘到下唇上边缘的唇间距离值;基于所述关键点坐标信息集中上唇上边缘及上唇下边缘的关键点坐标信息,确定所述人脸图像中的上嘴唇厚度,并将所述上嘴唇厚度作为唇部归一标准值得到所述唇间距离值的归一值;如果所述归一值大于设定的唇部状态阈值,则所述脸部状态为嘴巴张开;否则,所述脸部状态为嘴巴闭合。

可选的,针对每帧人脸图像,所述脸部状态通过如下方式确定:

基于相应关键点坐标信息集构成所述人脸图像的二维平面矩阵及三维空间矩阵;确定所述二维平面矩阵转换成所述三维空间矩阵的旋转矩阵;根据所述旋转矩阵确定所述人脸图像中人脸的偏航角度值,并将所述偏航角度值作为脸部状态;或者,根据所述旋转矩阵确定所述人脸图像中人脸的俯仰角度值,并将所述俯仰角度值作为脸部状态。

可选的,所述偏航角度值的计算公式表示为:pitch=arcsin(r2,3)×π/180;

所述俯仰角度值的计算公式表示为:yaw=-arctan(-r1,3/r3,3)×π/180;

其中,所述pitch表示偏航角度值,所述yaw表示俯仰角度值,所述ri,j表示旋转矩阵r中第i行第j列的元素值。

可选的,所述比较所述脸部状态序列和预设的动态表情序列确定脸部动态表情,包括:

如果动态表情序列中的元素信息依次出现在脸部状态序列中,则确定存在对应所述动态表情序列的脸部动态表情;否则,确定不存在对应所述脸部动态表情序列的脸部动态表情。

可选的,所述比较所述脸部状态序列和预设的动态表情序列确定脸部动态表情,具体包括:

确定动态表情序列的序列长度,并将变量i的值初始为1以及将比对序列号初始为1;在脸部状态序列中,从所述比对序号对应的元素信息开始,查找是否存在与所述动态表情序列中第i个元素信息匹配的是否目标元素信息;若存在目标元素信息,则将所述目标元素信息对应的序列号作为新的比对序号,以及对所述变量i加1后继续查找目标元素信息;若不存在目标元素信息,则当所述变量i大于所述序列长度时,确定存在所述动态表情序列对应的脸部动态表情,当所述量i小于或等于所述序列长度时,确定不存在所述动态表情序列对应的脸部动态表情。

另一方面,本发明实施例提供了一种人脸动态表情的检测装置,包括:

人脸图像获取模块,用于获取视频流中的至少两帧人脸图像;

状态序列确定模块,用于根据各所述人脸图像中关键点坐标信息集,确定脸部状态序列;

动态表情确定模块,用于比较所述脸部状态序列和预设的动态表情序列确定脸部动态表情。

又一方面,本发明实施例提供了一种计算机设备,包括:

一个或多个处理器;

存储装置,用于存储一个或多个程序;

所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明实施例提供的人脸动态表情的检测方法。

再一方面,本发明实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本发明实施例提供的人脸动态表情的检测方法。

在上述人脸动态表情的检测方法、装置、设备及存储介质中,基于该检测方法首先获取视频流中的至少两帧人脸图像,然后根据各帧人脸图像中关键点坐标信息集,确定待比对的脸部状态序列,最终通过将脸部状态序列与预设的动态表情序列进行比对来确定脸部动态表情。上述技术方案,与现有的人脸动态表情检测相比,在保证检测速度的前提下,避免了对待检测视频数据的采集限制,由此保证了本方案在实际应用中的可扩展性,此外,本发明的方案无需预先通过训练样本进行训练学习,只通过所确定脸部状态序列与预设序列的比对,就能简单快速的确定脸部是否存在动态表情,有效的降低了计算复杂度,更好的体现了动态表情检测的实时性。

附图说明

图1为本发明实施例中提供的一种人脸动态表情的检测方法的流程示意图;

图2给出了关键点检测后具备关键点标识的人脸图像示意图;

图3为本发明实施例提供的一种人脸动态表情的检测装置的结构框图;

图4为本发明实施例提供的一种计算机设备的硬件结构示意图。

具体实施方式

下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。

需要说明的是,本发明实施例适用于提供视频流的直播平台或其他需要检测动态表情的人机交互场景中,基于本发明实施例提供的方法,能够简单快速的对视频流中的人脸进行动态表情(如眨眼、张嘴、摇头、点头、挑眉等)检测。具体地,该方法可以由人脸动态表情的检测装置实现,其中,该装置可以由软件和/或硬件实现,并一般可作为插件集成在具备人机交互的应用软件中。

图1为本发明实施例中提供的一种人脸动态表情的检测方法的流程示意图。如图1所示,该方法具体包括如下操作:

s101、获取视频流中的至少两帧人脸图像。

在本实施例中,所述视频流具体可理解为正在实时播放的视频,如直播视频等,所述人脸图像具体可理解为构成视频流的图像帧中包括人物脸部信息的图像。具体地,本步骤可以实时获取视频流中连续帧的图像,也可以间隔设定时间获取至少两帧图像。可以理解的是,所获取的图像中需要包含进行人脸检测的人物脸部信息,本实施例将包括人物脸部信息的图像称为人脸图像,此外,所获取的图像中可以包括多个人物的脸部信息,相当于存在多张可以进行动态表情的人脸,基于本实施例提供的人脸动态表情的检测方法,可以对人脸图像中出现的多个人物均进行动态表情检测,但需要注意的是,本实施例提供的动态表情检测是针对所获取多张人脸图像中的同一个人物进行的。

s102、根据各所述人脸图像中关键点坐标信息集,确定脸部状态序列。

在本实施例中,针对每帧人脸图像,都可确定出相应的关键点坐标信息集,所述关键点坐标信息集具体可理解为用于标识相应人脸图像中人物脸部轮廓及脸部器官的坐标点集合。示例性的,任一帧人脸图像的关键点坐标信息集中均包括了标识脸部轮廓的关键点坐标信息及标识眼睛、眉毛、嘴巴和鼻子的关键点坐标信息。

本实施例中,可以采用预设的关键点检测模型来检测人脸图像,进而获得人脸图像对应的关键点坐标信息集,可以理解的是,所采用的关键点检测模型需要预先经过训练学习来获得。具体地,关键点检测模型的训练学习过程可表述为:给定带有关键点实际标注值的样本图片集,首先通过卷积神经网络提取样本图片集中样本图片的特征向量,获得样本图片的预测关键点坐标信息,然后利用l2loss计算预测关键点坐标信息与样本图片对应的关键点实际标注值的损失,之后通过反向传播修正网络参数,直至网络收敛稳定,获得可用的关键点检测模型。

需要说明的是,利用预设的关键点检测模型确定的人脸图像的关键点个数越多,越能更好的标识人脸图像的脸部信息,本实施对获取的关键点坐标信息的个数没有具体限定,可根据实际应用实际调整,但可以理解的是,对于第i个关键点坐标信息可以表示为pi=(xi,yi),假设关键点个数为a,则i的取值为[0,a-1],需要注意的是,关键点坐标信息的确定并不限于基于上述关键点检测模型实现,还可以采用其他方式,如监督下降法等方式来实现。。

参考图2,图2给出了关键点检测后具备关键点标识的人脸图像示意图,具体地,检测出图2中人脸图像的关键点总数为40个,其中,标号为200-209的关键点可用于标识人脸图像的脸部轮廓;标号为210-214的关键点用于标识人脸图像中相对用户而言的左眉毛;标号为215-219的关键点用于标识人脸图像中相对用户而言的右眉毛;标号为220-223以及标号为224-227的关键点分别用于标识人脸图像中相对用户而言的左眼和右眼;标号为228-233的关键点用于标识人脸图像中的鼻子;最后,标号为234-239的关键点用于标识人脸图像中的嘴巴,其中,各关键点均具有各自的坐标信息。

在本实施例中,所述脸部状态序列具体可理解为基于所获取至少两帧人脸图像中的脸部状态组成的状态序列。具体地,针对每帧人脸图像,基于其对应的关键点坐标信息集,可以确定人脸图像中人物当前的脸部状态;之后,将每张人脸图像所对应的脸部状态以时间顺序进行组合,就可获得一个脸部状态序列,所述脸部状态序列可以表征人脸图像中的人物当前在视频流中的脸部表情状态。

进一步地,所述脸部状态为下述至少一种:眼睛状态、眉毛状态、嘴巴状态、脸部左右摆动以及脸部上下摆动;相应的,所述脸部状态序列为下述至少一种:眼睛睁闭状态序列、眉毛收挑状态序列、嘴巴张合状态序列、摇头状态序列以及点头状态序列。

在本实施例中,对视频流中的人物进行动态表情检测时,可具体检测人物脸部的脸部状态是否发生了表化,本实施例所检测的脸部状态具体可以为眼睛状态、眉毛状态、嘴巴状态、脸部摆动状态(如上下摆动或左右摆动)中的一种或几种,且眼睛状态可以有睁闭、眉毛状态可以有收挑、嘴巴状态可以有张合、脸部摆动状态可以有上下摆动(点头)或左右摆动(摇头),因此,对获取的多帧人脸图像进行脸部状态确定后,可所形成的脸部状态序列则相应可以为眼睛睁闭状态序列、眉毛收挑状态序列、嘴巴张合状态序列、摆动状态序列(如摇头状态序列或点头状态序列)中的一种或几种。

可以理解的是,眼睛状态又分为左右眼状态,眉毛状态也分为左右眉状态,即,左右眼可分别具有睁闭状态,同样,左右眉也可分别具有收挑状态。本实施例优选通过对脸部状态序列的进行不同命名的方式来区分左右眼对应的状态序列以及左右眉对应的状态序列。

s103、比较所述脸部状态序列和预设的动态表情序列确定脸部动态表情。

在本实施例中,上述确定出脸部状态序列后,可以将脸部状态序列与预先设定的动态表情序列进行比对,并可根据比对结果确定视频流中的人物当前是否存在脸部动态表情。所述动态表情序列具体可理解为实现脸部表情变化的一系列脸部状态的集合,如,眼睛由睁到闭的表情变化就可通过一个动态表情序列来表示,又如,嘴巴由闭合到张开的表情变化也可通过一个动态表情序列来表示。所述动态表情序列可根据实现脸部表情变化时脸部应当具有的状态来预先设定,例如,可以设定一个包含嘴巴张开和嘴巴闭合两个状态的状态序列作为表示嘴巴张合的动态表情序列。

可以理解的是,脸部状态序列中为基于各帧人脸图像确定的脸部状态集合,本实施例具体可以通过将动态表情序列中包含的状态信息与脸部状态序列中的状态信息进行匹配,来确定动态表情序列的状态信息是否均出现在脸部状态序列中,从而确定视频流中的人物当前是否存在脸部动态表情。

进一步的,所述动态表情序列包括:眼睛动态变化序列、眉毛动态变化序列、嘴巴动态变化序列、摇头变化序列以及点头变化序列。

可以理解的是,当脸部状态序列包含眼睛睁闭状态序列、眉毛收挑状态序列、嘴巴张合状态序列、摇头状态序列以及点头状态序列中的一种或几种时,也需要预先设定眼睛动态变化序列、眉毛动态变化序列、嘴巴动态变化序列、摇头变化序列以及点头变化序列来作为相应的动态表情序列。示例性的,假设脸部状态序列为嘴巴张合状态序列,则基于本步骤中与之相比对的动态表情序列实际为嘴巴动态变化序列。

本发明实施例提供的人脸动态表情的检测方法,与现有的人脸动态表情检测相比,在保证检测速度的前提下,避免了对待检测视频数据的采集限制,由此保证了本方案在实际应用中的可扩展性,此外,本发明的方案无需预先通过训练样本进行训练学习,只通过所确定脸部状态序列与预设序列的比对,就能简单快速的确定脸部是否存在动态表情,有效的降低了计算复杂度,更好的体现了动态表情检测的实时性。

需要说明的是,在具体确定脸部状态序列的操作中,对脸部状态的确定为其中的主要步骤,由上述表述,可知脸部状态可以为眼睛状态、眉毛状态、嘴巴状态、脸部左右摆动以及脸部上下摆动中的一种或几种,由此,本实施例提供了确定脸部状态的具体方式。

具体地,在本发明的一个可选实施例中,针对每帧人脸图像,所述脸部状态通过如下方式确定:

基于相应关键点坐标信息集中标识上眼睑和下眼睑的关键点坐标信息,确定所述人脸图像中上眼睑到下眼睑的眼睑距离值;基于所述关键点坐标信息集中标识鼻子的关键点坐标信息,确定所述人脸图像中鼻子的鼻梁长度,并将所述鼻梁长度作为眼部归一标准值得到所述眼睑距离值的归一值;如果所述归一值小于设定的眼部状态阈值,则所述脸部状态为眼睛闭合;否则,所述脸部状态为眼睛睁开。

本实施例上述确定方式适用于脸部状态为眼睛状态(左眼状态和/或右眼状态)的情况,其具体基于眼睛的上眼睑到下眼睑的距离,来确定眼睛状态为睁开或闭合。示例性的,对于每帧人脸图像相应存在的关键点坐标信息集,其具体包含了用于标识人脸的所有关键点的关键点坐标信息,以图2所示的人脸图像为例,可认为其中的关键点221和关键点226分别标识了左右眼的上眼睑,并可获取关键点221和关键点226的关键点坐标信息,其中的关键点224和关键点227分别标识了左右眼的下眼睑,同样可获取关键点224和关键点227的关键点坐标信息,由此,可将关键点221到关键点224的距离确定为左眼的眼睑距离值,将关键点226到关键点227的距离确定为右眼的眼睑距离值。

为了避免所获取人脸图像的尺寸变化对眼睛状态的影响,本实施例引入人脸图像中鼻子的鼻梁长度(如图2中关键点228到关键点230的距离)作为眼部归一标准值,因为人脸图像的尺寸变化与人脸图像中鼻梁长度的变化成正比,之后,对眼睑距离值(左眼和/或右眼的眼睑距离值)进行归一化,并将归一化后的归一值(眼睑距离值与眼部归一标准值的比值)与眼部状态阈值进行比较,由此确定脸部状态为眼睛(左眼和/或右眼)睁开或眼睛闭合。

可以理解的是,当确定出各帧人脸图像的眼睛状态后,可以基于时间顺序对确定出的眼睛状态进行汇合,由此可形成以眼睛状态为脸部状态的脸部状态序列。示例性的,假设获取5张人脸图像,确定出各帧人脸图像中左眼的眼睛状态分别为眼睛睁开、眼睛睁开、眼睛闭合、眼睛闭合以及眼睛睁开,则此时的脸部状态序列相当于眼睛睁闭状态序列,该序列具体可表示为{眼睛睁开,眼睛睁开,眼睛闭合,眼睛闭合,眼睛睁开},为便于后续与相应动态表情序列的比对,本实施例中以1表示眼睛睁开,以0表示眼睛闭合,且为便于后续能够识别出当前的脸部状态序列为眼睛睁闭状态序列,本实施例优选设定le标识左眼对应的眼睛睁闭状态序列,设定re标识右眼对应的眼睛睁闭状态序列,因此,上述确定的眼睛睁闭状态序列{眼睛睁开,眼睛睁开,眼睛闭合,眼睛闭合,眼睛睁开},实际可表示为:le={1,1,0,0,1}。

此外,需要说明的是,本实施例中与眼睛睁闭状态序列比对的动态表情序列实际相当于眼睛动态变化序列,本实施例优选设定眼睛动态变化序列表示为:te={1,0,1},并以此作为眼睛的动态变化标准。此时,可以将确定的le={1,1,0,0,1}和te={1,0,1}进行比对,如果te={1,0,1}中的元素均存在于le中,则确定视频流中的人物当前存在左眼眨眼的动态表情。

具体地,在本发明的一个可选实施例中,针对每帧人脸图像,所述脸部状态通过如下方式确定:

基于相应关键点坐标信息集中标识上眉根及眼角的关键点坐标信息,确定所述人脸图像中上眉根到同侧眼角的连线距离值;基于所述关键点坐标信息集中标识上眉根及下眉根的关键点坐标信息,确定所述人脸图像中的眉根宽度,并将所述眉根宽度作为眉部归一标准值得到所述连线距离值的归一值;如果所述归一值大于设定的眉毛状态阈值,则所述脸部状态为眉毛上挑;否则,所述脸部状态为眉毛正常。

本实施例上述确定方式适用于脸部状态为眉毛状态(左眉状态和/或右眼状态)的情况,其具体基于眉毛的上眉根到同侧眼角的连线距离值,来确定眉毛状态为上挑或正常。示例性的,对于每帧人脸图像相应存在的关键点坐标信息集,其具体包含了用于标识人脸的所有关键点的关键点坐标信息,仍以图2所示的人脸图像为例,可认为其中的关键点212和关键点213分别标识了左右眉的上眉根,并可获取关键点212和关键点213的关键点坐标信息,其中的关键点222和关键点223分别标识了左右眼的眼角,并可获取关键点222和关键点223的关键点坐标信息,由此,可将关键点212到关键点222的距离确定为左眉毛的上眉根到同侧眼角的连线距离值,将关键点213到关键点223的距离确定为右眉毛的上眉根到同侧眼角的连线距离值。

为了避免所获取人脸图像的尺寸变化对眉毛状态的影响,本实施例引入人脸图像中眉毛的眉根宽度(如图2中关键点212到关键点217的距离,或者关键点213到关键点218的距离)作为眉部归一标准值,因为人脸图像的尺寸变化与人脸图像中眉根宽度的变化也成正比,之后,对连线距离值(左眉和/或右眉的连线距离值)进行归一化计算,优选的,各侧眉毛选取同侧的眉根宽度作为眉部归一标准值进行归一化计算,并将归一化后的归一值(连线距离值与眉根宽度的比值)与眉部状态阈值进行比较,由此确定脸部状态为眉毛上挑(左眉和/或右眉)或眉毛正常。

可以理解的是,当确定出各帧人脸图像的眉毛状态后,同样可基于时间顺序对确定出的眉毛状态进行汇合,由此可形成以眉毛状态为脸部状态的脸部状态序列。示例性的,假设获取5张人脸图像,确定出各帧人脸图像中左眉的眉毛状态分为眉毛正常、眉毛正常、眉毛上挑、眉毛上挑以及眉毛上挑,则此时的脸部状态序列相当于眉毛收挑状态序列,该序列具体可表示为{眉毛正常,眉毛正常,眉毛上挑,眉毛上挑,眉毛上挑},为便于后续与相应动态表情序列的比对,本实施例中以1表示眉毛上挑,以0表示眉毛正常,且为便于后续能够识别出当前的脸部状态序列为眉毛收挑状态序列,本实施例优选设定lb表示左眉对应的眉毛收挑状态序列,设定rb表示右眉对应的眉毛收挑状态序列,因此,上述确定的眉毛收挑状态序列{眉毛正常,眉毛正常,眉毛上挑,眉毛上挑,眉毛上挑},实际可表示为:lb={0,0,1,1,1}。

此外,需要说明的是,本实施例中与眉毛收挑状态序列比对的动态表情序列实际相当于眉毛动态变化序列,本实施例优选设定眉毛动态变化序列表示为:tb={0,1,1},并以此作为眉毛的动态变化标准。此时,可以将确定的lb={0,0,1,1,1}和tb={0,1,1}进行比对,如果tb={0,1,1}中的元素均存在于lb中,则确定视频流中的人物当前存在左眉挑眉的动态表情。

具体地,在本发明的一个可选实施例中,针对每帧人脸图像,所述脸部状态通过如下方式确定:

基于相应关键点坐标信息集中上唇下边缘及下唇上边缘的关键点坐标信息,确定所述人脸图像中上唇下边缘到下唇上边缘的唇间距离值;基于所述关键点坐标信息集中上唇上边缘及上唇下边缘的关键点坐标信息,确定所述人脸图像中的上嘴唇厚度,并将所述上嘴唇厚度作为唇部归一标准值得到所述唇间距离值的归一值;如果所述归一值大于设定的唇部状态阈值,则所述脸部状态为嘴巴张开;否则,所述脸部状态为嘴巴闭合。

本实施例上述确定方式适用于脸部状态为嘴巴状态的情况,其具体基于嘴巴上唇下边缘与下唇上边缘的距离,来确定嘴巴状态为张开或闭合。示例性的,对于每帧人脸图像相应存在的关键点坐标信息集,其具体包含了用于标识人脸的所有关键点的关键点坐标信息,以图2所示的人脸图像为例,可认为其中的关键点237标识了嘴巴的上唇下边缘,关键点238标识了嘴巴的下唇上边缘,并可获取关键点237和关键点238的关键点坐标信息,由此,可将关键点237到关键点238的距离确定为嘴巴的唇间距离值。

为了避免所获取人脸图像的尺寸变化对嘴巴状态的影响,本实施例引入人脸图像中嘴巴的上嘴唇厚度(如图2中关键点235到关键点237的距离)作为唇部归一标准值,因为人脸图像的尺寸变化也与人脸图像中上嘴唇厚度的变化成正比,之后,对唇间距离值进行归一化,并将归一化后归一值(唇间距离值与唇部归一标准值的比值)与唇部状态阈值进行比较,由此确定脸部状态为嘴巴张开或嘴巴闭合。

可以理解的是,当确定出各帧人脸图像的嘴巴状态后,可以基于时间顺序对确定出的嘴巴状态进行汇合,由此可形成以嘴巴状态为脸部状态的脸部状态序列。示例性的,假设获取5张人脸图像,确定出各帧人脸图像中的嘴巴状态分别为嘴巴闭合、嘴巴闭合、嘴巴闭合、嘴巴张开以及嘴巴闭合,则此时的脸部状态序列相当于嘴巴张合状态序列,该序列具体可表示为{嘴巴闭合,嘴巴闭合,嘴巴闭合,嘴巴张开,嘴巴闭合},为便于后续与相应动态表情序列的比对,本实施例中以1表示嘴巴张开,以0表示嘴巴闭合,且为便于后续能够识别出当前的脸部状态序列为嘴巴张合状态序列,本实施例优选设定m标识嘴巴张合状态序列,因此,上述确定的嘴巴张合状态序列{嘴巴闭合,嘴巴闭合,嘴巴闭合,嘴巴张开,嘴巴闭合},实际可表示为:m={0,0,0,1,0}。

此外,需要说明的是,本实施例中与嘴巴张合状态序列比对的动态表情序列实际相当于嘴巴动态变化序列,本实施例优选设定嘴巴动态变化序列表示为:tm={0,1},并以此作为嘴巴的动态变化标准。此时,可以将确定的m={0,0,0,1,0}和tm={0,1}进行比对,如果tm={0,1}中的元素均存在于m中,则确定视频流中的人物当前存在张嘴的动态表情。

具体地,在本发明的一个可选实施例中,针对每帧人脸图像,所述脸部状态通过如下方式确定:

基于相应关键点坐标信息集构成所述人脸图像的二维平面矩阵及三维空间矩阵;确定所述二维平面矩阵转换成所述三维空间矩阵的旋转矩阵;根据所述旋转矩阵确定所述人脸图像中人脸的偏航角度值,并将所述偏航角度值作为脸部状态;或者,根据所述旋转矩阵确定所述人脸图像中人脸的俯仰角度值,并将所述俯仰角度值作为脸部状态。

相应的,所述偏航角度值的计算公式表示为:pitch=arcsin(r2,3)×π/180;所述俯仰角度值的计算公式表示为:yaw=-arctan(-r1,3/r3,3)×π/180;其中,所述pitch表示偏航角度值,所述yaw表示俯仰角度值,所述ri,j表示旋转矩阵r中第i行第j列的元素值。

本实施例上述确定方式适用于脸部状态为脸部左右摆动或脸部上下摆动的情况,其具体基于关键点坐标信息由二维平面到三维空间的旋转矩阵来确定脸部摆动状态为脸部左右摆动或脸部上下摆动。

示例性的,对于每帧人脸图像相应存在的关键点坐标信息集,其具体包含了二维平面下用于标识人脸的所有关键点的关键点坐标信息,此外,对于每帧人脸图像,还可确定出其在三维空间下与二维平面中关键点相对应的三维关键点坐标信息,且二维平面下的关键点坐标信息可采用二维平面矩阵表示,三维空间下的关键点坐标信息可采用三维空间矩阵表示,之后,在已知二维平面矩阵及相应三维空间矩阵的前提下,基于预设的旋转矩阵计算模型,可以确定出二维矩阵转换成三维空间矩阵的旋转矩阵,最后,根据旋转矩阵及设定的偏航角度值计算公式或俯仰角度值计算公式,就可以确定出人脸图像中人脸的偏航角度值或俯仰角度值,由此,可将偏航角度值或俯仰角度值作为每帧人脸图像对应的脸部状态。

当偏航角度值或俯仰角度值作为每帧人脸图像的脸部状态时,其脸部状态序列的确定方式与上述其他几种脸部状态的确定方式不同。其中,对于基于偏航角度值形成的脸部状态序列,此时的脸部状态序列相当于摇头状态序列,可设定y来标识该摇头状态序列,且可设定yi来标识摇头状态序列中的第i个摇头状态值;对于基于俯仰角度值形成的脸部状态序列,此时的脸部状态序列相当于点头状态序列,可设定p来标识该点头状态序列,且可设定pi来标识该点头状态序列中的第i个点头状态值。具体地,摇头状态序列的确定方式可描述为:首先以时间顺序汇合各帧人脸图像,并获取各帧人脸图像对应偏航角度值,之后将汇合后第一帧人脸图像对应的摇头状态值设定为0,对于摇头状态序列中第i帧人脸图像对应的摇头状态值,则可基于下述公式确定:

其中,yi表示第i帧人脸图像对应的摇头状态值,yawi表示第i帧人脸图像对应的偏航角度值,yawi-1表示第i-1帧人脸图像对应的偏航角度值,yaw_thres表示设定的摇头状态阈值。

具体地,点头状态序列的确定方式可描述为:首先以时间顺序汇合各帧人脸图像,并获取各帧人脸图像对应俯仰角度值,之后将汇合后第一帧人脸图像对应的点头状态值设定为0,对于点头状态序列中第i帧人脸图像对应的点头状态值,则可基于下述公式确定:

其中,pi表示第i帧人脸图像对应的点头状态值,pitchi表示第i帧人脸图像对应的偏航角度值,pitchi-1表示第i-1帧人脸图像对应的偏航角度值,pitch_thres表示设定的摇头状态阈值。

此外,需要说明的是,本实施例中与摇头状态序列比对的动态表情序列实际相当于摇头变化序列,本实施例优选设定摇头变化序列表示为ty_a={1,-1},ty_b={-1,1},此时可将确定的摇头状态序列y与ty_a={1,-1}及ty_b={-1,1}进行比对,如果ty_a={1,-1}或者ty_b={-1,1}中的元素存在于y中,则确定视频流中的人物当前存在摇头的动态表情;同样,可以知道的是,本实施例中与点头状态序列比对的动态表情序列实际相当于点头变化序列,本实施例优选设定点头变化序列p表示为tp_a={0,1},tp_b={-1,1},此时可将确定的摇头状态序列p与tp_a={0,1}及tp_b={-1,1}进行比对,如果tp_a={0,1}或者tp_b={-1,1}中的元素存在于p中,则确定视频流中的人物当前存在点头的动态表情。

在上述实施例的基础上,可选的,所述比较所述脸部状态序列和预设的动态表情序列确定脸部动态表情,包括:

如果动态表情序列中的元素信息依次出现在脸部状态序列中,则确定存在对应所述动态表情序列的脸部动态表情;否则,确定不存在对应所述脸部动态表情序列的脸部动态表情。

进一步地,本实施例还将比较所述脸部状态序列和预设的动态表情序列确定脸部动态表情,具体优化为:

确定动态表情序列的序列长度,并将变量i的值初始为1以及将比对序列号初始为1;在脸部状态序列中,从所述比对序号对应的元素信息开始,查找是否存在与所述动态表情序列中第i个元素信息匹配的是否目标元素信息;若存在目标元素信息,则将所述目标元素信息对应的序列号作为新的比对序号,以及对所述变量i加1后继续查找目标元素信息;若不存在目标元素信息,则当所述变量i大于所述序列长度时,确定存在所述动态表情序列对应的脸部动态表情,当所述量i小于或等于所述序列长度时,确定不存在所述动态表情序列对应的脸部动态表情。

示例性的,以脸部状态序列为嘴巴状态序列为例,且设定嘴巴状态序列m={0,0,0,1,0},此外,其对应的动态表情序列实际相当于嘴巴动态变化序列tm,其中,预设的tm={0,1},基于上述比对方式进行序列比对的过程可表述为:动态表情序列的序列长度为2,变量i初始为1,比对序列号初始为1;在已知的嘴巴状态序列m={0,0,0,1,0}中,比对序列号1对应的元素信息实际为m中的第1个元素值0,tm的第i个元素实际对应tm中的第1个元素值0,由此,可以确定m中的第1个元素值0与tm中的第1个元素值0相匹配,此时,可将变量i的值变更为2,比对序列号仍为1,然后可返回继续进行元素信息比对,并可确定tm中的第2个元素值1与m中的第4个元素值1相匹配,最终,在变量i的值等于3时,确定m中依次包含了tm中的所有元素,由此可认为当前存在对应嘴巴动态变化序列的嘴巴状态序列,进而可说明视频流中的人物当前存在张嘴的动态表情。

综上,本发明实施例提供的人脸动态表情的检测方法,具体可通过嘴巴状态、眼睛状态、眉毛状态以及脸部摆动状态的比对检测,来确定视频流中的动态表情,与现有的人脸动态表情检测相比,可以仅通过确定脸部状态序列与预设动态表情序列的比对,来简单快速的确定视频流中人物脸部是否存在动态表情,有效的降低了计算复杂度,更好的体现了动态表情的实时性,此外,本技术的方案,在保证检测速度的前提下,避免了对待检测视频数据的采集限制,由此保证了本方案在实际应用中的可扩展性。

需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。

本发明实施例还给出了一种人脸动态表情的检测装置,参考图3,为本发明实施例提供的一种人脸动态表情的检测装置的结构框图,该检测装置适用于对人机交互场景中出现的视频流进行人脸动态表情检测的情况,该装置可以软件和/或硬件实现,具体可集成在计算机设备上。在具体实现中,该计算机设备可以是两个或多个物理实体构成,也可以是一个物理实体构成,如设备可以是pc、电脑、手机、平板设备以及个人数字助理等。

如图。所示,该装置包括:人脸图像获取模块31、状态序列确定模块32以及动态表情确定模块33。

其中,人脸图像获取模块31,用于获取视频流中的至少两帧人脸图像;

状态序列确定模块32,用于根据各所述人脸图像中关键点坐标信息集,确定脸部状态序列;

动态表情确定模块33,用于比较所述脸部状态序列和预设的动态表情序列确定脸部动态表情。

进一步地,所述脸部状态为下述至少一种:眼睛状态、眉毛状态、嘴巴状态、脸部左右摆动以及脸部上下摆动;

相应的,所述脸部状态序列为下述至少一种:眼睛睁闭状态序列、眉毛收挑状态序列、嘴巴张合状态序列、摇头状态序列以及点头状态序列;

所述动态表情序列包括:眼睛动态变化序列、眉毛动态变化序列、嘴巴动态变化序列、摇头变化序列以及点头变化序列。

可选的,状态序列确定模块32,包括:脸部状态确定单元,

所述脸部状态确定单元,具体用于:

针对每帧人脸图像,基于相应关键点坐标信息集中标识上眼睑和下眼睑的关键点坐标信息,确定所述人脸图像中上眼睑到下眼睑的眼睑距离值;

基于所述关键点坐标信息集中标识鼻子的关键点坐标信息,确定所述人脸图像中鼻子的鼻梁长度,并将所述鼻梁长度作为眼部归一标准值得到所述眼睑距离值的归一值;

如果所述归一值小于设定的眼部状态阈值,则所述脸部状态为眼睛闭合;否则,所述脸部状态为眼睛睁开。

可选的,所述脸部状态确定单元,具体用于:

针对每帧人脸图像,基于相应关键点坐标信息集中标识上眉根及眼角的关键点坐标信息,确定所述人脸图像中上眉根到同侧眼角的连线距离值;

基于所述关键点坐标信息集中标识上眉根及下眉根的关键点坐标信息,确定所述人脸图像中的眉根宽度,并将所述眉根宽度作为眉部归一标准值得到所述连线距离值的归一值;

如果所述归一值大于设定的眉毛状态阈值,则所述脸部状态为眉毛上挑;否则,所述脸部状态为眉毛正常。

可选的,所述脸部状态确定单元,具体用于:

针对每帧人脸图像,基于相应关键点坐标信息集中上唇下边缘及下唇上边缘的关键点坐标信息,确定所述人脸图像中上唇下边缘到下唇上边缘的唇间距离值;

基于所述关键点坐标信息集中上唇上边缘及上唇下边缘的关键点坐标信息,确定所述人脸图像中的上嘴唇厚度,并将所述上嘴唇厚度作为唇部归一标准值得到所述唇间距离值的归一值;

如果所述归一值大于设定的唇部状态阈值,则所述脸部状态为嘴巴张开;否则,所述脸部状态为嘴巴闭合。

可选的,所述脸部状态确定单元,具体用于:

针对每帧人脸图像,基于相应关键点坐标信息集构成所述人脸图像的二维平面矩阵及三维空间矩阵;

确定所述二维平面矩阵转换成所述三维空间矩阵的旋转矩阵;

根据所述旋转矩阵确定所述人脸图像中人脸的偏航角度值,并将所述偏航角度值作为脸部状态;或者,根据所述旋转矩阵确定所述人脸图像中人脸的俯仰角度值,并将所述俯仰角度值作为脸部状态。

在上述优化的基础上,所述偏航角度值的计算公式表示为:pitch=arcsin(r2,3)×π/180;

所述俯仰角度值的计算公式表示为:yaw=-arctan(-r1,3/r3,3)×π/180;

其中,所述pitch表示偏航角度值,所述yaw表示俯仰角度值,所述ri,j表示旋转矩阵r中第i行第j列的元素值。

进一步地,动态表情确定模块33,用于:

当动态表情序列中的元素信息依次出现在脸部状态序列中时,确定存在对应所述动态表情序列的脸部动态表情;否则,确定不存在对应所述脸部动态表情序列的脸部动态表情。

在上述优化的基础上,动态表情确定模块33,具体用于:

确定动态表情序列的序列长度,并将变量i的值初始为1以及将比对序列号初始为1;

在脸部状态序列中,从所述比对序号对应的元素信息开始,查找是否存在与所述动态表情序列中第i个元素信息匹配的是否目标元素信息;

若存在目标元素信息,则将所述目标元素信息对应的序列号作为新的比对序号,以及对所述变量i加1后继续查找目标元素信息;

若不存在目标元素信息,则当所述变量i大于所述序列长度时,确定存在所述动态表情序列对应的脸部动态表情,当所述量i小于或等于所述序列长度时,确定不存在所述动态表情序列对应的脸部动态表情。

需要说明的是,上述提供的人脸动态表情的检测装置可执行本发明任意实施例所提供的音频检测方法,具备执行方法相应的功能和有益效果。

此外,本发明实施例还提供一种计算机设备,包括:处理器和存储器。存储器中存储有至少一条指令,且指令由所述处理器执行,使得所述计算机设备执行如上述方法实施例中所述的音频检测方法。

参照图4,为本发明实施例提供的一种计算机设备的硬件结构示意图。如图4所示,该计算机设备具体可以包括:处理器40、存储装置41、具有触摸功能的显示屏42、输入装置43、输出装置44以及通信装置45。该计算机设备中处理器40的数量可以是一个或者多个,图4中以一个处理器40为例。该计算机设备中存储装置41的数量可以是一个或者多个,图4中以一个存储装置41为例。该计算机设备的处理器40、存储装置41、显示屏42、输入装置43、输出装置44以及通信装置45可以通过总线或者其他方式连接,图4中以通过总线连接为例。

存储装置41作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明任意实施例所述的音频检测方法对应的程序指令/模块(例如,人脸动态表情的检测装置中的人脸图像获取模块31、状态序列确定模块32以及动态表情确定模块33等)。存储装置41可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作装置、至少一个功能所需的应用程序;存储数据区可存储根据计算机设备的使用所创建的数据等。此外,存储装置41可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储装置41可进一步包括相对于处理器40远程设置的存储器,这些远程存储器可以通过网络连接至计算机设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

显示屏42为具有触摸功能的显示屏42,其可以是电容屏、电磁屏或者红外屏。一般而言,显示屏42用于根据处理器40的指示显示数据,还用于接收作用于显示屏42的触摸操作,并将相应的信号发送至处理器40或其他装置。可选的,当显示屏42为红外屏时,其还包括红外触摸框,该红外触摸框设置在显示屏42的四周,其还可以用于接收红外信号,并将该红外信号发送至处理器40或者其他计算机设备。

通信装置45,用于与其他计算机设备建立通信连接,其可以是有线通信装置和/或无线通信装置。

输入装置43可用于接收输入的数字或者字符信息,以及产生与计算机设备的用户设置以及功能控制有关的键信号输入,还可以是用于获取图像的摄像头以及获取音频数据的拾音计算机设备。输出装置44可以包括扬声器等音频计算机设备。需要说明的是,输入装置43和输出装置44的具体组成可以根据实际情况设定。

处理器40通过运行存储在存储装置41中的软件程序、指令以及模块,从而执行计算机设备的各种功能应用以及数据处理,即实现上述的音频检测方法。

具体的,实施例中,处理器40执行存储装置41中存储的一个或多个程序时,具体实现如下操作:获取视频流中的至少两帧人脸图像;根据各所述人脸图像中关键点坐标信息集,确定脸部状态序列;比较所述脸部状态序列和预设的动态表情序列确定脸部动态表情。

本发明实施例还提供一种计算机可读存储介质,所述存储介质中的程序由计算机设备的处理器执行时,使得计算机设备能够执行如上述方法实施例所述的人脸动态表情的检测方法。示例性的,该人脸动态表情的检测方法包括:获取视频流中的至少两帧人脸图像;根据各所述人脸图像中关键点坐标信息集,确定脸部状态序列;比较所述脸部状态序列和预设的动态表情序列确定脸部动态表情。

需要说明的是,对于装置、计算机设备、存储介质实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、闪存(flash)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是机器人,个人计算机,服务器,或者网络设备等)执行本发明任意实施例所述的音频检测方法。

值得注意的是,上述人脸动态表情的检测装置中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。

应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行装置执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(pga),现场可编程门阵列(fpga)等。

在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。

注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1