模型训练方法和装置、运动单元识别方法、设备、介质与流程

文档序号:30061773发布日期:2022-05-17 23:47阅读:151来源:国知局
模型训练方法和装置、运动单元识别方法、设备、介质与流程

1.本公开实施例涉及人工智能技术领域,尤其涉及模型训练方法和装置、运动单元识别方法、设备、介质。


背景技术:

2.人脸动作单元(action units,au)是为了分析人脸面部肌肉运动而提出的技术,是表情识别算法等领域的基本研究方向,通过计算机分析人的表情信息,从而推断心理状态,实现人机之间的智能交互的基础。
3.相关技术中,大多是收集大量au样本,对样本进行整理,并对样本进行分类,然后利用样本训练au特征识别模型,用来进行au特征识别该au特征识别模型通过识别脸部图像中的au特征判断面部表情,常见的au特征识别模型包括卷积神经网络模型,但是在au特征识别模型的训练过程中,训练过程中仅对au进行分类预测,容易导致训练人脸运动单元模型过拟合严重,模型偏见高的问题。


技术实现要素:

4.本公开实施例的主要目的在于提出一种模型训练方法和装置、运动单元识别方法、设备、介质,能够提高人脸运动单元模型的预测精度,提高模型的普适性。
5.为实现上述目的,本公开实施例的第一方面提出了一种模型训练方法,包括:
6.获取训练数据集;所述训练数据集包括人脸运动图片样本和运动单元标签;
7.获取原始人脸运动单元识别模型,所述原始人脸运动单元识别模型包括:人脸关键点分类层和运动单元分类层;
8.将所述人脸运动图片样本输入到所述原始人脸运动单元识别模型中,利用所述人脸关键点分类层进行人脸关键点分类预测得到人脸关键点预测结果;
9.利用所述运动单元分类层进行运动单元分类预测得到运动单元预测结果;
10.计算所述运动单元预测结果和所述运动单元标签之间的运动单元误差值;
11.根据所述人脸关键点预测结果和所述运动单元误差值调整所述原始人脸运动单元识别模型的模型权值,得到目标人脸运动单元识别模型。
12.在一些实施例中,所述获取训练数据集之前,所述模型训练方法还包括:
13.获取原始训练数据集,所述原始训练数据集包括:原始人脸运动图片样本;
14.获取所述原始人脸运动图片样本中每个运动类别的样本数;
15.对样本数小于预设样本数的运动类别对应的所述原始人脸运动图片样本进行样本扩充,以使得所述原始训练数据集中每个运动类别的样本数一致;
16.根据所述原始训练数据集得到所述训练数据集。
17.在一些实施例中,所述对样本数小于预设样本数的运动类别对应的所述原始人脸运动图片样本进行样本扩充,包括:
18.按照人脸关键点位置和遮挡掩码对所述原始人脸运动图片样本进行随机遮挡,得
到新的所述原始人脸运动图片样本。
19.在一些实施例中,所述根据所述人脸关键点预测结果和所述运动单元误差值调整所述原始人脸运动单元识别模型的模型权值,得到目标人脸运动单元识别模型,包括:
20.根据所述人脸关键点预测结果和所述运动单元误差值计算损失值;
21.利用损失函数根据所述损失值调整所述原始人脸运动单元识别模型的模型权值,直至所述损失函数收敛,得到所述目标人脸运动单元识别模型。
22.在一些实施例中,所述根据所述人脸关键点预测结果和所述运动单元误差值调整所述原始人脸运动单元识别模型的模型权值,得到目标人脸运动单元识别模型之前,所述模型训练方法还包括:
23.利用所述人脸关键点分类层的第一损失函数和所述运动单元分类层的第二损失函数得到所述损失函数。
24.在一些实施例中,所述人脸关键点分类层的所述第一损失函数表示为:
[0025][0026]
其中,l
lmk
表示第一损失函数,θ表示人脸角度,x表示人脸关键点对应的坐标;
[0027]
所述运动单元分类层的所述第二损失函数为:
[0028][0029]
其中,l
au
表示第二损失函数,n表示样本数量,y表示所述运动单元标签,表示所述运动单元预测结果,mask表示遮挡掩码;
[0030]
所述损失函数,表示为:
[0031]
l=l
au
+β*l
lmk
[0032]
其中,l表示损失函数,β表示超参数。
[0033]
为实现上述目的,本公开的第二方面提出了一种运动单元识别方法,包括:
[0034]
获取人脸运动单元图片;
[0035]
将所述人脸运动单元图片输入到目标人脸运动单元识别模型中;其中所述目标人脸运动单元识别模型包括运动单元分类层,所述目标人脸运动单元识别模型为根据如第一方面任一项所述的模型训练方法训练得到;
[0036]
利用所述运动单元分类层进行运动单元分类预测,得到人脸运动单元识别结果。
[0037]
为实现上述目的,本公开的第三方面提出了一种模型训练装置,包括:
[0038]
训练数据集获取模块,用于获取训练数据集;所述训练数据集包括人脸运动图片样本和运动单元标签;
[0039]
模型获取模块,用于获取原始人脸运动单元识别模型,所述原始人脸运动单元识别模型包括:人脸关键点分类层和运动单元分类层;
[0040]
人脸关键点预测模块,用于将所述人脸运动图片样本输入到所述原始人脸运动单元识别模型中,利用所述人脸关键点分类层进行人脸关键点分类预测得到人脸关键点预测结果;
[0041]
运动单元预测模块,用于利用所述运动单元分类层进行运动单元分类预测得到运
动单元预测结果;
[0042]
误差计算模块,用于计算所述运动单元预测结果和所述运动单元标签之间的运动单元误差值;
[0043]
权值调整模块,用于根据所述人脸关键点预测结果和所述运动单元误差值调整所述原始人脸运动单元识别模型的模型权值,得到目标人脸运动单元识别模型。
[0044]
为实现上述目的,本公开的第四方面提出了一种电子设备,包括:
[0045]
至少一个存储器;
[0046]
至少一个处理器;
[0047]
至少一个程序;
[0048]
所述程序被存储在存储器中,处理器执行所述至少一个程序以实现本公开如上述第一方面或第二方面所述的方法。
[0049]
为实现上述目的,本公开的第五方面提出了一种存储介质,该存储介质是计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行:
[0050]
如上述第一方面或第二方面所述的方法。
[0051]
本公开实施例提出的模型训练方法和装置、运动单元识别方法、设备、介质,与相关技术相比,模型训练方法通过获取原始人脸运动单元识别模型和训练数据集,将人脸运动图片样本输入到原始人脸运动单元识别模型中进行预测,利用人脸关键点分类层和运动单元分类层分别得到人脸关键点预测结果和运动单元预测结果,计算运动单元预测结果和运动单元标签之间的运动单元误差值,根据人脸关键点预测结果和运动单元误差值调整原始人脸运动单元识别模型的模型权值,直至损失函数收敛,得到原始人脸运动单元识别模型。本实施例中融合人脸关键点分类层和运动单元分类层对原始人脸运动单元识别模型进行训练,引入人脸关键点信息作为监督信号,在训练过程中保证两个预测分支同时收敛,以减少过拟合程度,进一步提高目标人脸运动单元模型的预测精度,提高模型的普适性。
附图说明
[0052]
图1是本公开一实施例提供的模型训练方法的流程图。
[0053]
图2是本公开又一实施例提供的模型训练方法的流程图。
[0054]
图3是本公开又一实施例提供的模型训练方法的人脸位置区域的示意图。
[0055]
图4是本公开又一实施例提供的模型训练方法的人脸关键点示意图。
[0056]
图5是本公开又一实施例提供的模型训练方法的原始人脸运动单元识别模型结构示意图。
[0057]
图6是本公开又一实施例提供的模型训练方法的流程图。
[0058]
图7是本公开一实施例提供的模型训练装置的结构框图。
[0059]
图8是本公开一实施例提供的运动单元识别方法的流程图。
[0060]
图9是本公开一实施例提供的运动单元识别装置的结构框图。
[0061]
图10是本公开实施例提供的电子设备的硬件结构示意图。
具体实施方式
[0062]
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本技术,并不用于限定本技术。
[0063]
需要说明的是,虽然在装置示意图中进行了功能模块划分,在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于装置中的模块划分,或流程图中的顺序执行所示出或描述的步骤。
[0064]
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本发明实施例的目的,不是旨在限制本发明。
[0065]
首先,对本技术中涉及的若干名词进行解析:
[0066]
人脸动作单元(action units,au):为描绘不同的脸部肌肉动作和不同表情的对应关系,心理学家paul ekman和w.v.friesen提出了面部表情编码系统(facial action coding system,facs),根据人类解刨学特点,将该facs系统划分成若干既相互独立又相互联系的运动单元即au,例如au1(inner brow raiser内端眉毛上扬),au2(outer brow raiser外端眉毛上扬)等,这些运动单元可以组合表示人脸表情所有可能的表情(包含皱眉,抿嘴等),au是组成人脸表情的基石。
[0067]
人脸动作单元是为了分析人脸面部肌肉运动而提出的技术,是表情识别算法等领域的基本研究方向,通过计算机分析人的表情信息,从而推断心理状态,实现人机之间的智能交互的基础。相关技术中,通过识别脸部图像中的au特征判断面部表情方法比较通用,大多是收集大量au样本,对样本进行整理,一般分成几类,例如使用卷积神经网络训练出au特征识别模型,用来进行au特征识别,但这种方法中,人脸运动单元数据集标注方式不统一,数据量少且数据分布不均,同时人工采集人脸运动单元的数据相对困难,容易引入噪声。容易导致训练人脸运动单元模型过拟合严重,模型偏见高的问题。
[0068]
基于此,本公开实施例提供一种模型训练方法和装置、运动单元识别方法、设备、介质,模型训练方法,首先通过数据重采样得到训练数据集,以解决样本分布不均衡问题,能够提高模型训练精度;然后融合人脸关键点分类层和运动单元分类层对原始人脸运动单元识别模型进行训练,引入人脸关键点信息作为监督信号,在训练过程中保证两个预测分支同时收敛,以减少过拟合程度,进一步提高人脸运动单元模型的训预测精度,提高模型的普适性。
[0069]
本公开实施例提供一种模型训练方法和装置、运动单元识别方法、设备、介质,具体通过如下实施例进行说明,首先描述本公开实施例中的模型训练方法。
[0070]
本技术实施例可以基于人工智能技术对相关的数据进行获取和处理。其中,人工智能(artificial intelligence,ai)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。
[0071]
人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、机器人技术、生物识别技术、语音处理技术、自然语言处理技术以及机器学习/深
度学习等几大方向。
[0072]
本公开实施例提供的模型训练方法或运动单元识别方法,涉及人工智能技术领域,尤其涉及数据挖掘技术领域。本公开实施例提供的模型训练方法或运动单元识别方法可应用于终端中,也可应用于服务器端中,还可以是运行于终端或服务器端中的软件。在一些实施例中,终端可以是智能手机、平板电脑、笔记本电脑、台式计算机或者智能手表等;服务器可以是独立的服务器,也可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(content delivery network,cdn)、以及大数据和人工智能平台等基础云计算服务的云服务器;软件可以是实现模型训练方法或运动单元识别方法的应用等,但并不局限于以上形式。
[0073]
本技术可用于众多通用或专用的计算机系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的消费电子设备、网络pc、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。本技术可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本技术,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
[0074]
图1是本公开实施例提供的模型训练方法的一个可选的流程图,图1中的方法可以包括但不限于包括步骤s110至步骤s160。
[0075]
步骤s110,获取训练数据集;
[0076]
在一实施例中,训练数据集包括人脸运动图片样本和运动单元标签。
[0077]
在一实施例中,由于相关技术中用于人脸运动单元检测的开源数据集都存在分布不均衡的问题,人脸运动单元数据集标注方式不统一,数据量少且数据分布不均,导致人脸运动单元识别模型在个别au上面的表现提高,但是相应的在数据量较小的分类上面效果很差,同时由于人工采集人脸运动单元的数据相对困难,容易引入噪声,因此如果直接使用开源的原始数据训练会导致模型偏置严重,以及训练得到的目标人脸运动单元识别模型过拟合严重,模型偏见高的问题。因此本实施例的训练数据集由原始训练数据集(例如开源数据集)进行数据重采样得到,并且,训练数据集包括:人脸运动图片样本和运动单元标签,人脸运动图片样本中图片格式包括但不限于jpg、png和gif等,此处不对图片格式作限制。
[0078]
在一实施例中,原始训练数据集包括:原始人脸运动图片样本和对应的标签,参照图2,由原始训练数据集进行数据重采样得到训练数据集的步骤包括但不限于步骤s1101至步骤s1104:
[0079]
步骤s1101,获取原始训练数据集。
[0080]
在一实施例中,原始训练数据集包括:原始人脸运动图片样本。其中原始训练数据集可以是开源数据集。
[0081]
步骤s1102,获取原始人脸运动图片样本中每个运动类别的样本数。
[0082]
在一实施例中,运动类别即au的类别,该实施例中au的类别包括但不限于下述几种:
[0083]
1)内眉上扬(inner brow raiser);2)外眉上扬(outer brow raiser);3)眉毛下
压(brow lowerer);4)上眼睑上扬(upper lid raiser);5)脸颊抬起(cheek raiser);6)眼睑收紧(lid tightener);7)鼻子蹙皱(nose wrinkler);8)上唇上扬(upper lip raiser);9)嘴角上扬(lip corner puller);10)收紧嘴角(dimpler);11)嘴角下拉(lip corner depressor);12)下唇下拉(lower lip depressor);13)推动下唇向上(chin raiser);14)嘴唇褶皱(lip pucker);15)嘴唇伸展(lip stretcher);16)嘴唇收缩(lip tightener);17)嘴唇压紧(lip pressor);18)嘴唇分开(lips part);19)下颚下拉(jaw drop)等,可以理解的是,此处au的运动类别仅作示例,并不代表本实施例中au的运动类别仅上述几种。
[0084]
在一实施例中,为了避免开源的原始训练数据集存在的分布不均衡,数据量少且数据分布不均,导致人脸运动单元识别模型在个别au上面的表现提高,但是相应的在数据量较小的分类上面效果很差的问题。针对原始人脸运动图片样本中每个运动类别,统计其样本数,判断是否样本数量不均衡,并根据每个运动类别的样本数的统计结果计算得到预设样本阈值。例如预设样本阈值可以是最大的样本数,或者样本数排名前三的样本数的平均值等。
[0085]
为了达到样本数量均衡的目的,步骤s1103,对样本数小于预设样本数的运动类别对应的原始人脸运动图片样本进行样本扩充,以使得每个运动类别的样本数一致。
[0086]
在一实施例中,例如样本数小于预设样本数,则认为某一类运动类别对应的原始人脸运动图片样本的样本数较少,需要对齐进行样本扩充,以使得每个运动类别的样本数一致。可以理解的是,这里的每个运动类别的样本数一致只需要达到样本数量均衡的目的即可,并不代表需要样本数完全相同,可以是大致相同,或者处于同一数量级,在此不做具体限定。
[0087]
在一实施例中,对样本数较少的原始人脸运动图片样本进行样本扩充的过程具体是:按照人脸关键点位置和遮挡掩码对原始人脸运动图片样本进行随机遮挡,得到新的原始人脸运动图片样本。
[0088]
在一实施例中,人脸关键点位置包括多个人脸位置区域,每个人脸位置区域均包含多个定位关键点(即人脸关键点)。例如人脸位置区域可以是:人脸轮廓区域、眼睛区域、眉毛区域、鼻子区域、嘴巴区域、脸颊区域等。
[0089]
在一实施例中,人脸位置区域与人脸关键点之间存在对应关系。进一步地,由于不同的au对应的运动类别,其肌肉改变会体现在面部特定位置(人脸位置区域)上,例如:内眉上扬这一au运动类别对应的人脸关键点位置就是眉毛区域附近的人脸关键点。因此不同的人脸关键点位置定位结果对应该原始人脸运动图片样本对应的au运动类别,每一个au运动类别包含多个动作,每一个动作均可能对应多个人脸关键点。该实施例可以对原始人脸运动图片样本中的人脸,通过人脸位置区域进行人脸关键点的定位,然后人脸关键点位置得到该原始人脸运动图片样本对应的au运动类别。
[0090]
参照图3,为本技术一实施例中人脸位置区域的示意图。图中示出了对应人脸轮廓区域的区域1,对应眼睛区域的区域2,对应眉毛区域的区域3,对应鼻子区域的区域4,和对应嘴巴区域的区域5。
[0091]
参照图4,为本技术一实施例中人脸关键点示意图,参照图3,图4中利用68个人脸关键点对人脸位置区域进行关键点定位,并通过返回人脸关键点坐标的方式返回定位结果。其中,点1-点17为人脸轮廓区域的人脸关键点,点18-点27为眉毛区域的人脸关键点,点
28-点36为鼻子区域的人脸关键点,点37-点48为眼睛区域的人脸关键点,点49-点68为嘴巴区域的人脸关键点。可以理解的是,图3和图4仅是本技术实施例的人脸位置区域和对应人脸关键点的示意图,并不代表对其进行限定。
[0092]
在一实施例中,通过106个人脸关键点对人脸位置区域进行定位,并通过返回人脸关键点坐标的方式返回定位结果。
[0093]
在一实施例中,按照人脸关键点位置和遮挡掩码对原始人脸运动图片样本进行随机遮挡,得到新的原始人脸运动图片样本。例如按照人脸关键点的坐标位置生成位置矩阵,将每一个原始人脸运动图片样本均表示成位置矩阵的形式,然后根据随机生成的遮挡掩码对矩阵的部分元素进行遮挡,从而得到新的位置矩阵,进而得到该位置矩阵对应的新的原始人脸运动图片样本。
[0094]
步骤s1104,根据原始训练数据集得到训练数据集。
[0095]
在一实施例中,将上述样本扩充过程中,原始人脸运动图片样本和新的新的原始人脸运动图片样本都作为训练数据集中的人脸运动图片样本。例如,原始人脸运动图片样本有100张,经过样本扩充后得到新的原始人脸运动图片样本有100张,所以训练数据集中人脸运动图片样本有200张,实现了原始训练数据集的样本扩充,使得训练数据集的数据更加丰富。实现对au运动类别样本量少的au运动类别的原始人脸运动图片样本进行样本扩充。本实施例通过数据重采样得到训练数据集,以解决样本分布不均衡问题,能够提高模型训练精度。
[0096]
步骤s120,获取原始人脸运动单元识别模型。
[0097]
在一实施例中,原始人脸运动单元识别模型包括:人脸关键点分类层和运动单元分类层,训练时融合人脸关键点分类层和运动单元分类层对原始人脸运动单元识别模型进行训练。
[0098]
步骤s130,将人脸运动图片样本输入到原始人脸运动单元识别模型中,利用人脸关键点分类层进行人脸关键点分类预测得到人脸关键点预测结果。
[0099]
步骤s140,利用运动单元分类层进行运动单元分类预测得到运动单元预测结果。
[0100]
在一实施例中,原始人脸运动单元识别模型包括:人脸关键点分类层和运动单元分类层,训练时融合人脸关键点分类层和运动单元分类层对原始人脸运动单元识别模型进行训练。该实施例中,得到进行样本均衡后的训练数据集,然后利用训练数据集中训练数据集和对应的标签对原始人脸运动单元识别模型进行训练。具体的训练过程是:将人脸运动图片样本输入到原始人脸运动单元识别模型中进行预测得到对应的预测值,然后将预测值与对应的标签进行比较,根据比较结果调整原始人脸运动单元识别模型的权值参数,达到损失函数收敛条件后,得到目标人脸运动单元识别模型。
[0101]
参照图5,为该实施例中原始人脸运动单元识别模型结构示意图。
[0102]
该实施例中,原始人脸运动单元识别模型可以是一种深度卷积神经网络构成的分类模型,包括输入层、至少一个卷积层和预测层,其中预测层包括人脸关键点分类层和运动单元分类层,运动单元分类层针对不同运动类别的au设定不同的分类器,因此运动单元分类层包括至少一个au分类器。具体的预测过程描述为:输入层接收输入的人脸运动图片样本,卷积层对人脸运动图片样本进行特征提取得到对应的特征向量,然后将特征向量输入到人脸关键点分类层得到人脸关键点预测结果,同时将特征向量输入到运动单元分类层得
到运动单元预测结果,即人脸关键点分类层和运动单元分类层分别从输入的特征向量中识别出该特征向量对应的人脸关键点分布的概率以及运动单元分布的概率。
[0103]
步骤s150,计算运动单元预测结果和运动单元标签之间的运动单元误差值。
[0104]
在一实施例中,上述步骤s140得到运动单元分类层根据输入的人脸运动图片样本对应的特征向量预测得到运动单元预测结果,将该运动单元预测结果与人脸运动图片样本对应的运动单元标签进行比较,计算计算运动单元预测结果和运动单元标签之间的运动单元误差值,通过该运动单元误差值能够表征运动单元分类层对本次人脸运动图片样本的预测结果是否正确。
[0105]
步骤s160,根据人脸关键点预测结果和运动单元误差值调整原始人脸运动单元识别模型的模型权值,直至损失函数达到收敛条件(即损失函数收敛),得到目标人脸运动单元识别模型。
[0106]
在一实施例中,原始人脸运动单元识别模型训练时融合人脸关键点分类层和运动单元分类层对原始人脸运动单元识别模型进行训练,通过引入人脸关键点信息作为监督信号,在训练过程中保证两个预测分支同时收敛,达到损失函数的收敛条件,以减少过拟合程度,进一步提高人脸运动单元模型的训练精度,提高模型的普适性。
[0107]
具体是:参照图6,步骤s160包括但不限于步骤s1601至步骤s1602。
[0108]
步骤s1601,根据人脸关键点预测结果和运动单元误差值计算损失值。
[0109]
在一实施例中,为了融合人脸关键点分类层和运动单元分类层得到的信息,根据人脸关键点预测结果和运动单元误差值计算损失值。
[0110]
步骤s1602,利用损失函数根据损失值调整原始人脸运动单元识别模型的模型权值,直至损失函数达到收敛条件,得到目标人脸运动单元识别模型。
[0111]
在一实施例中,原始人脸运动单元识别模型的损失函数由人脸关键点分类层的第一损失函数和运动单元分类层的第二损失函数得到,具体的,请参照公式(1)所示,人脸关键点分类层的第一损失函数表示为:
[0112][0113]
其中,l
lmk
表示第一损失函数,θ表示人脸角度,x表示人脸关键点对应的坐标,这里的人脸角度可以以人脸额头-鼻梁-嘴巴的中心线作为中轴线来计算人脸运动图片样本的人脸角度,x表示人脸关键点的坐标向量,可以按照实际需求设定坐标原点以及坐标轴方向,从而得到设定坐标系下的人脸关键点的坐标向量,在此不做具体限定。
[0114]
请参照公式(2)所示,运动单元分类层的第二损失函数为:
[0115][0116]
其中,l
au
表示第二损失函数,n表示样本数量,y表示运动单元标签,表示运动单元预测结果,mask表示遮挡掩码,这里的遮挡掩码即进行样本扩充时使用的遮挡掩码。
[0117]
因此,请参照公式(3)所示,原始人脸运动单元识别模型的损失函数表示为:
[0118]
l=l
au
+β*l
lmk
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(3)
[0119]
其中,l表示损失函数,β表示超参数,可以根据实际需求或者经验值设定。
[0120]
上述实施例训练过程中,根据损失函数是否到达收敛条件,调整原始人脸运动单元识别模型的权重参数,从而得到训练好的目标人脸运动单元识别模型,通过引入人脸关键点信息作为监督信号,在训练过程中保证两个预测分支同时收敛,即人脸关键点分类层的第一损失函数和运动单元分类层的第二损失函数同时收敛,收敛条件可以是损失函数的损失值小于预设的阈值,根据实际训练需求设定,达到减少过拟合程度的目的。
[0121]
本公开实施例提出的模型训练方法,通过获取原始人脸运动单元识别模型和训练数据集,将人脸运动图片样本输入到原始人脸运动单元识别模型中进行预测,利用人脸关键点分类层和运动单元分类层分别得到人脸关键点预测结果和运动单元预测结果,计算运动单元预测结果和运动单元标签之间的运动单元误差值,根据人脸关键点预测结果和运动单元误差值调整原始人脸运动单元识别模型的模型权值,直至损失函数达到收敛条件,得到目标人脸运动单元识别模型。本实施例中首先通过数据重采样得到训练数据集,以解决样本分布不均衡问题,能够提高模型训练精度;然后融合人脸关键点分类层和运动单元分类层对原始人脸运动单元识别模型进行训练,引入人脸关键点信息作为监督信号,在训练过程中保证两个预测分支同时收敛,以减少过拟合程度,进一步提高人脸运动单元模型的训练精度,提高目标人脸运动单元识别模型的普适性。
[0122]
另外,本公开实施例还提供一种模型训练装置,可以实现上述模型训练方法,参照图7,该装置包括:训练数据集获取模块710、模型获取模块720、人脸关键点预测模块730、运动单元预测模块740、误差计算模块750和权值调整模块760。其中,各模块实现的功能与上述实施例中模型训练方法对应的步骤一一对应,各功能模块详细说明如下:
[0123]
训练数据集获取模块710,用于获取训练数据集;训练数据集包括人脸运动图片样本和运动单元标签;
[0124]
模型获取模块720,用于获取原始人脸运动单元识别模型,原始人脸运动单元识别模型包括:人脸关键点分类层和运动单元分类层;
[0125]
人脸关键点预测模块730,用于将人脸运动图片样本输入到原始人脸运动单元识别模型中,利用人脸关键点分类层进行人脸关键点分类预测得到人脸关键点预测结果;
[0126]
运动单元预测模块740,用于利用运动单元分类层进行运动单元分类预测得到运动单元预测结果;
[0127]
误差计算模块750,用于计算运动单元预测结果和运动单元标签之间的运动单元误差值;
[0128]
权值调整模块760,用于根据人脸关键点预测结果和运动单元误差值调整原始人脸运动单元识别模型的模型权值,得到目标人脸运动单元识别模型。
[0129]
在一实施例中,训练数据集获取模块710,还用于获取原始人脸运动图片样本中每个运动类别的样本数,然后对样本数小于预设样本数的运动类别对应的原始人脸运动图片样本进行样本扩充,以使得每个运动类别的样本数一致。具体的样本扩充包括:按照人脸关键点位置和遮挡掩码对原始人脸运动图片样本进行随机遮挡,得到新的原始人脸运动图片样本。
[0130]
在一实施例中,权值调整模块760,还用于根据人脸关键点预测结果和运动单元误差值计算损失值,利用损失函数根据损失值调整原始人脸运动单元识别模型的模型权值,直至损失函数达到收敛条件,得到目标人脸运动单元识别模型,该原始人脸运动单元识别
模型的损失函数由人脸关键点分类层的第一损失函数和运动单元分类层的第二损失函数计算得到。
[0131]
本实施例的模型训练装置的具体实施方式与上述模型训练方法的具体实施方式基本一致,在此不再赘述。
[0132]
本公开实施例提出的模型训练装置,通过训练数据集获取模块获取训练数据集,通过模型获取模块获取原始人脸运动单元识别模型,通过人脸关键点预测模块将人脸运动图片样本输入到原始人脸运动单元识别模型中,利用人脸关键点分类层进行人脸关键点分类预测得到人脸关键点预测结果,通过运动单元预测模块利用运动单元分类层进行运动单元分类预测得到运动单元预测结果,通过误差计算模块计算运动单元预测结果和运动单元标签之间的运动单元误差值,通过权值调整模块根据人脸关键点预测结果和运动单元误差值调整原始人脸运动单元识别模型的模型权值,直至损失函数达到收敛条件,得到目标人脸运动单元识别模型。本实施例中融合人脸关键点分类层和运动单元分类层对原始人脸运动单元识别模型进行训练,引入人脸关键点信息作为监督信号,在训练过程中保证两个预测分支同时收敛,以减少过拟合程度,进一步提高人脸运动单元模型的训练精度,提高模型的普适性。
[0133]
另外,在一些实施例,还提供一种运动单元识别方法,参照图8,包括但不限于步骤s810至步骤s830:
[0134]
步骤s810,获取人脸运动单元图片。
[0135]
在一实施例中,可以通过获取摄像装置拍摄的实时图像,利用人脸识别算法从该实时图像中提取一张实时脸部图像作为人脸运动单元图片。例如,具体过程可以是:当摄像装置拍摄到一张实时图像,摄像装置将这张实时图像发送到处理器,当处理器接收到该实时图像后,首先获取图片的大小,建立一个相同大小的灰度图像;将获取的彩色图像,转换成灰度图像,同时创建一个内存空间;将灰度图像直方图均衡化,使灰度图像信息量减少,以加快检测速度,然后加载对应的训练库,检测图片中的人脸,并返回一个包含人脸信息的对象,获得人脸所在位置的数据,并记录个数;最终获取头像的区域且保存下来,这样就完成了一次从实时脸部图像中提取人脸运动单元图片的过程。
[0136]
步骤s820,将人脸运动单元图片输入到目标人脸运动单元识别模型中;
[0137]
在一实施例中,目标人脸运动单元识别模型包括运动单元分类层,目标人脸运动单元识别模型利用如上述实施例中任一项的模型训练方法训练得到。
[0138]
在一实施例中,将人脸运动单元图片输入到上述通过融合人脸关键点分类层和运动单元分类层对目标人脸运动单元识别模型进行训练,引入人脸关键点信息作为监督信号,在训练过程中保证两个预测分支同时收敛的训练过程得到训练好的目标人脸运动单元识别模型中,进行预测。
[0139]
步骤s830,利用运动单元分类层进行运动单元分类预测,得到人脸运动单元识别结果。
[0140]
在一实施例中,在使用上述训练好的原始人脸运动单元识别模型的过程中,取出人脸关键点检测的分支,即在推理过程中去除人脸关键点分类层的预测过程,不对人脸关键点进行预测,仅利用运动单元分类层得到人脸运动单元识别结果。由于训练过程中已经使用到人脸关键点分类层的预测结果,训练得到的目标人脸运动单元模型的预测精度较
高,因此在推理过程中去除人脸关键点分类层,在不影响推理精度的条件下,能够提高模型的推理速度。
[0141]
另外,本公开实施例还提供运动单元识别装置,可以实现上述运动单元识别方法,参照图9,该装置包括:
[0142]
获取模块910,用于获取人脸运动单元图片。
[0143]
在一实施例中,获取模块910通过获取摄像装置拍摄的实时图像,利用人脸识别算法从该实时图像中提取一张实时脸部图像作为人脸运动单元图片。
[0144]
输入模块920,将人脸运动单元图片输入到目标人脸运动单元识别模型中,其中目标人脸运动单元识别模型包括运动单元分类层,目标人脸运动单元识别模型利用如上述实施例中任一项的模型训练方法训练得到。
[0145]
识别模块930,利用运动单元分类层进行运动单元分类预测,得到人脸运动单元识别结果。
[0146]
在一实施例中,识别模块930在使用上述训练好的目标人脸运动单元识别模型的过程中,取出人脸关键点检测的分支,即在推理过程中去除人脸关键点分类层的预测过程,不对人脸关键点进行预测,仅利用运动单元分类层得到人脸运动单元识别结果。
[0147]
本实施例的人脸运动单元识别装置的具体实施方式与上述运动单元识别方法的具体实施方式基本一致,在此不再赘述。
[0148]
本公开实施例提出的运动单元识别装置,通过获取模块可以获取人脸运动单元图片,通过输入模块将人脸运动单元图片输入到目标人脸运动单元识别模型中,通过识别模块利用运动单元分类层进行运动单元分类预测,得到人脸运动单元识别结果。该实施例的运动单元识别装置利用目标人脸运动单元识别模型得到精度较高的人脸运动单元识别结果。
[0149]
本公开实施例还提供了一种电子设备,包括:
[0150]
至少一个存储器;
[0151]
至少一个处理器;
[0152]
至少一个程序;
[0153]
程序被存储在存储器中,处理器执行至少一个程序以实现本公开实施上述的模型训练方法或运动单元识别方法。该电子设备可以为包括手机、平板电脑、个人数字助理(personal digital assistant,简称pda)、车载电脑等任意智能终端。
[0154]
请参阅图10,图10示意了另一实施例的电子设备的硬件结构,电子设备包括:
[0155]
处理器1001,可以采用通用的cpu(centralprocessingunit,中央处理器)、微处理器、应用专用集成电路(applicationspecificintegratedcircuit,asic)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本公开实施例所提供的技术方案;
[0156]
存储器1002,可以采用rom(readonlymemory,只读存储器)、静态存储设备、动态存储设备或者ram(randomaccessmemory,随机存取存储器)等形式实现。存储器1002可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器1002中,并由处理器1001来调用执行本公开实施例的模型训练方法或运动单元识别方法;
[0157]
输入/输出接口1003,用于实现信息输入及输出;
[0158]
通信接口1004,用于实现本设备与其他设备的通信交互,可以通过有线方式(例如usb、网线等)实现通信,也可以通过无线方式(例如移动网络、wifi、蓝牙等)实现通信;和
[0159]
总线1005,在设备的各个组件(例如处理器1001、存储器1002、输入/输出接口1003和通信接口1004)之间传输信息;
[0160]
其中处理器1001、存储器1002、输入/输出接口1003和通信接口1004通过总线1005实现彼此之间在设备内部的通信连接。
[0161]
本公开实施例还提供了一种存储介质,该存储介质是计算机可读存储介质,该计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令用于使计算机执行上述模型训练方法或运动单元识别方法。
[0162]
本公开实施例提出的模型训练方法和装置、运动单元识别方法、设备、介质,模型训练方法中将训练数据集中人脸运动图片样本输入到原始人脸运动单元识别模型中进行预测,利用人脸关键点分类层和运动单元分类层分别进行预测得到人脸关键点预测结果和运动单元预测结果,计算运动单元预测结果和运动单元标签之间的运动单元误差值,根据人脸关键点预测结果和运动单元误差值训练得到原始人脸运动单元识别模型。首先通过数据重采样得到训练数据集,以解决样本分布不均衡问题,能够提高模型训练精度;然后融合人脸关键点分类层和运动单元分类层对原始人脸运动单元识别模型进行训练,引入人脸关键点信息作为监督信号,在训练过程中保证两个预测分支同时收敛,以减少过拟合程度,进一步提高人脸运动单元模型的训练精度,提高模型的普适性。
[0163]
存储器作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序以及非暂态性计算机可执行程序。此外,存储器可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施方式中,存储器可选包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至该处理器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
[0164]
本公开实施例描述的实施例是为了更加清楚的说明本公开实施例的技术方案,并不构成对于本公开实施例提供的技术方案的限定,本领域技术人员可知,随着技术的演变和新应用场景的出现,本公开实施例提供的技术方案对于类似的技术问题,同样适用。
[0165]
本领域技术人员可以理解的是,图1-2、图6或图8中示出的技术方案并不构成对本公开实施例的限定,可以包括比图示更多或更少的步骤,或者组合某些步骤,或者不同的步骤。
[0166]
以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
[0167]
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、设备中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。
[0168]
本技术的说明书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本技术的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖
不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
[0169]
应当理解,在本技术中,“至少一个(项)”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系,例如,“a和/或b”可以表示:只存在a,只存在b以及同时存在a和b三种情况,其中a,b可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”,其中a,b,c可以是单个,也可以是多个。
[0170]
在本技术所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0171]
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0172]
另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0173]
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括多指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-only memory,简称rom)、随机存取存储器(random access memory,简称ram)、磁碟或者光盘等各种可以存储程序的介质。
[0174]
以上参照附图说明了本公开实施例的优选实施例,并非因此局限本公开实施例的权利范围。本领域技术人员不脱离本公开实施例的范围和实质内所作的任何修改、等同替换和改进,均应在本公开实施例的权利范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1