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

特征提取网络的训练方法、人脸识别方法和装置与流程

2021-12-07 20:08:00 来源:中国专利 TAG:


1.本发明涉及深度学习技术,尤其涉及一种特征提取网络的训练方法、人脸识别方法和装置。


背景技术:

2.人脸识别模型的训练依赖大量训练数据,随着人脸识别技术的发展,可用于模型训练的公开数据也在急速增长。从起初的几百或者几千人的级别,增长到了几万或者几十万的级别。此外在工业界,各大厂商内部的私有数据更是达到百万级甚至亿级,如何采用有限的训练资源对百万级甚至亿级人的人脸数据库进行训练是一个极具挑战性的问题。
3.由于采用常规深度神经网络训练人脸识别模型时,最后一层需要用一个全联接层对网络提取的特征进行分类,而全联接层参数量极大。假设输入的一个批次样本数为n个,神经网络提取的特征维度为f,总的分类人数为c,则全联接层的参数量为n*f*c,通常每个参数所占空间为4个字节,则全联接层需要占用显存大小为n*f*c*4个字节。按照最常见的配置:n=512,f=512,若c=10万,则所需显存大小等于512*512*10^5*4字节,约等于97.6g,若c=100万,则需要976g,而这仅仅是一个全联接层所需的显存大小,其他卷基层等也需要占用不少显存。目前主流的图形处理单元(graphics processing unit,简称gpu),单卡显存一般不超过24g,所以无法直接支持海量人脸数据的训练。目前,一种方式采用传统度量学习,对于人物数量极大的数据库进行训练时,对神经网络提取的特征采用contrastive loss或triplet loss进行学习,这样不用对特征再采用全联接层进行分类,免去了全联接层的巨大参数量,从而可以按批次对所有样本进行训练。
4.对于传统度量学习而言,如何选择每次训练的正样本对和负样本对是一个非常复杂并充满技巧性的工作,常常采用各种难样本挖掘方法来选择每次训练的正负样本对。但是难样本挖掘本身比较耗时,会导致训练的速度非常缓慢。另外,如果没有采用分类训练预训练好的模型作为初始化模型,直接采用传统度量学习训练出的模型往往难以达到较高的精度。


技术实现要素:

