人脸关键点检测方法及其模型训练方法、及终端设备与流程

文档序号:30898106发布日期:2022-07-26 23:07阅读:129来源:国知局
人脸关键点检测方法及其模型训练方法、及终端设备与流程

1.本技术涉及人脸检测技术领域,尤其涉及一种人脸关键点检测方法及其模型训练方法、及终端设备。


背景技术:

2.在日常生活中,很多场合下需要运用到人脸检测技术,这就涉及到人脸关键点的检测。例如,可以用人脸关键点技术去分析婴儿的睡眠状态。然而,现有的人脸关键点检测主流方案大多是通过计算机等运算能力强的设备来实现的,对于一些运算能力非常有限的移动端设备,直接将现有的人脸关键点检测模型部署,会导致模型的表现力大打折扣,但若通过加重网络结构又会对移动端设备造成极大的算法负担等。


技术实现要素:

3.本技术实施例提供一种人脸关键点检测方法及其模型训练方法、及终端设备,可以应用于计算能力有限的移动设备,如移动机器人、智能手机等,该训练方法提高了模型训练效率,还可实现对人脸关键点的准确检测等。
4.第一方面,本技术实施例提供一种人脸关键点检测模型训练方法,包括:
5.将包含人脸关键点标注的样本图片分别输入所述人脸关键点检测模型的学生网络和老师网络中进行特征提取,以分别输出相应的中间特征图和人脸关键点定位预测结果;所述中间特征图包括前期特征图和后期特征图;
6.通过所述人脸关键点检测模型的注意力模块对所述老师网络和所述学生网络输出的所述前期特征图进行降维处理,得到各自的显著特征图;
7.若所述老师网络经过预先训练,则根据所述老师网络和所述学生网络的所述显著特征图之间的第一损失值、所述老师网络和所述学生网络输出的所述后期特征图之间的第二损失值、以及所述学生网络的人脸关键点的定位预测值与真实值之间的第三损失值,计算所述人脸关键点检测模型本次训练的总损失值;
8.在本次训练的总损失值不满足预设条件时,输入下一样本图片继续训练,直至计算到的总损失值满足所述预设条件时停止,得到训练后的人脸关键点检测模型。
9.在一些实施例中,该人脸关键点检测模型训练方法还包括:
10.若所述老师网络未经过预先训练,则根据所述老师网络和所述学生网络的所述显著特征图之间的第一损失值、所述老师网络和所述学生网络输出的所述后期特征图之间的第二损失值、所述学生网络的人脸关键点的定位预测值与真实值之间的第三损失值、以及所述老师网络的人脸关键点的定位预测值与真实值之间的第四损失值,计算所述人脸关键点检测模型的总损失值。
11.在一些实施例中,所述降维处理包括:分别对所述老师网络和所述学生网络各自输出的所述中间特征图在全通道进行取平均值操作。
12.在一些实施例中,所述老师网络和所述学生网络均包括:依次连接的第一卷积层、
第二卷积层、第三卷积层、第四卷积层、最大全局池化层、第一全连接层和第二全连接层;
13.其中,所述第二卷积层包括一个卷积核模块和一个瓶颈模块;所述第三卷积层包括一个卷积核模块和两个相同的瓶颈模块。
14.在一些实施例中,所述中间特征图包括由所述第一卷积层、所述第二卷积层、所述第三卷积层分别对应输出的第一前期特征图、第二前期特征图和第三前期特征图,以及由所述第一全连接层输出的后期特征图。
15.在一些实施例中,所述第一损失值、所述第二损失值均采用smooth l1函数作为损失函数计算得到;
16.所述第三损失值、所述第四损失值均采用wing loss函数作为损失函数计算得到。
17.第二方面,本技术实施例还提供一种人脸关键点检测方法,包括:
18.获取目标人脸图像,并将所述目标人脸图像输入至已训练的人脸关键点检测模型中进行人脸关键点检测,所述人脸关键点检测模型采用上述的方法预先训练得到;
19.输出所述目标人脸图像对应的人脸关键点定位预测结果。
20.第三方面,本技术实施例还提供一种用户睡眠状态检测方法,包括:
21.采用上述的人脸关键点检测方法对用户进行人脸关键点检测,得到所述用户的人脸关键点定位预测结果;
22.根据预设睡眠姿态对所述人脸关键点定位预测结果进行分析,以确定所述用户是否进入睡眠状态。
23.第四方面,本技术实施例还提供一种人脸关键点检测模型训练装置,包括:
24.网络处理模块,用于将包含人脸关键点标注的样本图片分别输入所述人脸关键点检测模型的学生网络和老师网络中进行特征提取,以分别输出相应的中间特征图和人脸关键点定位预测结果;所述中间特征图包括前期特征图和后期特征图;
25.注意力模块,用于通过所述人脸关键点检测模型中的注意力模块对所述老师网络和所述学生网络输出的所述前期特征图进行降维处理,得到各自的显著特征图;
26.损失计算模块,用于若所述老师网络经过预先训练,则根据所述老师网络和所述学生网络的所述显著特征图之间的第一损失值、所述老师网络和所述学生网络输出的所述后期特征图之间的第二损失值、以及所述学生网络的人脸关键点的定位预测值与真实值之间的第三损失值,计算所述人脸关键点检测模型本次训练的总损失值;
27.训练判断模块,用于在本次训练的总损失值不满足预设条件时,输入下一样本图片继续训练,直至计算到的总损失值满足所述预设条件时停止,得到训练后的人脸关键点检测模型。
28.第五方面,本技术实施例还提供一种终端设备,所述终端设备包括处理器和存储器,所述存储器存储有计算机程序,所述处理器用于执行所述计算机程序以实施上述的人脸关键点检测模型训练方法或人脸关键点检测方法。
29.第六方面,本技术实施例还提供一种可读存储介质,其存储有计算机程序,所述计算机程序在处理器上执行时,实施上述的人脸关键点检测模型训练方法或人脸关键点检测方法。
30.本技术的实施例具有如下有益效果:
31.本技术实施例提供的人脸关键点检测模型训练方法主要结合了知识蒸馏技术来
优化人脸关键点的检测,在模型训练过程中,通过利用老师网络来指导学生网络的训练,而且还基于注意力机制来实现老师网络对学生网络在中间特征的过程监督,不仅可以在不影响学生网络参数量的情况下,大大提升模型的表现,还可有效避免学生网络到老师网络的过度拟合,从而进一步提升了模型的表现,使得训练后的模型对人脸检测效果更优,而且该人脸关键点检测模型尤其可以部署在一些运算能力很有限的移动设备,如移动式机器人、智能手机、平板及一些智能家居设备等。
附图说明
32.为了更清楚地说明本技术实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本技术的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
33.图1示出了本技术实施例的终端设备的一种结构示意图;
34.图2示出了本技术实施例的人脸关键点检测模型训练方法的流程示意图;
35.图3示出了本技术实施例的人脸关键点检测模型的老师网络和学习网络的结构示意图;
36.图4示出了基于图3的老师网络和学习网络进行全通道特征监督的示意图;
37.图5示出了本技术实施例的包括注意力模块的人脸关键点检测模型的结构示意图;
38.图6示出了本技术实施例的人脸关键点检测模型训练方法的另一流程示意图;
39.图7示出了本技术实施例的人脸关键点检测方法的流程示意图;
40.图8示出了本技术实施例的用户睡眠状态检测方法的流程示意图;
41.图9示出了本技术实施例的人脸关键点检测模型的结构示意图。
具体实施方式
42.下面将结合本技术实施例中附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。
43.通常在此处附图中描述和示出的本技术实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本技术的实施例的详细描述并非旨在限制要求保护的本技术的范围,而是仅仅表示本技术的选定实施例。基于本技术的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本技术保护的范围。
44.在下文中,可在本技术的各种实施例中使用的术语“包括”、“具有”及其同源词仅意在表示特定特征、数字、步骤、操作、元件、组件或前述项的组合,并且不应被理解为首先排除一个或更多个其它特征、数字、步骤、操作、元件、组件或前述项的组合的存在或增加一个或更多个特征、数字、步骤、操作、元件、组件或前述项的组合的可能性。此外,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
45.除非另有限定,否则这里使用的所有术语(包括技术术语和科学术语)具有与本技术的各种实施例所属领域普通技术人员通常理解的含义相同的含义。所述术语(诸如在一
般使用的词典中限定的术语)将被解释为具有与在相关技术领域中的语境含义相同的含义并且将不被解释为具有理想化的含义或过于正式的含义,除非在本技术的各种实施例中被清楚地限定。
46.下面结合附图,对本技术的一些实施方式作详细说明。在不冲突的情况下,下述的实施例及实施例中的特征可以相互结合。
47.请参照图1,为本技术实施例提出的终端设备10的结构示意图。示范性地,终端设备10可以包括处理器11和存储器12,其中,存储器12连接处理器11,存储器12存储有相应的计算机程序,处理器11用于执行该计算机程序以实施本技术实施例中的人脸关键点检测模型训练方法或人脸关键点检测方法,可有效解决将现有的人脸关键点检测模型运用在运算能力非常有限的移动端设备中导致模型的表现力大打折扣,但加重网络又会对移动端设备造成极大的算法负担等问题。
48.在本实施例中,处理器11可以是一种具有信号的处理能力的集成电路芯片。处理器11可以是通用处理器,包括中央处理器(central processing unit,cpu)、图形处理器(graphics processing unit,gpu)及网络处理器(network processor,np)、数字信号处理器(dsp)、专用集成电路(asic)、现成可编程门阵列(fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件中的至少一种。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,可以实现或者执行本技术实施例中的公开的各方法、步骤及逻辑框图。
49.在本实施例中,存储器12可以是,但不限于,随机存取存储器(random access memory,ram),只读存储器(read only memory,rom),可编程只读存储器(programmable read-only memory,prom),可擦除只读存储器(erasable programmable read-only memory,eprom),电可擦除只读存储器(electric erasable programmable read-only memory,eeprom)等。其中,存储器12用于存储计算机程序,处理器11在接收到执行指令后,可相应地执行所述计算机程序。
50.值得注意的是,本技术实施列的终端设备10可以是运算能力强的设备,如计算机、笔记本电脑等,但是也可以是一些运算能力非常有限的移动端设备或嵌入式设备,如移动机器人、智能手机、平板,甚至还可以是一些智能家居设备等。采用本技术实施例中的训练方法所得到的人脸关键点检测模型通过部署在这些终端设备10中,在一些需要的场景下进行人脸关键点检测,例如,通过获取用户的面部姿态以进一步判断用户是否进入睡眠状态,是否有身体不适,又或是当前的情绪状态等。其中,上述的人脸关键点主要指能够体现人脸独特性的重要特征点,例如,可包括但不限于眼睛、嘴巴、鼻子、眉毛等,具体可根据实际需求来选取,这里不作限定。
51.基于上述的终端设备10,本技术实施例提出一种人脸关键点检测模型训练方法,经过该训练方法得到的人脸关键点检测模型可以应用在上述列举的终端设备10中,尤其是一些运算能力有限的移动端设备,仍可以实现对人脸关键点的快速、准确检测,不会加重移动端设备的负担等。
52.考虑到训练后的人脸关键点检测模型会部署在一些运算能力非常有限的设备平台,如以int8平台进行落地部署为例,为此,本实施例将基于回归方法来实现人脸关键点检测。进一步地,在构建上述的人脸关键点检测模型的网络架构时,主要考虑一些轻量级的神
经网络架构,如mobilenet系列网络等,具体如采用mobilenet的backbone作为网络基础等。
53.进而,为了提高这些轻量级网络的表现力,本实施例将结合知识蒸馏技术来对构建的模型进行优化。值得注意的是,之所以提出采用知识蒸馏,是由于当采用现有的人脸关键点检测模型(如rcnn、fast rcnn、faster rcnn等)进行训练部署时,以int8平台为例,相同的模型在pytorch、fp32和int8等这几个平台上进行训练及部署后,发现在int8平台的模型性能急剧下降,具体误差如下表1所示。其中,参数ion用于反应关键点的误差,ion越大误差越大。因此,对于运算力有限的设备,直接采用现有的人脸检测模型并不可行。为此,提出了使用非量化模型来指导量化模型的训练方式,即利用知识蒸馏中的老师网络来指导学生网络的训练,以在不影响量化模型参数量的情况下大大提升模型的表现。
54.表1三种平台的模型误差
55.平台ionpytorch4.969fp325.0225int85.6648
56.基于此,以上述的mobilenet的backbone作为基础结构,本实施例分别构建出模型中的老师网络和学生网络,其中,构建的老师网络和学习网络的结构相同。示范性地,backbone可包括依次连接的第一卷积层、第二卷积层、第三卷积层、第四卷积层、最大全局池化(gmp)层、第一全连接层和第二全连接层。在一种实施方式中,各个层的具体结构可如表2所示,其中,第一卷积层作为卷积层的输入,其可包括一个卷积模块,如采用3*3的卷积核(conv3*3)等;第二卷积层用于第一阶段提取,可包括一个卷积核(如conv3*3等)和一个瓶颈(bottleneck)模块,可以降低特征维度,减少计算量等;第三卷积层用于第二阶段提取,可包括一个卷积核(如conv3*3等)和两个相同的瓶颈模块,可进一步降低维度,减少计算量等;第四卷积层作为卷积层的输出,其可包括一个卷积核(如conv3*3等)。其中,对于不同的卷积层中的卷积核的大小可以相等,只是各个卷积核的通道数量可能会有所差异。而两个全连接模块可分别采用通道数量为176的linear函数和通道数量为196的linear函数等实现。
57.表2 backbone网络结构
[0058][0059][0060]
基于构建的人脸关键点检测模型,请参照图2,示范性地,该人脸关键点检测模型训练方法包括步骤s110~s140:
[0061]
步骤s110,将包含人脸关键点标注的样本图片分别输入人脸关键点检测模型的学生网络和老师网络中进行特征提取,以分别输出相应的中间特征图和人脸关键点定位预测结果,所述中间特征图包括前期特征图和后期特征图。
[0062]
示范性地,在构建得到如图3所示的学生网络和老师网络后,需要对模型进行训练。在训练过程中,可将预先标注有人脸关键点的图片输入到学生网络和老师网络中,以通过对应网络中的相应层或模块进行特征提取处理,从而得到一些中间层输出的特征图,以及最终的人脸关键点定位预测结果。进而,通过对这些输出的数据进行损失值计算,以此来调整网络中的参数,如此迭代训练,直至调整到该网络达到预期的检测效果为止,从而得到训练好的人脸关键点检测模型。
[0063]
可以理解,前期特征图是指网络中靠近输入侧的相应层输出的特征图,如第一卷积层、第二卷积层、第三卷积层等分别对应输出的特征图;而后期特征图是指网络中靠近输
出侧的相应层输出的特征图,如第一全连接层等输出的特征图。
[0064]
值得注意的是,在提出利用老师网络来指导学生网络的训练时,考虑到回归任务一般高度抽象和人脸识别一般蒸馏前面的特征层,本实施例将提出利用网络中的第一全连接层(即fea_fc)输出的特征图作为后期特征图进行特征提取监督,当学生网络训练时,将其第一全连接层输出的特征图通过与老师网络训练时得到的对应位置的特征图进行损失计算,这样可以实现老师带动学生学习的目的。
[0065]
通常地,在利用第一全连接层输出的特征图进行监督达到一定效果后,接着结合前面层输出的特征图(即feature map)来一起监督,如图4所示,然而发现,若利用前面的feature map进行监督时,模型输出的结果反而更差。对此,经过分析得知:一方面,feature map监督要求对所有通道都进行特征监督,而每个feature map包含多个通道,每个通道负责提取某个部件的纹理或细节特征,因此有可能会提取一些无意义的信息。而这些无意义的通道特征作为学生网络的监督,会引导学生无意义的学习,从而减弱了模型的特征提取能力。另一方面,老师网络提取到的feature map是一个复杂的超平面,学生朝该平面过分学习会陷入过拟合现象。因此,为了避免学生网络对老师网络的过拟合学习,在训练的过程中,本实施例还将进一步结合维度较低的比较显著的特征来进行中间过程监督,可进一步提升学生网络的表现等。具体地,通过注意力机制来对靠前的卷积层输出的一些特征图来相应处理,例如,基于图4所示的老师网络和学生网络结构,在一种实施方式中,可选取由第一卷积层、第二卷积层、第三卷积层各自输出的这些特征图用于中间过程监督。
[0066]
步骤s120,通过人脸关键点检测模型中的注意力模块对老师网络和学生网络输出的前期特征图进行降维处理,得到各自的显著特征图。
[0067]
其中,上述的降维处理主要是指通过注意力模块进行分别对老师网络和学生网络各自输出的前期特征图在全通道进行取平均值操作,例如,如图5所示,利用通道数为1的注意力模块(对应于attenmap模块)对各个具有多个通道数量的中间特征图进行特征加权计算,从而得到低维度的显著特征图。可以理解,由于进行全通道取平均操作,可以反映出事物的整体特征,从而保证了学生学到的中间过程和老师相似,解题思路相近,但能得到更好的检测结果。
[0068]
步骤s130,若老师网络经过预先训练,则根据老师网络和学生网络的显著特征图之间的第一损失值、老师网络和学生网络输出的后期特征图之间的第二损失值、以及学生网络的人脸关键点的定位预测值与真实值之间的第三损失值,计算人脸关键点检测模型本次训练的总损失值。
[0069]
其中,上述的老师网络可以预先训练得到,也可以与学生网络进行同步联合训练得到。值得注意的是,若采用同步联合训练,该人脸关键点检测模型所构建的损失函数会有所不同。
[0070]
以老师网络经过预先训练为例,在一种实施方式中,该人脸关键点检测模型所构建的损失函数包括三部分,如图5所示,第一部分是老师网络和学生网络各自的显著特征图之间的损失,例如,可采用smooth l1函数等作为损失函数;第二部分是老师网络和学生网络输出的后期特征图之间的损失,例如,同样可采用smooth l1函数等作为损失函数;而第三部分是学生网络的人脸关键点的定位预测值与真实值(ground truth)之间的损失,例如,可采用wing loss函数作为损失函数。其中,采用wing loss可以较好地捕捉到关键点的
一些微小误差,可提高网络训练的识别准确率等。
[0071]
步骤s140,在本次训练的总损失值不满足预设条件时,输入下一样本图片继续训练,直至计算到的总损失值满足所述预设条件时停止,得到训练后的人脸关键点检测模型。
[0072]
其中,上述的预设条件也为训练停止条件,用于判断何时该停止训练。例如,该预设条件可以包括但不限于总损失值小于预设阈值等。此外,该预设条件还可以包括总损失值和迭代次数等同时满足要求,这里不作具体限定。
[0073]
示范性地,通过上述步骤s110~130可以计算出对输入的样本图片进行训练后的模型总损失值,通过判断该总损失值是否达到预设条件,以确定是否还需要进行下一次迭代训练。若满足了预设条件,则说明本次输出的预测结果符合预期,则可以停止训练。反之,则需要继续训练,直至最后计算到的总损失值满足该预设条件,则停止并得到该人脸关键点检测模型。接着,可将该训练后的人脸关键点检测模型进行部署,以用于后续的人脸关键点检测。其中,预测输出的关键点的数量与最后的第二全连接层的设置有关,例如,如图5所示的模型将预测输出196个关键点,当然也可以根据实际需求来预测出其他数量的关键点,这里不作限定。
[0074]
本实施例提出的人脸关键点检测模型训练方法基于知识蒸馏技术,采用了使用非量化模型来指导量化模型的训练方式,即利用老师网络来指导学生网络的训练,以在不影响量化模型参数量的情况下大大提升模型的表现。同时为了避免了学生网络对老师网络的过拟合学习,在训练的过程中,还结合用线性回归后的特征及注意力机制来联合监督,可进一步提升学生网络的表现等。
[0075]
作为另一种优选的方案,考虑到当需要数据更新和模型迭代时,每次都需要先训练一个老师网络,此时则需要等待比较长的时间。为了解决这一问题,在进行人脸关键点检测模型训练时,本技术实施例还提出一种训练方法,即将老师网络和学生网络进行同步联合训练,而不需要对老师网络进行预先训练,从而提高模型训练效率等。
[0076]
如图6所示,示范性地,该人脸关键点检测模型训练方法包括步骤s210~s240:
[0077]
步骤s210,将包含人脸关键点标注的样本图片分别输入人脸关键点检测模型的学生网络和老师网络中进行特征提取,以分别输出相应的中间特征图和人脸关键点定位预测结果,所述中间特征图包括前期特征图和后期特征图。
[0078]
步骤s220,通过人脸关键点检测模型的注意力模块对老师网络和学生网络输出的前期特征图进行降维处理,得到各自的显著特征图。
[0079]
步骤s230,若老师网络未经预先训练,则根据老师网络和学生网络的显著特征图之间的第一损失值、老师网络和学生网络输出的后期特征图之间的第二损失值、学生网络的人脸关键点的定位预测值与真实值之间的第三损失值、以及老师网络的人脸关键点的定位预测值与真实值之间的第四损失值,计算该人脸关键点检测模型的总损失值。
[0080]
步骤s240,在本次训练的总损失值不满足预设条件时,输入下一样本图片继续训练,直至计算到的总损失值满足预设条件时停止,得到训练后的人脸关键点检测模型。
[0081]
可以理解,当对老师网络和学生网络进行同步联合训练时,本实施例的训练方法的步骤s210~240与上述实施例中的步骤类似,故这里不再重复描述,而两者的主要区别在于,同步联合训练时的模型总损失值还包括老师网络的人脸关键点预测结果的相应损失。具体地,除了上述的三部分损失之外,此时的人脸关键点检测模型的损失函数还包括老师
网络的人脸关键点的定位预测值与真实值之间的损失函数,如采用wing loss函数等。
[0082]
本实施例提出的人脸关键点检测模型训练方法利用知识蒸馏的形式来实现人脸关键点检测模型的优化,并对老师网络和学生网络进行联合训练,不仅可以提升模型的识别准确度,还提高了迭代的效率且在一定情况下联合学习表现更佳等。
[0083]
请参照图7,基于上述实施例的人脸关键点检测模型训练方法,本实施例提出一种人脸关键点检测方法,示范性地,该人脸关键点检测方法包括:
[0084]
步骤s310,获取目标人脸图像。
[0085]
例如,该目标人脸图像可以是通过终端设备10上安装的摄像装置来直接拍摄得到的,也可以接收到的人脸图片等,这里不作限定。
[0086]
步骤s320,将该目标人脸图像输入至已训练的人脸关键点检测模型中进行人脸关键点检测,其中,该人脸关键点检测模型采用上述的方法预先训练并部署。
[0087]
步骤s330,输出该目标人脸图像对应的人脸关键点定位预测结果。
[0088]
示范性地,将目标人脸图像输入到已训练好的模型中后,可得到对应的人脸关键点的检测结果。可以理解,上述实施例中的人脸关键点检测模型训练方法的可选项同样适用于本实施例,故在此不再重复描述。
[0089]
请参照图8,基于上述实施例的人脸关键点检测方法,本实施例提出一种用户睡眠状态检测方法,例如,可以是对病人、婴儿等的睡眠状态进行监测。示范性地,该用户睡眠状态检测方法包括:
[0090]
步骤s410,采用上述的人脸关键点检测方法对用户进行人脸关键点检测,得到用户的人脸关键点预测结果。
[0091]
步骤s420,根据预设睡眠姿态对该人脸关键点预测结果进行分析,以确定用户是否进入睡眠状态。
[0092]
其中,预设睡眠姿态可通过对该用户在睡眠状态的姿态进行学习得到。由于人在不同状态下的面部姿态往往会存在一些差异,例如,在睡眠状态下,眼睛通常处于闭合状态,嘴巴有的用户会打开等,因此利用不同的姿态,可以进一步分析用户的状态。例如,对于婴儿,则可以根据检测到的人脸关键点特征,来判断婴儿是否已睡着等。
[0093]
可以理解,除了运用于睡眠状态的检测,对于其他需要采用人脸关键点检测的场景,都可以采用本实施例的人脸关键点检测方法,尤其是对需要部署在一些运算能力非常有限的移动式设备、嵌入式设备等。
[0094]
请参照图9,基于上述实施例的人脸关键点检测模型训练方法,本实施例提出一种人脸关键点检测模型训练装置100,示范性地,该人脸关键点检测模型训练装置100包括:
[0095]
网络处理模块110,用于将包含人脸关键点标注的样本图片分别输入所述人脸关键点检测模型的学生网络和老师网络中进行特征提取,以分别输出相应的中间特征图和人脸关键点定位预测结果;所述中间特征图包括前期特征图和后期特征图;
[0096]
注意力模块120,用于通过所述人脸关键点检测模型中的注意力模块对所述老师网络和所述学生网络输出的所述前期特征图进行降维处理,得到各自的显著特征图;
[0097]
损失计算模块130,用于若所述老师网络经过预先训练,则根据所述老师网络和所述学生网络的所述显著特征图之间的第一损失值、所述老师网络和所述学生网络输出的所述后期特征图之间的第二损失值、以及所述学生网络的人脸关键点的定位预测值与真实值
之间的第三损失值,计算所述人脸关键点检测模型本次训练的总损失值;
[0098]
训练判断模块140,用于在本次训练的总损失值不满足预设条件时,输入下一样本图片继续训练,直至计算到的总损失值满足所述预设条件时停止,得到训练后的人脸关键点检测模型。
[0099]
进一步地,若老师网络未经过预先训练,则在计算总损失值时,损失计算模块130还用于根据所述老师网络和所述学生网络的所述显著特征图之间的第一损失值、所述老师网络和所述学生网络输出的所述后期特征图之间的第二损失值、所述学生网络的人脸关键点的定位预测值与真实值之间的第三损失值、以及所述老师网络的人脸关键点的定位预测值与真实值之间的第四损失值,计算所述人脸关键点检测模型的总损失值。
[0100]
可以理解,本实施例的人脸关键点检测模型训练装置100对应于上述实施例的人脸关键点检测模型训练方法,上述方法中的可选项同样适用于本实施例,故在此不再重复描述。
[0101]
本技术还提供了一种可读存储介质,用于储存上述终端设备10中使用的所述计算机程序。
[0102]
在本技术所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和结构图显示了根据本技术的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,结构图和/或流程图中的每个方框、以及结构图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0103]
另外,在本技术各个实施例中的各功能模块或单元可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或更多个模块集成形成一个独立的部分。
[0104]
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是智能手机、个人计算机、服务器、或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0105]
以上所述,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本技术的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1