一种人脸识别模型的训练系统及方法与流程

文档序号:17162607发布日期:2019-03-20 00:57阅读:2178来源:国知局
一种人脸识别模型的训练系统及方法与流程

本发明涉及一种生物识别技术,特别是涉及基于人的脸部特征信息进行身份识别的方法。



背景技术:

人脸识别:是基于人的脸部特征信息进行身份识别的一种生物识别技术。

目前,业界通常运用深度学习的方法训练人脸分类模型,训练过程中,训练集一个人算是一类。在训练过程中,监督函数一般使用softmax或其改进算法。对于分类模型训练,占用显存主要是网络的分类器部分,而需要分类的类目数量越多,占用显存越多,故由于受到显存等硬件设备限制,使用softmax监督函数的方法无法训练类目为几十万的大分类模型。对此,提出一种新方法,使得利用softmax或其改进函数能训练大分类模型。

如图1所示,传统方法中,每块显卡共享同一数据输入和相同的分类器;一般在工业界,一个可以商用的人脸识别模型,往往是在上百万甚至是上千万人的训练集上的训练产物,但是,一般在单条显存为12g的显卡上,当特征向量维度为512维时,分类器的数量一般最大在30万左右,否则会面临显存溢出等问题。大训练集和显存限制成为了人脸识别模型训练中的主要矛盾。

针对这个问题,先后有人提出与softmax完全不同的度量损失函数,比如contrastiveloss和tripletloss等损失函数。虽然,在tripletloss上,google提出的facenet取得的不错的效果,但是tripletloss调试比较困难,对样本比较敏感。



技术实现要素:

鉴于现有技术中存在的问题,本发明提供一种人脸识别模型的训练系统,其特征在于:所述系统包括数据输入层、特征融合层、分类器和损失函数;

所述数据输入层不停的遍历训练样本图像;

所述特征融合层提取每一张图的深度特征;

所述分类器对所述样本图像进行分类;

所述损失函数再依据分类结果和所述样本图像的真实标签作比对;

所述分类器包括多个分类器,不同的分类器对所述样本图像的不同内容进行分类。

优选地,所述系统还包括检测装置,用于检测所述系统中显卡的数量和大小,每个显卡训练不同的分类器,根据显卡的数量和大小,将所述样本图像分别分配给每个显卡。

优选地,在训练过程中,不同的分类器之间不通信,不同分类器之间参数互不更新。

优选地,每块显卡分别建立自己独特的存储模型。

优选地,每块显卡的输入数据有所交叠,所述显卡的输入数据包括所述样本图像及所述样本图像的真实标签。

优选地,所述特征融合层为特征提取单元。

本发明还提供了一种人脸识别模型的训练方法,其特征在于:所述方法包括以下步骤:

步骤s1:所述训练系统的检测装置检测所述系统中显卡的数量和大小,根据显卡的数量和大小,将所述样本图像分别分配分配给每块显卡;

步骤s2:所述特征融合层提取每一张所述样本图像的深度特征,输入所述分类器进行分类,所述损失函数层再依据分类结果和所述样本图像的真实标签作比对,反向传播更新各层参数。

优选地,每块显卡的输入数据有所交叠,所述显卡的输入数据包括所述样本图像及所述样本图像的真实标签。

优选地,不同的分类器之间不通信,不同分类器之间参数互不更新。

优选地,所述特征融合层为特征提取单元。

本发明的发明点包括但不限于以下几点:

(1)不同的分类器对应不同的数据,有效解决了在训练人脸识别模型中,因为显存限制而无法训练大规模人脸数据集的问题;在人脸识别训练这一特殊领域,将显存与不同的分类器相对应,这是本发明的发明点之一。

(2)训练过程中,每块显卡的分类器有着不同的参数,互不通信,要让每块卡的分类器参数互不更新,同时,每块卡都有独立的存储模型;现有技术中对于每块显卡并没有严格的区分,对显卡间的通信并没有限定。本发明将每块显卡设定为独立的,具有独立的存储模型,保证了训练的独立性,更利于大数据量的人脸识别通信。这是本发明的发明点之一

(3)每块显卡的输入数据有所交叠;训练过程中,由于一个类别在多张卡的分类器上,在整个特征提取网络拟合数据集的时候,不同卡的分类器之间的差异性在一定程度上被降低,故使得网络更好收敛,同时特征表达更加充分。使得特征提取网络更加充分的拟合训练数据,提升网络的鲁棒性。这是本发明的发明点之一。

附图说明

图1是传统方法中,人脸识别模型的训练方法;

图2是本发明中,人脸识别模型的训练方法。

具体实施例

下面结合附图并通过具体实施方式来进一步说明本发明的技术方案。

为更好地说明本发明,便于理解本发明的技术方案,本发明的典型但非限制性的实施例如下:

用深度学习方法训练人脸识别模型,则网络模型一般由数据输入层、特征融合层、分类器和损失函数构成。训练方法同训练普通分类网络相同。数据输入层不停的遍历训练图像,特征融合层提取每一张图的深度特征,输入分类器进行分类,损失函数层再依据分类结果和样本真实标签作比对,反向传播更新各层参数。在多卡多机训练中,每块卡的输入数据同源,且网络每一层均会互相通信。每次迭代,各层参数会作一次平均,以保证每块显卡上的参数相同。当模型训练好以后,一般会丢弃分类器,当有新的图像输入至网络,特征提取层会提取这张图像的深度特征,一般输出特征为512维的特征向量。

人脸识别是一个很特殊的分类任务,在训练过程中,训练集中一个人被当作一类,而往往最普通的训练集中有都有上万人,故人脸识别网络模型都有着巨大的分类器。一般在工业界,一个可以商用的人脸识别模型,往往是在上百万甚至是上千万人的训练集上的训练产物。

实施例1

本实施例提供一种人脸识别系统,具体包括人脸识别模型,其采用深度学习方法训练得到,网络模型由数据输入层、特征融合层、分类器和损失函数构成,其中损失函数为softmax函数。

所述数据输入层不停的遍历训练样本图像;所述特征融合层提取每一张图的深度特征;所述分类器对所述样本图像进行分类;所述损失函数再依据分类结果和所述样本图像的真实标签作比对。

上述系统还包括检测装置,用于检测系统中显卡的数量和大小,根据显卡的数量和大小,训练集中的数据被分配给每个显卡相应数量的数据;具体分配规则如下:如果检测到有n个显卡,并且每个显卡的显存大小相同,就将训练集中的数据n等分分给每个显卡,如果每个显卡的显存并不相同,则依据显存大小进行分配,例如,有的显卡的显存为12g,有的为6g,则12g显卡分配的数据量为6g显卡的一倍。并且要求每个显卡分配的训练集数据或是训练的分类器数量不能超过其上限;一般在单条显存为12g的显卡上,当特征向量维度为512维时,分类器的类别数量一般最大在30万左右。

每个显卡对应不同的训练集数据,而每个分类器也相应对应不同的训练集数据,在训练过程中,要求分类器不通信,由于每块显卡上分类器是不同的,相互通信反而会影响模型的训练。训练过程中,使用随机梯度下降法计算损失,同时,每块卡分别存储各自的模型参数。

如图2所示,为本发明的人脸识别模型,训练集数据根据显卡的数量及大小相应的分为若干数据集,每个显卡训练不同的分类器,但所有显卡或分类器共有相同的特征提取单元。

每个数据集之间并不相同,例如,最终输出的特征向量为512维特征向量,每个训练集数据包括所有图像本身以及标识出的脸型,头发,眉毛,眼睛,鼻子,嘴巴,肤色等512维特征向量中的一部分,例如:

第一显卡包括所有图像本身以及标识出眼睛的相关标识数据;

第二显卡包括所有图像本身以及标识出的头发相关标识数据;

第三显卡包括所有图像本身以及标识出的脸型相关标识数据;