5.本发明提供一种特征提取网络的训练方法、人脸识别方法和装置,能够对大规模人脸数据库进行训练。
6.本发明第一方面提供一种特征提取网络的训练方法,包括:
7.对人脸数据库中的样本进行聚类,得到多个训练组,每个训练组中的样本较为相似;
8.从m个训练组中采样m个样本,m为训练批次的大小,每个训练组中选择一个样本;
9.从所述m个训练组中获取所述m个样本的两张图片,组成第一训练队列和第二训练队列,所述第一训练队列和所述第二训练队列中分别包括所述m个样本的一张图片;
10.将所述第一训练队列输入第一特征提取网络,将所述第二训练队列输入第二特征
提取网络;
11.根据正样本对的特征相似度以及负样本对的特征相似度计算损失函数,其中,所述第一特征提取网络和所述第二特征提取网络提取的同一个样本的特征组成一个正样本对,所述第一特征提取网络提取的特征和特征队列中的特征组成负样本对,所述特征队列用于存储所述第二特征提取网络提取的之前训练批次的样本的特征;
12.根据所述损失函数更新所述第一特征提取网络的参数;
13.根据所述第一特征提取网络的更新后的参数,采用动量参数更新方法更新所述第二特征提取网络的参数;
14.在所述训练批次训练结束后,将所述第二特征提取网络提取到的特征更新到所述特征队列中;
15.从所述多个训练组中采样得到下一个训练批次,执行上述训练过程直至所述人脸数据库中的所有样本都被训练一次,则结束当前训练周期。
16.可选的,所述对人脸数据库中的样本进行聚类,得到多个训练组,包括:
17.采用所述人脸数据库中的部分数据预先训练得到第三特征提取模型;
18.采用所述第三特征提取模型提取所述人脸数据库中的所有图片的特征;
19.根据所述人脸数据库中的所有图片的特征对所述人脸数据库中的样本进行聚类,得到所述多个训练组。
20.可选的,所述根据正样本对的特征相似度以及负样本对的特征相似度计算损失函数,包括:
21.通过如下公式计算所述损失函数:
[0022][0023]
其中,loss表示所述损失函数,m表示所述训练批次的大小,feat
i1
表示所述m个样本中第i个样本通过所述第一特征提取网络提取到的特征,feat
i2
表示所述m个样本中第i个样本通过所述第二特征提取网络提取到的特征,m为特征间隔,s为缩放系数,k表示所述特征队列的大小,feat
j
表示所述特征队列中的第j个特征,m、m、s和k均为预先设置的固定值,.用于计算两个特征的相似度。
[0024]
可选的,所述根据所述第一特征提取网络的更新后的参数,采用动量参数更新方法更新所述第二特征提取网络的参数,包括:
[0025]
根据如下公式更新所述第二特征提取网络的参数:
[0026]
θ2=mθ2 (1

m)θ1[0027]
其中,θ2表示所述第二特征提取网络的参数,θ1表示所述第一特征提取网络的参数,m为动量,m的取值为大于0且小于1。
[0028]
可选的,在所述训练批次训练结束后,将所述第二特征提取网络提取到的特征更新到所述特征队列中,包括:
[0029]
当所述特征队列未溢出时,将所述第二特征提取网络提取到的特征插入上一训练批次对应的特征之后;或者,
[0030]
当所述特征队列溢出时,从所述特征队列中删除最早插入的m个特征,将所述第二
特征提取网络提取到的特征插入上一训练批次对应的特征之后。
[0031]
可选的,当所述人脸数据库中所有样本都被训练一次之后,清空所述特征队列,进入下一个训练周期。
[0032]
可选的,所述从所述m个训练组中获取所述m个样本的两张图片,包括:
[0033]
针对所述m个样本中的任一样本,当所述样本对应的训练组中存在多张图片时,从所述多张图片中选取所述样本的两张图片;或者,
[0034]
当所述样本对应的训练组中只存在一张图片时,对存在的一张图片进行变换得到所述样本的另一张图片。
[0035]
可选的,所述根据所述损失函数更新所述第一特征提取网络的参数,包括:
[0036]
根据所述损失函数采用随机梯度下降法对所述第一特征提取网络的参数进行更新。
[0037]
本发明第二方面提供一种人脸识别方法,所述方法包括:
[0038]
将待识别图片输入到特征提取网络中,得到所述待识别图片的特征,所述特征提取网络为采用上述第一方面所述方法训练得到的第一特征提取网络;
[0039]
计算所述待识别图片的特征与存储的目标图片的特征的相似度,所述目标图片的特征采用所述特征提取网络提取得到;
[0040]
根据所述相似度得到所述待识别图片的识别结果。
[0041]
本发明第三方面提供一种特征提取网络的训练装置,包括:
[0042]
聚类模块,用于对人脸数据库中的样本进行聚类,得到多个训练组,每个训练组中的样本较为相似;
[0043]
采样模块,用于从m个训练组中采样m个样本,m为训练批次的大小,每个训练组中选择一个样本;
[0044]
所述采样模块,还用于从所述m个训练组中获取所述m个样本的两张图片,组成第一训练队列和第二训练队列,所述第一训练队列和所述第二训练队列中分别包括所述m个样本的一张图片;
[0045]
训练模块,用于:
[0046]
将所述第一训练队列输入第一特征提取网络,将所述第二训练队列输入第二特征提取网络;
[0047]
根据正样本对的特征相似度以及负样本对的特征相似度计算损失函数,其中,所述第一特征提取网络和所述第二特征提取网络提取的同一个样本的特征组成一个正样本对,所述第一特征提取网络提取的特征和特征队列中的特征组成负样本对,所述特征队列用于存储所述第二特征提取网络提取的之前训练批次的样本的特征;
[0048]
根据所述损失函数更新所述第一特征提取网络的参数;
[0049]
根据所述第一特征提取网络的更新后的参数,采用动量参数更新方法更新所述第二特征提取网络的参数;
[0050]
在所述训练批次训练结束后,将所述第二特征提取网络提取到的特征更新到所述特征队列中;
[0051]
所述采样模块,还用于从所述多个训练组中采样得到下一个训练批次,所述训练模块还用于执行上述训练过程直至所述人脸数据库中的所有样本都被训练一次,则结束当
前训练周期。
[0052]
本发明第四方面提供一种人脸识别装置,包括:
[0053]
特征提取模块,用于将待识别图片输入到特征提取网络中,得到所述待识别图片的特征,所述特征提取网络为采用第三方面所述装置训练得到的第一特征提取网络;
[0054]
相似度计算模块,用于计算所述待识别图片的特征与存储的目标图片的特征的相似度,所述目标图片的特征采用所述特征提取网络提取得到;
[0055]
识别模块,用于根据所述相似度得到所述待识别图片的识别结果。
[0056]
本发明第五方面提供一种电子设备,包括:至少一个处理器和存储器;
[0057]
所述存储器存储计算机执行指令;
[0058]
所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述至少一个处理器执行如本发明第一方面或者第二方面所述的方法。
[0059]
本发明第六方面提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如本发明第一方面或者第二方面所述的方法。
[0060]
本发明第七方面提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时,实现如本发明第一方面或者第二方面所述的方法。
[0061]
本发明提供的特征提取网络的训练方法、人脸识别方法和装置,适用于对大规模人脸数据库进行训练,通过对人脸数据库中的样本进行聚类,得到多个训练组,每个训练组中的样本较为相似,从m个训练组中采样m个样本得到当前训练批次的样本,从m个训练组中获取m个样本的两张图片,组成两个训练队列,将两个队列分别输入两个模型进行训练,将两个模型提取的同一个样本的特征组成一个正样本对,将需要训练得到的目标模型提取的特征和特征队列中的特征组成负样本对,特征队列用于存储用于辅助训练的模型提取的之前训练批次的样本的特征,根据正样本对的特征相似度以及负样本对的特征相似度计算损失函数,进一步采用动量更新方式更新两个模型的参数和特征队列。上述方法避免了模型训练时采用全连接层进行分类时产生的巨大参数量,该方法在占用显存较少的情况下,能够快速训练得到精度较高的模型。
附图说明
[0062]
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
[0063]
图1为本发明提供的模型训练方法的原理图;
[0064]
图2为本发明实施例一提供的特征提取网络的训练方法的流程图;
[0065]
图3为本发明实施例二提供的一种对人脸数据库中的样本进行聚类的方法;
[0066]
图4为本发明实施例三提供的人脸识别方法;
[0067]
图5为本发明实施例四提供的特征提取网络的训练装置的结构示意图;
[0068]
图6为本发明实施例五提供的人脸识别装置的结构示意图;
[0069]
图7为本发明实施例六提供的电子设备的一种结构示意图。
[0070]
通过上述附图,已示出本公开明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本公开构思的范围,而是通过参考特定实施例为
本领域技术人员说明本公开的概念。
具体实施方式
[0071]
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
[0072]
本发明提供一种特征提取网络的训练方法和人脸识别方法,该特征提取网络用于进行人脸识别,本发明提供的模型训练方法能够对超大规模的人脸数据库进行训练,该超大规模的人脸数据库可以包括十万级别、百万级别甚至亿级别的样本,每个样本即一个人,每个样本可能有一张或者多张图片。
[0073]
图1为本发明提供的模型训练方法的原理图,如图1所示,该模型训练过程主要包括以下几个步骤:人物粗聚类、数据采样、损失函数计算、模型1参数更新、模型2参数更新和特征队列更新。
[0074]
人物粗聚类用于将人脸数据库中的大量相似样本进行聚类,得到多个训练组,每个训练组中的人较为相似,每个训练组可以有一个标识,图1中用组_1、组_2
……
,组_n1表示,共n1个训练组。每个训练组中包括多个样本,多个训练组的包括的样本个数可能相同也可能不同,多个训练组包括的样本不会重复,即一个样本只能唯一属于一个训练组。每个样本有唯一的标识(identity,简称id),示例性的,图1中用id_1、id_2
……
id_n2表示人脸数据库中的样本,共n2个样本。样本id_1、id_8属于组_1,样本id_4、id_9属于组_2,样本id_900、id_87属于组_n1。
[0075]
数据采样根据训练批次的大小进行采样,训练批次的大小即训练样本的个数,数据采样过程会为每个样本获取两张图片,同一样本的两张图片分别用img_i和img_j表示,将同一样本的两张图片分别输入两个特征提取网络:第一特征提取网络和第二特征提取网络,特征提取网络也称为特征提取网络模型。特征提取网络用于提取输入的图片的特征,两个特征提取网络的参数不同。
[0076]
两个特征提取网络提取的同一个样本的特征配对得到一个正样本对,第一特征提取网络提取的特征与特征队列中的样本配得到多个负样本对。特征队列中保存有第二特征提取网络提取的之前的多个训练批次对应的特征,其中,特征队列中保存的特征对应的样本与本次训练批次中的样本不会重复,从而能够保证特征队列中的特征都能够与第一特征提取网络提取的特征配对得到负样本对。
[0077]
在计算损失函数时,需要计算正样本对的相似性,负样本对的相似性,根据正样本对的相似性和负样本的相似性计算损失函数。
[0078]
在计算得到损失函数后,根据该损失函数更新第一特征提取网络的参数,然后根据第一特征提取网络的参数更新第二特征提取网络的参数,在训练批次的样本训练结束之后,将第二特征提取网络提取到的特征存储到特征队列中。
[0079]
通过上述过程完成人脸数据库中的一个训练批次的训练,在一次训练周期内,需要将人脸数据库中的所有样本都进行一次训练。可选的,可以通过多个训练周期对人脸数据库进行多次训练。
[0080]
图2为本发明实施例一提供的特征提取网络的训练方法的流程图,如图2所示,本实施例提供的方法包括以下步骤:
[0081]
s101、对人脸数据库中的样本进行聚类,得到多个训练组,每个训练组中的样本较为相似。
[0082]
该人脸数据库中可以包括十万级别、百万级别甚至亿级别的样本,通过聚类将相似的人脸划分到一个训练组中,则后续进行训练时,可以从每个训练组中随机采样一个样本组成训练样本,这样可以保证每次训练时训练样本的多样性,从而能够保证配对时得到更多有效的负样本对,不仅能够加快模型训练速度,还能提升模型训练精度。
[0083]
可以采用已有的聚类方法对人脸数据库中的样本进行聚类,本实施例不对此进行限制。示例性的,将一个包含1亿样本的人脸数据库通过聚类,得到10万个训练组。
[0084]
s102、从m个训练组中采样m个样本,m为训练批次的大小,每个训练组中选择一个样本。
[0085]
训练批次的大小预先设定好,m例如为128,则每次训练采样128个训练组,从每个训练组中随机选择一个样本,共得到128个样本,该128个样本组成训练批次。
[0086]
s103、从m个训练组中获取m个样本的两张图片,组成第一训练队列和第二训练队列,第一训练队列和第二训练队列中分别包括m个样本的一张图片。
[0087]
针对m个样本中的任一样本,当该样本对应的训练组中存在该样本的多张图片时,从多张图片中选取该样本的两张图片。当该样本对应的训练组中只存在该样本一张图片时,对存在的一张图片进行变换得到该样本的另一张图片。示例的,可以采用随机剪裁方式得到另一张图片,或者,对图片进行美化处理得到另一张图片。
[0088]
本实施例中,第一训练队列和第二训练队列包括的样本相同,但是包括的样本的图片不同,第一训练队列和第二训练队列中均包括m张图片。
[0089]
s104、将第一训练队列输入第一特征提取网络,将第二训练队列输入第二特征提取网络。
[0090]
第一特征提取网络和第二特征提取网络的参数不同,第二特征提取网络的参数是根据第一特征提取网络的参数更新得到的,二者具有一定的关系。在对第一特征提取网络初始化后,可以根据第一特征提取网络的初始参数得到第二特征提取网络的初始参数。
[0091]
s105、根据正样本对的特征相似度以及负样本对的特征相似度计算损失函数,其中,第一特征提取网络和第二特征提取网络提取的同一个样本的特征组成一个正样本对,第一特征提取网络提取的特征和特征队列中的特征组成负样本对,该特征队列用于存储第二特征提取网络提取的之前训练批次的样本的特征。
[0092]
因为在每个训练周期的训练过程中是序列组中按照顺序取样本进行训练的,这样保证了当前训练批次的样本在之前从未被取出过,所以特征队列里边不会出现当前训练批次中样本的特征,所以特征队列都可以用于和当前训练批次中样本组成负样本对。
[0093]
特征队列的大小是指特征队列中能够保存的样本的特征的数量,特征队列的大小可以根据所用训练设备的显存来调整,特征队列越大,特征队列中包含的样本越多,可配对的负样本对也越多,相应的所占显存也越大。假设特征队列大小为32768,即特征队列中可以保存32768个样本的特征,特征维度大小为512,每个样本的特征占用的存储空间为4字节,则对于训练批次中的每个训练样本而言,可配的负样本对个数为32768个,所需显存大
小为32768*512*4字节,即(32768*512*4)/(1024*1024*1024)gb=0.0625g。
[0094]
一个好的模型,应该能够明显区分正样本对和负样本对,正样本对和负样本对可以通过图片的相似度确定,正样本对中两张图片的相似度较大,负样本对中两张图片的相似度很小,正样本对的特征相似度的分布区间和负样本对的特征相似度的分布区间的距离越大,且分布区间越集中,模型的收敛越快。
[0095]
示例性的,本实施例中可以采用如下公式计算损失函数:
[0096][0097]
其中,loss表示损失函数,m表示训练批次的大小,feat
i1
表示m个样本中第i个样本通过第一特征提取网络提取到的特征,feat
i2
表示m个样本中第i个样本通过第二特征提取网络提取到的特征,m为特征间隔,s为缩放系数,k表示特征队列的大小,feat
j
表示特征队列中的第j个特征,m、m、s和k均为预先设置的固定值,.用于计算两个特征的相似度,feat
i1
.feat
i2
表示第i个样本通过两个特征提取网络提取到的特征的相似度,feat
i1
.feat
i2
表示第i个样本通过第一特征提取网络提取到的特征与特征队列中的第j个特征的相似度。两个特征的相似度可以通过欧式距离、余弦距离或者汉明距离表示,本实施例不对此进行限制。
[0098]
m表示特征间隔,设置的目的是为了让学出来的特征更具有区分度,一般可设为0.35,s为人脸识别中常用的缩放(scale)系数,可设为32。
[0099]
s106、根据损失函数更新第一特征提取网络的参数。
[0100]
示例性的,根据损失函数,采用随机梯度下降法或者梯度下降法对第一特征提取网络的参数进行更新。当然,可以采用已有的其他方式更新第一特征提取网络的参数。
[0101]
s107、根据第一特征提取网络的更新后的参数,采用动量参数更新方法更新第二特征提取网络的参数。
[0102]
如果每次训练都让第二特征提取网络的参数和第一特征提取网络的参数完全一样,则特征队列中的特征会有突变,突变的特征会导致训练难以收敛,所以本实施例中采用moco提出的动量更新方法更新第二特征提取网络的参数,让第二特征提取网络提取的特征保持连续性。
[0103]
示例性的,根据如下公式更新第二特征提取网络的参数:
[0104]
θ2=mθ2 (1

m)θ1[0105]
其中,θ2表示第二特征提取网络的参数,θ1表示第一特征提取网络的参数,m为动量,m的取值为大于0且小于1。通常情况下,m设定为0

