一种人脸识别方法、装置及电子设备
文献发布时间:2023-06-19 09:41:38
技术领域
本发明实施方式涉及人脸识别技术领域,特别是涉及一种人脸识别方法、装置及电子设备。
背景技术
目前的人脸识别训练流程大致如下:准备训练数据,训练数据需要包含大量人物(即ID),每个ID尽可能包含较多的、在不同场景或不同时段属于该ID人物的照片,之后设计网络结构,损失函数,再将训练数据输入网络,一般采用批量梯度下降的方法,从损失函数中获得梯度并进行反向传播,从而对网络中的权重进行优化,不断重复这个过程并调优超参数,直至损失不再下降。目前较好的人脸识别模型均产出于该工程或以该工程为基础的工程。其中使用的训练流程如上,该工程的贡献在于提出了很有效的损失函数,显著提高了人脸识别模型的性能:
但是,目前的人脸识别方案难以解决数据分布不平衡的问题。例如在训练集中包含多人种时,不同人种的分布不均匀(如亚洲人是欧美人的三倍等),则会导致模型对包含较多样本的人种具有较好的识别性能,而对包含较少样本的人种识别性能会明显降低。
发明人在实现本发明的过程中,发现现有技术至少存在以下问题:人种分布不均匀导致的对某一类人种识别性能下降。
有鉴于此,现有技术亟待改进。
发明内容
为了解决上述技术问题,本发明实施例提供一种人脸识别方法、装置及电子设备,解决人种分布不均匀导致的对某一类人种识别性能下降的技术问题,提高人脸识别模型的综合识别性能。
为了解决上述技术问题,本发明实施例提供以下技术方案:
第一方面,本发明实施例提供一种人脸识别方法,应用于电子设备,所述方法包括:
获取包含至少两个人种的图像的训练集,根据人种将所述训练集划分为至少两个数据集;
确定每一数据集的损失函数及其对应的损失权重;
根据每一数据集的损失函数及其对应的损失权重,确定最终的损失函数;
根据所述最终的损失函数对初始模型进行训练,得到人脸识别模型,并基于所述人脸识别模型,进行人脸识别。
在一些实施例中,所述确定每一数据集的损失函数及其对应的损失权重,包括:
根据所述训练集中的每一数据集的比例,确定每一数据集的损失函数对应的损失权重,其中,每一所述数据集的损失函数对应的损失权重与该数据集的比例成正相关。
在一些实施例中,所述根据每一数据集的损失函数及其对应的损失权重,确定最终的损失函数,包括:
若初始模型为预训练模型,则所述最终的损失函数为每一数据集的损失函数及其对应的损失权重的加权和。
在一些实施例中,所述根据每一数据集的损失函数及其对应的损失权重,确定最终的损失函数,包括:
若所述初始模型为未经训练的模型,则确定间隔损失函数及其对应的损失权重,所述最终的损失函数为每一数据集的损失函数及其对应的损失权重以及间隔损失函数及其对应的损失权重的加权和。
在一些实施例中,所述确定间隔损失函数及其对应的损失权重,包括:
根据所述每一数据集的损失函数及其对应的损失权重,确定间隔损失函数及其对应的损失权重。
在一些实施例中,所述训练集被划分为第一数据集和第二数据集,所述间隔损失函数为:
其中,norm_feature1
第二方面,本发明实施例提供一种人脸识别装置,应用于电子设备,所述装置包括:
训练集单元,获取包含至少两个人种的图像的训练集,根据人种将所述训练集划分为至少两个数据集;
损失权重单元,用于确定每一数据集的损失函数及其对应的损失权重;
损失函数单元,用于根据每一数据集的损失函数及其对应的损失权重,确定最终的损失函数;
人脸识别单元,用于根据所述最终的损失函数对初始模型进行训练,得到人脸识别模型,并基于所述人脸识别模型,进行人脸识别。
在一些实施例中,所述损失权重单元,具体用于:
根据所述训练集中的每一数据集的比例,确定每一数据集的损失函数对应的损失权重,其中,每一所述数据集的损失函数对应的损失权重与该数据集的比例成正相关。
在一些实施例中,所述损失函数单元,具体用于:
若初始模型为预训练模型,则所述最终的损失函数为每一数据集的损失函数及其对应的损失权重的加权和。
在一些实施例中,所述损失函数单元,具体用于:
若所述初始模型为未经训练的模型,则确定间隔损失函数及其对应的损失权重,所述最终的损失函数为每一数据集的损失函数及其对应的损失权重以及间隔损失函数及其对应的损失权重的加权和。
在一些实施例中,所述确定间隔损失函数及其对应的损失权重,包括:
根据所述每一数据集的损失函数及其对应的损失权重,确定间隔损失函数及其对应的损失权重。
在一些实施例中,所述训练集被划分为第一数据集和第二数据集,所述间隔损失函数为:
其中,norm_feature1
第三方面,本发明实施例提供一种电子设备,包括:
至少一个处理器;和
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如上所述的人脸识别方法。
第四方面,本发明实施例提供一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的人脸识别方法。
本发明实施方式的有益效果是:区别于现有技术的情况,本发明实施方式提供一种人脸识别方法,应用于电子设备,所述方法包括:获取包含至少两个人种的图像的训练集,根据人种将所述训练集划分为至少两个数据集;确定每一数据集的损失函数及其对应的损失权重;根据每一数据集的损失函数及其对应的损失权重,确定最终的损失函数;根据所述最终的损失函数对初始模型进行训练,得到人脸识别模型,并基于所述人脸识别模型,进行人脸识别。通过根据人种训练对应的损失函数,结合损失函数对应的损失权重组合得到最终的损失函数,以训练人脸识别模型,本发明能够解决人种分布不均匀导致的对某一类人种识别性能下降的技术问题,提高人脸识别模型的综合识别性能。
附图说明
一个或多个实施例通过与之对应的附图进行示例性说明,这些示例性说明并不构成对实施例的限定,附图中具有相同参考数字标号的元件表示为类似的元件,除非有特别申明,附图中的图不构成比例限制。
图1是本发明实施例提供的一种应用场景的示意图;
图2是本发明实施例提供的一种人脸识别方法的流程示意图;
图3a是本发明实施例提供的一种训练数据的数据分布的示意图;
图3b是本发明实施例提供的另一种训练数据的数据分布的示意图;
图4是图2中的步骤S30的细化流程图;
图5是本发明实施例提供的一种人脸识别装置的结构示意图;
图6是本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
为了便于理解本发明,下面结合附图和具体实施方式,对本发明进行更详细的说明。需要说明的是,当元件被表述“固定于”另一个元件,它可以直接在另一个元件上、或者其间可以存在一个或多个居中的元件。当一个元件被表述“连接”另一个元件,它可以是直接连接到另一个元件、或者其间可以存在一个或多个居中的元件。本说明书所使用的术语“垂直的”、“水平的”、“左”、“右”以及类似的表述只是为了说明的目的。
除非另有定义,本说明书所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本说明书中在本发明的说明书中所使用的术语只是为了描述具体的实施方式的目的,不是用于限制本发明。本说明书所使用的术语“和/或”包括一个或多个相关的所列项目的任意的和所有的组合。
请参阅图1,图1是本发明实施例提供的一种应用场景的示意图;
如图1所示,该应用场景300包括电子设备100以及用户200,其中,该电子设备100包括摄像头,所述摄像头用于获取用户200的人脸图像,并对所述人脸图像进行人脸识别。在本发明实施例中,所述电子设备100包括但不限于移动终端、计算机设备等具有摄像头的设备。
请参阅图2,图2是本发明实施例提供的一种人脸识别方法的流程示意图;其中,该人脸识别方法,应用于电子设备,具体的,应用于电子设备的处理器,即该人脸识别方法的执行主体为所述电子设备的处理器。
如图2所示,该人脸识别方法,包括:
步骤S10:获取包含至少两个人种的图像的训练集,根据人种将所述训练集划分为至少两个数据集;
具体的,所述训练集中的图像包含不同人种,例如:黄种人、白人、黑人中的至少两种,当获取到包含至少两个人种的图像的训练集时,将所述训练集拆分成不同的多个数据集,例如:将包含黄种人、白人的数据集拆分成两个数据集。可以理解的是,当所述训练集包括至少两个数据集,例如:黄种人人脸识别数据集、白人人脸识别数据集时,如果两个数据集的规模差别较大,若将两者合并,将可能导致样本分布不均匀的情况,从而导致模型学习到的数据分布模式与期望产生偏差,因此,本发明根据人种对训练集进行划分,划分为至少两个数据集,并将每一数据集送入对应的损失函数,并确定每一损失函数对应的损失权重,以达到更好的训练效果。
步骤S20:确定每一数据集的损失函数及其对应的损失权重;
目前在人脸识别工程中最佳的训练策略即使用arcface函数作为最终损失函数来训练人脸识别模型。但是,该训练流程一般需要两段式的训练策略,即在第一阶段使用softmax交叉熵损失函数对模型进行预热训练,再使用arcface损失函数,才能使人脸识别模型得到有效收敛。其中,确定每一数据集的损失函数,指的是确定每一数据集对应的损失函数的比例以及设定适合每一数据集的损失函数中的参数。
具体的,所述确定每一数据集的损失函数,包括:根据所述数据集的特性,确定每一数据集对应的损失函数的参数,其中,所述数据集的特性包括数据质量、以及数据类别的数量,例如:所述损失函数为arcface损失函数或softmax损失函数,例如:所述arcface损失函数为:
其中,N为训练集的样本数量,s为缩放系数,m为角度间隔。
可以理解的是,利用所述arcface损失函数进行人脸识别训练过程为现有技术,在此不再赘述。
在arcface损失函数中,包含两个参数,分别为缩放系数s和角度间隔m,其中,角度间隔m的作用在于压缩类内间隔(相当于扩充了类间间距),而缩放系数s的作用则是优化梯度下降的效果。可以理解的是,缩放系数s和角度间隔m都是实验性质的参数,对不同数据集会有不同的偏好。其中,根据不同数据集的特性,这两个参数可能有所不同,例如,对于数据质量较好,每个类别包含图片较多的数据集,m可以设置的稍大一些,以让同类数据被充分的压缩在某固定空间范围内。在本发明实施例中,优选地,所述角度间隔m设置成0.5,缩放系数s设置成64。
通过根据训练目的及训练特性,将人脸识别的单任务训练模式拆分成多流数据并行训练的训练模式,对具有同一特性的训练集进行独立的参数控制,本发明能够提升人脸识别模型的综合性能或者按照训练目的提升人脸识别模型的性能。
具体的,所述确定每一数据集的损失函数及其对应的损失权重,包括:根据所述训练集中的每一数据集的比例,确定每一数据集的损失函数对应的损失权重,其中,每一所述数据集的损失函数对应的损失权重与该数据集的比例成正相关。
相当于所述确定每一数据集的损失函数及其对应的损失权重,包括:
根据每一数据集的特性,调整与该数据集对应的损失函数的参数,其中,所述数据集的特性包括数据特征、数据集的样本数量、数据质量、以及数据类别的数量;
根据所述训练集中的每一数据集的比例,确定每一数据集的损失函数对应的损失权重,其中,每一所述数据集的损失函数对应的损失权重与该数据集的比例成正相关。
其中,每一所述数据集的损失函数对应的损失权重与该数据集的比例成正相关,即根据所述训练集中的每一数据集的图像的数量,确定每一数据集的损失函数对应的损失权重,例如:所述训练集包括黄种人数据集和白人数据集,所述黄种人数据集和白人数据集的图像数量的比例为2:1,则确定所述黄种人数据集的损失函数对应的损失权重为k+a,所述白人数据集的损失函数对应的损失权重为k,其中,k为调整系数。所述调整系数k可以人为设置,a为调整值,所述调整值根据实际需要设置。
可以理解的是,当某一数据集的数据量较大,可适当增大其对应损失函数便于其优化。例如:第一数据集与第二数据集的比例为2:1,每一个batch从两个数据集中获取的数据量相当,为1:1,那么数据集比例为2的数据集对应的损失函数只要稍大于1即可,比如设为1.2。该设置的目的是,保证数据较多的数据集能较好的优化的同时,防止数据较少的数据集过拟合,同时也兼顾了两个数据集的loss平衡性,以取得比较均衡的效果。
步骤S30:根据每一数据集的损失函数及其对应的损失权重,确定最终的损失函数;
其中,本发明实施例根据初始模型,确定最终的损失函数,其中,所述初始模型为对人脸识别模型进行训练之前的模型,通过判断所述初始模型是否为预训练模型,以确定是否需要加入间隔损失函数。
请一并参阅图3a和图3b,图3a是本发明实施例提供的一种训练数据的数据分布的示意图;图3b是本发明实施例提供的另一种训练数据的数据分布的示意图;
其中,由于进行人脸识别相似度主要依据是特征归一化后的余弦距离。如果没有引入间隔损失函数,即inter loss,则两组数据之间的信息没有互通,两组训练数据类别在最终的类空间中可能产生如图3a所示的数据分布,其中,第一组训练数据中的本组数据有较大的间隔,第二组训练数据中的本组数据也有较大的间隔,但是第一组训练数据和第二组训练数据之间可能有很近的距离,导致余弦距离很小,区分度较差;
如图3b所示,在引入间隔损失函数,即inter loss,数据分布对于本组的数据都有很好的区分度,两组训练数据彼此之间的区分度也比较好,由于两组训练数据之间的余弦距离也会被计入损失函数,从而让模型的最终分类结果避免产生间隔较小的数据分布,让两组数据之间的间隔也能维持在一定大小。
具体的,请再参阅图4,图4是图2中的步骤S30的细化流程图;
如图4所示,该步骤S30:根据每一数据集的损失函数及其对应的损失权重,确定最终的损失函数,包括:
步骤S31:判断初始模型是否为预训练模型;
其中,预训练模型是指已经在公开数据集上训练过的人脸识别模型,比如在网上公开的一些网络,或者用其它损失函数训练过的网络。通过判断所述初始模型是否为预训练模型,从而确定是否需要加入间隔损失函数,即inter loss。
可以理解的是,不需要间隔损失函数inter loss的原因在于当人脸识别模型在某个较好的数据集上训练到比较充分的程度之后,已经具有了较强的有效信息提取能力,因此人种差异这样较大的差异反应到任务特征上不会具有很高的相似度,因此,即使加入了inter loss,inter loss的值会为0或者很小的数值,不对训练产生重要或有价值的影响,因此,若所述初始模型为预训练模型,则不加入间隔损失函数。
步骤S32:确定所述最终的损失函数为每一数据集的损失函数及其对应的损失权重的加权和;
具体的,若所述初始模型为预训练模型,则确定所述最终的损失函数为每一数据集的损失函数及其对应的损失权重的加权和,例如:所述训练集包括黄种人和白人的图像,则所述训练集被划分为两个数据集,分别为第一数据集和第二数据集,即黄种人人脸识别数据集、白人人脸识别数据集,假设最终的损失函数为L_total,第一数据集对应的损失函数为L_a,第二数据集对应的损失函数为L_b,alpha1为第一数据集的损失函数对应的损失权重,alpha2为第二数据集对应的损失权重,则L_total=alpha1*L_a+alpha2*L_b。
步骤S33:确定间隔损失函数及其对应的损失权重;
具体的,若所述初始模型为未经训练的模型,则确定间隔损失函数及其对应的损失权重。可以理解的是,未经训练的模型需要使用间隔损失函数,即inter loss的原因是,当训练集被分为至少两组数据集后,两组数据集之间的信息是独立的,因此两个ID在初始训练时有可能占用了类空间中的相同方向,而各自的损失中却并不包含这一信息。间隔损失函数inter loss的作用则是补充这部分信息,对于占用了同一类方向的向量给予提示。而在预训练模型中不需要这部分信息的原因是当模型在某个较好的数据集上训练到比较充分的程度之后,已经具有了较强的有效信息提取能力,因此人种差异这样较大的差异反应到任务特征上不会具有很高的相似度。
具体的,所述确定间隔损失函数及其对应的损失权重,包括:
根据所述每一数据集的损失函数及其对应的损失权重,确定间隔损失函数及其对应的损失权重。
具体的,若所述训练集被划分为两个数据集,分别为第一数据集和第二数据集,则根据所述第一数据集的损失函数对应的第一损失权重以及所述第二数据集的损失函数对应的第二损失权重,计算所述第一损失权重和第二损失权重的差值,根据所述差值的绝对值,确定所述间隔损失函数的损失权重,其中,所述间隔损失函数的损失权重与所述差值的绝对值成正相关,例如:所述间隔损失函数的损失权重=m*所述差值的绝对值,其中,m>0。
或者,所述间隔损失函数的损失权重与所述第一损失函数对应的第一损失权重和第二损失函数对应的第二损失权重的平均值成正相关,例如:所述间隔损失函数的损失权重=n*(第一损失权重+第二损失函数)/2,其中,n>0,通过设置所述间隔损失函数的损失权重与所述第一损失函数对应的第一损失权重和第二损失函数对应的第二损失权重的平均值成正相关,有利于维持inter loss与另外两个loss的量级相似性。
在本发明实施例中,所述训练集被划分为第一数据集和第二数据集,所述间隔损失函数为:
其中,norm_feature1
在本发明实施例中,若所述训练集被划分成三个或三个以上的数据集,则计算多个数据集的损失函数对应的损失权重的方差,根据所述多个数据集的损失函数对应的损失权重的方差,确定所述间隔损失函数的损失权重,例如:所述间隔损失函数的损失权重=p*多个数据集的损失函数对应的损失权重的方差,其中,p>0。
在本发明实施例中,所述间隔损失函数的损失权重一般被设置为[0,5]的范围内,通过将间隔损失函数的损失权重与所述至少两个数据集的损失函数的损失权重关联,能够更好地确定间隔损失函数,以提高人脸识别模型的综合识别性能。
步骤S34:确定最终的损失函数为每一数据集的损失函数及其对应的损失权重以及间隔损失函数及其对应的损失权重的加权和;
具体的,若所述初始模型为未经训练的模型,即无预训练模型,假设所述训练集包括黄种人和白人的图像,则所述训练集被划分为两个数据集,分别为第一数据集和第二数据集,即黄种人人脸识别数据集、白人人脸识别数据集,假设最终的损失函数为L_total,第一数据集对应的损失函数为L_a,第二数据集对应的损失函数为L_b,间隔损失函数为L_inter,alpha1为第一数据集的损失函数对应的损失权重,alpha2为第二数据集对应的损失权重,alpha3为间隔损失函数L_inter对应的损失权重,则L_total=alpha1*L_a+alpha2*L_b+alpha3*L_inter。
在本发明实施例中,所述间隔损失函数L_inter为:
其中,norm_feature1
在本发明实施例中,所述预设阈值可以人为设置,例如:将所述预设阈值设置为0.4,所述间隔损失函数相当于将训练数据中来自两组训练数据的两个batch特征取出并进行归一化,即得到归一化特征向量,并对归一化特征向量逐个相乘,选出点乘大于预设阈值的值相加并除以满足超过阈值的特征对的数量,例如两个batch分别有128个特征和128个特征,即两个batch都有128个图像特征向量,其中有64对特征的余弦相似度超过预设阈值。那么将这64对特征的余弦相似度(归一化特征向量点乘)相加并除以64,给这个值加权重作为loss的一部分。这样做的意义是,如果每个batch来自两组训练数据中的数据特征过于接近,则他们的相似度会被计入loss并当作loss的一部分,只有保持两个数据集中的数据互相之间也维持较大的距离,inter loss才会减少。
在本发明实施例中,通过判断初始模型是否为预训练模型,若是,则确定所述最终的损失函数为每一数据集的损失函数及其对应的损失权重的加权和;若否,则确定间隔损失函数及其对应的损失权重,所述最终的损失函数为每一数据集的损失函数及其对应的损失权重以及间隔损失函数及其对应的损失权重的加权和。本发明能够更好更快地确定最终的损失函数,以更好更快地基于最终的损失函数对初始模型进行训练,从而得到人脸识别模型,进一步提高人脸识别的速度。
步骤S40:根据所述最终的损失函数对初始模型进行训练,得到人脸识别模型,并基于所述人脸识别模型,进行人脸识别。
具体的,通过所述最终的损失函数对初始模型进行训练,得到人脸识别模型,通过对损失函数求梯度以反向传播更新模型中的权重,最终同一类别的特征向量会趋近同一方向。
在获得所述人脸识别模型之后,获取人脸图像,将所述人脸图像输入所述人脸识别模型,获取所述人脸图像的特征向量,计算所述人脸图像的特征向量与人脸数据库中保存的目标人脸的特征向量的夹角余弦值,根据所述夹角余弦值,确定人脸识别结果,例如:若所述夹角余弦值小于或等于预设阈值,则确定匹配对应的目标人脸,若所述夹角余弦值大于预设阈值,则确定不匹配人脸数据库中的目标人脸。
在本发明实施例中,通过提供一种人脸识别方法,应用于电子设备,所述方法包括:获取包含至少两个人种的图像的训练集,根据人种将所述训练集划分为至少两个数据集;确定每一数据集的损失函数及其对应的损失权重;根据每一数据集的损失函数及其对应的损失权重,确定最终的损失函数;根据所述最终的损失函数对初始模型进行训练,得到人脸识别模型,并基于所述人脸识别模型,进行人脸识别。通过根据人种训练对应的损失函数,结合损失函数对应的损失权重组合得到最终的损失函数,以训练人脸识别模型,本发明能够解决人种分布不均匀导致的对某一类人种识别性能下降的技术问题,提高人脸识别模型的综合识别性能。
请参阅图5,图5是本发明实施例提供的一种人脸识别装置的结构示意图;其中,该人脸识别装置,应用于电子设备,具体的,应用于电子设备的处理器。
如图5所示,所述人脸识别装置50,包括:
训练集单元501,获取包含至少两个人种的图像的训练集,根据人种将所述训练集划分为至少两个数据集;
损失权重单元502,用于确定每一数据集的损失函数及其对应的损失权重;
损失函数单元503,用于根据每一数据集的损失函数及其对应的损失权重,确定最终的损失函数;
人脸识别单元504,用于根据所述最终的损失函数对初始模型进行训练,得到人脸识别模型,并基于所述人脸识别模型,进行人脸识别。
在本发明实施例中,所述训练集中的图像包含不同人种,例如:黄种人、白人、黑人,当获取到包含至少两个人种的图像的训练集时,将所述训练集拆分成不同的多个数据集,例如:将包含黄种人、白人的数据集拆分成两个数据集。可以理解的是,当所述训练集包括至少两个数据集,例如:黄种人人脸识别数据集、白人人脸识别数据集时,如果两个数据集的规模差别较大,若将两者合并,将可能导致样本分布不均匀的情况,从而让模型学习到的数据分布模式与期望产生偏差,因此,本发明根据人种对训练集进行划分,划分为至少两个数据集,并将每一数据集送入对应的损失函数,并确定每一损失函数对应的损失权重,以达到更好的训练效果。
在本发明实施例中,所述损失权重单元,具体用于:
根据所述数据集的特性,确定每一数据集对应的损失函数的参数,其中,所述数据集的特性包括数据质量、以及数据类别的数量,例如:所述损失函数为arcface损失函数或softmax损失函数,例如:所述arcface损失函数为:
其中,N为训练集的样本数量,s为缩放系数,m为角度间隔。
其中,利用所述arcface损失函数进行人脸识别训练过程为现有技术,在此不再赘述。
在arcface损失函数中,包含两个参数,分别为缩放系数s和角度间隔m,其中,角度间隔m的作用在于压缩类内间隔(相当于扩充了类间间距),而缩放系数s的作用则是优化梯度下降的效果。可以理解的是,缩放系数s和角度间隔m都是实验性质的参数,对不同数据集会有不同的偏好。其中,根据不同数据集的特性,这两个参数可能有所不同,例如,对于数据质量较好,每个类别包含图片较多的数据集,m可以设置的稍大一些,以让同类数据被充分的压缩在某固定空间范围内。在本发明实施例中,优选地,所述角度间隔m设置成0.5,缩放系数s设置成64。
通过根据训练目的及训练特性,将人脸识别的单任务训练模式拆分成多流数据并行训练的训练模式,对具有同一特性的训练集进行独立的参数控制,本发明能够提升人脸识别模型的综合性能或者按照训练目的提升人脸识别模型的性能。
具体的,所述确定每一数据集的损失函数及其对应的损失权重,包括:根据所述训练集中的每一数据集的比例,确定每一数据集的损失函数对应的损失权重,其中,每一所述数据集的损失函数对应的损失权重与该数据集的比例成正相关。
相当于所述确定每一数据集的损失函数及其对应的损失权重,包括:
根据每一数据集的特性,调整与该数据集对应的损失函数的参数,其中,所述数据集的特性包括数据特征、数据集的样本数量、数据质量、以及数据类别的数量;
根据所述训练集中的每一数据集的比例,确定每一数据集的损失函数对应的损失权重,其中,每一所述数据集的损失函数对应的损失权重与该数据集的比例成正相关。
其中,每一所述数据集的损失函数对应的损失权重与该数据集的比例成正相关,即根据所述训练集中的每一数据集的图像的数量,确定每一数据集的损失函数对应的损失权重,例如:所述训练集包括黄种人数据集和白人数据集,所述黄种人数据集和白人数据集的图像数量的比例为2:1,则确定所述黄种人数据集的损失函数对应的损失权重为2k,所述白人数据集的损失函数对应的损失权重为k,其中,k为调整系数。所述调整系数k可以人为设置。
在本发明实施例中,所述损失函数单元,具体用于:
若初始模型为预训练模型,则所述最终的损失函数为每一数据集的损失函数及其对应的损失权重的加权和。
在本发明实施例中,所述损失函数单元,具体用于:
若所述初始模型为未经训练的模型,则确定间隔损失函数及其对应的损失权重,所述最终的损失函数为每一数据集的损失函数及其对应的损失权重以及间隔损失函数及其对应的损失权重的加权和。
其中,预训练模型是指已经在公开数据集上训练过的人脸识别模型,比如在网上公开的一些网络,或者用其它损失函数训练过的网络。通过判断所述初始模型是否为预训练模型,从而确定是否需要加入间隔损失函数,即inter loss。
可以理解的是,不需要间隔损失函数inter loss的原因在于当人脸识别模型在某个较好的数据集上训练到比较充分的程度之后,已经具有了较强的有效信息提取能力,因此人种差异这样较大的差异反应到任务特征上不会具有很高的相似度,因此,即使加入了inter loss,inter loss的值会为0或者很小的数值,不对训练产生重要或有价值的影响。
具体的,若所述初始模型为预训练模型,则确定所述最终的损失函数为每一数据集的损失函数及其对应的损失权重的加权和,例如:所述训练集包括黄种人和白人的图像,则所述训练集被划分为两个数据集,分别为第一数据集和第二数据集,即黄种人人脸识别数据集、白人人脸识别数据集,假设最终的损失函数为L_total,第一数据集对应的损失函数为L_a,第二数据集对应的损失函数为L_b,alpha1为第一数据集的损失函数对应的损失权重,alpha2为第二数据集对应的损失权重,则L_total=alpha1*L_a+alpha2*L_b。
具体的,若所述初始模型为未经训练的模型,则确定间隔损失函数及其对应的损失权重。可以理解的是,未经训练的模型需要使用间隔损失函数,即inter loss的原因是,当训练集被分为至少两组数据集后,两组数据集之间的信息是独立的,因此两个ID在初始训练时有可能占用了类空间中的相同方向,而各自的损失中却并不包含这一信息。间隔损失函数inter loss的作用则是补充这部分信息,对于占用了同一类方向的向量给予提示。而在预训练模型中不需要这部分信息的原因是当模型在某个较好的数据集上训练到比较充分的程度之后,已经具有了较强的有效信息提取能力,因此人种差异这样较大的差异反应到任务特征上不会具有很高的相似度。
具体的,所述确定间隔损失函数及其对应的损失权重,包括:
根据所述每一数据集的损失函数及其对应的损失权重,确定间隔损失函数及其对应的损失权重。
具体的,若所述训练集被划分为两个数据集,分别为第一数据集和第二数据集,则根据所述第一数据集的损失函数对应的第一损失权重以及所述第二数据集的损失函数对应的第二损失权重,计算所述第一损失权重和第二损失权重的差值,根据所述差值的绝对值,确定所述间隔损失函数的损失权重,其中,所述间隔损失函数的损失权重与所述差值的绝对值成正相关,例如:所述间隔损失函数的损失权重=m*所述差值的绝对值,其中,m>0。
在本发明实施例中,所述训练集被划分为第一数据集和第二数据集,所述间隔损失函数为:
其中,norm_feature1
在本发明实施例中,若所述训练集被划分成三个或三个以上的数据集,则计算多个数据集的损失函数对应的损失权重的方差,根据所述多个数据集的损失函数对应的损失权重的方差,确定所述间隔损失函数的损失权重,例如:所述间隔损失函数的损失权重=n*多个数据集的损失函数对应的损失权重的方差,其中,n>0。
在本发明实施例中,所述间隔损失函数的损失权重一般被设置为[0,5]的范围内,通过将间隔损失函数的损失权重与所述至少两个数据集的损失函数的损失权重关联,能够更好地确定间隔损失函数,以提高人脸识别模型的综合识别性能。
在本发明实施例中,所述确定间隔损失函数及其对应的损失权重,包括:
根据所述每一数据集的损失函数及其对应的损失权重,确定间隔损失函数及其对应的损失权重。
在本发明实施例中,所述训练集被划分为第一数据集和第二数据集,所述间隔损失函数为:
其中,norm_feature1
具体的,若所述初始模型为未经训练的模型,即无预训练模型,假设所述训练集包括黄种人和白人的图像,则所述训练集被划分为两个数据集,分别为第一数据集和第二数据集,即黄种人人脸识别数据集、白人人脸识别数据集,假设最终的损失函数为L_total,第一数据集对应的损失函数为L_a,第二数据集对应的损失函数为L_b,间隔损失函数为L_inter,alpha1为第一数据集的损失函数对应的损失权重,alpha2为第二数据集对应的损失权重,alpha3为间隔损失函数L_inter对应的损失权重,则L_total=alpha1*L_a+alpha2*L_b+alpha3*L_inter。
在本发明实施例中,所述间隔损失函数L_inter为:
其中,norm_feature1
在本发明实施例中,所述预设阈值可以人为设置,例如:将所述预设阈值设置为0.4,相当于将训练数据中来自两组训练数据的两个batch特征取出并进行归一化,即得到归一化特征向量,并对归一化特征向量逐个相乘,选出点乘大于预设阈值的值相加并除以满足超过阈值的特征对的数量,例如两个batch分别有128个特征和128个特征,即两个batch都有128个图像特征向量,其中有64对特征的余弦相似度超过预设阈值。那么将这64对特征的余弦相似度(归一化特征向量点乘)相加并除以64,给这个值加权重作为loss的一部分。这样做的意义是,如果每个batch来自两组训练数据中的数据特征过于接近,则他们的相似度会被计入loss并当作loss的一部分,只有保持两个数据集中的数据互相之间也维持较大的距离,inter loss才会减少。
在本发明实施例中,通过判断初始模型是否为预训练模型,若是,则确定所述最终的损失函数为每一数据集的损失函数及其对应的损失权重的加权和;若否,则确定间隔损失函数及其对应的损失权重,所述最终的损失函数为每一数据集的损失函数及其对应的损失权重以及间隔损失函数及其对应的损失权重的加权和。本发明能够更好更快地确定最终的损失函数,以更好更快地基于最终的损失函数对初始模型进行训练,从而得到人脸识别模型,进一步提高人脸识别的速度。
具体的,所述人脸识别单元,具体用于:
通过所述最终的损失函数对初始模型进行训练,得到人脸识别模型,通过对损失函数求梯度以反向传播更新模型中的权重,最终同一类别的特征向量会趋近同一方向。
在获得所述人脸识别模型之后,获取人脸图像,将所述人脸图像输入所述人脸识别模型,获取所述人脸图像的特征向量,计算所述人脸图像的特征向量与人脸数据库中保存的目标人脸的特征向量的夹角余弦值,根据所述夹角余弦值,确定人脸识别结果,例如:若所述夹角余弦值小于或等于预设阈值,则确定匹配对应的目标人脸,若所述夹角余弦值大于预设阈值,则确定不匹配人脸数据库中的目标人脸。
在本发明实施例中,通过提供一种人脸识别装置,应用于电子设备,所述装置包括:训练集单元,获取包含至少两个人种的图像的训练集,根据人种将所述训练集划分为至少两个数据集;损失权重单元,用于确定每一数据集的损失函数及其对应的损失权重;损失函数单元,用于根据每一数据集的损失函数及其对应的损失权重,确定最终的损失函数;人脸识别单元,用于根据所述最终的损失函数对初始模型进行训练,得到人脸识别模型,并基于所述人脸识别模型,进行人脸识别。通过根据人种训练对应的损失函数,结合损失函数对应的损失权重组合得到最终的损失函数,以训练人脸识别模型,本发明能够解决人种分布不均匀导致的对某一类人种识别性能下降的技术问题,提高人脸识别模型的综合识别性能。
请参阅图6,图6为本发明各个实施例的一种电子设备的硬件结构示意图;
如图6所示,该电子设备100包括但不限于:射频单元101、网络模块102、音频输出单元103、输入单元104、传感器105、显示单元106、用户输入单元107、接口单元108、存储器109、处理器110、以及电源1011等部件,所述电子设备100还包括摄像头。本领域技术人员可以理解,图6中示出的电子设备的结构并不构成对电子设备的限定,电子设备可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。在本发明实施例中,电子设备包括但不限于电视机、手机、平板电脑、笔记本电脑、掌上电脑、车载终端、可穿戴设备、以及计步器等。
处理器110,用于获取包含至少两个人种的图像的训练集,根据人种将所述训练集划分为至少两个数据集;确定每一数据集的损失函数及其对应的损失权重;根据每一数据集的损失函数及其对应的损失权重,确定最终的损失函数;根据所述最终的损失函数对初始模型进行训练,得到人脸识别模型,并基于所述人脸识别模型,进行人脸识别。
在本发明实施例中,通过根据人种训练对应的损失函数,结合损失函数对应的损失权重组合得到最终的损失函数,以训练人脸识别模型,本发明能够解决人种分布不均匀导致的对某一类人种识别性能下降的技术问题,提高人脸识别模型的综合识别性能。
应当理解的是,本发明实施例中,射频单元101可用于收发信息或通话过程中,信号的接收和发送,具体的,将来自基站的下行数据接收后,给处理器110处理;另外,将上行的数据发送给基站。通常,射频单元101包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器、双工器等。此外,射频单元101还可以通过无线通信系统与网络和其他设备通信。
电子设备100通过网络模块102为用户提供了无线的宽带互联网访问,如帮助用户收发电子邮件、浏览网页和访问流式媒体等。
音频输出单元103可以将射频单元101或网络模块102接收的或者在存储器109中存储的音频数据转换成音频信号并且输出为声音。而且,音频输出单元103还可以提供与电子设备100执行的特定功能相关的音频输出(例如,呼叫信号接收声音、消息接收声音等等)。音频输出单元103包括扬声器、蜂鸣器以及受话器等。
输入单元104用于接收音频或视频信号。输入单元104可以包括图形处理器(Graphics Processing Unit,GPU)1041和麦克风1042,图形处理器1041对在视频捕获模式或图像捕获模式中由图像捕获装置(如摄像头)获得的静态图片或视频的目标图像进行处理。处理后的图像帧可以显示在显示单元106上。经图形处理器1041处理后的图像帧可以存储在存储器109(或其它存储介质)中或者经由射频单元101或网络模块102进行发送。麦克风1042可以接收声音,并且能够将这样的声音处理为音频数据。处理后的音频数据可以在电话通话模式的情况下转换为可经由射频单元101发送到移动通信基站的格式输出。
电子设备100还包括至少一种传感器105,比如光传感器、运动传感器以及其他传感器。具体地,光传感器包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板1061的亮度,接近传感器可在电子设备100移动到耳边时,关闭显示面板1061和/或背光。作为运动传感器的一种,加速计传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别电子设备姿态(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;传感器105还可以包括指纹传感器、压力传感器、虹膜传感器、分子传感器、陀螺仪、气压计、湿度计、温度计、红外线传感器等,在此不再赘述。
显示单元106用于显示由用户输入的信息或提供给用户的信息。显示单元106可包括显示面板1061,可以采用液晶显示器(Liquid Crystal Display,LCD)、有机发光二极管(Organic Light-Emitting Diode,OLED)等形式来配置显示面板1061。
用户输入单元107可用于接收输入的数字或字符信息,以及产生与电子设备的用户设置以及功能控制有关的键信号输入。具体地,用户输入单元107包括触控面板1071以及其他输入设备1072。触控面板1071,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板1071上或在触控面板1071附近的操作)。触控面板1071可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器110,接收处理器110发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板1071。除了触控面板1071,用户输入单元107还可以包括其他输入设备1072。具体地,其他输入设备1072可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆,在此不再赘述。
进一步的,触控面板1071可覆盖在显示面板1061上,当触控面板1071检测到在其上或附近的触摸操作后,传送给处理器110以确定触摸事件的类型,随后处理器110根据触摸事件的类型在显示面板1061上提供相应的视觉输出。虽然在图6中,触控面板1071与显示面板1061是作为两个独立的部件来实现电子设备的输入和输出功能,但是在某些实施例中,可以将触控面板1071与显示面板1061集成而实现电子设备的输入和输出功能,具体此处不做限定。
接口单元108为外部装置与电子设备100连接的接口。例如,外部装置可以包括有线或无线头戴式耳机端口、外部电源(或电池充电器)端口、有线或无线数据端口、存储卡端口、用于连接具有识别模块的装置的端口、音频输入/输出(I/O)端口、视频I/O端口、耳机端口等等。接口单元108可以用于接收来自外部装置的输入(例如,数据信息、电力等等)并且将接收到的输入传输到电子设备100内的一个或多个元件或者可以用于在电子设备100和外部装置之间传输数据。
存储器109可用于存储软件程序以及各种数据。存储器109可主要包括存储程序区和存储数据区,其中,存储程序区可存储至少一个功能所需的应用程序1091(比如声音播放功能、图像播放功能等)以及操作系统1092等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器109可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
处理器110是电子设备的控制中心,利用各种接口和线路连接整个电子设备的各个部分,通过运行或执行存储在存储器109内的软件程序和/或模块,以及调用存储在存储器109内的数据,执行电子设备的各种功能和处理数据,从而对电子设备进行整体监控。处理器110可包括一个或多个处理单元;优选的,处理器110可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器110中。
电子设备100还可以包括给各个部件供电的电源1011(比如电池),优选的,电源1011可以通过电源管理系统与处理器110逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。
另外,电子设备100包括一些未示出的功能模块,在此不再赘述。
优选的,本发明实施例还提供一种电子设备,包括处理器110,存储器109,存储在存储器109上并可在所述处理器110上运行的计算机程序,该计算机程序被处理器110执行时实现上述人脸识别方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
在本发明实施例中,所述电子设备包括但不限于:
(1)移动通信设备:这类设备的特点是具备移动通信功能,并且以提供话音、数据通信为主要目标。这类电子设备包括:智能手机(例如iPhone)、多媒体手机、功能性手机,以及低端手机等。
(2)移动个人计算机设备:这类设备属于个人计算机的范畴,有计算和处理功能,一般也具备移动上网特性。这类电子设备包括:PDA、MID和UMPC设备等,例如iPad。
(3)便携式娱乐设备:这类设备可以显示和播放视频内容,一般也具备移动上网特性。该类设备包括:视频播放器,掌上游戏机,以及智能玩具和便携式车载导航设备。
(4)其他具有视频播放功能和上网功能的电子设备。
本发明实施例还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,该计算机程序被一个或多个处理器执行时实现上述人脸识别方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。其中,所述的计算机可读存储介质,如只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
以上所描述的装置或设备实施例仅仅是示意性的,其中所述作为分离部件说明的单元模块可以是或者也可以不是物理上分开的,作为模块单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络模块单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是移动终端,个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上结合附图描述的实施例仅用以说明本发明的技术方案,本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的;在本发明的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本发明的不同方面的许多其它变化,为了简明,它们没有在细节中提供;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。
- 一种人脸识别方法、人脸识别装置及电子设备
- 一种人脸识别方法、人脸识别装置及电子设备