发明内容
为了解决上述技术问题,本申请提供了一种人脸驱动动画的方法和装置,避免了拟合不准确带来的夸张表情问题,提高了人脸驱动动画的准确性。
本申请实施例公开了如下技术方案:
第一方面,本申请实施例提供了一种人脸驱动动画的方法,所述方法包括:
获取待处理图像中人脸图像的多个表情关键点;所述表情关键点为所述人脸图像的人脸关键点中与人脸表情相关的人脸关键点;
根据所述多个表情关键点间的距离,确定语义表情向量;
根据第一深度神经网络确定所述语义表情向量对应的表情系数,所述表情系数用于标识所述人脸图像所体现的目标人脸表情与不同基本人脸表情的相似性;
根据所述表情系数和所述基本人脸表情的位置信息确定所述目标人脸表情的目标位置信息;
根据所述目标位置信息渲染动画形象,以使得所述动画形象做出对应的表情。
可选的,所述根据所述多个表情关键点间的距离,确定语义表情向量,包括:
计算所述多个表情关键点间的距离;
根据所述人脸图像中用于体现人脸五官特点的特征参数,对所述多个表情关键点间的距离进行归一化计算;
根据计算结果确定语义表情向量。
可选的,所述方法还包括:
获取所述人脸图像中待校正人脸关键点的二维位置信息;所述待校正人脸关键点为所述人脸图像中人脸所处姿态相关的人脸关键点;
根据所述待校正人脸关键点的二维位置信息,通过第二深度神经网络确定所述待校正人脸关键点对应的第三维位置信息;
根据所述待校正人脸关键点的二维位置信息和第三维位置信息,对所述待校正人脸关键点进行校正得到人脸关键点,所述人脸关键点为所述人脸图像中人脸处于正脸且无姿态的人脸关键点。
可选的,所述待处理图像为视频中的一帧待处理视频帧,在所述获取待处理图像中人脸图像的多个表情关键点之前,所述方法还包括:
获取所述待处理视频帧的前帧集合,所述前帧集合包括所述待处理视频帧的前N个视频帧,所述前N个视频帧中具有已确定人脸关键点,N为大于等于1的整数;
根据所述待处理视频帧和前帧集合对所述已确定人脸关键点在所述待处理视频帧中进行关键点跟踪;所述关键点跟踪包括局部跟踪和针对每一帧中全部已确定人脸关键点的全局跟踪;
结合所述局部跟踪和所述全局跟踪的关键点跟踪结果,确定所述待处理视频帧中人脸图像的人脸关键点。
可选的,所述局部跟踪通过如下方式实施:
根据所述前帧集合中已确定人脸关键点的位置,将所述待处理视频帧切分为M个区块,其中任一个区块中至少包括一个已确定人脸关键点;
根据区块对所述已确定人脸关键点在所述待处理视频帧中进行所述局部跟踪;在进行所述局部跟踪的过程中,任一已确定人脸关键点的跟踪区域为这一已确定人脸关键点所在的区块。
可选的,在进行所述关键点跟踪的过程中,所述N个视频帧被设置有不同的权值,所述N个视频帧中,与所述待处理视频帧越近的权值越大。
可选的,所述待处理图像为视频中的一帧待处理视频帧,所述根据所述目标位置信息渲染动画形象,以使得所述动画形象做出对应的表情,包括:
根据所述待处理视频帧的前一个视频帧对应的表情系数和所述待处理视频帧对应的表情系数,确定表情处理方式;
根据所述目标位置信息和所述表情处理方式渲染动画形象,以使得所述动画形象做出对应的表情。
第二方面,本申请实施例提供了一种人脸驱动动画的装置,所述装置包括获取单元、确定单元和渲染单元:
所述获取单元,用于获取待处理图像中人脸图像的多个表情关键点;所述表情关键点为所述人脸图像的人脸关键点中与人脸表情相关的人脸关键点;
所述确定单元,用于根据所述多个表情关键点间的距离,确定语义表情向量;
所述确定单元还用于根据第一深度神经网络确定所述语义表情向量对应的表情系数,所述表情系数用于标识所述人脸图像所体现的目标人脸表情与不同基本人脸表情的相似性;
所述确定单元还用于根据所述表情系数和所述基本人脸表情的位置信息确定所述目标人脸表情的目标位置信息;
所述渲染单元,用于根据所述目标位置信息渲染动画形象,以使得所述动画形象做出对应的表情。
可选的,所述确定单元还用于:
计算所述多个表情关键点间的距离;
根据所述人脸图像中用于体现人脸五官特点的特征参数,对所述多个表情关键点间的距离进行归一化计算;
根据计算结果确定语义表情向量。
可选的,所述装置还包括矫正单元:
所述获取单元还用于获取所述人脸图像中待校正人脸关键点的二维位置信息;所述待校正人脸关键点为所述人脸图像中人脸所处姿态相关的人脸关键点;
所述确定单元还用于根据所述待校正人脸关键点的二维位置信息,通过第二深度神经网络确定所述待校正人脸关键点对应的第三维位置信息;
所述矫正单元,用于根据所述待校正人脸关键点的二维位置信息和第三维位置信息,对所述待校正人脸关键点进行校正得到人脸关键点,所述人脸关键点为所述人脸图像中人脸处于正脸且无姿态的人脸关键点。
可选的,所述待处理图像为视频中的一帧待处理视频帧,所述装置还包括跟踪单元:
所述获取单元还用于获取所述待处理视频帧的前帧集合,所述前帧集合包括所述待处理视频帧的前N个视频帧,所述前N个视频帧中具有已确定人脸关键点,N为大于等于1的整数;
所述跟踪单元,用于根据所述待处理视频帧和前帧集合对所述已确定人脸关键点在所述待处理视频帧中进行关键点跟踪;所述关键点跟踪包括局部跟踪和针对每一帧中全部已确定人脸关键点的全局跟踪;
所述确定单元还用于结合所述局部跟踪和所述全局跟踪的关键点跟踪结果,确定所述待处理视频帧中人脸图像的人脸关键点。
可选的,所述跟踪单元还用于:
根据所述前帧集合中已确定人脸关键点的位置,将所述待处理视频帧切分为M个区块,其中任一个区块中至少包括一个已确定人脸关键点;
根据区块对所述已确定人脸关键点在所述待处理视频帧中进行所述局部跟踪;在进行所述局部跟踪的过程中,任一已确定人脸关键点的跟踪区域为这一已确定人脸关键点所在的区块。
可选的,在所述跟踪单元在用于进行所述关键点跟踪的过程中,所述N个视频帧被设置有不同的权值,所述N个视频帧中,与所述待处理视频帧越近的权值越大。
可选的,所述待处理图像为视频中的一帧待处理视频帧,所述渲染单元还用于:
根据所述待处理视频帧的前一个视频帧对应的表情系数和所述待处理视频帧对应的表情系数,确定表情处理方式;
根据所述目标位置信息和所述表情处理方式渲染动画形象,以使得所述动画形象做出对应的表情。
第三方面,本申请实施例提供了一种用于人脸驱动动画的设备,包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行所述一个或者一个以上程序包含用于进行以下操作的指令:
获取待处理图像中人脸图像的多个表情关键点;所述表情关键点为所述人脸图像的人脸关键点中与人脸表情相关的人脸关键点;
根据所述多个表情关键点间的距离,确定语义表情向量;
根据第一深度神经网络确定所述语义表情向量对应的表情系数,所述表情系数用于标识所述人脸图像所体现的目标人脸表情与不同基本人脸表情的相似性;
根据所述表情系数和所述基本人脸表情的位置信息确定所述目标人脸表情的目标位置信息;
根据所述目标位置信息渲染动画形象,以使得所述动画形象做出对应的表情。
第四方面,本申请实施例提供了一种机器可读介质,其上存储有指令,当由一个或多个处理器执行时,使得装置执行如第一方面所述的人脸驱动动画方法。
由上述技术方案可以看出,根据包括人脸图像的待处理图像,获取人脸图像的多个表情关键点,这类表情关键点为人脸图像的人脸关键点中与人脸表情相关的人脸关键点,故根据多个表情关键点间距离确定出的语义表情向量可以从关键点间距离的角度上体现出该人脸图像所携带目标人脸表情的相关信息。根据语义表情向量,通过第一深度神经网络确定出对应的表情系数,由于表情系数可以标识人脸图像所体现目标人脸表情与不同基本人脸表情的相似性,故相当于对目标人脸表情进行了表情分类,通过表情系数标识了目标人脸表情属于不同基本人脸表情的可能性大小,由此可以根据表情系数和基本人脸表情的位置信息确定目标人脸表情的目标位置信息,根据目标位置信息可以通过3D动画渲染,以使得动画形象做出对应的表情,而不再需要将人脸图像关键点的位置与动画形象的关键点位置进行拟合,降低了算法耗时,并且通过表情分类得到表情系数的方式,避免了拟合不准确带来的夸张表情问题,提高了人脸驱动动画的准确性。
具体实施方式
下面结合附图,对本申请的实施例进行描述。
人脸驱动动画是一种实用功能,目前大多采用视频中人脸关键点位置与动画形象面部关键点位置拟合的方法来实现该功能。
然而由于摄像装置本身功能的局限,从视频中所能抓取到的人脸关键点主要为2维关键点,即只有在x轴、y轴上的位置信息,并没有关键点的深度信息(即在z轴上的位置信息),而动画形象多为3维建模的,动画形象的面部关键点是3维关键点。故在拟合过程中,需要经过多次迭代、调整,最终使得视频中人脸的2维关键点与动画形象的3维关键点完全匹配,从而确定出动画形象应做出的动画表情。
由于拟合过程所采用的算法复杂,计算量大导致计算耗时长,难以支持该功能的应用。
故此,本申请实施例提供了一种人脸驱动动画的方案,该方案可以通过视频处理设备实施,该视频处理设备可以是终端、服务器等具有视频处理能的设备。
在该方案中,通过获取待处理图像中人脸图像的多个表情关键点,根据多个表情关键点确定出语义表情向量,该语义表情向量可以从关键点间距离的角度上体现出该人脸图像所携带目标人脸表情的相关信息。由于第一深度神经网络可以确定出语义表情向量对应的表情系数,该表情系数标识人脸图像所体现目标人脸表情与不同基本人脸表情的相似性,故相当于对目标人脸表情进行了表情分类,通过表情系数标识了目标人脸表情属于不同基本人脸表情的可能性大小。
由于基本人脸表情的位置信息是已知的,当目标人脸表情与一个基本人脸表情的相似性高时,目标人脸表情中与这个基本人脸表情相似部分的位置信息可以与这个基本人脸表情的位置信息类似,所以可以根据表情系数和基本人脸表情的位置信息确定目标人脸表情的目标位置信息。从而不再需要将人脸图像关键点的位置与动画形象的关键点位置进行拟合,降低了算法耗时,并且通过表情分类得到表情系数的方式,避免了拟合不准确带来的夸张表情问题,提高了人脸驱动动画的准确性。
接下来结合附图说明本申请实施例提供的人脸驱动动画的方案。如图1所示,所述方法包括:
S101:获取待处理图像中人脸图像的多个表情关键点。
在本申请实施例中,待处理图像可以为一张具有人脸图像部分的图像,该张图像可以是预先获取的,也可以是实时拍摄的。待处理图像还可以为视频中的一帧视频帧,该视频可以是预先录制的,也可以是实时采集的。视频中包括了人脸图像,视频中的人脸图像可以是所录制的或者实时采集的用户人脸,用于根据人脸图像中的表情对动画形象进行驱动,使得动画形象可以做出与视频中人脸图像类似的表情,动画形象可以随着视频中人脸图像的表情变化而相应变化。
当待处理图像为一张图像时,可以通过该张图像驱动动画形象做出该张图像中的人脸表情。当待处理图像为视频中的一帧视频帧时,可以通过该视频中的视频帧,驱动动画形象做出视频中的人脸表情,并可以随着视频中人脸表情的变化而随之变化。在明确表情关键点前,首先说明人脸关键点的概念。人脸关键点为标识人脸图像关键部位或边缘轮廓的特征点,如眼睛、鼻子、眉毛、嘴巴、下巴等部位节点可以作为人脸关键点。在一些可能的实现方式中,例如图2所示,一张人脸图像可以通过68个人脸关键点进行标识。
由于人脸表情主要是指通过眼部肌肉、颜面肌肉和口部肌肉的变化来表现各种情绪状态。这类变化多集中于人脸面部五官周围,故用于标识人脸关键部位和轮廓的人脸关键点中并非全部都与人脸表情相关,在本申请实施例中,表情关键点为人脸图像的人脸关键点中与人脸表情相关的人脸关键点。在一种可能的实现方式中,表情关键点为人脸五官周围的人脸关键点。
本申请实施例不限定获取表情关键点的方式,也不限定获取人脸关键点的方式,同时,本申请实施例提供了一种可选的获取人脸关键点的方式,将会在之后的实施例中详细说明,这里不再一一赘述。
S102:根据所述多个表情关键点间的距离,确定语义表情向量。
由于全部或部分表情关键点中两两表情关键点的位置与人脸图像当前做出何种表情具有关联性,故通过确定多个表情关键点间的距离,可以确定出能够体现出人脸图像的表情的语义表情向量。
本申请实施例中所提出的距离可以是多个表情关键点间中任意两个表情关键点间的距离,例如图3所示,任一个双箭头所标识的长度可以为前述的距离。在一种可能的实现方式中,表情关键点间的距离可以包括以下任意多种的组合:
左眉内眉梢到左眼的垂直距离,左眉外眉梢到左眼的垂直距离,左眉中心到左眼的垂直距离,左眼上眼皮与下眼皮之间的最大垂直距离,右眉内眉梢到右眼的垂直距离,右眉外眉梢到右眼的垂直距离,右眉中心到右眼的垂直距离,右眼上眼皮与下眼皮之间的最大垂直距离,两眉中心的水平距离,上嘴唇两唇尖的水平距离,嘴巴最大宽度,嘴巴张开的最大垂直距离,鼻尖到眼睛的垂直距离,左嘴角到眼睛的垂直距离,右嘴角到眼睛的垂直距离,鼻尖到左嘴角的水平距离,鼻尖到右嘴角的水平距离,鼻尖到上嘴唇左唇尖的垂直距离,鼻尖到上嘴唇右唇尖的垂直距离,鼻尖到上嘴唇中心的垂直距离,上嘴唇中心到左嘴角的水平距离,上嘴唇中心到右嘴角的水平距离,下嘴唇中心到左嘴角的水平距离,下嘴唇中心到右嘴角的水平距离,上嘴唇内边缘中心与下嘴唇内边缘中心的垂直距离,上嘴唇内边缘中心与下嘴唇外边缘中心的垂直距离,上嘴唇外边缘中心与下嘴唇内边缘中心的垂直距离。
语义表情向量由多个语义特征变量组成,可以用于描述脸部器官周围局部运动的特征变量,以及描述全脸各器官之间相对运动的特征变量,语义表情向量通过描述上述动作来表示人脸图像体现的某种表情动作。
通过根据表情关键点确定语义表情向量,使得用于表情分类的数据量大幅减少,减少了计算量,增强了算法的鲁棒性。
在一种可能的实现方式中,可以将上述多个表情关键点间的距离直接向量化作为语义表情向量。
在一种可能的实现方式中,语义表情向量可以是通过对上述距离进行归一化得到的。进行归一化的目的可以是为了便于后续计算、降低计算量。
由于后续S103-104中进行表情分类时所依据的是基本人脸表情,而基本人脸表情所对应的位置信息可能是固定的,例如同一个基本人脸表情所对应的位置信息是固定的,而不同用户的人脸尺寸往往有所区别,例如有些用户的脸比较长,有些用户的脸比较宽。故针对不同脸型的用户,即使做出了相同的表情,表情关键点间的距离可能因为脸型的影响也会有较大差别,导致通过后续的表情分类,得到的表情系数会有所区别,从而对表情分类的准确性带来一定的影响可能。
故为了消除用户人脸脸型对人脸驱动动画带来的精度影响,本申请实施例提供了一种归一化得到语义表情向量的方式,以通过归一化处理消除不同用户脸型区别对后续表情分类带来的影响。
具体的,S102可以为:
S1021:计算所述多个表情关键点间的距离。
S1022:根据所述人脸图像中用于体现人脸五官特点的特征参数,对所述多个表情关键点间的距离进行归一化计算。
S1023:根据计算结果确定语义表情向量。
本步骤的特征参数可以体现出人脸五官特点,而人脸五官特点可以反映出人脸脸型的特点,例如脸较宽的用户两眼间距相对也会较宽,脸较长的用户鼻子相对也会较长。
而如前述,表情关键点间的距离会受到用户脸型的影响,但是用于体现人脸五官特定的特征参数(例如两眼间距、鼻子长度等)也具有人脸脸型的特点,故通过特征参数对上述距离进行归一化计算,可以一定程度上消除上述距离中脸型所带来的影响,提高后续表情分类的准确性。
需要注意的是,在本实施方式中,根据特征参数的不同选取方式,归一化计算的计算结果可以是0-1之间的值,也可以是大于1的值。
通过归一化计算得到的语义表情向量,相当于通过表情关键点间的归一化距离来表示某种表情动作。
S103:根据第一深度神经网络确定所述语义表情向量对应的表情系数。
第一深度神经网络可以是一种以基本人脸表情作为训练样本训练得到的网络模型。为了训练第一深度神经网络,可以根据基本人脸表情的位置信息计算基本人脸表情对应的语义表情向量,计算方式可以参考S102中所提供的方式。
基本人脸表情可以是人脸表情的基本动作,如左眼上眼皮向下、右嘴角向上等动作,基本人脸表情有多种,在一些划分准则下,基本人脸表情可以包括46种。通常情况下,人脸的任意一种表情均可由多种基本人脸表情线性组合得到。
为了便于描述不同基本人脸表情,通常可以将具有一种基本人脸表情的3D模型中人脸关键点的位置信息按照规定顺序组合成一维向量,由该向量表示该基本人脸表情。
通过第一深度神经网络确定的表情系数,可以标识出人脸图像所体现的目标人脸表情与不同基本人脸表情的相似性。该相似性的大小可以与目标人脸表情的语义表情向量与基本人脸表情的语义表情向量的接近程度相关,从而通过表情系数可以标识目标人脸表情属于不同基本人脸表情的可能性大小。
确定出的表情系数的数量可以与基本人脸表情的数量相符,即一个基本人脸表情对应一个表情系数;确定出的表情系数的数量可以少于基本人脸表情的数量,即仅得到相似性较高的基本人脸表情对应的表情系数。
例如假设基本人脸表情有3个,分别为基本人脸表情a、基本人脸表情b和基本人脸表情c。针对目标人脸表情,对应的表情系数可以包括0.8、0.1、0.1,分别对应3个基本人脸表情。其中,目标人脸表情与基本人脸表情a的相似性为80%,与基本人脸表情b的相似性为10%,与基本人脸表情c的相似性为10%。
S104:根据所述表情系数和所述基本人脸表情的位置信息确定所述目标人脸表情的目标位置信息。
由于目标位置信息是根据基本人脸表情的位置信息确定的,而基本人脸表情的位置信息是在3D模型中,标识该基本人脸表情的人脸关键点或表情关键点的已知坐标,即已经包括了三个维度的坐标,故确定出的目标位置信息也具备3维坐标。而目标位置信息除了可以包括人脸关键点或表情关键点这类顶点的3维坐标以外,还可以包括其他顶点的3维坐标。本申请实施例中提出的顶点为3维建模、渲染中,用于定位、构成模型脸部位置的位置点。
在进行目标位置信息的计算中,表情系数可以作为权重引入,使得表情系数越大的基本人脸表的位置信息在计算过程中起到的影响越大。在一种可能的实现方式中,目标位置信息可以采用公式1计算得到:
其中,F为目标位置信息,eci为基本人脸表情对应的表情系数,bi为基本人脸表情对应的位置信息,n为表情系数的数量。
为了降低确定出的目标位置信息F可能出现不自然夸张表情的概率,还可以对公式1进一步改进,得到公式2:
其中,b0为没有任何表情的基本人脸对应的位置信息。
通过引入没有任何表情的基本人脸对应的位置信息,即使通过公式1确定出了不自然夸张表情的位置信息,也可以通过公式2在一定程度上进行了校正,从而提高了人脸驱动动画的准确性。
需要注意的是,不论是在公式1还是公式2中,基本人脸表情的位置信息均为一维向量形式。该向量中携带了基本人脸表情在3D模型中的坐标信息,按照固定的顺序填入人脸关键点或表情关键点,或者,包括人脸关键点或表情关键点的顶点的坐标,如(x1,y1,z1,x2,y2,z2…xn,yn,zn)。在前述形式的向量中,第1+3(n-1)个元素至第3+3(n-1)个元素为基本人脸表情在3D模型中第n个人脸关键点或表情关键点或顶点的坐标,n可以根据前述固定顺序确定。
在基本人脸表情的位置信息可以为向量的形式的情况下,得到的目标位置信息也同样为向量的形式,目标位置信息对应的向量具有与基本人脸表情的位置信息所对应向量相同的结构。得到目标位置信息后再经过3D渲染,即可得到相应的3D动画表情形象。
S105:根据所述目标位置信息渲染动画形象,以使得所述动画形象做出对应的表情。
在确定出目标位置信息后,该目标位置信息具有人脸关键点或表情关键点或顶点的3维坐标,从而可以将该目标位置信息应用到动画形象中,或者将目标位置信息映射到动画形象对应的坐标位置,对动画形象进行渲染,以使得动画形象做出符合该目标位置信息的表情。
需要注意的是,若待处理图像为视频中的一帧待处理视频帧,在驱动动画的视频图像处理过程中,由于相邻两个视频帧对应的表情系数可能会出现一定波动,从而可能导致动画形象响应于该波动所呈现的表情变化不够平顺、视觉效果不够美化。故本申请实施例提供了一种驱动动画的方式,S105可以包括:
S1051:根据所述待处理视频帧的前一个视频帧对应的表情系数和所述待处理视频帧对应的表情系数,确定表情处理方式。
S1052:根据所述目标位置信息和所述表情处理方式渲染动画形象,以使得所述动画形象做出对应的表情。
表情处理方式可以包括针对动画形象所展示表情的处理方式,可以与表情渲染、表情融合等相关。表情处理方式可以包括滤波、激活、平滑等处理方式。
根据相邻帧表情系数的区别,例如变化趋势和/或差别,可以确定适用于该区别的表情处理方式。进一步的,还可以针对某个或某些表情系数变化的幅度,确定出与这个或这些表情系数对应的人脸部位,并确定出适用于该人脸部位的表情处理方式。
例如,若基本人脸表情a为左眼上眼皮向下,对应的表情系数为表情系数a,若相邻帧中表情系数a变化较大,可以确定出适用于眼睛闭合的滤波和激活方式作为驱动动画形象做出对应表情的表情处理方式。
通过相邻帧表情系数确定出适用的表情处理方式,可以使得动画形象展现的动画效果更加稳定、美化。
由此可见,根据包括人脸图像的待处理图像,获取人脸图像的多个表情关键点,这类表情关键点为人脸图像的人脸关键点中与人脸表情相关的人脸关键点,故根据多个表情关键点间距离确定出的语义表情向量可以从关键点间距离的角度上体现出该人脸图像所携带目标人脸表情的相关信息。根据语义表情向量,通过第一深度神经网络确定出对应的表情系数,由于表情系数可以标识人脸图像所体现目标人脸表情与不同基本人脸表情的相似性,故相当于对目标人脸表情进行了表情分类,通过表情系数标识了目标人脸表情属于不同基本人脸表情的可能性大小,由此可以根据表情系数和基本人脸表情的位置信息确定目标人脸表情的目标位置信息,根据目标位置信息可以通过3D动画渲染,以使得动画形象做出对应的表情,而不再需要将人脸图像关键点的位置与动画形象的关键点位置进行拟合,降低了算法耗时,并且通过表情分类得到表情系数的方式,避免了拟合不准确带来的夸张表情问题,提高了人脸驱动动画的准确性。
由于在获取待处理图像时,用户可能以不同的人脸姿态面对视频采集设备,导致同一个用户在相同表情下,不同人脸姿态时人脸关键点的位置信息也会有所区别,从而影响后续表情分类的准确性。为此,本申请实施例提供了一种可选的人脸关键点校正方式,以提高表情分类的准确性。在图1所对应实施例的基础上,在执行S101之前,所述方法还包括:
S201:获取所述人脸图像中待校正人脸关键点的二维位置信息。
由于通过采集得到的人脸关键点的位置信息主要为二维位置信息,而二维位置信息容易受到人脸姿态的影响,故当待处理图像中人脸图像具有一定姿态的情况下,直接采集得到的位置信息的准确度并不高,需要进行校正。本申请实施例中提出的人脸姿态可以包括侧脸、抬头、低头等各种非正对视频采集设备的人脸姿态。
故在本申请实施例中,可以将直接采集得到的人脸关键点视为待校正人脸关键点,该待校正人脸关键点为所述人脸图像中人脸所处姿态下的人脸关键点。
S202:根据所述待校正人脸关键点的二维位置信息,通过第二深度神经网络确定所述待校正人脸关键点对应的第三维位置信息。
所述第二深度神经网络可以是根据历史样本训练得到,所述历史样本包括不同姿态下人脸的三维位置信息,例如,历史样本可以包括侧脸姿态下人脸中人脸关键点的三维位置信息等。
通过训练,第二深度神经网络可以通过待校正人脸关键点的二维位置信息,确定该二维位置信息属于某种姿态下的人脸,并将确定出的这种姿态下人脸的第三维位置信息作为待校正人脸关键点对应的第三维位置信息。为了便于说明,假设待校正人脸关键点共有3个,分别为左眼角外侧,右眼角外侧和鼻尖,二维位置信息分别为(1,1)、(3.2,1.1)和(1.8,0),通过第二深度神经网络可以确定左眼角外侧,右眼角外侧和鼻尖对应的第三维位置信息分别为4.3、5、5.6,由此可以得到左眼角外侧,右眼角外侧和鼻尖的三维位置信息,分别为(1,1,4.3)、(3.2,1.1,5)和(1.8,0,5.6)。
由此,在不提高摄像采集设备成本的前提下,通过第二深度神经网络将待校正人脸关键点的二维位置信息转换为三维位置信息,提高算法的普适性。
第二深度神经网络可以为3层全连接的网络结构,输入为n个待校正人脸关键点的二维坐标向量,向量的具体结构可以为:(x1,x2…xn,y1,y2,…yn),其中(xi,yi)为第i个待校正人脸关键点的二维坐标。第二深度神经网络的输出为n个待校正人脸关键点相应的深度位置信息(Z轴坐标),例如:(z1,z2,…zn)。
S203:根据所述待校正人脸关键点的二维位置信息和第三维位置信息,对所述待校正人脸关键点进行校正得到人脸关键点,所述人脸关键点为所述人脸图像中人脸处于正脸无姿态下的人脸关键点。
由于三维坐标受到人脸姿态的影响要小于二维坐标,故可以根据待校正人脸关键点的三维坐标,计算当前人脸图像相应的位置及姿态,并通过三维坐标旋转,将待校正人脸关键点的位置信息矫正为正脸无姿态下的三维位置信息,便于后续表情分类。
人脸处于正脸无姿态下的三维位置信息所对应的人脸关键点即为S101中所提出的人脸关键点。从而使用校正后得到的人脸关键点确定表情关键点,进行表情分类时准确性更高,避免了人脸姿态带来的精度影响。
在执行S101之前,当待处理图像为视频中的一帧待处理视频帧时,还需要获取待处理视频帧中人脸图像的人脸关键点,以便根据人脸关键点得到表情关键点。本申请实施例提供了一种可选的获取人脸关键点的方式,在图1所对应实施例的基础上,所述方法还包括:
S301:获取所述待处理视频帧的前帧集合。
所述前帧集合为待处理视频帧所处的视频中,待处理视频帧的前N个视频帧,N为大于等于1的整数。由于待处理视频帧属于当前正在处理的视频帧,而前帧集合中的前N个视频帧一般情况下已经处理完成,具有已确定完毕的人脸关键点。
引入前帧集合的目的主要是为了对待处理视频帧中人脸检测和人脸关键点定位及跟踪。人脸检测可以采用OpenCV方法,人脸关键点定位可以采用监督下降法(SupervisedDescent Method,SDM)方法,关键点跟踪可以采用改进的光流算法。
前帧集合中视频帧的数量可以根据不同的计算需求和应用场景确定,这里不做限定。
需要注意的是,抖动是视频帧人脸关键点检测一个常见问题,通常情况下,传统方式采用前后两帧或多帧特征点坐标取平均这一简单方式可有效削减抖动问题,但随着所取帧数的增多,通过所定位人脸关键点进行动画驱动时视频效果明显滞后。为克服这一缺点,本申请实施例提供了一种可选的的方式,对不同视频帧采用不同权值的方式,前帧集合中,越靠近待处理视频帧的视频帧,被赋予的权值越大,以此来消除后期驱动动画的滞后问题,同时满足消抖效果。
具体的,在进行所述关键点跟踪的过程中,所述N个视频帧被设置有不同的权值,所述N个视频帧中,与所述待处理视频帧越近的权值越大。
由此,在进行后续S302-303的处理过程中,由于权值较大的视频帧离待处理视频帧较近,其中人脸表情相对与待处理视频帧中的人脸表情更为接近,权值越大的视频帧所携带的人脸关键点信息对待处理视频帧中人脸图像的人脸关键点的定位影响更大,从而,可以有效消除后期驱动动画中可能出现表情滞后问题。
S302:根据所述待处理视频帧和前帧集合对所述已确定人脸关键点在所述待处理视频帧中进行关键点跟踪。
S303:结合所述局部跟踪和所述全局跟踪的关键点跟踪结果,确定所述待处理视频帧中人脸图像的人脸关键点。
需要说明的是,本申请实施例采用的关键点跟踪对传统的光流跟踪进行了改进,是一种特定的联合跟踪方式,包括了局部跟踪和全局跟踪。
其中,全局跟踪为针对每一帧中全部已确定人脸关键点的跟踪。全局跟踪的优势在于全面,但是相对来说精度不是很高。
局部跟踪是针对局部区域中的人脸关键点进行跟踪,优势在于具有较高的跟踪精度,且跟踪速度快。
由此,这两种关键点跟踪方式可以优势互补,有效联合,将局部跟踪的跟踪结果与全局跟踪的跟踪结果融合平均,达到高精度跟踪的效果,从待处理视频帧中得到高精度的人脸关键点。
在一种可能的实现方式中,所述局部跟踪通过如下方式实施:
根据所述前帧集合中已确定人脸关键点的位置,将所述待处理视频帧切分为M个区块,其中任一个区块中至少包括一个已确定人脸关键点;
根据区块对所述已确定人脸关键点在所述待处理视频帧中进行所述局部跟踪;在进行所述局部跟踪的过程中,任一已确定人脸关键点的跟踪区域为这一已确定人脸关键点所在的区块。
由此,在进行局部跟踪时,每次可以仅针对一个人脸关键点在待处理视频帧中的一个区块中进行跟踪,跟踪区域相对于整个待处理视频帧来说更小,从而可以起到高精度的跟踪,并节约跟踪耗时。
图4为本申请实施例提供的一种人脸驱动动画装置的装置结构图,所述装置包括获取单元401、确定单元402和渲染单元403:
所述获取单元401,用于获取待处理图像中人脸图像的多个表情关键点;所述表情关键点为所述人脸图像的人脸关键点中与人脸表情相关的人脸关键点;
所述确定单元402,用于根据所述多个表情关键点间的距离,确定语义表情向量;
所述确定单元402还用于根据第一深度神经网络确定所述语义表情向量对应的表情系数,所述表情系数用于标识所述人脸图像所体现的目标人脸表情与不同基本人脸表情的相似性;
所述确定单元402还用于根据所述表情系数和所述基本人脸表情的位置信息确定所述目标人脸表情的目标位置信息;
所述渲染单元403,用于根据所述目标位置信息渲染动画形象,以使得所述动画形象做出对应的表情。
可选的,所述确定单元还用于:
计算所述多个表情关键点间的距离;
根据所述人脸图像中用于体现人脸五官特点的特征参数,对所述多个表情关键点间的距离进行归一化计算;
根据计算结果确定语义表情向量。
可选的,所述装置还包括矫正单元:
所述获取单元还用于获取所述人脸图像中待校正人脸关键点的二维位置信息;所述待校正人脸关键点为所述人脸图像中人脸所处姿态相关的人脸关键点;
所述确定单元还用于根据所述待校正人脸关键点的二维位置信息,通过第二深度神经网络确定所述待校正人脸关键点对应的第三维位置信息;
所述矫正单元,用于根据所述待校正人脸关键点的二维位置信息和第三维位置信息,对所述待校正人脸关键点进行校正得到人脸关键点,所述人脸关键点为所述人脸图像中人脸处于正脸且无姿态的人脸关键点。
可选的,所述待处理图像为视频中的一帧待处理视频帧,所述装置还包括跟踪单元:
所述获取单元还用于获取所述待处理视频帧的前帧集合,所述前帧集合包括所述待处理视频帧的前N个视频帧,所述前N个视频帧中具有已确定人脸关键点,N为大于等于1的整数;
所述跟踪单元,用于根据所述待处理视频帧和前帧集合对所述已确定人脸关键点在所述待处理视频帧中进行关键点跟踪;所述关键点跟踪包括局部跟踪和针对每一帧中全部已确定人脸关键点的全局跟踪;
所述确定单元还用于结合所述局部跟踪和所述全局跟踪的关键点跟踪结果,确定所述待处理视频帧中人脸图像的人脸关键点。
可选的,所述跟踪单元还用于:
根据所述前帧集合中已确定人脸关键点的位置,将所述待处理视频帧切分为M个区块,其中任一个区块中至少包括一个已确定人脸关键点;
根据区块对所述已确定人脸关键点在所述待处理视频帧中进行所述局部跟踪;在进行所述局部跟踪的过程中,任一已确定人脸关键点的跟踪区域为这一已确定人脸关键点所在的区块。
可选的,在所述跟踪单元在用于进行所述关键点跟踪的过程中,所述N个视频帧被设置有不同的权值,所述N个视频帧中,与所述待处理视频帧越近的权值越大。
可选的,所述待处理图像为视频中的一帧待处理视频帧,所述渲染单元还用于:
根据所述待处理视频帧的前一个视频帧对应的表情系数和所述待处理视频帧对应的表情系数,确定表情处理方式;
根据所述目标位置信息和所述表情处理方式渲染动画形象,以使得所述动画形象做出对应的表情。
本实施例中以上单元所实施操作的相关说明可以参见图1所对应实施例的对应部分,这里不再一一赘述。
本实施例还提供一种用于人脸驱动动画的设备,该设备可以是终端设备,图5是根据一示例性实施例示出的一种终端设备500的框图。例如,终端设备500可以是移动电话,计算机,数字广播终端,消息收发设备,游戏控制台,平板设备,医疗设备,健身设备,个人数字助理等。
参照图5,终端设备500可以包括以下一个或多个组件:处理组件502,存储器504,电源组件506,多媒体组件508,音频组件510,输入/输出(I/O)的接口512,传感器组件514,以及通信组件516。
处理组件502通常控制终端设备500的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理组件502可以包括一个或多个处理器520来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件502可以包括一个或多个模块,便于处理组件502和其他组件之间的交互。例如,处理组件502可以包括多媒体模块,以方便多媒体组件508和处理组件502之间的交互。
存储器504被配置为存储各种类型的数据以支持在终端设备500的操作。这些数据的示例包括用于在终端设备500上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器504可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
电源组件506为终端设备500的各种组件提供电力。电源组件506可以包括电源管理系统,一个或多个电源,及其他与为终端设备500生成、管理和分配电力相关联的组件。
多媒体组件508包括在所述终端设备500和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件508包括一个前置摄像头和/或后置摄像头。当终端设备500处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。
音频组件510被配置为输出和/或输入音频信号。例如,音频组件510包括一个麦克风(MIC),当终端设备500处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器504或经由通信组件516发送。在一些实施例中,音频组件510还包括一个扬声器,用于输出音频信号。
I/O接口512为处理组件502和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。
传感器组件514包括一个或多个传感器,用于为终端设备500提供各个方面的状态评估。例如,传感器组件514可以检测到终端设备500的打开/关闭状态,组件的相对定位,例如所述组件为终端设备500的显示器和小键盘,传感器组件514还可以检测终端设备500或终端设备500一个组件的位置改变,用户与终端设备500接触的存在或不存在,终端设备500方位或加速/减速和终端设备500的温度变化。传感器组件515可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件514还可以包括光传感器,如CMOS或CCD图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件514还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。
通信组件516被配置为便于终端设备500和其他设备之间有线或无线方式的通信。终端设备500可以接入基于通信标准的无线网络,如WiFi,2G或3G,或它们的组合。在一个示例性实施例中,通信组件516经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件516还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
在示例性实施例中,终端设备500可以被一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述方法。
在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器504,上述指令可由终端设备500的处理器520执行以完成上述方法。例如,所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
一种非临时性计算机可读存储介质,当所述存储介质中的指令由移动终端的处理器执行时,使得移动终端能够执行一种用于人脸驱动动画的方法,所述方法包括:
针对上屏的目标字符串发起云端联想;所述目标字符串为连贯性语句中的一组字符串;
获取待处理图像中人脸图像的多个表情关键点;所述表情关键点为所述人脸图像的人脸关键点中与人脸表情相关的人脸关键点;
根据所述多个表情关键点间的距离,确定语义表情向量;
根据第一深度神经网络确定所述语义表情向量对应的表情系数,所述表情系数用于标识所述人脸图像所体现的目标人脸表情与不同基本人脸表情的相似性;
根据所述表情系数和所述基本人脸表情的位置信息确定所述目标人脸表情的目标位置信息;
根据所述目标位置信息渲染动画形象,以使得所述动画形象做出对应的表情。
本实施例提供的用于人脸驱动动画的设备还可以是服务器,图6是本发明实施例中服务器的结构示意图。该服务器600可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(central processing units,CPU)622(例如,一个或一个以上处理器)和存储器632,一个或一个以上存储应用程序642或数据644的存储介质630(例如一个或一个以上海量存储设备)。其中,存储器632和存储介质630可以是短暂存储或持久存储。存储在存储介质630的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器622可以设置为与存储介质630通信,在服务器600上执行存储介质630中的一系列指令操作。
服务器600还可以包括一个或一个以上电源626,一个或一个以上有线或无线网络接口650,一个或一个以上输入输出接口658,一个或一个以上键盘656,和/或,一个或一个以上操作系统641,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质可以是下述介质中的至少一种:只读存储器(英文:read-only memory,缩写:ROM)、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于设备及系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的设备及系统实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述,仅为本申请的一种具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应该以权利要求的保护范围为准。