1之间的较大值,以保持特征队列中特征的连续性,例如,m的取值为0.99或0.98。
[0106]
s108、在该训练批次训练结束后,将第二特征提取网络提取到的特征更新到特征队列中。
[0107]
在每个训练批次训练结束后,将第二特征提取网络提取到的特征更新到特征队里中,当特征队列未溢出时,将第二特征提取网络提取到的特征插入上一训练批次对应的特征之后;或者,当特征队列溢出时,从特征队列中删除最早插入的m个特征,将第二特征提取网络提取到的特征插入上一训练批次对应的特征之后。
[0108]
在当前训练匹配训练结束之后,返回执行步骤s102

s108,直至人脸数据库中的所有样本都被训练一次,则结束当前训练周期。
[0109]
可选的,当人脸数据库中所有样本都被训练一次之后,清空该特征队列,进入下一个训练周期。在实际过程中,一个训练周期内模型可能无法收敛,需要通过多个训练周期对人脸数据库中的数据进行训练。
[0110]
通过上述训练过程训练得到第一特征提取网络能够用于人脸识别,第二特征提取网络用于辅助模型训练。
[0111]
本实施例的方法,适用于对大规模人脸数据库进行训练,通过对人脸数据库中的样本进行聚类,得到多个训练组,每个训练组中的样本较为相似,从m个训练组中采样m个样本得到当前训练批次的样本,从m个训练组中获取m个样本的两张图片,组成两个训练队列,将两个队列分别输入两个模型进行训练,将两个模型提取的同一个样本的特征组成一个正样本对,将需要训练的目标模型提取的特征和特征队列中的特征组成负样本对,该特征队列用于存储用于辅助训练的模型提取的之前训练批次的样本的特征,根据正样本对的特征相似度以及负样本对的特征相似度计算损失函数,进一步采用动量更新方式更新两个模型的参数和特征队列。该方法通过计算两张图片的相似度确定两张图片是否属于同一个人,避免了采用全连接层进行分类时产生的巨大参数量,训练过程中除了模型的卷积层占用的显存外,只有特征队列占用少量显存,而特征队列的大小可以根据训练设备的显存进行设置,从而使得该方法在占用显存较少的情况下,能够快速训练得到精度较高的模型。
[0112]
图3为本发明实施例二提供的一种对人脸数据库中的样本进行聚类的方法,本实施例是对实施例一中步骤s101的一种实现方式的描述,如图3所示,步骤s101包括以下步骤:
[0113]
s1011、采用人脸数据库中的部分数据预先训练得到第三特征提取模型。
[0114]
可以采用已有的训练方式训练得到第三特征提取模型,在训练时只采用人脸数据库中的部分数据进行训练。
[0115]
s1012、采用第三特征提取模型提取人脸数据库中的所有图片的特征。
[0116]
s1013、根据人脸数据库中的所有图片的特征对人脸数据库中的样本进行聚类,得到多个训练组。
[0117]
可以采用已有的聚类方法对人脸数据库中的所有样本进行聚类,常用的聚类方法包括:基于划分的聚类方法,例如,k

