一种基于深度学习的海量人脸比对加速方法

文档序号:31958168发布日期:2022-10-28 22:47阅读:42来源:国知局
一种基于深度学习的海量人脸比对加速方法

1.本发明涉及数据处理技术领域,具体涉及一种基于深度学习的海量人脸比对加速方法。


背景技术:

2.目前的人脸识别技术主要应用于人脸底库数量不大的情况,将待识别的人脸图像数据输入到基于卷积神经网络的人脸特征提取模型中,提取该人脸的特征值,然后与底库中已注册好的数据进行全量比对,即比对两两特征值之间的相似度(计算特征向量的余弦距离),相似度最高且超过设定阈值则可视为同一人。随着技术越发成熟,人脸识别技术被应用到越来越多的领域,如社区管理、治安管理等,在某些更大的平台上人脸底库将会达到海量的级别(数十万到数百万),如果仍然采用传统的人脸特征值比对的方法,势必会造成较高的延时和较大的资源损耗,甚至还会造成内存溢出的问题使系统崩溃。所以提出一种提升人脸特征值比对速度的方法,是解决目前人脸底库数据过大的关键。


技术实现要素:

3.为了克服目前人脸底库过大导致比对速度较慢、资源消耗较大的不足,本发明提出了一种基于深度学习的海量人脸比对加速方法,该方法能够很好的处理在底库数据量过大时人脸特征值比对速度过慢、资源消耗过大这一问题。
4.本发明解决其技术问题所采用的技术方案是:
5.一种基于深度学习的海量人脸比对加速方法,其所述方法包括如下步骤:
6.1)修改基于卷积神经网络的人脸特征提取模型结构:在原本输出为1
×
512的人脸特征提取网络中添加新的全连接层的分支,增加1
×
2的输出,每个人脸数据通过特征提取网络可以同时得到1
×
512的人脸特征值和1
×
2的二维特征值,其中512维人脸特征值仍在之后用于人脸特征比对,二维特征值在平面内进行可视化,用于之后的特征划分区域;
7.2)模型训练,设计损失函数如式(1):
8.loss_total=w1×
loss_softmax+w2×
loss_arcface
ꢀꢀꢀ
(1)
9.其中w1,w2分别为损失函数loss_softmax和loss_arcface的权重;
10.其中loss_softmax如式(2):
[0011][0012]
其中n和n分别是批尺寸和类编号,xi∈rd,d为特征维数,设置为512,代表第i个样本的深度特征,属于yi类;wj∈rd表示权值w∈rd×n的第j列,bj∈rn为偏置项;
[0013]
其中loss_arcface如式(3):
[0014][0015]
其中s表示为半径为s的超球面,θ是权重w和特征x之间的夹角。m是在xi和w
yi
之间添加的一个附加的角边缘惩罚余量;
[0016]
其中loss_arcface用于提取多维特征,loss_softmax用于提取二维特征,在模型训练的过程中,人脸多维特征提取为模型的主体,所以设计在第i个训练迭代前,使w1为0,w2为1,即loss_total=loss_arcface,训练卷积神经网络和多维输出全连接层的权重参数;
[0017]
当人脸特征提取训练到稳定时,取w2>w1>0,此时训练二维输出全连接层的权重参数;
[0018]
3)根据二维平面特征分布划分区域,设定底库中注册的不同人脸的数量为n,选取中心点,根据从中心点辐射出去的角度将底库中注册的n个特征划分到m个区域内部,并将特征所在的区域编号同512维特征值一起保存于底库,用于之后的比对流程;
[0019]
4)比对流程:将待测试人脸输入训练好的模型中,得到二维的特征向量和512维的特征向量,先根据二维特征值确定待测试人脸所在的特征值区域,再根据区域号检索底库中相同区域的特征,缩小512维特征值比对的范围,再对该区域内所包含的512维特征值一一进行相似度的计算;
[0020]
其中相似度的计算:根据512维特征向量计算待检测特征和底库中特征之间的余弦距离,如式(4):
[0021][0022]
设两个待对比的512维向量分别为(x1,x2,......,x
512
)和(y1,y2,......,y
512
);
[0023]
5)结果输出和决策:设比对的阈值为threshold,在选定的特征值区域中筛选余弦值大于threshold的人脸数据,并进行从大到小的排序,输出余弦值计算结果最大的人脸数据,识别结果为同一人,并输出该数据的id。
[0024]
进一步,所述步骤5)中,如在选定的特征值区域中没有找到余弦值大于threshold的人脸数据,可以根据实际对单次识别率和识别速度的要求情况,选择以下决策方式:(1)继续比对相邻两个区域内的所有特征,如仍未得到结果,则继续进行该决策方式;(2)输出识别失败,即底库中无该人脸数据。
[0025]
在区域中未得到超过阈值threshold的结果时,选择进行较多次方式(1)会增加人脸比对的时间,但单次的识别率会提高,相反,进行较少的方式(1),选择方式(2)会加速单次比对的时间,但是相应的识别率会减少;具体的进行方式(1)的次数需要根据实际对单次识别率和识别速度的要求情况,通过一些测试得到最优的结果。
[0026]
本发明的技术构思为:针对人脸数据底库数据过大导致一对一进行特征值比对时资源消耗过大的问题,提出一种基于深度学习的海量人脸比对加速方法。通过在原本输出1
×
512的人脸特征提取网络中添加全连接层的分支,使人脸数据通过特征提取网络同时输
出1
×
2的二维特征值,并在二维平面进行可视化。根据softmax loss的特性,底库中的n个人脸数据的二维特征在二维平面上分布呈辐射状,选取中心点并根据角度将n个特征分为m个区域。当待测试人脸进行特征值比对的时候,先通过二维特征值确定其所在的特征值区域,然后再对区域内的多维特征值进行一一比对,避免了将多维的人脸特征值与底库内所有人脸特征值做比对,实现了从1:n比对到的加速,实现了海量图片的人脸特征值比对的加速。
[0027]
本发明的有益效果主要表现在:随着人脸数据底库中特征数量n随时间变大,解决了底库数据过大导致进行特征值1:n比对时资源消耗过大的问题,能够在不影响识别精确度的前提下,有效的提升人脸特征比对的速度,避免了内存溢出等问题。
附图说明
[0028]
图1为人脸特征提取网络示意图。
[0029]
图2为人脸特征比对流程图。
[0030]
图3为人脸特征比对结构图。
具体实施方式
[0031]
下面结合附图对本发明的方法作进一步详细说明。
[0032]
参照图1~图3,一种基于深度学习的海量人脸比对加速方法,所述方法包括如下步骤:
[0033]
1)修改基于卷积神经网络的人脸特征提取模型结构:在原本输出为1
×
512的人脸特征提取网络中添加新的全连接层的分支,以增加1
×
2的输出,这样,每个人脸数据通过特征提取网络可以同时得到1
×
512的人脸特征值和1
×
2的二维特征值,其中512维人脸特征值仍用于特征比对,二维特征值在平面内进行可视化,用于之后的特征分块;
[0034]
2)模型训练,设计损失函数如式(1):
[0035]
loss_total=w1×
loss_softmax+w2×
loss_arcface
ꢀꢀꢀ
(1)
[0036]
其中w1,w2分别为损失函数loss_softmax和loss_arcface的权重,
[0037]
其中loss_softmax如式(2):
[0038][0039]
其中n和n分别是批尺寸和类编号。xi∈rd(d为特征维数,设置为512)代表第i个样本的深度特征,属于yi类。wj∈rd表示权值w∈rd×n的第j列,bj∈rn为偏置项,
[0040]
其中loss_arcface如式(3):
[0041][0042]
其中,s表示为半径为s的超球面,θ是权重w和特征x之间的夹角。m是在xi和w
yi
之间添加的一个附加的角边缘惩罚余量,
[0043]
在模型训练的过程中,人脸多维特征提取为模型的主体,所以设计在第i个训练迭代前,使w1为0,w2为1,即loss_total=loss_arcface,主要训练卷积神经网络和多维输出全连接层的权重参数,
[0044]
当人脸特征提取训练到稳定时,取w2>w1>0,此时主要训练二维输出全连接层的权重参数;
[0045]
3)根据二维平面特征分布划分区域:由于引入softmax loss,根据其特性可知,训练完毕后的模型会使底库中的n个人脸数据的二维特征在二维平面上呈辐射状分布,选取合适的中心点,根据从中心点辐射出去的角度将n个特征划分到m个区域内部,并将每个特征所在的区域编号保存在底库;
[0046]
4)比对流程:人脸比对阶段,将待测试人脸输入训练好的模型中,得到二维的特征向量和512维的特征向量,先根据二维特征值确定其所在的特征值区域,在根据区域号检索底库中相同区域的特征,对该区域内所包含的多维特征值进行一一比对;
[0047]
根据512维特征向量计算待检测特征和底库中特征之间的余弦距离,如式(4):
[0048][0049]
两个待对比向量分别为(x1,x2,......,x
512
)和(y1,y2,......,y
512
),如果存在余弦值大于设定阈值且最大的特征,则输出该人脸的信息,识别结果为同一人,如没有找到目标人脸特征,出于对识别率的考虑,可以继续比对相邻两个区域内的所有特征或者直接输出识别失败;
[0050]
这样的比对方法避免了将多维的人脸特征值与底库内所有人脸特征值进行1:n的比对,实现了从1:n比对到的加速,实现了海量图片的人脸特征值比对的加速。
[0051]
图1为人脸特征提取网络示意图,如图中所示:输入的人脸数据通过卷积神经网络,分别通过左侧的全连接层1和右侧的全连接层2。左侧全连接层1输出512维特征向量,用于两两特征之间的相似度比对;右侧全连接层2输出二维特征向量,用于将特征按角度进行分块。
[0052]
图2为人脸特征比对流程图,如图中所示:将待识别人脸数据输入网络模型,提取该人脸数据的多维特征和二维特征,根据二维特征确定候选人脸所在的特征区域,根据多维特征将待识别人脸与区域内的候选人脸进行余弦距离比对,最后得到比对结果并输出。
[0053]
图3为人脸特征比对结构图,如图中所示:将底库中的n个人脸经过人脸特征提取模型得到的二维特征,根据二维特征将数据在平面内可视化,将n个特征划分成m个区域。待识别的人脸数据经过人脸特征提取得到多维特征和二维特征。二维特征用来确定其所在的第k个特征区域,与该区域中512维特征进行余弦距离的比对,找到小于阈值并且距离最小的第k个底库中的特征,随后输出k的信息。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1