……

第n显卡包括所有图像本身以及标识出的嘴巴相关标识数据;

第n+1显卡包括所有图像本身以及标识出的鼻子相关标识数据;

其中第一显卡训练的分类器包括第一分类器,第二分类器……;第一分类器具体用于分类眼睛的颜色,第二分类器用于分类单眼皮,双眼皮。

以上数据中,头发的相关数据可以包括发型,头发的颜色等,眼睛的相关数据可以包括眼睛大小,眼睛的颜色,眼睛的形状,单眼皮双眼皮等,嘴巴的相关数据可以包括嘴巴的形状,嘴唇的颜色等。

在一般训练系统中,多机器或多显卡训练模型时,有多种存储模型的方案。比如,每块卡分别完成一次图像的前向和反向传播,在互相通信更新参数,存储模型时只存第一块卡的参数;或者把所有卡的特征提取层的输出都集中到第一块卡上完成前向传播,等反向传播时,再将各参数分发到对应卡上,存储模型时只存第一块卡的参数;

但由于本发明中,每块卡的分类器有着不同的参数,故不能使用集中-分发操作,也不能单纯的存储第一块卡的模型参数。对此,需要修改训练系统的训练逻辑。在训练过程中,要让每块卡的分类器参数互不更新,同时,每块卡都有独立的存储模型。

以上方案中由于不同的分类器对应不同的数据,有效解决了在训练人脸识别模型中,因为显存限制而无法训练大规模人脸数据集的问题。

实施例2

本实施例提供一种人脸识别模型的训练方法,所述方法由人脸识别训练系统实施。

步骤s1:人脸识别训练系统的检测装置检测系统中显卡的数量和大小,根据显卡的数量和显存大小,将训练集中相应数量的数据输入给每块显卡。当训练集类别数量除以显卡数小于分类器最大分类数目时,一般会令每块显卡之间的输入数据有交叠。举例来说,假设有8张显卡,训练集有80万个类别,所谓交叠,即在保证每张卡的分类器平均分到10万个类别后,随机从其它7张卡长抽取20万个类别添加到本张卡的分类器上,这样每个类别至少存在两张卡上,即不同卡的分类器存在弱耦合关系。训练过程中,由于一个类别在多张卡的分类器上,在整个特征提取网络拟合数据集的时候,不同卡的分类器之间的差异性在一定程度上被降低,故使得网络更好收敛,同时特征表达更加充分。总之,交叠的数据能使得特征提取网络更加充分的拟合训练数据,提升网络的鲁棒性。

步骤s2:人脸识别模型的特征融合层提取每一张图像的深度特征,输入分类器进行分类,人脸识别模型的损失函数层再依据分类结果和样本(即每一张图像)真实标签作比对,反向传播更新各层参数;这里的特征融合层具体为特征提取网络。

在步骤s1中,在训练过程中,训练集中一个人被当作一类,当系统检测到训练集人数超过各显卡显存之和时,如当训练集人数增加时,只需要对应增加显卡数量,即可以完成模型训练,提升模型性能。这里创造性的提出将一个人被当作一类,从而可以以增加显示数量方式应对训练集人数的增加。

在步骤s2中,特征提取网络根据每块显卡被输入的具体数据,对应的提取相应的特征,例如,第一显卡被输入的数据为所有图像本身以及眼睛相关标识数据,特征提取层需要从每张图像中提取眼睛相关的深度特征,然后将这些深度特征输入到第一显卡训练的分类器中进行分类训练。

以上详细描述了本发明的优选实施方式,但是,本发明并不限于上述实施方式中的具体细节,在本发明的技术构思范围内,可以对本发明的技术方案进行多种简单变型,这些简单变型均属于本发明的保护范围。

另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合,为了避免不必要的重复,本发明对各种可能的组合方式不再另行说明。

此外,本发明的各种不同的实施方式之间也可以进行任意组合,只要其不违背本发明的思想,其同样应当视为本发明所公开的内容。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1