means算法;基于层次的聚类方法,例如基于层次结构的平衡迭代聚类方法(balanced iterative reducing and clustering using hierarchies,简称birch)算法;基于密度的聚类算法,例如,dbsacn算法;基于网格的聚类算法,例如,sting算法、wave

cluster算法、clique算法等。
[0118]
示例性的,先根据人脸数据库中的所有图片的特征确定人脸数据库中每个类别的特征中心,类别的特征中心能够反映该类样本的主要特征,进一步根据类别的特征进行聚类,得到多个训练组,每个训练组内的样本是相似的。
[0119]
本实施例中,通过聚类将相似的样本聚类到一个训练组中,不同训练组之间的样本的差异较大,后续在训练时,每次从多个不同训练组中选择样本,能够保证训练样本的多样性,提升模型训练的速度。
[0120]
图4为本发明实施例三提供的人脸识别方法,本实施例在进行人脸识别时采用实
施例一中训练得到的第一特征提取网络,如图4所示,本实施例提供的方法包括以下步骤:
[0121]
s201、将待识别图片输入到特征提取网络中,得到待识别图片的特征。
[0122]
其中,该特征提取网络为采用实施例一所述方法训练得到的第一特征提取网络,其中,对特征提取网络进行训练的设备和人脸识别的设备可以是同一个设备,也可以是不同的设备,当二者为不同的设备时,人脸识别的设备使用的特征提取网络可以是训练设备发送的。
[0123]
s202、计算待识别图片的特征与存储的目标图片的特征的相似度,目标图片的特征采用该特征提取网络提取得到。
[0124]
目标图片的特征可以由该特征提取网络预先提取并存储到本地,当提取到待识别图片的特征之后,将待识别图片的特征和存储的一个或者多个目标图片的特征进行匹配。目标图片的特征也可以是该特征提取网络实时提取的,当提取到待识别图片的特征之后,依次提取目标图片的特征,并将待识别图片的特征和存储的一个或者多个目标图片的特征进行匹配。
[0125]
计算两个图片的特征的相似度时可以采用已有的任意算法进行计算,本实施例不对此进行限制,该相似度可以为欧式距离、余弦距离(也称为余弦相似度)或者汉明距离。
[0126]
s203、根据相似度得到待识别图片的识别结果。
[0127]
如果两张图片的相似度大于或等于预设值,则说明两张图片中的人是同一个人,如果两张图片的相似度小于该预设值,则说明两张图片中的人不是同一个人,通过比较相似度与预设值的大小,可以识别出待识别图片的人。
[0128]
例如,常见的人脸识别场景为手机人脸解锁,用户需要预先进行注册,将自己的人脸图片输入人脸识别模块,人脸识别模块会提取用户的人脸特征并存储,后续在解锁时,手机的摄像头实时采集用户的人脸图片,人脸识别模块提取采集到的人脸图片的特征,计算采集到的人脸图片的特征与存储的人脸特征的相似度,如果相似度大于预设值,则说明当前解锁的人脸是已注册的用户,人脸识别成功,解锁屏幕,如果相似度小于预设值,则说明当前解锁人脸不是已注册用户,人脸识别失败,无法解锁屏幕。常见的人脸识别场景还有门禁系统、各种电子支付系统等。
[0129]
图5为本发明实施例四提供的特征提取网络的训练装置的结构示意图,如图5所示,本实施例提供的模型训练装置100包括:
[0130]
聚类模块11,用于对人脸数据库中的样本进行聚类,得到多个训练组,每个训练组中的样本较为相似;
[0131]
采样模块12,用于从m个训练组中采样m个样本,m为训练批次的大小,每个训练组中选择一个样本;
[0132]
所述采样模块12,还用于从所述m个训练组中获取所述m个样本的两张图片,组成第一训练队列和第二训练队列,所述第一训练队列和所述第二训练队列中分别包括所述m个样本的一张图片;
[0133]
训练模块13,用于:
[0134]
将所述第一训练队列输入第一特征提取网络,将所述第二训练队列输入第二特征提取网络;
[0135]
根据正样本对的特征相似度以及负样本对的特征相似度计算损失函数,其中,所
述第一特征提取网络和所述第二特征提取网络提取的同一个样本的特征组成一个正样本对,所述第一特征提取网络提取的特征和特征队列中的特征组成负样本对,所述特征队列用于存储所述第二特征提取网络提取的之前训练批次的样本的特征;
[0136]
根据所述损失函数更新所述第一特征提取网络的参数;
[0137]
根据所述第一特征提取网络的更新后的参数,采用动量参数更新方法更新所述第二特征提取网络的参数;
[0138]
在所述训练批次训练结束后,将所述第二特征提取网络提取到的特征更新到所述特征队列中;
[0139]
所述采样模块12,还用于从所述多个训练组中采样得到下一个训练批次,所述训练模块13还用于执行上述训练过程直至所述人脸数据库中的所有样本都被训练一次,则结束当前训练周期。
[0140]
可选的,所述聚类模块11具体用于:
[0141]
采用所述人脸数据库中的部分数据预先训练得到第三特征提取模型;
[0142]
采用所述第三特征提取模型提取所述人脸数据库中的所有图片的特征;
[0143]
根据所述人脸数据库中的所有图片的特征对所述人脸数据库中的样本进行聚类,得到所述多个训练组。
[0144]
可选的,所述根据正样本对的特征相似度以及负样本对的特征相似度计算损失函数,包括:
[0145]
通过如下公式计算所述损失函数:
[0146][0147]
其中,loss表示所述损失函数,m表示所述训练批次的大小,feat
i1
表示所述m个样本中第i个样本通过所述第一特征提取网络提取到的特征,feat
i2
表示所述m个样本中第i个样本通过所述第二特征提取网络提取到的特征,m为特征间隔,s为缩放系数,k表示所述特征队列的大小,feat
j
表示所述特征队列中的第j个特征,m、m、s和k均为预先设置的固定值,.用于计算两个特征的相似度。
[0148]
可选的,所述根据所述第一特征提取网络的更新后的参数,采用动量参数更新方法更新所述第二特征提取网络的参数,包括:
[0149]
根据如下公式更新所述第二特征提取网络的参数:
[0150]
θ2=mθ2 (1

m)θ1[0151]
其中,θ2表示所述第二特征提取网络的参数,θ1表示所述第一特征提取网络的参数,m为动量,m的取值为大于0且小于1。
[0152]
可选的,在所述训练批次训练结束后,将所述第二特征提取网络提取到的特征更新到所述特征队列中,包括:
[0153]
当所述特征队列未溢出时,将所述第二特征提取网络提取到的特征插入上一训练批次对应的特征之后;或者,
[0154]
当所述特征队列溢出时,从所述特征队列中删除最早插入的m个特征,将所述第二特征提取网络提取到的特征插入上一训练批次对应的特征之后。
[0155]
可选的,当所述人脸数据库中所有样本都被训练一次之后,清空所述特征队列,进入下一个训练周期。
[0156]
可选的,所述采样模块12具体用于:针对所述m个样本中的任一样本,当所述样本对应的训练组中存在多张图片时,从所述多张图片中选取所述样本的两张图片;或者,当所述样本对应的训练组中只存在一张图片时,对存在的一张图片进行变换得到所述样本的另一张图片。
[0157]
可选的,所述根据所述损失函数更新所述第一特征提取网络的参数,包括:
[0158]
根据所述损失函数采用随机梯度下降法对所述第一特征提取网络的参数进行更新。
[0159]
本实施例的装置,可用于执行上述实施例一或者实施例二所述的方法,具体实现方式和技术效果类似,这里不再赘述。
[0160]
图6为本发明实施例五提供的人脸识别装置的结构示意图,如图6所示,本实施例提供的人脸识别装置200包括:
[0161]
特征提取模块21,用于将待识别图片输入到特征提取网络中,得到所述待识别图片的特征,所述特征提取网络为采用权利要求10所述装置训练得到的第一特征提取网络;
[0162]
相似度计算模块22,用于计算所述待识别图片的特征与存储的目标图片的特征的相似度,所述目标图片的特征采用所述特征提取网络提取得到;
[0163]
识别模块23,用于根据所述相似度得到所述待识别图片的识别结果。
[0164]
本实施例的装置,可用于执行上述实施例三所述的方法,具体实现方式和技术效果类似,这里不再赘述。
[0165]
图7为本发明实施例六提供的电子设备的一种结构示意图,如图7所示,该电子设备300包括:处理器31、存储器32和收发器33,所述存储器32用于存储指令,所述收发器33用于和其他设备通信,所述处理器31用于执行所述存储器中存储的指令,以使所述电子设备300执行如上述实施例一至三所述的方法,具体实现方式和技术效果类似,这里不再赘述。
[0166]
本发明实施例七提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如上述实施例一至三所述的方法,具体实现方式和技术效果类似,这里不再赘述。
[0167]
本发明实施例八提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时,实现如上述实施例一至三所述的方法,具体实现方式和技术效果类似,这里不再赘述。
[0168]
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本发明旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求书指出。
[0169]
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求书来限制。
再多了解一些

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

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

相关文献