一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于知识蒸馏和多任务学习的人脸关键点检测方法及系统

2022-11-28 13:43:40 来源:中国专利 TAG:


1.本发明属于图像处理技术领域,尤其涉及基于知识蒸馏和多任务学习的人脸关键点检测方法及系统。


背景技术:

2.本部分的陈述仅仅是提供了与本发明相关的背景技术信息,不必然构成在先技术。
3.人脸关键点检测是是一种给定人脸图像,并在眉毛、眼睛、鼻子、嘴巴等人脸面部关键位置上进行检测定位的算法,属于人脸识别的基础环节,广泛应用于三维重建、视频通信、人脸支付等领域,因此对于人脸关键点检测的相关研究具有重要的实际意义。
4.近年来,随着深度学习的快速发展,人脸关键点检测精度得到了巨大提升,但目前高精度的检测算法大多是采用大型骨干网络,如hourglass网络和resnet网络等,尽管这些方法性能优异,但也引入了大量参数,导致了较高的内存消耗,不利于在移动设备上进行部署。


技术实现要素:

5.为了解决上述背景技术中存在的至少一项技术问题,本发明提供基于知识蒸馏和多任务学习的人脸关键点检测方法及系统,其在构建轻量级人脸关键点检测网络过程中,创新地提出了根据知识蒸馏和多任务学习检测的方法,与未引入知识蒸馏和多任务学习的模型相对比,该方法使得网络模型参数量相对于复杂网络大幅度减小,并且检测精度仍能媲美大型网络,有效的避免了现有方法中网络模型参数量过大,不利于在移动设备部署的问题。
6.为了实现上述目的,本发明采用如下技术方案:
7.本发明的第一个方面提供基于知识蒸馏和多任务学习的人脸关键点检测方法,包括如下步骤:
8.获取训练数据集,所述数据集包括人脸图片数据和对应的真实标签数据;
9.基于训练数据集和训练好的教师网络模型生成对应的软标签数据;
10.基于真实标签数据和软标签数据训练学生网络,将教师网络学习的知识迁移至学生网络,同时,根据多任务学习方法,将多个相关的任务共同学习,学习过程中通过浅层的共享表示来互相分享和补充学习到的信息,得到最终训练好的学生网络;
11.结合识别人脸图片和最终训练好的学生网络得到人脸关键点和头部姿态。
12.本发明的第二个方面提供基于知识蒸馏和多任务学习的人脸关键点检测系统,包括:
13.数据获取模块,用于获取训练数据集,所述数据集包括人脸图片数据和对应的真实标签数据;
14.软标签数据生成模块,用于基于训练数据集和训练好的教师网络模型生成对应的
软标签数据;
15.学生网络训练模块,用于基于真实标签数据和软标签数据训练学生网络,将教师网络学习的知识迁移至学生网络,同时,根据多任务学习方法,将多个相关的任务共同学习,学习过程中通过浅层的共享表示来互相分享和补充学习到的信息,得到最终训练好的学生网络;
16.多任务识别模块,用于结合识别人脸图片和最终训练好的学生网络得到人脸关键点和头部姿态。
17.本发明的第三个方面提供一种计算机可读存储介质。
18.一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上述所述的基于知识蒸馏和多任务学习的人脸关键点检测方法中的步骤。
19.本发明的第四个方面提供一种计算机设备。
20.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述所述的基于知识蒸馏和多任务学习的人脸关键点检测方法中的步骤。
21.与现有技术相比,本发明的有益效果是:
22.本发明通过在检测人脸关键点的过程中,创新地提出了使用知识蒸馏和多任务学习方法,知识蒸馏既能保证学生网络的参数量保持不变,又能提高学生网络的精度从而媲美教师网络,多任务学习通过底层的共享表示来互相帮助学习,提高泛化效果,有效的避免了现有方法中网络模型参数量过大,不利于在移动设备部署的问题。
23.本发明附加方面的优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
24.构成本发明的一部分的说明书附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。
25.图1是本发明实施例基于知识蒸馏和多任务学习的人脸关键点检测方法整体流程示意图;
26.图2是本发明实施例基于知识蒸馏学生网络学习教师网络生成的软标签以及照片的真实标签示意图;
27.图3是本发明实施例多任务学习流程示意图。
具体实施方式
28.下面结合附图与实施例对本发明作进一步说明。
29.应该指出,以下详细说明都是例示性的,旨在对本发明提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本发明所属技术领域的普通技术人员通常理解的相同含义。
30.需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本发明的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包
括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。
31.正如背景技术中提及的现有技术存在的目前的检测网络引入了大量参数,导致了较高的内存消耗,不利于在移动设备上进行部署的问题,本发明提出了种基于知识蒸馏和多任务学习的人脸关键点检测处理方法,知识蒸馏通过高精度、高复杂度的教师网络指导学生网络进行训练,可以提升学生网络的精度;多任务学习通过底层的共享表示来互相帮助学习,主任务使用相关任务的训练信号所拥有的领域相关信息,互相补充学习到的领域相关的信息互相促进学习提高泛化效果。因此引入知识蒸馏和多任务学习。该方法提供一个高效的轻量级人脸关键点检测网络,该网络为学生网络,在经过教师网络的指导以及多任务同时学习后,参数量相对于级联网络和大型骨干网络大幅度减小而检测精度却仍能媲美大型网络。
32.实施例一
33.如图1所示,本实施例提供一种基于知识蒸馏和多任务学习的人脸关键点检测方法,包括如下步骤:
34.步骤1:选取训练数据集,所述数据集包括人脸图片数据和对应的真实标签数据;
35.步骤2:对人脸图片数据进行数据增强预处理,所述数据增强预处理主要包括颜色抖动,噪音增强,亮度调整,角度旋转,水平镜像,随机灰度和随机擦除七个方面。
36.具体地,所述颜色抖动通过随机调整图像的颜色通道,减少网络对图像颜色的敏感性。
37.噪音增强通过随机为图像增加椒盐噪声,以提高网络的稳健性。
38.亮度调整通过随机调整人脸图像的亮度值,随机调整因子为0.5~1.5。
39.角度旋转以-30
°
~30
°
的随机角度对图像进行旋转。
40.水平镜像以50%概率水平旋转图像。
41.随机灰度以20%概率将图像转换为灰度图。
42.随机擦除通过对人脸图像进行随机大小的擦除,擦除的面积为整个图像的2%~33%,从而提高网络对遮挡情况的泛化能力。
43.在执行完上述数据增强部分以后,便会将处理后的数据交由教师网络进行学习。
44.步骤3:基于预处理的训练数据集和训练好的教师网络模型生成对应的软标签数据;
45.其中,本实施例选用convnext作为教师网络;
46.通过将结构复杂但性能优越的教师网络的输出作为软标签,利用软标签监督结构简单的学生网络进行学习,从而将教师网络学习的“知识”迁移至学生网络。
47.需要说明的是,软标签是相对于硬标签来说的,硬标签就是对应的真实标签,软标签是教师网络预测的结果,它这个软标签的不一定是百分百正确的。
48.步骤4:基于真实标签数据和软标签数据训练学生网络,将教师网络学习的知识迁移至学生网络,同时,根据多任务学习方法,将多个相关的任务共同学习,学习过程中通过浅层的共享表示来互相分享和补充学习到的信息,得到最终训练好的学生网络;
49.本实施例中,步骤4中,基于真实标签数据和软标签数据训练学生网络,将教师网络学习的知识迁移至学生网络包括:
50.通过计算学生网络生成的坐标点的准确度和教师网络生成的坐标点,若学生网络
生成的坐标点的准确度低于教师网络生成的坐标点的准确度,学生网络继续向教师网络学习,直至学生网络的精确度超过教师网络,得到初始训练好的学生网络。
51.本实施例中,选用mobilenetv2的block作为学生网络的block。
52.如图2所示,输入的图像为x,训练好的复杂教师网络模型为t_model,正在训练的学生网络模型为s_model,教师网络生成的软标签为soft_label,图像的真实标签为hard_label,关键点数为n,关键点坐标为{(x
1,
y1),(x
2,
y2),(x
3,
y3),

,(x
n,yn
)},学生网络生成的坐标集合为s_landmark,学生网络的结果s_landmark与软标签soft_label的损失为limit loss,学生网络的结果s_landmark与图像的真实标签hard_label的损失为wing loss,整体损失为total loss。
53.具体包括如下步骤:
54.1)首先教师网络会根据输入的图像x生成对应的软标签soft_label,soft_label中对应的关键点坐标为{(x1,y1),(x2,y2),(x3,y3),

,(xn,yn)}。
55.2)学生网络根据输入的图像x生成对应的坐标集合s_landmark,s_landmark中对应的关键点坐标为{(x1,y1),(x2,y2),(x3,y3),

,(xn,yn)}。
56.3)使用wing loss将s_landmark与hard_label进行损失计算。
57.4)然后使用limit loss将s_landmark与soft_label进行损失计算,这里的wing loss用f(x)表示,则limit loss表示如下:
[0058][0059]
当s_landmark与soft_label的损失大于s_landmark与hard_label时,limit loss为f(s_landmark-soft_label),其他情况下limit loss为0。
[0060]
5)最后通过整体损失total loss=λ*limit loss (1-λ)*wing loss进行反向传播更新学生网络的权重参数。
[0061]
步骤4中,根据多任务学习方法,将多个相关的任务共同学习,学习过程中通过浅层的共享表示来互相分享和补充学习到的信息,得到最终训练好的学生网络;
[0062]
使用多任务学习的目的就是为了更进一步提高学生网络模型的精度。多任务学习把多个相关的任务放在一起学习,学习过程中通过一个在浅层的共享表示(shared representation)来互相分享、互相补充学习到的领域相关的信息互相促进学习,提升泛化的效果。
[0063]
如图3所示,在本实施例中,任务1为人脸关键点检测,任务2为头部姿态估计,layer1和layer2为底层的共享表示,从而使单个模型能够完成多个任务。由于头部姿态估计任务与人脸关键点检测任务的相关性较强,故选用头部姿态估计作为辅助任务,与人脸关键点检测任务进行共同学习。
[0064]
步骤5:结合待识别人脸图片和最终训练好的学生网络进行检测得到人脸关键点和头部姿态。
[0065]
头部姿态估计就是通过一幅面部图像来获得头部的姿态角,在3d空间中,表示物体的旋转可以由三个欧拉角(euler angle)来表示:
[0066]
分别计算pitch(围绕x轴旋转),yaw(围绕y轴旋转)和roll(围绕z轴旋转),分别学
名俯仰角、偏航角和滚转角。
[0067]
其中头部姿态数据标签为pose_label,预测的头部姿态数据结果为pose_predict,损失函数为pose loss。
[0068]
将输入图像x通过预处理,交由学生网络进行学习,学生网络预测出结果pose_predict,然后将pose_predict与pose_label通过pose loss进行损失计算,然后通过反向传播更新学生网络参数,基于知识蒸馏和多任务学习对学生网络的训练是同步进行的,直至学生网络收敛,完成整个训练过程。
[0069]
上述方案的优点在于,与传统的深度学习网络相对比,本发明的网络能同时检测人脸关键点和头部姿态,并且本发明的网络在在保证了参数量相对于级联网络和大型骨干网络大幅度减小的同时检测精度却仍能媲美大型网络,解决的传统神经网络在移动设备部署的问题。
[0070]
表1展示了各个模型在数据集300w上的测试结果,可以看到本发明的模型相比于其他深度学习模型取得了最优的结果,表2展示了本发明中使用的教师模型、学生模型、使用知识蒸馏后的学生模型以及与lab模型在参数量上的对比,可以看到本发明的模型的参数量相对于传统神经网络模型大幅度减小。
[0071]
表1各个模型在300w数据集上的对比
[0072]
methodcommonchallengingfullrcpr6.1817.268.35cfan5.5016.787.69esr5.2817.007.58sdm5.5715.407.50lbf4.9511.986.32cfss4.739.985.763ddfa6.1510.597.01tcdcn4.808.605.54mdm4.8310.145.88seqmt4.849.935.74rar4.128.354.94dvln3.947.624.66cpm3.398.144.36dcfe3.837.544.55tsr4.367.564.99lab3.426.984.12ours3.226.043.69
[0073]
表2模型参数量对比
[0074]
methodparam(m)lab25.1teacher27.95student1.6
student kd1.6
[0075]
实施例二
[0076]
本实施例提供基于知识蒸馏和多任务学习的人脸关键点检测系统,包括:
[0077]
数据获取模块,用于获取训练数据集,所述数据集包括人脸图片数据和对应的真实标签数据;
[0078]
软标签数据生成模块,用于基于训练数据集和训练好的教师网络模型生成对应的软标签数据;
[0079]
学生网络训练模块,用于基于真实标签数据和软标签数据训练学生网络,将教师网络学习的知识迁移至学生网络,同时,根据多任务学习方法,将多个相关的任务共同学习,学习过程中通过浅层的共享表示来互相分享和补充学习到的信息,得到最终训练好的学生网络;
[0080]
多任务识别模块,用于结合识别人脸图片和最终训练好的学生网络得到人脸关键点和头部姿态。
[0081]
实施例三
[0082]
本实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上述所述的基于知识蒸馏和多任务学习的人脸关键点检测方法中的步骤。
[0083]
实施例四
[0084]
本实施例提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述所述的基于知识蒸馏和多任务学习的人脸关键点检测方法中的步骤。
[0085]
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
[0086]
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0087]
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0088]
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0089]
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(read-only memory,rom)或随机存储记忆体(random access memory,ram)等。
[0090]
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献