一种面部表情识别的方法和系统与流程

文档序号:28498116发布日期:2022-01-15 04:25阅读:125来源:国知局
一种面部表情识别的方法和系统与流程

1.本说明书涉及图像处理领域,特别涉及一种面部表情识别的方法和系统。


背景技术:

2.目前处理人脸表情识别的方式有以下两种:一是通过数学方法提取人脸表情特征,基于一般的机器学习方法进行表情分类;二是基于深度学习模型提取人脸表情特征,再通过全连接层进行表情分类。但上述的两种方式中,一方面对于应用场景有特定性要求,适应性较差;另一方面对于训练样本的需求量大,并且人脸表情种类繁多,现有样本数据普遍分布不均,且对于相似表情(例如,惊讶和恐惧)的识别容易出现偏差,精确度较低。
3.因此,需要提供一种面部表情识别的方法,通过改进模型的训练提高表情识别的精确度。


技术实现要素:

4.本说明书实施例之一提供一种面部表情识别的方法。所述面部表情识别方法包括:获取待测面部图像;将待测面部图像输入预测模型,获得至少一个识别结果,其中,预测模型基于至少两个训练轮次训练获得,在至少两个训练轮次中使用了不同的损失函数;基于至少一个识别结果,确定待测面部图像中的表情类别。
5.本说明书实施例之一提供一种面部表情识别的系统,所述系统包括获取模块、判断模块和确定模块。所述获取模块用于获取待测面部图像。所述判断模块用于将所述待测面部图像输入预测模型,获得至少一个识别结果,其中,所述预测模型基于至少两个训练轮次训练获得,在所述至少两个训练轮次中使用了不同的损失函数。所述确定模块用于基于所述至少一个识别结果,确定待测面部图像中的表情类别。
6.本说明书实施例之一提供一种面部表情识别的装置,包括至少一个处理器以及至少一个存储器;所述至少一个存储器用于存储计算机指令;所述至少一个处理器用于执行所述计算机指令中的至少部分指令以实现面部表情识别的方法。
7.本说明书实施例之一提供一种计算机可读存储介质,所述存储介质存储计算机指令,当计算机读取存储介质中的计算机指令后,计算机执行面部表情识别的方法。
附图说明
8.本说明书将以示例性实施例的方式进一步说明,这些示例性实施例将通过附图进行详细描述。这些实施例并非限制性的,在这些实施例中,相同的编号表示相同的结构,其中:
9.图1是根据本说明书一些实施例所示的面部表情识别系统的应用场景示意图;
10.图2是根据本说明书一些实施例所示的面部表情识别系统的示例性模块图;
11.图3是根据本说明书一些实施例所示的面部表情识别方法的示例性流程图;
12.图4是根据本说明书一些实施例所示的预测模型的示意图;
13.图5是根据本说明书一些实施例所示的预测模型训练流程的示意图。
具体实施方式
14.为了更清楚地说明本说明书实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单的介绍。显而易见地,下面描述中的附图仅仅是本说明书的一些示例或实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图将本说明书应用于其它类似情景。除非从语言环境中显而易见或另做说明,图中相同标号代表相同结构或操作。
15.应当理解,本文使用的“系统”、“装置”、“单元”和/或“模块”是用于区分不同级别的不同组件、元件、部件、部分或装配的一种方法。然而,如果其他词语可实现相同的目的,则可通过其他表达来替换所述词语。
16.如本说明书和权利要求书中所示,除非上下文明确提示例外情形,“一”、“一个”、“一种”和/或“该”等词并非特指单数,也可包括复数。一般说来,术语“包括”与“包含”仅提示包括已明确标识的步骤和元素,而这些步骤和元素不构成一个排它性的罗列,方法或者设备也可能包含其它的步骤或元素。
17.本说明书中使用了流程图用来说明根据本说明书的实施例的系统所执行的操作。应当理解的是,前面或后面操作不一定按照顺序来精确地执行。相反,可以按照倒序或同时处理各个步骤。同时,也可以将其他操作添加到这些过程中,或从这些过程移除某一步或数步操作。
18.图1是根据本说明书一些实施例所示的面部表情识别系统的应用场景示意图。
19.如图1所示,面部表情识别系统100的应用场景中可以包括样本数据110、第一计算系统120、第二计算系统130、网络140、存储设备150等。
20.第一计算系统120和第二计算系统130是指具有计算能力的系统,可以包括各种计算机,比如服务器、个人计算机,也可以是由多台计算机以各种结构连接组成的计算平台。在一些实施例中,第一计算系统120和第二计算系统130可以在云平台上实现。例如,云平台可以包括私有云、公共云、混合云、社区云、分布式云、跨云、多云等其中一种或几种的组合。第一计算系统120与第二计算系统130可以相同或不同。
21.第一计算系统120和第二计算系统130中可以包括处理器,处理器可以执行程序指令。处理器可以包括各种常见的通用中央处理器(central processing unit,cpu),图形处理器(graphics processing unit,gpu),微处理器,特殊应用集成电路(application-specific integrated circuit,asic),或其他类型的集成电路。第一计算系统120和第二计算系统130中可以包括存储介质,存储介质可以存储指令,也可以存储数据。存储介质可包括大容量存储器、可移动存储器、易失性读写存储器、只读存储器(rom)等或其任意组合。第一计算系统120和第二计算系统130还可以包括用于内部连接和与外部连接的网络。也可以包括用于输入或输出的终端。网络可以是有线网络或无线网络中的任意一种或多种。终端可以包括各类具有信息接收和/或发送功能的设备,如计算机、手机、文字扫描设备、显示设备、打印机等。
22.第一计算系统120可以包括模型122,模型122的参数来自于训练后的模型132。其中,参数可以以任何常见的方式传递。在一些实施例中,模型122与模型132也可以是相同
的。第一计算系统120基于模型122,生成结果170,结果170可以是模型122对数据160的预测结果。示例的,模型122为预测模型,结果170可以是识别出的表情类别,例如,微笑。
23.第二计算系统130可以获取样本数据110,样本数据110可以是用于训练模型的数据。示例的,样本数据110可以是训练初始预测模型的数据。样本数据110可以通过各种常见的方式进入第二计算系统130。第二计算系统130可以训练模型132,更新模型132的参数,得到训练好的模型。示例的,模型132可以是初始预测模型。预测模型可以在第二计算系统130上基于样本数据110训练而成。训练使用的数据与第一计算系统120预测表情类别所用的数据可以相同或不同。
24.模型(例如,模型122或/和模型132)可以指基于处理设备而进行的若干方法的集合。这些方法可以包括大量的参数。在执行模型时,所使用的参数可以是被预先设置好的,也可以是可以动态调整的。一些参数可以通过训练的方法获得,一些参数可以在执行的过程中获得。关于本说明书中涉及模型的具体说明,可参见本说明书的相关部分。
25.网络140可以包括能够促进面部表情识别系统100的信息和/或数据交换的任何合适的网络。在一些实施例中,面部表情识别系统100的一个或多个组件(例如,第一计算设备120、第二计算设备130、存储设备150等)可以通过网络140与面部表情识别系统100的一个或多个组件之间交换信息和/或数据。网络140可以包括公共网络(如互联网)、私人网络(例如,局域网(lan)、广域网(wan))等)、有线网络(如以太网)、无线网络(例如,802.11网络、无线wi-fi网络等)、蜂窝网络(例如,长期演进(lte)网络)、帧中继网络、虚拟专用网络(vpn)、卫星网络、电话网络、路由器、集线器、服务器计算机等其中一种或几种组合。例如,网络140可以包括有线网络、光纤网络、电信网络、局域网、无线局域网(wlan)、城域网(man),公用电话交换网(pstn)、蓝牙
tm
网络,zigbe
tm
网络、近场通信(nfc)网络等其中一种或几种的组合。在一些实施例中,网络140可以包括一个或多个网络接入点,例如,接入点140-1、接入点140-2。例如,网络140可以包括有线和/或无线网络接入点,例如基站和/或因特网交换点,通过所述接入点,系统100的一个或多个组件可以连接网络140以交换数据和/或信息。
26.存储设备150可以存储数据(例如,对目标对象的扫描数据、第一图像、第二图像等)、指令和/或任何其他信息。在一些实施例中,存储设备150可以存储从第一计算系统120和/或第二计算系统130处获得的数据。在一些实施例中,存储设备150可以存储第一计算系统120和/或第二计算系统130可以执行或使用的数据和/或指令,以执行本说明书中描述的示例性方法。在一些实施例中,存储设备150可包括大容量存储器、可移除存储器、易失性读写存储器、只读存储器(rom)等其中一种或几种的组合。在一些实施例中,存储设备150可以通过本说明书中描述的云平台实现。例如,云平台可以包括私有云、公共云、混合云、社区云、分布式云、跨云、多云等其中一种或几种的组合。
27.在一些实施例中,存储设备150可以连接网络140,以与系统100中的一个或多个组件(例如,第一计算系统120、第二计算系统130等)之间实现通信。系统100中的一个或多个组件可以通过网络140读取存储设备150中的数据或指令。在一些实施例中,存储设备150可以是第一计算系统120和/或第二计算系统130的一部分,也可以是独立的,与第一计算系统120和/或第二计算系统130直接或间接相连。
28.图2是根据本说明书一些实施例所示的面部表情识别系统的示例性模块图。
29.如图2所示,在一些实施例中,面部表情识别系统200可以包括获取模块210、判断
模块220、确定模块230和训练模块240。
30.获取模块210可以用于获取待测面部图像。
31.判断模块220可以用于将待测面部图像输入预测模型,获得至少一个识别结果。
32.确定模块230可以用于基于至少一个识别结果,确定待测面部图像中的表情类别。在一些实施例中,识别结果可以包括至少一种表情类别和至少一种表情类别对应的至少一个概率值。在一些实施例中,确定模块230还可以进一步用于基于至少一个识别结果,确定所述表情类别,可以包括:对每一种表情类别,融合至少一个识别结果中的对应概率值,获得每一种表情类别的融合值;基于每一种表情类别的融合值,确定表情类别;或者,基于至少一个分支模型的投票结果,确定表情类别。
33.训练模块240可以用于获取训练集,该训练集包括多个训练用面部图像;对多个训练用面部图像进行预处理;利用训练集对初始预测模型进行分阶段训练得到预测模型。在一些实施例中,预测模型可以包括至少一个分支模型,每一个分支模型对应一个训练阶段,并作为训练阶段的主分支模型。
34.在一些实施例中,训练模块240还可以进一步用于在每个训练阶段中:将多个训练用面部图像输入至少一个分支模型,获得至少一个预测值;基于训练过的分支模型的预测值和主分支模型的预测值构建损失函数;将主分支模型的学习率设为第一学习率,将训练过的分支模型的学习率设为第二学习率,将未训练过的分支模型的学习率设为第三学习率;基于损失函数、第一学习率、第二学习率和第三学习率更新初始预测模型。
35.在一些实施例中,基于所述损失函数、所述第一学习率、所述第二学习率和所述第三学习率更新初始预测模型,可以包括:调整预测模型的参数,以减小所述损失函数的值。
36.在一些实施例中,使用不同的损失函数,可以包括:奇数轮迭代采用第一损失函数,偶数轮迭代采用第二损失函数。在一些实施例中,第一损失函数可以是focal loss函数;第二损失函数可以是triplet loss函数和cross entropy loss函数的组合。
37.关于获取模块210、判断模块220、确定模块230、训练模块240的更多内容可以参见图3至图5及其相关描述,此处不再赘述。
38.需要注意的是,以上对于面部表情识别系统及其模块的描述,仅为描述方便,并不能把本说明书限制在所举实施例范围之内。可以理解,对于本领域的技术人员来说,在了解该系统的原理后,可能在不背离这一原理的情况下,对各个模块进行任意组合,或者构成子系统与其他模块连接。在一些实施例中,图2中披露的获取模块、判断模块和确定模块可以是一个系统中的不同模块,也可以是一个模块实现上述的两个或两个以上模块的功能。例如,各个模块可以共用一个存储模块,各个模块也可以分别具有各自的存储模块。诸如此类的变形,均在本说明书的保护范围之内。
39.图3是根据本说明书一些实施例所示的面部表情识别方法的示例性流程图。如图3所示,流程300包括下述步骤。
40.步骤310,获取待测面部图像。在一些实施例中,步骤310可以由第一计算系统120或获取模块210执行。
41.面部图像可以是含有一张或以上人脸面部图像的图片。在一些实施例中,面部图像可以是含有一张或以上人脸的照片或图片,也可以是视频画面中的一帧。
42.待测面部图像指需要判断出表情类型的面部图像。在一些实施例中,待测面部图
像可以是测试图像或者生产环境中面部图像,例如,人机交互过程中的面部图像。
43.在一些实施例中,待测面部图像可以通过用户输入获取。例如,用户可以从移动终端上传待测面部图像。
44.在一些实施例中,可以通过图像采集装置(例如,照相机、摄像头等)实时获取待测面部图像。
45.在一些实施例中,待测面部图像可以从存储设备中读取。例如,从存储设备150获取。也可以从不属于面部表情识别系统的外部存储设备获取待测面部图像,例如,硬盘、光盘等。
46.在一些实施例中,待测面部图像可以通过接口读取,接口包括但不限于程序接口、数据接口、传输接口等。例如,面部表情识别系统工作时,可以自动从接口中提取面部图像。又例如,面部表情识别系统100可以被外部其他设备或系统调用,在调用时面部图像被传递给系统100。
47.在一些实施例中,还可以采用本领域技术人员熟知的任意方式获取待测面部图像,此处不做限制。
48.步骤320,将待测面部图像输入预测模型,获得至少一个识别结果,其中,预测模型基于至少两个训练轮次训练获得,在至少两个训练轮次中使用了不同的损失函数。在一些实施例中,步骤320可以由第一计算系统120或判断模块220执行。
49.预测模型是用于判断面部图像中的人脸表情类别的模型。在一些实施例中,可以通过预测模型,获得待测面部图像的表情类别及其相应的概率。在一些实施例中,预测模型可以是机器学习模型,机器学习模型可以包括但不限于神经网络模型、支持向量机模型、k近邻模型、决策树模型等一种或多种的组合。其中,神经网络模型可以包括lenet、googlenet、imagenet、alexnet、vgg、resnet等一种或多种的组合。
50.损失函数是将预测值与真实值的差异映射为非负实数以表示“损失”的函数。在一些实施例中,可以基于预测结果与标签构建损失函数,损失函数的值可以反映预测结果与标签之间的差异大小,基于损失函数对预测模型的参数进行调整,可以减小预测结果与标签之间的差异。例如,通过不断调整预测模型的参数,使得损失函数值最小化(或接近0)。
51.在一些实施例中,损失函数可以包括:对数损失函数(logarithmic loss)、指数损失函数(exponential loss)、铰链损失函数(hinge loss)、感知损失函数(perceptron loss)均方差损失(mean squared loss)、平均绝对误差损失(mean absolute error loss)、交叉熵损失函数(cross entropy loss)等,及其任意组合。
52.在一些实施例中,预测模型的任意一轮训练中可以使用一种损失函数,或两种及以上损失函数的组合。
53.在一些实施例中,训练模块240可以在至少两个训练轮次中使用不同的损失函数,例如,在前10个训练轮次中使用第一损失函数,在11-20轮次使用第二损失函数,
……
,即每10个训练轮次,切换一次损失函数。
54.在一些实施例中,训练模块240可以交替使用第一损失函数和第二损失函数。即奇数轮迭代中使用第一损失函数,偶数轮迭代中使用第二损失函数。
55.在一些实施例中,第一损失函数可以是focal loss(焦点损失)函数;第二损失函数可以是triplet loss(三元组损失)函数和cross entropy loss(交叉熵损失)函数的组
合。在另一些实施例中,第一损失函数还可以是cross entropy loss(交叉熵损失)函数;第二损失函数还可以是focal loss(焦点损失)函数和triplet loss(三元组损失)函数的组合。
56.focal loss函数和cross entropy loss函数各自有其优缺点,triplet loss函数可以让不同的表情相异程度更大。实验结果表明,奇数批数时使用focal loss计算损失,偶数轮次时使用cross entropy loss函数和triplet loss函数计算损失,在不均衡的表情数据集上效果最好。
57.关于预测模型训练的更多内容可以参见图5及其详细描述。
58.识别结果可以包括每个面部图像的表情类别及其相应的概率。例如,图像a的识别结果可以是面部表情是微笑,该表情为微笑的概率为0.7。
59.在一些实施例中,可以基于预测模型的训练获取识别结果。具体的,识别结果可以是预测模型中任意一个分支模型的输出。
60.在一些实施例中,预测模型可以包括一个或以上个分支模型。如图4所示,预测模型400可以包括分支模型410、分支模型420和分支模型430。在一些实施例中,每个分支模型的类型可以是相同的或者不同的。
61.在一些实施例中,预测模型的每个分支的输入可以是一个或以上面部图像,输出为每个面部图像中所包含的面部表情的类别及其相应的概率。关于预测模型的更多内容可以参照图4及其详细描述,在此不再赘述。
62.步骤330,基于至少一个识别结果,确定待测面部图像中的表情类别。在一些实施例中,步骤330可以由第一计算系统120或确定模块230执行。
63.表情类别指面部图像中包含的人脸所表示的一种情绪或者人脸表现的一种状态。例如,表情类别可以包括微笑、沮丧、愤怒、惊讶等。
64.在一些实施例中,可以基于预测模型获得的识别结果,确定待测面部图像中的表情类别。
65.在一些实施例中,识别结果可以包括至少一种表情类别和至少一种表情类别对应的至少一个概率值。在一些实施例中,基于至少一个识别结果,确定表情类别,可以包括:对每一种表情类别,融合至少一个识别结果中的对应概率值,获得每一种表情类别的融合值;基于每一种表情类别的融合值,确定表情类别;或者,基于至少一个分支模型的投票结果,确定表情类别。
66.如图4所示,预测模型400的网络结构可以由多个分支模型组成,例如,分支模型410、分支模型420和分支模型430。在一些实施例中,每个分支模型可以由多个层级网络组合而成,各个层级网络的排列组合顺序可以自由设定,同一个类型的网络层可以重复出现。
67.关于分支模型的更多内容可以参照图4及其详细描述,此处不再赘述。
68.至少一种表情类别对应的至少一个概率值指面部图像属于各种人脸表情类别的概率值。例如,面部图像的表情为愤怒的概率值为0.7,惊讶的概率值为0.2,微笑的概率值为0.1。
69.融合值指将各个分支模型的识别结果进行综合计算之后的结果。例如,融合值可以是对各个识别结果进行加权平均得出的结果。
70.在一些实施例中,可以将融合值中概率值最大的表情类别确定为该面部图像的表
情。
71.在一些实施例中,确定模块230可以基于至少一个分支模型的投票结果,确定所述表情类别。
72.为避免平票,预测模型可以由奇数个分支模型组成。每个分支模型做出表情类别的选择,即进行投票行为,最后获得票数最多的类别,被确定为该面部表情的类别。例如,输入一张面部图像,第一个分支模型的投票结果为“愤怒”,第二个分支模型的投票结果是“惊讶”,第三个分支模型的投票结果是“愤怒”,那么最后可以确定该面部图像的表情类别为“愤怒”。
73.应当注意的是,上述有关流程300的描述仅仅是为了示例和说明,而不限定本说明书的适用范围。对于本领域技术人员来说,在本说明书的指导下可以对流程300进行各种修正和改变。然而,这些修正和改变仍在本说明书的范围之内。
74.图4是根据本说明书一些实施例所示的预测模型的示意图。
75.在一些实施例中,预测模型可以包括卷积神经网络(cnn)模型。在一些实施例中,预测模型可以包括其他模型,例如,循环神经网络(rnn)、深度置信网络(dbn)等深度学习模型。
76.在一些实施例中,预测模型可以包括一个或以上分支模型。
77.在一些实施例中,分支模型可以由多个层级网络组合而成,例如,分支模型可以包括卷积层(conv)、激活函数、池化层(pool)、全连接层(fc)等,及其任意组合。在一些实施例中,预测模型的一个或以上分支模型的结构可以不同。例如,第一个分支模型可以由三个卷积层和一个池化层与全连接层组合而成,第二个分支模型可以由两个卷积层、一个池化层、一个激活函数和一个全连接层组合而成。在一些实施例中,前一个层级网络的输出可以作为后一个层级网络的输入。
78.在一些实施例中,预测模型的一个或以上分支模型的结构可以是相同的。如图4的例子所示,分支模型410-430的结构相同。具体的,每个分支由两个cbr层、一个池化层(pool)、两个cbr层、一个池化层(pool)和一个全连接层(fc)顺次组合而成。其中,cbr是由卷积层(conv)、批量归一化(bn)层和激活函数(relu)顺次组合而成。cbr可以提取面部图像的特征得到特征图,pool可以对特征图进行压缩,简化计算难度,fc可以连接所有特征,得到特征向量。
79.在一些实施例中,预测模型的每一个分支模型的输入是待测面部图像,输出是该待测面部图像对应的表情类别的判别结果。
80.图5是根据本说明书一些实施例所示的预测模型训练流程的示意图。
81.在一些实施例中,预测模型的训练流程500可以包括:获取训练集,该训练集包括多个训练用面部图像;对多个训练用面部图像进行预处理;利用训练集对初始预测模型进行分阶段训练得到预测模型,进一步可以包括:预测模型可以包括至少一个分支模型,每一个分支模型对应一个训练阶段,并作为训练阶段的主分支模型。
82.训练集指用于进行模型训练的样本图像的表情数据集。在一些实施例中,训练集包括互联网上可以下载到的通用表情数据集。例如,jaffe数据集、kdef与akdef数据集、genki数据集、rafd数据集、ck数据集、fer2013数据集、raf数据集、emotionnet数据集。其中,fer2013人脸表情数据集,由35886张人脸不同表情图片组成,其中训练集28708张,验证
集和测试集各3589张。该数据集的表情可以分为7种:0anger生气;1disgust厌恶;2fear恐惧;3happy开心;4normal正常;5sad伤心;6surprised惊讶。在一些实施例中,训练集包括自定义数据集,例如,从人机交互系统的运营数据中提取的人脸表情数据集。
83.训练用面部图像可以指训练集中的包含人脸表情的图像,在一些实施例中,训练用面部图像带有标签,标签是该图像对应的表情类别。
84.在一些实施例中,训练模块240可以通过用户输入获取训练集。例如,用户可以从终端上传训练集。
85.在一些实施例中,训练模块240可以从存储设备中读取训练集。例如,存储设备150、外部存储设备(例如,硬盘、光盘)等。
86.在一些实施例中,训练集可以通过接口读取,所述接口包括但不限于程序接口、数据接口、传输接口、网络接口等。例如,通过网络接口下载通用数据集。
87.在一些实施例中,还可以采用本领域技术人员熟知的任意方式获取训练集,此处不做限制。
88.预处理是指训练之前对训练用面部图像所做的处理。在一些实施例中,预处理包括筛选、设置标签、标准化处理、缩放至同规格等操作。
89.在一些实施例中,预测模型可以包括至少一个分支模型,每一个分支模型对应一个训练阶段,并作为训练阶段的主分支模型。关于预测模型及其分支模型的组成结构的更多内容可以参见图4及其详细描述,此处不再赘述。
90.在一些实施例中,预测模型的分阶段训练可以是使各个分支模型依次单独分阶段进行训练。例如,每个阶段只训练一个分支模型。在另一些实施例中,分阶段训练还可以将各个分支模型组成不同的组合,分批次训练各个组合。例如,在第一阶段训练进行第一个分支模型与第二个分支模型的组合,在第二阶段训练第二分支模型与第三分支模型的组合,以此类推。
91.在一些实施例中,分阶段训练还可以是所有分支模型同步参与训练,但每个阶段只有一个分支模型作为主要训练的分支。
92.在一些实施例中,每一个分支模型对应一个训练阶段,并作为该训练阶段的主分支模型。例如,图4中的三个分支模型410、420、430,分别对应第一训练阶段、第二训练阶段、第三训练阶段。即分支模型410是第一训练阶段的主分支模型,分支模型420是第二训练阶段的主分支模型,分支模型430是第三训练阶段的主分支模型。
93.在一些实施例中,分阶段训练过程可以包括:将多个训练用面部图像输入至少一个分支模型,获得至少一个预测值;基于训练过的分支模型的预测值和主分支模型的预测值构建损失函数;依据损失函数和各分支模型的学习率更新初始预测模型。
94.预测值是训练过程中,将训练用面部图像输入分支模型获得的值。在一些实施例中,预测值包括表情类别及其概率。在一些实施例中,将训练用面部图像输入多个分支模型,可以得到多个预测值。例如,将训练用面部图像分别输入分支模型410、420、430,可以分别得到第一预测值、第二预测值、第三预测值。
95.在一些实施例中,训练模块240可以基于训练过的分支模型的预测值和该阶段主分支模型的预测值与训练用面部图像的标签的差异构建损失函数。例如,第一训练阶段的主分支模型是分支模型410,并且第一训练阶段尚不存在训练过的分支模型,只需基于第一
预测值和标签的差异构建第一训练阶段的损失函数;在第二阶段中,主分支模型是分支模型420,分支模型410是训练过的分支模型420,此时可以基于第一预测值、第二预测值与标签的差异构建损失函数。
96.在一些实施例中,每个训练阶段可以包括若干训练轮次,例如,每个训练阶段可以包括50个训练轮次,如果对预测模型的训练分为3个阶段,则共需要训练150个轮次。在一些实施例中,可以在不同的训练轮次使用不同的损失函数。例如,在奇数轮次使用第一损失函数,如focal loss(焦点损失);在偶数轮次使用第二损失函数,如triplet loss(三元组损失)函数和cross entropy loss(交叉熵损失)函数的组合。
97.再次以图4中的预测模型为例,在第一训练阶段的奇数轮次,训练模块240可以基于第一预测值和标签的差异构建focal loss(焦点损失);在第一训练阶段的偶数轮次,训练模块240可以基于第一预测值和标签的差异构建损失函数,该损失函数为triplet loss(三元组损失)函数和cross entropy loss(交叉熵损失)函数的组合。
98.在第二训练阶段的奇数轮次,训练模块240可以基于第一预测值、第二预测值与标签的差异构建focal loss(焦点损失);在第二训练阶段的偶数轮次,训练模块240可以基于第一预测值、第二预测值与标签的差异构建损失函数,该损失函数为triplet loss(三元组损失)函数和cross entropy loss(交叉熵损失)函数的组合。
99.模型的学习率是指模型的学习速率,学习率越高模型的参数变化越大。本领域人员可以理解,为主分支模型设置相对大的学习率,可以使主分支模型相对其他分支模型更快地优化参数。每一个训练阶段完成后,该阶段的主分支模型为最优的分支模型。
100.在一些实施例中,可以将主分支模型的学习率设为第一学习率,将训练过的分支模型的学习率设为第二学习率,将未训练过的分支模型的学习率设为第三学习率。
101.在一些实施例中,学习率的数值可以依据具体情况而设定。在本方案中,第一学习率可以优选设置为0.1,第二学习率和第三学习率设置为0.01。
102.在一些实施例中,训练模块240可以基于损失函数、第一学习率、第二学习率和第三学习率更新初始预测模型,具体的,训练模块240可以调整基于对应的学习率调整每个分支模型的参数,以减小损失函数的值。
103.例如,在第一阶段中,根据第一学习率和损失函数更新主分支模型410,根据第三学习率和损失函数更新分支模型420和分支模型430;在第二阶段中,根据第一学习率和损失函数更新主分支模型420,根据第二学习率和损失函数更新分支模型410,根据第三学习率和损失函数更新分支模型430。
104.在一些实施例中,可以使用梯度下降等方法更新预测模型的参数。
105.本说明书实施例可能带来的有益效果包括但不限于:(1)本说明书中使用的不同损失函数交替训练模型的方式,可以降低表情数据集不均衡的影响,提高训练效果;(2)相较于单分支模型,结合多分支模型和投票表决构建的预测模型在实际应用中识别表情的效果更加稳定,适应性更强。需要说明的是,不同实施例可能产生的有益效果不同,在不同的实施例里,可能产生的有益效果可以是以上任意一种或几种的组合,也可以是其他任何可能获得的有益效果。
106.上文已对基本概念做了描述,显然,对于本领域技术人员来说,上述详细披露仅仅作为示例,而并不构成对本说明书的限定。虽然此处并没有明确说明,本领域技术人员可能
会对本说明书进行各种修改、改进和修正。该类修改、改进和修正在本说明书中被建议,所以该类修改、改进、修正仍属于本说明书示范实施例的精神和范围。
107.同时,本说明书使用了特定词语来描述本说明书的实施例。如“一个实施例”、“一实施例”、和/或“一些实施例”意指与本说明书至少一个实施例相关的某一特征、结构或特点。因此,应强调并注意的是,本说明书中在不同位置两次或多次提及的“一实施例”或“一个实施例”或“一个替代性实施例”并不一定是指同一实施例。此外,本说明书的一个或多个实施例中的某些特征、结构或特点可以进行适当的组合。
108.此外,除非权利要求中明确说明,本说明书所述处理元素和序列的顺序、数字字母的使用、或其他名称的使用,并非用于限定本说明书流程和方法的顺序。尽管上述披露中通过各种示例讨论了一些目前认为有用的发明实施例,但应当理解的是,该类细节仅起到说明的目的,附加的权利要求并不仅限于披露的实施例,相反,权利要求旨在覆盖所有符合本说明书实施例实质和范围的修正和等价组合。例如,虽然以上所描述的系统组件可以通过硬件设备实现,但是也可以只通过软件的解决方案得以实现,如在现有的服务器或移动设备上安装所描述的系统。
109.同理,应当注意的是,为了简化本说明书披露的表述,从而帮助对一个或多个发明实施例的理解,前文对本说明书实施例的描述中,有时会将多种特征归并至一个实施例、附图或对其的描述中。但是,这种披露方法并不意味着本说明书对象所需要的特征比权利要求中提及的特征多。实际上,实施例的特征要少于上述披露的单个实施例的全部特征。
110.一些实施例中使用了描述成分、属性数量的数字,应当理解的是,此类用于实施例描述的数字,在一些示例中使用了修饰词“大约”、“近似”或“大体上”来修饰。除非另外说明,“大约”、“近似”或“大体上”表明所述数字允许有
±
20%的变化。相应地,在一些实施例中,说明书和权利要求中使用的数值参数均为近似值,该近似值根据个别实施例所需特点可以发生改变。在一些实施例中,数值参数应考虑规定的有效数位并采用一般位数保留的方法。尽管本说明书一些实施例中用于确认其范围广度的数值域和参数为近似值,在具体实施例中,此类数值的设定在可行范围内尽可能精确。
111.针对本说明书引用的每个专利、专利申请、专利申请公开物和其他材料,如文章、书籍、说明书、出版物、文档等,特此将其全部内容并入本说明书作为参考。与本说明书内容不一致或产生冲突的申请历史文件除外,对本说明书权利要求最广范围有限制的文件(当前或之后附加于本说明书中的)也除外。需要说明的是,如果本说明书附属材料中的描述、定义、和/或术语的使用与本说明书所述内容有不一致或冲突的地方,以本说明书的描述、定义和/或术语的使用为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1