CN113762019B - 特征提取网络的训练方法、人脸识别方法和装置 - Google Patents
特征提取网络的训练方法、人脸识别方法和装置 Download PDFInfo
- Publication number
- CN113762019B CN113762019B CN202110086798.6A CN202110086798A CN113762019B CN 113762019 B CN113762019 B CN 113762019B CN 202110086798 A CN202110086798 A CN 202110086798A CN 113762019 B CN113762019 B CN 113762019B
- Authority
- CN
- China
- Prior art keywords
- training
- extraction network
- feature extraction
- feature
- samples
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000012549 training Methods 0.000 title claims abstract description 288
- 238000000605 extraction Methods 0.000 title claims abstract description 193
- 238000000034 method Methods 0.000 title claims abstract description 88
- 230000006870 function Effects 0.000 claims abstract description 38
- 238000005070 sampling Methods 0.000 claims description 22
- 238000004590 computer program Methods 0.000 claims description 8
- 238000011478 gradient descent method Methods 0.000 claims description 5
- 238000004364 calculation method Methods 0.000 claims description 3
- 230000001131 transforming effect Effects 0.000 claims description 3
- 238000004422 calculation algorithm Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 9
- 230000000694 effects Effects 0.000 description 5
- 238000013528 artificial neural network Methods 0.000 description 3
- 230000006978 adaptation Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000000284 extract Substances 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 238000005065 mining Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 235000018185 Betula X alpestris Nutrition 0.000 description 1
- 235000018212 Betula X uliginosa Nutrition 0.000 description 1
- HDAJUGGARUFROU-JSUDGWJLSA-L MoO2-molybdopterin cofactor Chemical compound O([C@H]1NC=2N=C(NC(=O)C=2N[C@H]11)N)[C@H](COP(O)(O)=O)C2=C1S[Mo](=O)(=O)S2 HDAJUGGARUFROU-JSUDGWJLSA-L 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/22—Matching criteria, e.g. proximity measures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/23—Clustering techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
Landscapes
- Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Evolutionary Computation (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Computational Linguistics (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Image Analysis (AREA)
Abstract
本发明提供一种特征提取网络的训练方法、人脸识别方法和装置,适用于对大规模人脸数据库进行训练,先对人脸数据库中的样本进行聚类得到多个训练组,从M个训练组中分别采样一个样本得到训练批次,每个样本选取两张图片组成两个训练队列,分别输入两个模型进行训练,将两个模型提取的同一个样本的特征组成一个正样本对,需要训练的模型提取的特征和特征队列中的特征组成负样本对,根据正、负样本对的特征相似度计算损失函数,进一步采用动量更新方式更新两个模型的参数和特征队列。上述方法避免了模型训练时采用全连接层进行分类时产生的巨大参数量,该方法在占用显存较少的情况下,能够快速训练得到精度较高的模型。
Description
技术领域
本发明涉及深度学习技术,尤其涉及一种特征提取网络的训练方法、人脸识别方法和装置。
背景技术
人脸识别模型的训练依赖大量训练数据,随着人脸识别技术的发展,可用于模型训练的公开数据也在急速增长。从起初的几百或者几千人的级别,增长到了几万或者几十万的级别。此外在工业界,各大厂商内部的私有数据更是达到百万级甚至亿级,如何采用有限的训练资源对百万级甚至亿级人的人脸数据库进行训练是一个极具挑战性的问题。
由于采用常规深度神经网络训练人脸识别模型时,最后一层需要用一个全联接层对网络提取的特征进行分类,而全联接层参数量极大。假设输入的一个批次样本数为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进行学习,这样不用对特征再采用全联接层进行分类,免去了全联接层的巨大参数量,从而可以按批次对所有样本进行训练。
对于传统度量学习而言,如何选择每次训练的正样本对和负样本对是一个非常复杂并充满技巧性的工作,常常采用各种难样本挖掘方法来选择每次训练的正负样本对。但是难样本挖掘本身比较耗时,会导致训练的速度非常缓慢。另外,如果没有采用分类训练预训练好的模型作为初始化模型,直接采用传统度量学习训练出的模型往往难以达到较高的精度。
发明内容
本发明提供一种特征提取网络的训练方法、人脸识别方法和装置,能够对大规模人脸数据库进行训练。
本发明第一方面提供一种特征提取网络的训练方法,包括:
对人脸数据库中的样本进行聚类,得到多个训练组,每个训练组中的样本较为相似;
从M个训练组中采样M个样本,M为训练批次的大小,每个训练组中选择一个样本;
从所述M个训练组中获取所述M个样本的两张图片,组成第一训练队列和第二训练队列,所述第一训练队列和所述第二训练队列中分别包括所述M个样本的一张图片;
将所述第一训练队列输入第一特征提取网络,将所述第二训练队列输入第二特征提取网络;
根据正样本对的特征相似度以及负样本对的特征相似度计算损失函数,其中,所述第一特征提取网络和所述第二特征提取网络提取的同一个样本的特征组成一个正样本对,所述第一特征提取网络提取的特征和特征队列中的特征组成负样本对,所述特征队列用于存储所述第二特征提取网络提取的之前训练批次的样本的特征;
根据所述损失函数更新所述第一特征提取网络的参数;
根据所述第一特征提取网络的更新后的参数,采用动量参数更新方法更新所述第二特征提取网络的参数;
在所述训练批次训练结束后,将所述第二特征提取网络提取到的特征更新到所述特征队列中;
从所述多个训练组中采样得到下一个训练批次,执行上述训练过程直至所述人脸数据库中的所有样本都被训练一次,则结束当前训练周期。
可选的,所述对人脸数据库中的样本进行聚类,得到多个训练组,包括:
采用所述人脸数据库中的部分数据预先训练得到第三特征提取模型;
采用所述第三特征提取模型提取所述人脸数据库中的所有图片的特征;
根据所述人脸数据库中的所有图片的特征对所述人脸数据库中的样本进行聚类,得到所述多个训练组。
可选的,所述根据正样本对的特征相似度以及负样本对的特征相似度计算损失函数,包括:
通过如下公式计算所述损失函数:
其中,Loss表示所述损失函数,M表示所述训练批次的大小,feati1表示所述M个样本中第i个样本通过所述第一特征提取网络提取到的特征,feati2表示所述M个样本中第i个样本通过所述第二特征提取网络提取到的特征,m为特征间隔,s为缩放系数,K表示所述特征队列的大小,featj表示所述特征队列中的第j个特征,M、m、s和K均为预先设置的固定值,.用于计算两个特征的相似度。
可选的,所述根据所述第一特征提取网络的更新后的参数,采用动量参数更新方法更新所述第二特征提取网络的参数,包括:
根据如下公式更新所述第二特征提取网络的参数:
θ2=mθ2+(1-m)θ1
其中,θ2表示所述第二特征提取网络的参数,θ1表示所述第一特征提取网络的参数,m为动量,m的取值为大于0且小于1。
可选的,在所述训练批次训练结束后,将所述第二特征提取网络提取到的特征更新到所述特征队列中,包括:
当所述特征队列未溢出时,将所述第二特征提取网络提取到的特征插入上一训练批次对应的特征之后;或者,
当所述特征队列溢出时,从所述特征队列中删除最早插入的M个特征,将所述第二特征提取网络提取到的特征插入上一训练批次对应的特征之后。
可选的,当所述人脸数据库中所有样本都被训练一次之后,清空所述特征队列,进入下一个训练周期。
可选的,所述从所述M个训练组中获取所述M个样本的两张图片,包括:
针对所述M个样本中的任一样本,当所述样本对应的训练组中存在多张图片时,从所述多张图片中选取所述样本的两张图片;或者,
当所述样本对应的训练组中只存在一张图片时,对存在的一张图片进行变换得到所述样本的另一张图片。
可选的,所述根据所述损失函数更新所述第一特征提取网络的参数,包括:
根据所述损失函数采用随机梯度下降法对所述第一特征提取网络的参数进行更新。
本发明第二方面提供一种人脸识别方法,所述方法包括:
将待识别图片输入到特征提取网络中,得到所述待识别图片的特征,所述特征提取网络为采用上述第一方面所述方法训练得到的第一特征提取网络;
计算所述待识别图片的特征与存储的目标图片的特征的相似度,所述目标图片的特征采用所述特征提取网络提取得到;
根据所述相似度得到所述待识别图片的识别结果。
本发明第三方面提供一种特征提取网络的训练装置,包括:
聚类模块,用于对人脸数据库中的样本进行聚类,得到多个训练组,每个训练组中的样本较为相似;
采样模块,用于从M个训练组中采样M个样本,M为训练批次的大小,每个训练组中选择一个样本;
所述采样模块,还用于从所述M个训练组中获取所述M个样本的两张图片,组成第一训练队列和第二训练队列,所述第一训练队列和所述第二训练队列中分别包括所述M个样本的一张图片;
训练模块,用于:
将所述第一训练队列输入第一特征提取网络,将所述第二训练队列输入第二特征提取网络;
根据正样本对的特征相似度以及负样本对的特征相似度计算损失函数,其中,所述第一特征提取网络和所述第二特征提取网络提取的同一个样本的特征组成一个正样本对,所述第一特征提取网络提取的特征和特征队列中的特征组成负样本对,所述特征队列用于存储所述第二特征提取网络提取的之前训练批次的样本的特征;
根据所述损失函数更新所述第一特征提取网络的参数;
根据所述第一特征提取网络的更新后的参数,采用动量参数更新方法更新所述第二特征提取网络的参数;
在所述训练批次训练结束后,将所述第二特征提取网络提取到的特征更新到所述特征队列中;
所述采样模块,还用于从所述多个训练组中采样得到下一个训练批次,所述训练模块还用于执行上述训练过程直至所述人脸数据库中的所有样本都被训练一次,则结束当前训练周期。
本发明第四方面提供一种人脸识别装置,包括:
特征提取模块,用于将待识别图片输入到特征提取网络中,得到所述待识别图片的特征,所述特征提取网络为采用第三方面所述装置训练得到的第一特征提取网络;
相似度计算模块,用于计算所述待识别图片的特征与存储的目标图片的特征的相似度,所述目标图片的特征采用所述特征提取网络提取得到;
识别模块,用于根据所述相似度得到所述待识别图片的识别结果。
本发明第五方面提供一种电子设备,包括:至少一个处理器和存储器;
所述存储器存储计算机执行指令;
所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述至少一个处理器执行如本发明第一方面或者第二方面所述的方法。
本发明第六方面提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如本发明第一方面或者第二方面所述的方法。
本发明第七方面提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时,实现如本发明第一方面或者第二方面所述的方法。
本发明提供的特征提取网络的训练方法、人脸识别方法和装置,适用于对大规模人脸数据库进行训练,通过对人脸数据库中的样本进行聚类,得到多个训练组,每个训练组中的样本较为相似,从M个训练组中采样M个样本得到当前训练批次的样本,从M个训练组中获取M个样本的两张图片,组成两个训练队列,将两个队列分别输入两个模型进行训练,将两个模型提取的同一个样本的特征组成一个正样本对,将需要训练得到的目标模型提取的特征和特征队列中的特征组成负样本对,特征队列用于存储用于辅助训练的模型提取的之前训练批次的样本的特征,根据正样本对的特征相似度以及负样本对的特征相似度计算损失函数,进一步采用动量更新方式更新两个模型的参数和特征队列。上述方法避免了模型训练时采用全连接层进行分类时产生的巨大参数量,该方法在占用显存较少的情况下,能够快速训练得到精度较高的模型。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
图1为本发明提供的模型训练方法的原理图;
图2为本发明实施例一提供的特征提取网络的训练方法的流程图;
图3为本发明实施例二提供的一种对人脸数据库中的样本进行聚类的方法;
图4为本发明实施例三提供的人脸识别方法;
图5为本发明实施例四提供的特征提取网络的训练装置的结构示意图;
图6为本发明实施例五提供的人脸识别装置的结构示意图;
图7为本发明实施例六提供的电子设备的一种结构示意图。
通过上述附图,已示出本公开明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本公开构思的范围,而是通过参考特定实施例为本领域技术人员说明本公开的概念。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
本发明提供一种特征提取网络的训练方法和人脸识别方法,该特征提取网络用于进行人脸识别,本发明提供的模型训练方法能够对超大规模的人脸数据库进行训练,该超大规模的人脸数据库可以包括十万级别、百万级别甚至亿级别的样本,每个样本即一个人,每个样本可能有一张或者多张图片。
图1为本发明提供的模型训练方法的原理图,如图1所示,该模型训练过程主要包括以下几个步骤:人物粗聚类、数据采样、损失函数计算、模型1参数更新、模型2参数更新和特征队列更新。
人物粗聚类用于将人脸数据库中的大量相似样本进行聚类,得到多个训练组,每个训练组中的人较为相似,每个训练组可以有一个标识,图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。
数据采样根据训练批次的大小进行采样,训练批次的大小即训练样本的个数,数据采样过程会为每个样本获取两张图片,同一样本的两张图片分别用IMG_i和IMG_j表示,将同一样本的两张图片分别输入两个特征提取网络:第一特征提取网络和第二特征提取网络,特征提取网络也称为特征提取网络模型。特征提取网络用于提取输入的图片的特征,两个特征提取网络的参数不同。
两个特征提取网络提取的同一个样本的特征配对得到一个正样本对,第一特征提取网络提取的特征与特征队列中的样本配得到多个负样本对。特征队列中保存有第二特征提取网络提取的之前的多个训练批次对应的特征,其中,特征队列中保存的特征对应的样本与本次训练批次中的样本不会重复,从而能够保证特征队列中的特征都能够与第一特征提取网络提取的特征配对得到负样本对。
在计算损失函数时,需要计算正样本对的相似性,负样本对的相似性,根据正样本对的相似性和负样本的相似性计算损失函数。
在计算得到损失函数后,根据该损失函数更新第一特征提取网络的参数,然后根据第一特征提取网络的参数更新第二特征提取网络的参数,在训练批次的样本训练结束之后,将第二特征提取网络提取到的特征存储到特征队列中。
通过上述过程完成人脸数据库中的一个训练批次的训练,在一次训练周期内,需要将人脸数据库中的所有样本都进行一次训练。可选的,可以通过多个训练周期对人脸数据库进行多次训练。
图2为本发明实施例一提供的特征提取网络的训练方法的流程图,如图2所示,本实施例提供的方法包括以下步骤:
S101、对人脸数据库中的样本进行聚类,得到多个训练组,每个训练组中的样本较为相似。
该人脸数据库中可以包括十万级别、百万级别甚至亿级别的样本,通过聚类将相似的人脸划分到一个训练组中,则后续进行训练时,可以从每个训练组中随机采样一个样本组成训练样本,这样可以保证每次训练时训练样本的多样性,从而能够保证配对时得到更多有效的负样本对,不仅能够加快模型训练速度,还能提升模型训练精度。
可以采用已有的聚类方法对人脸数据库中的样本进行聚类,本实施例不对此进行限制。示例性的,将一个包含1亿样本的人脸数据库通过聚类,得到10万个训练组。
S102、从M个训练组中采样M个样本,M为训练批次的大小,每个训练组中选择一个样本。
训练批次的大小预先设定好,M例如为128,则每次训练采样128个训练组,从每个训练组中随机选择一个样本,共得到128个样本,该128个样本组成训练批次。
S103、从M个训练组中获取M个样本的两张图片,组成第一训练队列和第二训练队列,第一训练队列和第二训练队列中分别包括M个样本的一张图片。
针对M个样本中的任一样本,当该样本对应的训练组中存在该样本的多张图片时,从多张图片中选取该样本的两张图片。当该样本对应的训练组中只存在该样本一张图片时,对存在的一张图片进行变换得到该样本的另一张图片。示例的,可以采用随机剪裁方式得到另一张图片,或者,对图片进行美化处理得到另一张图片。
本实施例中,第一训练队列和第二训练队列包括的样本相同,但是包括的样本的图片不同,第一训练队列和第二训练队列中均包括M张图片。
S104、将第一训练队列输入第一特征提取网络,将第二训练队列输入第二特征提取网络。
第一特征提取网络和第二特征提取网络的参数不同,第二特征提取网络的参数是根据第一特征提取网络的参数更新得到的,二者具有一定的关系。在对第一特征提取网络初始化后,可以根据第一特征提取网络的初始参数得到第二特征提取网络的初始参数。
S105、根据正样本对的特征相似度以及负样本对的特征相似度计算损失函数,其中,第一特征提取网络和第二特征提取网络提取的同一个样本的特征组成一个正样本对,第一特征提取网络提取的特征和特征队列中的特征组成负样本对,该特征队列用于存储第二特征提取网络提取的之前训练批次的样本的特征。
因为在每个训练周期的训练过程中是序列组中按照顺序取样本进行训练的,这样保证了当前训练批次的样本在之前从未被取出过,所以特征队列里边不会出现当前训练批次中样本的特征,所以特征队列都可以用于和当前训练批次中样本组成负样本对。
特征队列的大小是指特征队列中能够保存的样本的特征的数量,特征队列的大小可以根据所用训练设备的显存来调整,特征队列越大,特征队列中包含的样本越多,可配对的负样本对也越多,相应的所占显存也越大。假设特征队列大小为32768,即特征队列中可以保存32768个样本的特征,特征维度大小为512,每个样本的特征占用的存储空间为4字节,则对于训练批次中的每个训练样本而言,可配的负样本对个数为32768个,所需显存大小为32768*512*4字节,即(32768*512*4)/(1024*1024*1024)GB=0.0625G。
一个好的模型,应该能够明显区分正样本对和负样本对,正样本对和负样本对可以通过图片的相似度确定,正样本对中两张图片的相似度较大,负样本对中两张图片的相似度很小,正样本对的特征相似度的分布区间和负样本对的特征相似度的分布区间的距离越大,且分布区间越集中,模型的收敛越快。
示例性的,本实施例中可以采用如下公式计算损失函数:
其中,Loss表示损失函数,M表示训练批次的大小,feati1表示M个样本中第i个样本通过第一特征提取网络提取到的特征,feati2表示M个样本中第i个样本通过第二特征提取网络提取到的特征,m为特征间隔,s为缩放系数,K表示特征队列的大小,featj表示特征队列中的第j个特征,M、m、s和K均为预先设置的固定值,.用于计算两个特征的相似度,feati1.feati2表示第i个样本通过两个特征提取网络提取到的特征的相似度,feati1.feati2表示第i个样本通过第一特征提取网络提取到的特征与特征队列中的第j个特征的相似度。两个特征的相似度可以通过欧式距离、余弦距离或者汉明距离表示,本实施例不对此进行限制。
m表示特征间隔,设置的目的是为了让学出来的特征更具有区分度,一般可设为0.35,s为人脸识别中常用的缩放(scale)系数,可设为32。
S106、根据损失函数更新第一特征提取网络的参数。
示例性的,根据损失函数,采用随机梯度下降法或者梯度下降法对第一特征提取网络的参数进行更新。当然,可以采用已有的其他方式更新第一特征提取网络的参数。
S107、根据第一特征提取网络的更新后的参数,采用动量参数更新方法更新第二特征提取网络的参数。
如果每次训练都让第二特征提取网络的参数和第一特征提取网络的参数完全一样,则特征队列中的特征会有突变,突变的特征会导致训练难以收敛,所以本实施例中采用MOCO提出的动量更新方法更新第二特征提取网络的参数,让第二特征提取网络提取的特征保持连续性。
示例性的,根据如下公式更新第二特征提取网络的参数:
θ2=mθ2+(1-m)θ1
其中,θ2表示第二特征提取网络的参数,θ1表示第一特征提取网络的参数,m为动量,m的取值为大于0且小于1。通常情况下,m设定为0-1之间的较大值,以保持特征队列中特征的连续性,例如,m的取值为0.99或0.98。
S108、在该训练批次训练结束后,将第二特征提取网络提取到的特征更新到特征队列中。
在每个训练批次训练结束后,将第二特征提取网络提取到的特征更新到特征队里中,当特征队列未溢出时,将第二特征提取网络提取到的特征插入上一训练批次对应的特征之后;或者,当特征队列溢出时,从特征队列中删除最早插入的M个特征,将第二特征提取网络提取到的特征插入上一训练批次对应的特征之后。
在当前训练匹配训练结束之后,返回执行步骤S102-S108,直至人脸数据库中的所有样本都被训练一次,则结束当前训练周期。
可选的,当人脸数据库中所有样本都被训练一次之后,清空该特征队列,进入下一个训练周期。在实际过程中,一个训练周期内模型可能无法收敛,需要通过多个训练周期对人脸数据库中的数据进行训练。
通过上述训练过程训练得到第一特征提取网络能够用于人脸识别,第二特征提取网络用于辅助模型训练。
本实施例的方法,适用于对大规模人脸数据库进行训练,通过对人脸数据库中的样本进行聚类,得到多个训练组,每个训练组中的样本较为相似,从M个训练组中采样M个样本得到当前训练批次的样本,从M个训练组中获取M个样本的两张图片,组成两个训练队列,将两个队列分别输入两个模型进行训练,将两个模型提取的同一个样本的特征组成一个正样本对,将需要训练的目标模型提取的特征和特征队列中的特征组成负样本对,该特征队列用于存储用于辅助训练的模型提取的之前训练批次的样本的特征,根据正样本对的特征相似度以及负样本对的特征相似度计算损失函数,进一步采用动量更新方式更新两个模型的参数和特征队列。该方法通过计算两张图片的相似度确定两张图片是否属于同一个人,避免了采用全连接层进行分类时产生的巨大参数量,训练过程中除了模型的卷积层占用的显存外,只有特征队列占用少量显存,而特征队列的大小可以根据训练设备的显存进行设置,从而使得该方法在占用显存较少的情况下,能够快速训练得到精度较高的模型。
图3为本发明实施例二提供的一种对人脸数据库中的样本进行聚类的方法,本实施例是对实施例一中步骤S101的一种实现方式的描述,如图3所示,步骤S101包括以下步骤:
S1011、采用人脸数据库中的部分数据预先训练得到第三特征提取模型。
可以采用已有的训练方式训练得到第三特征提取模型,在训练时只采用人脸数据库中的部分数据进行训练。
S1012、采用第三特征提取模型提取人脸数据库中的所有图片的特征。
S1013、根据人脸数据库中的所有图片的特征对人脸数据库中的样本进行聚类,得到多个训练组。
可以采用已有的聚类方法对人脸数据库中的所有样本进行聚类,常用的聚类方法包括:基于划分的聚类方法,例如,K-means算法;基于层次的聚类方法,例如基于层次结构的平衡迭代聚类方法(Balanced Iterative Reducing and Clustering usingHierarchies,简称BIRCH)算法;基于密度的聚类算法,例如,DBSACN算法;基于网格的聚类算法,例如,STING算法、WAVE-CLUSTER算法、CLIQUE算法等。
示例性的,先根据人脸数据库中的所有图片的特征确定人脸数据库中每个类别的特征中心,类别的特征中心能够反映该类样本的主要特征,进一步根据类别的特征进行聚类,得到多个训练组,每个训练组内的样本是相似的。
本实施例中,通过聚类将相似的样本聚类到一个训练组中,不同训练组之间的样本的差异较大,后续在训练时,每次从多个不同训练组中选择样本,能够保证训练样本的多样性,提升模型训练的速度。
图4为本发明实施例三提供的人脸识别方法,本实施例在进行人脸识别时采用实施例一中训练得到的第一特征提取网络,如图4所示,本实施例提供的方法包括以下步骤:
S201、将待识别图片输入到特征提取网络中,得到待识别图片的特征。
其中,该特征提取网络为采用实施例一所述方法训练得到的第一特征提取网络,其中,对特征提取网络进行训练的设备和人脸识别的设备可以是同一个设备,也可以是不同的设备,当二者为不同的设备时,人脸识别的设备使用的特征提取网络可以是训练设备发送的。
S202、计算待识别图片的特征与存储的目标图片的特征的相似度,目标图片的特征采用该特征提取网络提取得到。
目标图片的特征可以由该特征提取网络预先提取并存储到本地,当提取到待识别图片的特征之后,将待识别图片的特征和存储的一个或者多个目标图片的特征进行匹配。目标图片的特征也可以是该特征提取网络实时提取的,当提取到待识别图片的特征之后,依次提取目标图片的特征,并将待识别图片的特征和存储的一个或者多个目标图片的特征进行匹配。
计算两个图片的特征的相似度时可以采用已有的任意算法进行计算,本实施例不对此进行限制,该相似度可以为欧式距离、余弦距离(也称为余弦相似度)或者汉明距离。
S203、根据相似度得到待识别图片的识别结果。
如果两张图片的相似度大于或等于预设值,则说明两张图片中的人是同一个人,如果两张图片的相似度小于该预设值,则说明两张图片中的人不是同一个人,通过比较相似度与预设值的大小,可以识别出待识别图片的人。
例如,常见的人脸识别场景为手机人脸解锁,用户需要预先进行注册,将自己的人脸图片输入人脸识别模块,人脸识别模块会提取用户的人脸特征并存储,后续在解锁时,手机的摄像头实时采集用户的人脸图片,人脸识别模块提取采集到的人脸图片的特征,计算采集到的人脸图片的特征与存储的人脸特征的相似度,如果相似度大于预设值,则说明当前解锁的人脸是已注册的用户,人脸识别成功,解锁屏幕,如果相似度小于预设值,则说明当前解锁人脸不是已注册用户,人脸识别失败,无法解锁屏幕。常见的人脸识别场景还有门禁系统、各种电子支付系统等。
图5为本发明实施例四提供的特征提取网络的训练装置的结构示意图,如图5所示,本实施例提供的模型训练装置100包括:
聚类模块11,用于对人脸数据库中的样本进行聚类,得到多个训练组,每个训练组中的样本较为相似;
采样模块12,用于从M个训练组中采样M个样本,M为训练批次的大小,每个训练组中选择一个样本;
所述采样模块12,还用于从所述M个训练组中获取所述M个样本的两张图片,组成第一训练队列和第二训练队列,所述第一训练队列和所述第二训练队列中分别包括所述M个样本的一张图片;
训练模块13,用于:
将所述第一训练队列输入第一特征提取网络,将所述第二训练队列输入第二特征提取网络;
根据正样本对的特征相似度以及负样本对的特征相似度计算损失函数,其中,所述第一特征提取网络和所述第二特征提取网络提取的同一个样本的特征组成一个正样本对,所述第一特征提取网络提取的特征和特征队列中的特征组成负样本对,所述特征队列用于存储所述第二特征提取网络提取的之前训练批次的样本的特征;
根据所述损失函数更新所述第一特征提取网络的参数;
根据所述第一特征提取网络的更新后的参数,采用动量参数更新方法更新所述第二特征提取网络的参数;
在所述训练批次训练结束后,将所述第二特征提取网络提取到的特征更新到所述特征队列中;
所述采样模块12,还用于从所述多个训练组中采样得到下一个训练批次,所述训练模块13还用于执行上述训练过程直至所述人脸数据库中的所有样本都被训练一次,则结束当前训练周期。
可选的,所述聚类模块11具体用于:
采用所述人脸数据库中的部分数据预先训练得到第三特征提取模型;
采用所述第三特征提取模型提取所述人脸数据库中的所有图片的特征;
根据所述人脸数据库中的所有图片的特征对所述人脸数据库中的样本进行聚类,得到所述多个训练组。
可选的,所述根据正样本对的特征相似度以及负样本对的特征相似度计算损失函数,包括:
通过如下公式计算所述损失函数:
其中,Loss表示所述损失函数,M表示所述训练批次的大小,feati1表示所述M个样本中第i个样本通过所述第一特征提取网络提取到的特征,feati2表示所述M个样本中第i个样本通过所述第二特征提取网络提取到的特征,m为特征间隔,s为缩放系数,K表示所述特征队列的大小,featj表示所述特征队列中的第j个特征,M、m、s和K均为预先设置的固定值,.用于计算两个特征的相似度。
可选的,所述根据所述第一特征提取网络的更新后的参数,采用动量参数更新方法更新所述第二特征提取网络的参数,包括:
根据如下公式更新所述第二特征提取网络的参数:
θ2=mθ2+(1-m)θ1
其中,θ2表示所述第二特征提取网络的参数,θ1表示所述第一特征提取网络的参数,m为动量,m的取值为大于0且小于1。
可选的,在所述训练批次训练结束后,将所述第二特征提取网络提取到的特征更新到所述特征队列中,包括:
当所述特征队列未溢出时,将所述第二特征提取网络提取到的特征插入上一训练批次对应的特征之后;或者,
当所述特征队列溢出时,从所述特征队列中删除最早插入的M个特征,将所述第二特征提取网络提取到的特征插入上一训练批次对应的特征之后。
可选的,当所述人脸数据库中所有样本都被训练一次之后,清空所述特征队列,进入下一个训练周期。
可选的,所述采样模块12具体用于:针对所述M个样本中的任一样本,当所述样本对应的训练组中存在多张图片时,从所述多张图片中选取所述样本的两张图片;或者,当所述样本对应的训练组中只存在一张图片时,对存在的一张图片进行变换得到所述样本的另一张图片。
可选的,所述根据所述损失函数更新所述第一特征提取网络的参数,包括:
根据所述损失函数采用随机梯度下降法对所述第一特征提取网络的参数进行更新。
本实施例的装置,可用于执行上述实施例一或者实施例二所述的方法,具体实现方式和技术效果类似,这里不再赘述。
图6为本发明实施例五提供的人脸识别装置的结构示意图,如图6所示,本实施例提供的人脸识别装置200包括:
特征提取模块21,用于将待识别图片输入到特征提取网络中,得到所述待识别图片的特征,所述特征提取网络为采用权利要求10所述装置训练得到的第一特征提取网络;
相似度计算模块22,用于计算所述待识别图片的特征与存储的目标图片的特征的相似度,所述目标图片的特征采用所述特征提取网络提取得到;
识别模块23,用于根据所述相似度得到所述待识别图片的识别结果。
本实施例的装置,可用于执行上述实施例三所述的方法,具体实现方式和技术效果类似,这里不再赘述。
图7为本发明实施例六提供的电子设备的一种结构示意图,如图7所示,该电子设备300包括:处理器31、存储器32和收发器33,所述存储器32用于存储指令,所述收发器33用于和其他设备通信,所述处理器31用于执行所述存储器中存储的指令,以使所述电子设备300执行如上述实施例一至三所述的方法,具体实现方式和技术效果类似,这里不再赘述。
本发明实施例七提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如上述实施例一至三所述的方法,具体实现方式和技术效果类似,这里不再赘述。
本发明实施例八提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时,实现如上述实施例一至三所述的方法,具体实现方式和技术效果类似,这里不再赘述。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本发明旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求书指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求书来限制。
Claims (14)
1.一种特征提取网络的训练方法,其特征在于,包括:
对人脸数据库中的样本进行聚类,得到多个训练组,每个训练组中的样本较为相似;
从M个训练组中采样M个样本,M为训练批次的大小,每个训练组中选择一个样本;
从所述M个训练组中获取所述M个样本的两张图片,组成第一训练队列和第二训练队列,所述第一训练队列和所述第二训练队列中分别包括所述M个样本的一张图片;
将所述第一训练队列输入第一特征提取网络,将所述第二训练队列输入第二特征提取网络;
根据正样本对的特征相似度以及负样本对的特征相似度计算损失函数,其中,所述第一特征提取网络和所述第二特征提取网络提取的同一个样本的特征组成一个正样本对,所述第一特征提取网络提取的特征和特征队列中的特征组成负样本对,所述特征队列用于存储所述第二特征提取网络提取的之前训练批次的样本的特征;
根据所述损失函数更新所述第一特征提取网络的参数;
根据所述第一特征提取网络的更新后的参数,采用动量参数更新方法更新所述第二特征提取网络的参数;
在所述训练批次训练结束后,将所述第二特征提取网络提取到的特征更新到所述特征队列中;
从所述多个训练组中采样得到下一个训练批次,执行上述训练过程直至所述人脸数据库中的所有样本都被训练一次,则结束当前训练周期。
2.根据权利要求1所述的方法,其特征在于,所述对人脸数据库中的样本进行聚类,得到多个训练组,包括:
采用所述人脸数据库中的部分数据预先训练得到第三特征提取模型;
采用所述第三特征提取模型提取所述人脸数据库中的所有图片的特征;
根据所述人脸数据库中的所有图片的特征对所述人脸数据库中的样本进行聚类,得到所述多个训练组。
3.根据权利要求2所述的方法,其特征在于,所述根据正样本对的特征相似度以及负样本对的特征相似度计算损失函数,包括:
通过如下公式计算所述损失函数:
其中,Loss表示所述损失函数,M表示所述训练批次的大小,feati1表示所述M个样本中第i个样本通过所述第一特征提取网络提取到的特征,feati2表示所述M个样本中第i个样本通过所述第二特征提取网络提取到的特征,m为特征间隔,s为缩放系数,K表示所述特征队列的大小,featj表示所述特征队列中的第j个特征,M、m、s和K均为预先设置的固定值,.用于计算两个特征的相似度。
4.根据权利要求3所述的方法,其特征在于,所述根据所述第一特征提取网络的更新后的参数,采用动量参数更新方法更新所述第二特征提取网络的参数,包括:
根据如下公式更新所述第二特征提取网络的参数:
θ2=mθ2+(1-m)θ1
其中,θ2表示所述第二特征提取网络的参数,θ1表示所述第一特征提取网络的参数,m为动量,m的取值为大于0且小于1。
5.根据权利要求1-4任一项所述的方法,其特征在于,在所述训练批次训练结束后,将所述第二特征提取网络提取到的特征更新到所述特征队列中,包括:
当所述特征队列未溢出时,将所述第二特征提取网络提取到的特征插入上一训练批次对应的特征之后;或者,
当所述特征队列溢出时,从所述特征队列中删除最早插入的M个特征,将所述第二特征提取网络提取到的特征插入上一训练批次对应的特征之后。
6.根据权利要求5所述的方法,其特征在于,当所述人脸数据库中所有样本都被训练一次之后,清空所述特征队列,进入下一个训练周期。
7.根据权利要求1-4任一项所述的方法,其特征在于,所述从所述M个训练组中获取所述M个样本的两张图片,包括:
针对所述M个样本中的任一样本,当所述样本对应的训练组中存在多张图片时,从所述多张图片中选取所述样本的两张图片;或者,
当所述样本对应的训练组中只存在一张图片时,对存在的一张图片进行变换得到所述样本的另一张图片。
8.根据权利要求1-4任一项所述的方法,其特征在于,所述根据所述损失函数更新所述第一特征提取网络的参数,包括:
根据所述损失函数采用随机梯度下降法对所述第一特征提取网络的参数进行更新。
9.一种人脸识别方法,其特征在于,所述方法包括:
将待识别图片输入到特征提取网络中,得到所述待识别图片的特征,所述特征提取网络为采用权利要求1-8任一项所述方法训练得到的第一特征提取网络;
计算所述待识别图片的特征与存储的目标图片的特征的相似度,所述目标图片的特征采用所述特征提取网络提取得到;
根据所述相似度得到所述待识别图片的识别结果。
10.一种特征提取网络的训练装置,其特征在于,包括:
聚类模块,用于对人脸数据库中的样本进行聚类,得到多个训练组,每个训练组中的样本较为相似;
采样模块,用于从M个训练组中采样M个样本,M为训练批次的大小,每个训练组中选择一个样本;
所述采样模块,还用于从所述M个训练组中获取所述M个样本的两张图片,组成第一训练队列和第二训练队列,所述第一训练队列和所述第二训练队列中分别包括所述M个样本的一张图片;
训练模块,用于:
将所述第一训练队列输入第一特征提取网络,将所述第二训练队列输入第二特征提取网络;
根据正样本对的特征相似度以及负样本对的特征相似度计算损失函数,其中,所述第一特征提取网络和所述第二特征提取网络提取的同一个样本的特征组成一个正样本对,所述第一特征提取网络提取的特征和特征队列中的特征组成负样本对,所述特征队列用于存储所述第二特征提取网络提取的之前训练批次的样本的特征;
根据所述损失函数更新所述第一特征提取网络的参数;
根据所述第一特征提取网络的更新后的参数,采用动量参数更新方法更新所述第二特征提取网络的参数;
在所述训练批次训练结束后,将所述第二特征提取网络提取到的特征更新到所述特征队列中;
所述采样模块,还用于从所述多个训练组中采样得到下一个训练批次,所述训练模块还用于执行上述训练过程直至所述人脸数据库中的所有样本都被训练一次,则结束当前训练周期。
11.一种人脸识别装置,其特征在于,包括:
特征提取模块,用于将待识别图片输入到特征提取网络中,得到所述待识别图片的特征,所述特征提取网络为采用权利要求10所述装置训练得到的第一特征提取网络;
相似度计算模块,用于计算所述待识别图片的特征与存储的目标图片的特征的相似度,所述目标图片的特征采用所述特征提取网络提取得到;
识别模块,用于根据所述相似度得到所述待识别图片的识别结果。
12.一种电子设备,其特征在于,包括:至少一个处理器和存储器;
所述存储器存储计算机执行指令;
所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述至少一个处理器执行如权利要求1至9任一项所述的方法。
13.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如权利要求1至9任一项所述的方法。
14.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时,实现权利要求1至9任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110086798.6A CN113762019B (zh) | 2021-01-22 | 2021-01-22 | 特征提取网络的训练方法、人脸识别方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110086798.6A CN113762019B (zh) | 2021-01-22 | 2021-01-22 | 特征提取网络的训练方法、人脸识别方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113762019A CN113762019A (zh) | 2021-12-07 |
CN113762019B true CN113762019B (zh) | 2024-04-09 |
Family
ID=78786465
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110086798.6A Active CN113762019B (zh) | 2021-01-22 | 2021-01-22 | 特征提取网络的训练方法、人脸识别方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113762019B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117649683B (zh) * | 2024-01-30 | 2024-04-09 | 深圳市宗匠科技有限公司 | 一种痤疮分级方法、装置、设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109583332A (zh) * | 2018-11-15 | 2019-04-05 | 北京三快在线科技有限公司 | 人脸识别方法、人脸识别系统、介质及电子设备 |
CN109815801A (zh) * | 2018-12-18 | 2019-05-28 | 北京英索科技发展有限公司 | 基于深度学习的人脸识别方法及装置 |
WO2019128367A1 (zh) * | 2017-12-26 | 2019-07-04 | 广州广电运通金融电子股份有限公司 | 基于Triplet Loss的人脸认证方法、装置、计算机设备和存储介质 |
GB202002157D0 (en) * | 2020-02-17 | 2020-04-01 | Facesoft Ltd | Method of training an image classification model |
CN111639535A (zh) * | 2020-04-29 | 2020-09-08 | 深圳英飞拓智能技术有限公司 | 基于深度学习的人脸识别方法及装置 |
-
2021
- 2021-01-22 CN CN202110086798.6A patent/CN113762019B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019128367A1 (zh) * | 2017-12-26 | 2019-07-04 | 广州广电运通金融电子股份有限公司 | 基于Triplet Loss的人脸认证方法、装置、计算机设备和存储介质 |
CN109583332A (zh) * | 2018-11-15 | 2019-04-05 | 北京三快在线科技有限公司 | 人脸识别方法、人脸识别系统、介质及电子设备 |
CN109815801A (zh) * | 2018-12-18 | 2019-05-28 | 北京英索科技发展有限公司 | 基于深度学习的人脸识别方法及装置 |
GB202002157D0 (en) * | 2020-02-17 | 2020-04-01 | Facesoft Ltd | Method of training an image classification model |
CN111639535A (zh) * | 2020-04-29 | 2020-09-08 | 深圳英飞拓智能技术有限公司 | 基于深度学习的人脸识别方法及装置 |
Non-Patent Citations (2)
Title |
---|
基于深度卷积神经网络与中心损失的人脸识别;张延安;王宏玉;徐方;;科学技术与工程;20171218(35);全文 * |
基于深度学习的大规模人脸图像检索;卢宗光;刘青山;孙玉宝;;太原理工大学学报;20180115(01);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN113762019A (zh) | 2021-12-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11294953B2 (en) | Similar face retrieval method, device and storage medium | |
CN108182394B (zh) | 卷积神经网络的训练方法、人脸识别方法及装置 | |
CN113255694B (zh) | 训练图像特征提取模型和提取图像特征的方法、装置 | |
CN110969250B (zh) | 一种神经网络训练方法及装置 | |
CN109993102B (zh) | 相似人脸检索方法、装置及存储介质 | |
CN111444340A (zh) | 文本分类和推荐方法、装置、设备及存储介质 | |
EP4002161A1 (en) | Image retrieval method and apparatus, storage medium, and device | |
CN111461238B (zh) | 模型训练方法、字符识别方法、装置、设备及存储介质 | |
CN112418292B (zh) | 一种图像质量评价的方法、装置、计算机设备及存储介质 | |
CN112819023A (zh) | 样本集的获取方法、装置、计算机设备和存储介质 | |
CN113761261A (zh) | 图像检索方法、装置、计算机可读介质及电子设备 | |
CN110751027B (zh) | 一种基于深度多示例学习的行人重识别方法 | |
CN114332984B (zh) | 训练数据处理方法、装置和存储介质 | |
CN116580257A (zh) | 特征融合模型训练及样本检索方法、装置和计算机设备 | |
CN110929806A (zh) | 基于人工智能的图片处理方法、装置及电子设备 | |
CN114387650A (zh) | 聚类及模型训练方法和装置、设备及存储介质 | |
CN114282059A (zh) | 视频检索的方法、装置、设备及存储介质 | |
CN113762019B (zh) | 特征提取网络的训练方法、人脸识别方法和装置 | |
CN115984930A (zh) | 微表情识别方法、装置、微表情识别模型的训练方法 | |
CN111709473B (zh) | 对象特征的聚类方法及装置 | |
CN116630736A (zh) | 一种用户表情捕捉模型的训练方法及系统 | |
CN112307243A (zh) | 用于检索图像的方法和装置 | |
CN114780863A (zh) | 基于人工智能的项目推荐方法、装置、计算机设备及介质 | |
CN110084110B (zh) | 一种近红外人脸图像识别方法、装置、电子设备及存储介质 | |
CN114528973A (zh) | 业务处理模型的生成方法、业务处理方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |