1.一种基于深度学习的海量人脸比对加速方法,其特征在于,所述方法包括如下步骤:
1)修改基于卷积神经网络的人脸特征提取模型结构:在原本输出为1×512的人脸特征提取网络中添加新的全连接层的分支,增加1×2的输出,每个人脸数据通过特征提取网络可以同时得到1×512的人脸特征值和1×2的二维特征值,其中512维人脸特征值仍在之后用于人脸特征比对,二维特征值在平面内进行可视化,用于之后的特征划分区域;
2)模型训练,设计损失函数如式(1):
Loss_total=w1×Loss_softmax+w2×Loss_arcface (1)其中w1,w2分别为损失函数Loss_softmax和Loss_arcface的权重;
其中Loss_softmax如式(2):
d
其中N和n分别是批尺寸和类编号,xi∈R ,d为特征维数,设置为512,代表第i个样本的d d×n n深度特征,属于yi类;Wj∈R表示权值W∈R 的第j列,bj∈R为偏置项;
其中Loss_arcface如式(3):
其中s表示为半径为s的超球面,θ是权重W和特征x之间的夹角,m是在xi和 之间添加的一个附加的角边缘惩罚余量;
其中Loss_arcface用于提取多维特征,Loss_softmax用于提取二维特征,在模型训练的过程中,人脸多维特征提取为模型的主体,所以设计在第I个训练迭代前,使w1为0,w2为1,即Loss_total=Loss_arcface,训练卷积神经网络和多维输出全连接层的权重参数;
当人脸特征提取训练到稳定时,取w2>w1>0,此时训练二维输出全连接层的权重参数;
3)根据二维平面特征分布划分区域,设定底库中注册的不同人脸的数量为N,选取中心点,根据从中心点辐射出去的角度将底库中注册的N个特征划分到m个区域内部,并将特征所在的区域编号同512维特征值一起保存于底库,用于之后的比对流程;
4)比对流程:将待测试人脸输入训练好的模型中,得到二维的特征向量和512维的特征向量,先根据二维特征值确定待测试人脸所在的特征值区域,再根据区域号检索底库中相同区域的特征,缩小512维特征值比对的范围,再对该区域内所包含的512维特征值一一进行相似度的计算;
其中相似度的计算:根据512维特征向量计算待检测特征和底库中特征之间的余弦距离,如式(4):设两个待对比的512维向量分别为(x1,x2,......,x512)和(y1,y2,......,y512);
5)结果输出和决策:设比对的阈值为threshold,在选定的特征值区域中筛选余弦值大于threshold的人脸数据,并进行从大到小的排序,输出余弦值计算结果最大的人脸数据,识别结果为同一人,并输出该数据的id。
2.如权利要求1所述的一种基于深度学习的海量人脸比对加速方法,其特征在于,所述步骤5)中,如在选定的特征值区域中没有找到余弦值大于threshold的人脸数据,可以根据实际对单次识别率和识别速度的要求情况,选择以下决策方式:(1)继续比对相邻两个区域内的所有特征,如仍未得到结果,则继续进行该决策方式;(2)输出识别失败,即底库中无该人脸数据。