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

一种基于多任务学习的人脸识别方法和装置与流程

2022-02-22 08:31:13 来源:中国专利 TAG:


1.本发明涉及计算机视觉领域,尤其涉及一种基于多任务学习的人脸识别方法和装置。


背景技术:

2.目前,现有的多任务学习方法主要是将多个相关的任务放在一起学习,同时学习多个任务,比如多任务卷积神经网络,还有人脸检测加人脸关键点的多任务学习。而现有的这些多任务学习方法,在每个任务数据不平衡时,在学习时会偏向于数据多的任务,学习得到的模型性能会好于数据量少的模型性能;同时训练过程中各模型的收敛快慢也各不相同,各任务的损失函数设计难以达到平衡,导致某些任务性能较好,某些任务性能较差。例如:人脸识别与人脸属性分析属于不同的任务类别,两者各有一个相对应的损失函数。训练过程中,现有技术将两者的损失简单相加,导致任务损失尺度差异较大,技术方案的整体损失被其中一个任务主导,另一个任务无法影响网络共享层的学习过程且其性能会受到影响。


技术实现要素:

3.本发明提供了一种基于多任务学习的人脸识别方法和装置,以解决人脸识别任务和人脸属性分析任务的性能不平衡的技术问题。
4.为了解决上述技术问题,本发明实施例提供了一种基于多任务学习的人脸识别方法,包括:
5.获取第一训练数据集、第二训练数据集和待识别人脸数据集,将所述第一训练数据集送入预设的第一网络,对所述第一训练数据集进行训练,获得人脸识别模型;
6.通过人脸识别分支对应的权重,初始化与预设的第二网络对应的网络权重参数,并对所述人脸识别模型对应的网络层进行冻结;
7.将所述第二训练数据集送入网络权重参数经过初始化的第二网络,对所述第二训练数据集进行训练,获得人脸属性分析模型;
8.通过所述人脸属性分析模型对所述待识别人脸数据集进行人脸特征提取,获得特征图像;
9.对所述特征图像进行人脸特征匹配,得到人脸识别结果。
10.进一步的,所述将所述第一训练数据集送入预设的第一网络,对所述第一训练数据集进行训练,获得人脸识别模型,具体为:
11.通过基础网络和人脸识别分支对所述第一训练数据集进行网络权重训练直至与所述人脸识别分支对应的损失函数收敛,得到所述人脸识别模型;所述基础网络为人脸识别任务和人脸属性分析任务的共享网络部分。
12.进一步的,在所述通过人脸识别分支对应的权重,初始化与预设的第二网络对应的网络权重参数之前,还包括:
13.在所述基础网络的后面加入人脸属性分支,形成包括所述人脸属性分支的对应权重的第二网络。
14.进一步的,所述将所述第二训练数据集送入网络权重参数经过初始化的第二网络,对所述第二训练数据集进行训练,获得人脸属性分析模型,具体为:
15.将用于人脸属性分析的第二训练数据集送入预设的第二网络,通过网络权重参数经过初始化的第二网络,对所述第二训练数据集进行网络权重训练直至与所述人脸属性分支对应的损失函数收敛,得到所述人脸属性分析模型。
16.进一步的,所述对所述特征图像进行人脸特征匹配,得到人脸识别结果,具体为:对所述特征图像进行cos相似度计算,若cos相似度大于第一预设值,则人脸识别成功;若所述cos相似度小于等于所述第一预设值,则人脸识别失败。
17.相应的,本发明实施例提供了一种基于多任务学习的人脸识别装置,包括第一训练模块、冻结模块、第二训练模块、特征提取模块和特征匹配模块;其中,
18.所述第一训练模块用于获取第一训练数据集、第二训练数据集和待识别人脸数据集,将所述第一训练数据集送入预设的第一网络,对所述第一训练数据集进行训练,获得人脸识别模型;
19.所述冻结模块用于通过人脸识别分支对应的权重,初始化与预设的第二网络对应的网络权重参数,并对所述人脸识别模型对应的网络层进行冻结;
20.所述第二训练模块用于将所述第二训练数据集送入网络权重参数经过初始化的第二网络,对所述第二训练数据集进行训练,获得人脸属性分析模型;
21.所述特征提取模块用于通过所述人脸属性分析模型对所述待识别人脸数据集进行人脸特征提取,获得特征图像;
22.所述特征匹配模块用于对所述特征图像进行人脸特征匹配,得到人脸识别结果。
23.进一步的,所述第一训练模块将所述第一训练数据集送入预设的第一网络,对所述第一训练数据集进行训练,获得人脸识别模型,具体为:
24.所述第一训练模块通过基础网络和人脸识别分支对所述第一训练数据集进行网络权重训练直至与所述人脸识别分支对应的损失函数收敛,得到所述人脸识别模型;所述基础网络为人脸识别任务和人脸属性分析任务的共享网络部分。
25.进一步的,所述人脸识别装置还包括分支添加模块,所述分支添加模块用于在所述冻结模块通过人脸识别分支对应的权重,初始化与预设的第二网络对应的网络权重参数之前,在所述基础网络的后面加入人脸属性分支,形成包括所述人脸属性分支的对应权重的第二网络。
26.进一步的,所述第二训练模块将所述第二训练数据集送入网络权重参数经过初始化的第二网络,对所述第二训练数据集进行训练,获得人脸属性分析模型,具体为:
27.所述第二训练模块将用于人脸属性分析的第二训练数据集送入预设的第二网络,通过网络权重参数经过初始化的第二网络,对所述第二训练数据集进行网络权重训练直至与所述人脸属性分支对应的损失函数收敛,得到所述人脸属性分析模型。
28.进一步的,所述特征匹配模块对所述特征图像进行人脸特征匹配,得到人脸识别结果,具体为:
29.所述特征匹配模块对所述特征图像进行cos相似度计算,若cos相似度大于第一预
设值,则人脸识别成功;若所述cos相似度小于等于所述第一预设值,则人脸识别失败。
30.相比于现有技术,本发明实施例具有如下有益效果:
31.本发明提供了一种基于多任务学习的人脸识别方法和装置,所述方法包括:将第一训练数据集送入第一网络进行训练获得人脸识别模型;用人脸识别分支对应的权重初始化与预设的第二网络对应的网络权重参数,并对所述人脸识别模型对应的网络层进行冻结;将第二训练数据集送入第二网络并训练,获得人脸属性分析模型,用第人脸属性分析模型进行特征提取和特征匹配,获得人脸识别结果。本发明相对于现有技术,先使用人脸识别分支进行训练,对基础网络和人脸识别分支的网络层进行冻结,再针对人脸属性分析的数据集进行训练,基础网络层和人脸识别分支网络层不会梯度更新,保证了人脸属性分析的训练不会影响到已经训练好的人脸识别分支权重,同时可以在网络训练过程中调整人脸属性分支的权重,使得人脸属性分析和人脸识别的性能都达到最优,避免了数据不平衡和损失函数调整带来的部分任务量化,部分任务性能差的问题,提高了多任务的人脸识别的准确性。
附图说明
32.图1:为本发明基于多任务学习的人脸识别方法提供的一种实施例的流程示意图。
33.图2:为本发明基于多任务学习的人脸识别方法提供的一种实施例对resnet浅层网络的一种举例。
34.图3:为本发明基于多任务学习的人脸识别方法提供的一种实施例对resnet深层网络的一种举例。
35.图4:为本发明基于多任务学习的人脸识别方法提供的一种实施例的预设网络的整体结构示意图。
36.图5:为本发明基于多任务学习的人脸识别装置提供的一种实施例的结构示意图。
具体实施方式
37.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
38.实施例一:
39.请参照图1,为本发明实施例提供的一种基于多任务学习的人脸识别方法,包括步骤s1至s5;其中,
40.步骤s1,获取第一训练数据集、第二训练数据集和待识别人脸数据集,将所述第一训练数据集送入预设的第一网络,对所述第一训练数据集进行训练,获得人脸识别模型。
41.在本实施例中,通过抓拍到的图片中检测到人脸,人脸检测过程包含5个关键点检测;根据预设的5个人脸关键点标准坐标和检测出的5个关键点坐标求映射矩阵,用映射矩阵对检测到的人脸进行矫正变换,得到人脸对齐图像。5个人脸关键点为人的两个眼睛、鼻子和嘴巴(嘴巴包含2个关键点)。
42.人脸对齐图像分辨率为112
×
112,所使用的预设的5个人脸关键点标准坐标为:
43.[[30.2946 8.000,51.6963];[65.5318 8.000,51.6963];[48.0252 8.000,71.7366];[33.5493 8.000,92.3655];[62.7299 8.000,92.3655]];
[0044]
人脸对齐的结果即为待识别人脸识别数据集。对于同一个人的图片标注为同一个id,不同人给予不同的id。同时对图片中的人脸属性数据进行人脸检测并用5个关键点对齐并批注,每一种属性进行一次批注,当人脸包含某种属性时,属性值为1,没有则标注为0。
[0045]
通过基础网络和人脸识别分支对所述第一训练数据集进行网络权重训练直至与所述人脸识别分支对应的损失函数收敛,得到所述人脸识别模型;所述基础网络为人脸识别任务和人脸属性分析任务的共享网络部分。
[0046]
在本实施例中,所用的网络为resent100,resnet网络参考了vgg19网络,在其基础上进行了改进,通过短路机制加入了残差单元。其变化主要体现在resnet直接使用stride=2的卷积做下采样,并且使用global average pool层替换了全连接层。resnet的一个重要设计原则是:当feature map大小降低一半时,feature map的数量增加一倍,这保持了网络层的复杂度。
[0047]
resnet使用两种残差单元,分别如图2和图3所示。图2对应浅层网络,图3对应深层网络。对于短路连接,当输入和输出维度一致时,可以直接将输入加到输出上。但是当维度不一致时(对应的是维度增加一倍),这就不能直接相加。有两种策略:其一是采用zero-padding增加维度,此时一般要先做一个downsamp,可以采用strde=2的pooling,这样不会增加参数;其二是采用新的映射,一般采用1x1的卷积,这样会增加参数,也会增加计算量。
[0048]
而在resnet100中,我们使用的是图3所示的网络模块若干个进行串联堆叠而成,形成基础网络resnet100。
[0049]
本实施例中,用于人脸识别的损失函数使用angular margin loss,具体地:
[0050][0051]
其中,l3为用于人脸识别的损失函数。n代表训练一个批次的图片数量,θ
yi
表示的是真实的标签值与网络输出权重之间的角度,θj表示网络预测的值与网络输出权重之间的角度,yi表示的是训练样本真实的标签值,n表示人脸的类别数,m是附加边缘夹角,默认取0.35,其作用是增强类内的紧凑性,和增大类间的差异性,使得最终网络模型对不同类别的人脸得到更好的区分,s是一个缩放因子,在训练时是一个超参数,该参数将特征值缩放s,s默认取值为64。人脸识别训练过程,使得该损失函数最小则网络收敛,停止训练。
[0052]
本实施例在实施步骤s2之前还包括:在所述基础网络的后面加入人脸属性分支,形成包括所述人脸属性分支的对应权重的第二网络。
[0053]
步骤s2,通过所述人脸识别分支对应的权重,初始化与预设的第二网络对应的网络权重参数,并对所述人脸识别模型对应的网络层进行冻结。
[0054]
在本实施例中,在基础网络之后添加一个人脸属性分支,用于对人脸属性的分析,但是继续使用人脸识别分支任务的权重来初始化网络权重参数。因此在人脸识别分支进行人脸属性的训练时,基础网络层和人脸属性识别分支网络层(即所述人脸识别模型对应的网络层)不进行梯度更新,保证了人脸属性训练不会影响已经训练好的人脸识别分支权重。
只需要在网络训练过程中调整人脸属性分支的权重,使得人脸属性性能也能达到最优,人脸属性分支损失不再下降。这样既保证了人脸识别分支性能不受影响,也实现了人脸属性分支的最优。避免了数据不平衡和损失函数调整带来的某些任务量化,某些任务性能差的问题。
[0055]
对于人脸属性分析,本实施例将人脸属性看成了是多个二分类问题,因此采用sigmoid激活函数,损失函数表示为:
[0056][0057]
其中,
[0058][0059]
n代表训练的总图片数量,m代表人脸属性的类别数,y
ij
表示人脸属性的真实标签,取值0或1。logits
ij
表示人脸属性输出的预测值,σ表示sigmoid激活函数(σ(z)=1/(1 e-z
)),wj中的rj表示的是人脸属性分析训练集(第二训练数据集)中第j个属性的图片数量占中总训练图片的比例。
[0060]
步骤s3,将所述第二训练数据集送入网络权重参数经过初始化的第二网络,对所述第二训练数据集进行训练,获得人脸属性分析模型。
[0061]
在本实施例中,将用于人脸属性分析的第二训练数据集送入预设的第二网络,通过网络权重参数经过初始化的第二网络,对所述第二训练数据集进行网络权重训练直至与所述人脸属性分支对应的损失函数收敛,得到所述人脸属性分析模型。最终训练后输出的是11种人脸属性的置信度和512维人脸特征。网络整体结构如图4所示。
[0062]
步骤s4,通过所述人脸属性分析模型对所述待识别人脸数据集进行人脸特征提取,获得特征图像。
[0063]
步骤s5,对所述特征图像进行人脸特征匹配,得到人脸识别结果。
[0064]
在本实施例中,具体地,对所述特征图像进行cos相似度(取值在0和1之间)计算,两张人脸的相似度越高,cos相似度就越接近1,越低则越接近0。若cos相似度大于第一预设值,则人脸识别成功;若所述cos相似度小于等于所述第一预设值,则人脸识别失败。
[0065]
相应的,参照图5,本发明实施例提供了一种基于多任务学习的人脸识别装置,包括第一训练模块101、冻结模块102、第二训练模块103、特征提取模块104和特征匹配模块105;其中,
[0066]
所述第一训练模块101用于获取第一训练数据集、第二训练数据集和待识别人脸数据集,将所述第一训练数据集送入预设的第一网络,对所述第一训练数据集进行训练,获得人脸识别模型;
[0067]
所述冻结模块102用于通过所述人脸识别分支对应的权重,初始化与预设的第二网络对应的网络权重参数,并对所述人脸识别模型对应的网络层进行冻结;
[0068]
所述第二训练模块103用于将所述第二训练数据集送入网络权重参数经过初始化的第二网络,对所述第二训练数据集进行训练,获得人脸属性分析模型;
[0069]
所述特征提取模块104用于通过所述人脸属性分析模型对所述待识别人脸数据集进行人脸特征提取,获得特征图像;
[0070]
所述特征匹配模块105用于对所述特征图像进行人脸特征匹配,得到人脸识别结果。
[0071]
在本实施例中,所述第一训练模块101将所述第一训练数据集送入预设的第一网络,对所述第一训练数据集进行训练,获得人脸识别模型,具体为:
[0072]
所述第一训练模块101通过基础网络和人脸识别分支对所述第一训练数据集进行网络权重训练直至与所述人脸识别分支对应的损失函数收敛,得到所述人脸识别模型;所述基础网络为人脸识别任务和人脸属性分析任务的共享网络部分。
[0073]
在本实施例中,所述人脸识别装置还包括分支添加模块,所述分支添加模块用于在所述冻结模块通过所述人脸识别分支对应的权重,初始化与预设的第二网络对应的网络权重参数之前,在所述基础网络的后面加入人脸属性分支,形成包括所述人脸属性分支的对应权重的第二网络。
[0074]
在本实施例中,所述第二训练模块103将所述第二训练数据集送入网络权重参数经过初始化的第二网络,对所述第二训练数据集进行训练,获得人脸属性分析模型,具体为:
[0075]
所述第二训练模块103将用于人脸属性分析的第二训练数据集送入预设的第二网络,通过网络权重参数经过初始化的第二网络,对所述第二训练数据集进行网络权重训练直至与所述人脸属性分支对应的损失函数收敛,得到所述人脸属性分析模型。
[0076]
在本实施例中,所述特征匹配模块105对所述特征图像进行人脸特征匹配,得到人脸识别结果,具体为:
[0077]
所述特征匹配模块105对所述特征图像进行cos相似度计算,若cos相似度大于第一预设值,则人脸识别成功;若所述cos相似度小于等于所述第一预设值,则人脸识别失败。
[0078]
相比于现有技术,本发明实施例具有如下有益效果:
[0079]
本发明提供了一种基于多任务学习的人脸识别方法和装置,所述方法包括:将第一训练数据集送入第一网络进行训练获得人脸识别模型;用人脸识别分支对应的权重初始化与预设的第二网络对应的网络权重参数,并对所述人脸识别模型对应的网络层进行冻结;将第二训练数据集送入第二网络并训练,获得人脸属性分析模型,用第人脸属性分析模型进行特征提取和特征匹配,获得人脸识别结果。本发明相对于现有技术,先使用人脸识别分支进行训练,对基础网络和人脸识别分支的网络层进行冻结,再针对人脸属性分析的数据集进行训练,基础网络层和人脸识别分支网络层不会梯度更新,保证了人脸属性分析的训练不会影响到已经训练好的人脸识别分支权重,同时可以在网络训练过程中调整人脸属性分支的权重,使得人脸属性分析和人脸识别的性能都达到最优,避免了数据不平衡和损失函数调整带来的部分任务量化,部分任务性能差的问题,提高了多任务的人脸识别的准确性。
[0080]
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步的详细说明,应当理解,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围。特别指出,对于本领域技术人员来说,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

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

相关文献