CN107577990B - 一种基于gpu加速检索的大规模人脸识别方法 - Google Patents

一种基于gpu加速检索的大规模人脸识别方法 Download PDF

Info

Publication number
CN107577990B
CN107577990B CN201710675398.2A CN201710675398A CN107577990B CN 107577990 B CN107577990 B CN 107577990B CN 201710675398 A CN201710675398 A CN 201710675398A CN 107577990 B CN107577990 B CN 107577990B
Authority
CN
China
Prior art keywords
face
real
hash
gpu
valued
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
Application number
CN201710675398.2A
Other languages
English (en)
Other versions
CN107577990A (zh
Inventor
邹复好
曹锋
李开
王浩
白兴强
栾朝阳
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
WUHAN SHIJI JINQIAO SAFETY TECHNOLOGY Co Ltd
Huazhong University of Science and Technology
Original Assignee
WUHAN SHIJI JINQIAO SAFETY TECHNOLOGY Co Ltd
Huazhong University of Science and Technology
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by WUHAN SHIJI JINQIAO SAFETY TECHNOLOGY Co Ltd, Huazhong University of Science and Technology filed Critical WUHAN SHIJI JINQIAO SAFETY TECHNOLOGY Co Ltd
Priority to CN201710675398.2A priority Critical patent/CN107577990B/zh
Publication of CN107577990A publication Critical patent/CN107577990A/zh
Application granted granted Critical
Publication of CN107577990B publication Critical patent/CN107577990B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Image Analysis (AREA)

Abstract

本发明公开了一种基于GPU加速检索的大规模人脸识别方法,涉及计算机视觉领域,包括人脸检测与对齐、人脸特征提取、哈希特征获取、人脸索引数据库建立、多GPU加速的粗糙匹配、基于哈希的候选集获取、基于距离度量的精确匹配和投票获取最匹配人等步骤。本发明公开的基于GPU加速检索的大规模人脸识别方法基于哈希索引和多GPU加速计算的两阶段特征匹配,能利用GPU强大的并行计算能力加速候选特征向量的筛选,大幅降低大规模数据集上检索时耗,能很好地满足以深度卷积神经网络的实现为基础且实时性要求较高的各类应用需求。

Description

一种基于GPU加速检索的大规模人脸识别方法
技术领域
本发明涉及计算机视觉领域,具体涉及一种基于GPU加速检索的大规模人脸识别方法。
背景技术
近年来,随着计算机性能的快速提升和深度学习方法的不断完善,模式识别和人工智能领域皆取得了重大的突破。人们通过深度学习方法在很多模式识别任务上都取得了十分优异的效果,人脸识别也不例外。随着大数据时代的到来,人脸图像数据越来越丰富,如何在大规模的人脸数据集中高效且准确地鉴定一个人的身份信息,是当今模式识别以及信息检索领域研究的热点。
人脸识别作为识别身份的一种重要手段,具有极高的理论与应用价值。而基于人脸的图像检索也是信息检索领域非常有意义的一个方向,有着十分广泛的应用。例如在娱乐领域,可以通过提交自己的图像,寻找最相似的明星脸;在公安领域,可以通过人脸比对检索,来帮助寻找罪犯;又如在安防领域,可以涉及门禁***,黑名单监控,鉴别“水客”等应用;除此之外,在银行的自助服务,酒店的“人证合一”,信息安全等众多领域对此都有极大的应用需求。因此,研发一种在大规模数据环境下兼顾识别效率和准确率的人脸分类器具有极高的现实意义。
传统的人脸检索方法是先手工提取人脸特征,然后对人脸特征库基于最近邻搜索,将基于人脸图像的搜索转换为基于实值特征向量的相似性度量。这种方法在小规模数据集上表现尚可,但一旦数据集增大,识别效率与准确率会急剧下降。另外,人脸的特征向量通常是高维特征矢量,在维度比较高的情况下,如果我们还对整个数据库进行最近邻搜索,效率是非常低下的。
在大规模数据情况下的人脸识别本质上是多媒体数据的检索问题,返回待识别人脸在特征空间上最相近的若干个数据,即近似最近邻搜索算法。在图像近似搜索领域,可以分为两种实现方法,一种是直接在高维特征空间进行相似性搜索,另外一种是将高维空间映射到汉明空间,转化为基于语义哈希方法的检索问题。前者在数据量较大的情况下,有一个很明显的缺点就是“维度灾难”问题。为了解决维度灾难问题,学者们做了很多语义哈希方法的研究,语义哈希方法可以生成很紧凑的哈希码来直接反映原始特征空间的语义信息,在原始特征空间上距离相近的特征,则汉明距离相近,反之较远。而在基于语义哈希方法的近似搜索研究工作中,大多是研究哈希生成方法,很少有关于设计哈希索引来提高检索效率的研究。所以如何在大规模的哈希数据中,加速哈希方法的近似搜索降低时耗是一个很有价值的研究方向。
发明内容
针对现有技术中存在的缺陷,本发明的目的在于提供一种基于 GPU加速检索的大规模人脸识别方法,能利用GPU强大的并行计算能力加速候选特征向量的筛选,大幅降低大规模数据集上检索时耗,能很好地满足以深度卷积神经网络的实现为基础且实时性要求较高的各类应用需求。
为达到以上目的,本发明采取的技术方案是:
一种基于GPU加速检索的大规模人脸识别方法,该方法包括以下步骤:
S1、将待检测图片输入MTCNN网络,采用人脸检测算法,检测照片中人脸的位置及关键点位置,对齐检测到的人脸;
S2、使用训练好的深度学习模型提取步骤S1处理后人脸照片和该照片镜像的实值特征向量,然后融合两个实值特征向量并降维作为该人脸的实值特征;
S3、将所述实值特征转化为哈希特征;
S4、重复步骤S1-S3逐个检测待测人脸,使用所述哈希特征为索引,实值特征向量作为值,建立键值型人脸数据库;
S5、使用多GPU加速哈希查找算法得到k个与待检测图片的哈希特征近邻的哈希特征;
S6、使用S5中得到的k个哈希特征作为索引,在所述人脸数据库中进行查找,得到由k个实值特征向量组成的候选集;
S7、计算待查询照片的实值特征向量与候选集中实值特征向量的向量相似性度量距离;
S8、根据候选集中实值特征向量与待查询照片的实值特征向量的向量相似性度量距离,投票得到每个待查询照片的分数,将得分最高者作为人脸识别结果;
所述步骤S5中,使用多GPU加速哈希查找算法得到k个近邻的哈希特征具体包括以下步骤:
S501、将全部的N个哈希特征组成的数据集,依据设置使用的 GPU数M划分为M部分,每个部分不超过SUBN=(N+M-1)/M个哈希特征,将划分后的子数据集的所有哈希特征从主机拷贝到对应的设备端;
S502、对每块GPU设置计算线程数,并行计算待查询哈希码与数据集中所有哈希码的汉明距离;
S503、将所有的汉明距离按K个相邻的数据为一组划分为 SUBN/K组,并行执行,将所有SUBN/K组的汉明距离使用归并排序,排序为组内有序;
S504、依次找出数组下标[nK,(n+1)K)和[(n+1)K,(n+2)K)中汉明距离中最小的K个数据,并将它移动到[nK,(n+1)K)的位置,其中 n=0,2,4…,每次比较数组下标[nK,(n+1)K)中的最大值和数组下标[(n+1)K,(n+2)K)的中最小值的大小,若[nK,(n+1)K)中的最大值较大则将二者交换;
S505、重复步骤S503、S504,分别排序[0,K)、[2K,3K)、[4K, 5K)…,将[0,K)和[2K,3K)这2K个数组为一组,找出前K个最小的汉明距离,并将它移动到[0,K),依此类推,直到所有M块GPU 上数据分组的前K个汉明距离都存储在[0,K)位置上;
S506、将M个GPU的计算结果拷贝到主机端内存中,对所有 M*K个汉明距离,使用最大堆排序,遍历M*K个数据,得到M组数据中最小的K个汉明距离。
在上述技术方案的基础上,所述步骤S1具体包括以下步骤:
S101、将待检测图片输入MTCNN网络,使用第一CNN产生人脸候选集窗口及其回归的位置坐标,随后用非极大值抑制算法合并重叠度较高的人脸窗口,产生人脸窗口候选集;
S102、将步骤S101得到的结果送到比第一CNN复杂的第二 CNN,对结果进行再过滤和人脸窗口位置的微调;
S103、将步骤S102得到的结果送到比第二CNN复杂的第三CNN 进行微调,并且生成各个待检测图片中最终人脸窗口的位置和五个人脸关键点的坐标;
S104、判断步骤S103中是否生成有最终人脸窗口,若无,结束识别;若有,提取最终人脸窗口图像,并将人脸矫正对齐至正中,保存为规定分辨率大小。
在上述技术方案的基础上,使用人脸特征提取网络提取人脸照片和该照片镜像的实值特征向量;
所述人脸特征提取网络为32层深度卷积神经网络,包括卷积层、降采样层、PRelu激活层、全连接层和损失函数层。
在上述技术方案的基础上,所述损失函数层包括softmax-loss和 center-loss两个损失函数,所述softmax-loss损失函数用于提高样本经网络映射后在特征空间内的类内聚合程度;所述center-loss损失函数用于增大样本经网络映射后在特征空间内的类间距离。
在上述技术方案的基础上,所述步骤S2中,按如下公式融合步骤S1处理后人脸照片实值特征向量和该照片镜像的实值特征向量:
fi=max(xi,yi)i=1,2,…,n
其中,xi和yi分别是待融合向量x,y的第i维,n是实值特征向量的维数,fi为融合后的实值特征向量的第i维。
在上述技术方案的基础上,所述步骤S3中,按如下公式将步骤 S2中得到的人脸实值特征转化为哈希特征:
f(x)=0.5×(sign(x)+1)
其中,
Figure GDA0002275392880000051
在上述技术方案的基础上,所述步骤S7中,使用Cosine度量或欧式度量计算步骤S5中得到的待查询人脸的实值特征向量与候选集中每一个实值特征向量的距离。
在上述技术方案的基础上,所述步骤S8中,使用的投票器公式如下:
Figure GDA0002275392880000061
其中,score(id)为候选集中每个人脸ID的最终投票分数,sim 为步骤S7中得到的待查询人脸的实值特征向量与候选集中实值特征向量的距离,threshold为设置阈值。
与现有技术相比,本发明的优点在于:
(1)本发明的基于GPU加速检索的大规模人脸识别方法基于哈希索引和多GPU加速计算的两阶段特征匹配,能利用GPU强大的并行计算能力加速候选特征向量的筛选,大幅降低大规模数据集上检索时耗,能很好地满足以深度卷积神经网络的实现为基础且实时性要求较高的各类应用需求。
(2)本发明的基于GPU加速检索的大规模人脸识别方法在LFW 人脸测试集上准确率达到99.48%,在MegaFace测试任务中的识别率达到72.5%,实现了在大幅降低大规模数据集上检索时耗同时,保证高识别准确率的效果。
(3)本发明的基于GPU加速检索的大规模人脸识别方法每个步骤相对独立,可随着技术进步或实际需求对其中某个步骤进行替换调整而不影响其他步骤的实施,扩展性良好。
附图说明
图1为本发明实施例中基于GPU加速的大规模人脸识别检索方法的示意图;
图2为本发明实施例中人脸检测及关键点定位的MTCNN框架图;
图3为本发明实施例中提出的基于深度学习的人脸特征提取网络结构图;
图4为本发明实施例中提出的人脸实值特征提取与融合框架图;
图5为本发明实施例中提出的基于GPU加速的哈希查找算法流程图。
具体实施方式
以下结合附图及实施例对本发明作进一步详细说明。
本发明实施例中使用的名词解释如下:
MTCNN:Multi-task convolutional neural network,多任务的卷积神经网络;
CNN:convolutional neural network,卷积神经网络;
PReLU(Parametric Rectified Linear Unit):带参数的激活函数。
参见图1所示,本发明实施例提供一种基于GPU加速检索的大规模人脸识别方法,包括以下步骤:
S1、将待检测图片输入MTCNN网络,采用人脸检测算法,检测照片中人脸的位置及关键点位置,对齐检测到的人脸;
S2、使用训练好的深度学习模型提取步骤S1处理后人脸照片和该照片镜像的实值特征向量,然后融合两个向量并降维作为该人脸的实值特征;
S3、设计哈希函数将步骤S2中得到的人脸实值特征转化为哈希特征;
S4、重复步骤S1-S3逐个检测待测人脸,使用步骤S3中的哈希特征为索引,实值特征向量作为值,建立键值型人脸数据库;
S5、根据步骤S1-S3对查询照片处理得到哈希特征,使用多GPU 加速哈希查找算法得到k个近邻的哈希特征;
S6、使用S5中得到的哈希特征作为索引,在步骤S4建立的人脸数据库中进行查找,得到对应实值特征向量的候选集;
S7、计算待查询照片的实值特征向量与候选集中特征向量的汉明距离;
S8、根据候选集中向量与待查询向量的汉明距离,减去阈值之后,投票得到每个候选ID的分数,将得分最高者作为人脸识别结果。
本发明所提供的一种基于GPU加速检索的大规模人脸识别方法,将查询过程分为粗糙匹配和精细匹配两个阶段。其中,粗糙匹配阶段先利用深度哈希技术生成每张人脸图像对应的哈希特征,将数据集中所有的哈希特征建立高效的索引,使用GPU加速计算的哈希查找算法查询待检索人脸图像的哈希特征与所有哈希特征的汉明距离,将满足小于特定汉明距离及汉明距离最小的前k个哈希特征对应的人脸作为候选集,得到粗糙匹配阶段得到的结果。在精确匹配阶段,根据候选集中的哈希特征取出对应的实值特征,选取合适的相似度度量方法,将候选集中的实值特征与待检索人脸的实值特征进行比对。将比对的结果送到投票器中,最后,得票分数最高的人脸ID即为人脸识别结果。
下面分步骤详述本发明方法一个实施例中各步骤完成基于GPU 加速检索的大规模人脸识别方法的详细过程:
步骤S1、将待检测图片输入MTCNN网络,采用人脸检测算法,检测照片中人脸的位置及关键点位置,对齐检测到的人脸;
本发明采用MTCNN方法作为人脸检测及关键点定位方法,其总体的框架图如图2所示,其对人脸检测及关键点定位处理具体包括以下步骤:
S101、将待检测图片输入MTCNN网络,使用第一CNN产生人脸候选集窗口及其回归的位置坐标,随后用非极大值抑制算法合并重叠度较高的人脸窗口,产生人脸窗口候选集;
S102、将步骤S101得到的结果送到比第一CNN复杂的第二 CNN,对结果进行再过滤和人脸窗口位置的微调;
S103、将步骤S102得到的结果再经过比第二CNN复杂的第三 CNN进行微调,并且产生各待检测图片最终人脸窗口的位置和五个人脸关键点的坐标;
S104、判断步骤S103中是否有最终人脸窗口产生,若无,结束识别;若有,提取最终人脸窗口图像,并将人脸矫正对其至正中,保存为规定分辨率大小。
如图3所示,本发明实施例中的MTCNN分三个阶段来处理图像:所述第一CNN使用全卷积网络P-Net(Proposal Network),获取一部分人脸窗口候选集,其中使用边界框回归来校准和用NMS来合并候选框;然后将其送入一个更复杂的第二CNN,其使用全卷积网络R-Net(Refine Network)去掉更多非人脸的区域;最后将结果输入到一个更复杂第三CNN网络O-Net(Output Network)做精细的处理,输出最终人脸框和五个面部关键点位置。
该方法设计了三个网络结构来做级联优化处理。相比于多分类的目标检测任务,人脸检测任务是一个二分类问题,因此它相对目标检测来说需要更少的滤波器,但是却需要更好的区分度,所以在O-Net 中设计更深层次的网络结构来提取更好的语义特征。并且为了达到实时性的目标,设计的卷积核的大小都为3×3和2×2,可以减少很多的运算量,三个CNN结构如图3所示。
将待检测图片输入MTCNN网络,经过步骤S101-S103处理之后,就得到了输入图片是否有人脸、人脸窗口的位置和人脸关键点的坐标,再经过步骤S104处理,得到步骤S2中所需的处理后人脸照片。
步骤S2、使用训练好的深度学习模型提取步骤S1处理后人脸照片和该照片镜像的实值特征向量,然后融合两个向量并降维作为该人脸的实值特征;
本发明设计的人脸特征提取网络就是根据残差网络-Resnet所述的残差块的结构堆叠而成,设计了一个32层的深度卷积神经网络,包括卷积层,降采样层,PRelu激活层,全连接层等多种不同类型的结构,通过多种结构的组合来拟合出复杂的非线性变换,整体的网络结构如图4所示。
网络的具体配置与参数设置如下表所示:
Figure GDA0002275392880000101
Figure GDA0002275392880000111
网络的输入为分辨率为96×112×3的图像,输出512维的特征。网络结构一共有32层,Conv代表的是卷积层,MP是降采样层(采用的是最大池化的方法),FC是全连接层。重复代表的是该结构重叠的次数,输出是经过本层之后特征的输出大小。从表中可以看出,网络结构越靠后地方参数个数越多,最后一层全连接层的参数个数是总参数个数的一半,最终输出的特征向量为512维。在最后一个FC层后面是损失函数层,本发明使用的特征提取网络同时使用 softmax-loss和center-loss两个损失函数,以提高类内聚集和类间距离远离,最终提高准确率。Center-loss在softmax-loss的基础上,通过对训练集的每个类在特征空间分别记录一个类中心,在训练过程中,增加样本经过网络映射后在特征空间中与类中心的距离约束,提高了映射后特征在类内聚合程度,同时结合softmax-loss增大类间距离,使学习到的特征具有更好的泛化性和辨别能力。
S4、重复步骤S1-S3逐个检测待测人脸,使用步骤S3中的哈希特征为索引,实值特征向量作为值,建立键值型人脸数据库;
由于本发明处理的数据规模在亿级,为了更快的检索哈希特征对应的实值特征向量,可以采用Redis存储实值向量,每个哈希索引对应多个特征向量,如果某个特征向量产生的哈希特征在数据库中不存在则添加对应的哈希索引,否则将该特征向量追加到对应哈希索引中。为了存储关于人脸的信息,本发明使用三张表来存储相应的信息,分别是hashcode_set、face_info_hash和person_info_hash。其中 hashcode_set是集合类型的数据结构,存储全部的哈希索引。 face_info_hash和person_info_hash是Redis中的Hash类型数据结构,以键值对的形式存储数据,其中face_info_hash存储每张人脸的相关信息,person_info_hash存储每个人的信息,每个人有唯一的ID,同时每个人可以有多张人脸。
person_info_hash键的具体结构如下:
Figure GDA0002275392880000121
Figure GDA0002275392880000131
face_info_hash键的具体结构如下:
由于两张表都是键值型数据结构,所以可以自由的添加新的信息每张人脸张片在face_info_hash表中存储其对应的哈希索引,对应的哈希索引为键名的键中存储许多个人脸的实值特征向量,每个特征向量的键名由人脸的id和编号构成如下表所示:
Figure GDA0002275392880000133
步骤S5,对前序步骤得到待查询的人脸照片对应的实值特征向量和哈希特征向量进行粗糙匹配。在本发明的大规模人脸识别方法中,粗糙匹配阶段是检索与待查询图片汉明距离最近的K个哈希特征。众所周知,GPU一种用于图像渲染的图形处理器,它集成了非常多的计算核心,常用于数据处理和科学计算。GPU的这种强大的并行计算能力符合大规模特征距离计算的应用场景,即在大规模的哈希特征中寻找满足查询条件的K个哈希特征。因此,本发明设计了一种基于多GPU加速的Top K哈希查找算法。算法主要流程如图5所示,具体包括以下步骤:
S501、将全部的N个哈希特征组成的数据集,依据设置使用的 GPU数M,划分为M部分,每个部分不超过SUBN=(N+M-1)/M个哈希特征,将划分后的子数据集的所有哈希特征从主机拷贝到对应的设备端;
S502、对每块GPU设置计算线程数,并行计算待查询哈希码与数据集中所有哈希码的汉明距离;
S503、将所有的汉明距离按K个相邻的数据为一组划分为 SUBN/K组,并行执行,将所有SUBN/K组的汉明距离使用归并排序,排序为组内有序;
S504、依次找出数组下标[nK,(n+1)K)和[(n+1)K,(n+2)K)中汉明距离中最小的K个数据,并将它移动到[nK,(n+1)K)的位置,其中 n=0,2,4…,每次比较数组下标[nK,(n+1)K)中的最大值和数组下标[(n+1)K,(n+2)K)的中最小值的大小,若[nK,(n+1)K)中的最大值较大则将二者交换;
S505、重复步骤S503、S504,分别排序[0,K)、[2K,3K)、[4K, 5K)…,将[0,K)和[2K,3K)这2K个数组为一组,找出前K个最小的汉明距离,并将它移动到[0,K),依此类推,直到所有M块GPU 上数据分组的前K个汉明距离都存储在[0,K)位置上;
S506、将M个GPU的计算结果拷贝到主机端内存中,对所有 M*K个汉明距离,使用最大堆排序,遍历M*K个数据,得到M组数据中最小的K个汉明距离。
算法的目标是寻找N个哈希特征中,与查询哈希特征的汉明距离最小的K个哈希特征,首先将全部N个哈希特征依据可用的GPU 数M划分为M部分,每个部分含有(N+M-1)/M个哈希特征,分别将每个部分的哈希特征从主机拷贝到设备端,然后分别对每块GPU做如下操作,设置每块GPU用于计算的块(Block)和网格(Grid)的大小,利用GPU的并行计算能力快速计算出待查询哈希码与数据集中所有哈希码的汉明距离,最后从所有汉明距离中选取前K个最小的汉明距离返回,之后在主机端将M个GPU计算的结果按照距离使用归并排序的思想合并,得到与查询的哈希特征汉明距离最小的K 个哈希特征。具体流程如上述步骤S501-S506所述。
整个算法是运用归并(Merge Sort)和双调排序(Bitonic Sort) 的思想,实现在GPU上的哈希快速计算与检索。基于GPU加速的哈希索引方法每块GPU需要维护一个与汉明距离列表相同的索引结构即可,当汉明距离变化时,同时移动索引的位置,最后Top K汉明距离的位置即为对应索引的位置。
算法主要的显存开销为存储所有的汉明距离,空间复杂度为 O(N),在时间开销上,主要包括汉明距离的计算和双调归并排序的开销,在这两个过程中,前者的时间复杂度为O(N),后者的时间复杂度为O(NlogN),因此整体时间复杂度为O(NlogN)
在使用GPU加速哈希查找算法查找出候选的哈希索引之后,根据这些哈希索引从人脸数据库中得到所有哈希索引对应存储的人脸特征向量,这些人脸特征向量就组成候选集。
步骤S6中,将步骤S5里得到的哈希特征向量作为键名,查询 Redis中键名对应的键值,可以得到候选特征向量,依据步骤4中人脸数据库的建立过程,每个哈希索引中存储的特征向量的子键名中含有特征向量对应人的Id,依据id和对应的实值特征向量,依次查询 Redis中所有步骤5中得到的哈希索引,得到的所有子键值对组成一个map结构的特征向量候选集,所述的map结构如下表:
Id 特征向量
Id1_face_feature_0 Id1对应人的第1张照片的实值特征
Id2_face_feature_0 Id2对应人的第1张照片的实值特征
Id2_face_feature_1 Id2对应人的第2张照片的实值特征
步骤S7,计算待查询照片的实值特征向量与候选集中特征向量的汉明距离;
该步骤中,计算步骤S5中得到的待查询人脸的实值特征向量与候选集中每一个特征向量的距离,本发明的实现使用Cosine作为相似性度量,但并不限于Cosine度量,还可以使用欧式度量等。当两个向量的Cosine距离越接近于1,表明这两个向量越相似。将计算得到的依据每个特征向量的键名和距离存储在map结构中,留待下一步处理。
步骤S8、根据候选集中向量与待查询向量的汉明距离,减去阈值之后,投票得到每个候选ID的分数,将得分最高者作为人脸识别结果。
得到待查询人脸特征与候选集中所有人的相似度分数之后,由于候选集中可能每个人不止有一张图片,所以需要设计一个投票器对人脸ID进行投票,本实施例中投票器设计如下:
Figure GDA0002275392880000171
其中,score(id)为候选集中每个人脸ID的最终投票分数,sim 为步骤S7中得到的待查询人脸的实值特征向量与候选集中特征向量的距离,threshold为设置阈值。可以看出当cosine距离大于阈值时,该图片对应的人得分增加,否则对应人的得分会降低,投票分数最大的id即为最终的识别结果。
本发明不局限于上述实施方式,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围之内。本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。

Claims (8)

1.一种基于GPU加速检索的大规模人脸识别方法,其特征在于,该方法包括以下步骤:
S1、将待检测图片输入MTCNN网络,采用人脸检测算法,检测照片中人脸的位置及关键点位置,对齐检测到的人脸;
S2、使用训练好的深度学习模型提取步骤S1处理后人脸照片和该照片镜像的实值特征向量,然后融合两个实值特征向量并降维作为该人脸的实值特征;
S3、将所述实值特征转化为哈希特征;
S4、重复步骤S1-S3逐个检测待测人脸,使用所述哈希特征为索引,实值特征向量作为值,建立键值型人脸数据库;
S5、使用多GPU加速哈希查找算法得到k个与待检测图片的哈希特征近邻的哈希特征;
S6、使用S5中得到的k个哈希特征作为索引,在所述人脸数据库中进行查找,得到由k个实值特征向量组成的候选集;
S7、计算待查询照片的实值特征向量与候选集中实值特征向量的向量相似性度量距离;
S8、根据候选集中实值特征向量与待查询照片的实值特征向量的向量相似性度量距离,投票得到每个待查询照片的分数,将得分最高者作为人脸识别结果;
所述步骤S5中,使用多GPU加速哈希查找算法得到k个近邻的哈希特征具体包括以下步骤:
S501、将全部的N个哈希特征组成的数据集,依据设置使用的GPU数M划分为M部分,每个部分不超过SUBN=(N+M-1)/M个哈希特征,将划分后的子数据集的所有哈希特征从主机拷贝到对应的设备端;
S502、对每块GPU设置计算线程数,并行计算待查询哈希码与数据集中所有哈希码的汉明距离;
S503、将所有的汉明距离按K个相邻的数据为一组划分为SUBN/K组,并行执行,将所有SUBN/K组的汉明距离使用归并排序,排序为组内有序;
S504、依次找出数组下标[nK,(n+1)K)和[(n+1)K,(n+2)K)中汉明距离中最小的K个数据,并将它移动到[nK,(n+1)K)的位置,其中n=0,2,4…n为非负偶数,每次比较数组下标位于区间[nK,(n+1)K)中的最大值和数组下标位于区间[(n+1)K,(n+2)K)的中的最小值的大小,若[nK,(n+1)K)中的最大值较大则将二者交换;
S505、重复步骤S503、S504,分别排序[0,K)、[2K,3K)、[4K,5K)…,将[0,K)和[2K,3K)这2K个数组为一组,找出前K个最小的汉明距离,并将它移动到[0,K),依此类推,直到所有M块GPU上数据分组的前K个汉明距离都存储在[0,K)位置上;
S506、将M个GPU的计算结果拷贝到主机端内存中,对所有M*K个汉明距离,使用最大堆排序,遍历M*K个数据,得到M组数据中最小的K个汉明距离。
2.如权利要求1所述的基于GPU加速检索的大规模人脸识别方法,其特征在于:所述步骤S1具体包括以下步骤:
S101、将待检测图片输入MTCNN网络,使用第一CNN产生人脸候选集窗口及其回归的位置坐标,随后用非极大值抑制算法合并重叠度较高的人脸窗口,产生人脸窗口候选集;
S102、将步骤S101得到的结果送到比第一CNN复杂的第二CNN,对结果进行再过滤和人脸窗口位置的微调;
S103、将步骤S102得到的结果送到比第二CNN复杂的第三CNN进行微调,并且生成各个待检测图片中最终人脸窗口的位置和五个人脸关键点的坐标;
S104、判断步骤S103中是否生成有最终人脸窗口,若无,结束识别;若有,提取最终人脸窗口图像,并将人脸矫正对齐至正中,保存为规定分辨率大小。
3.如权利要求1所述的基于GPU加速检索的大规模人脸识别方法,其特征在于:
使用人脸特征提取网络提取人脸照片和该照片镜像的实值特征向量;
所述人脸特征提取网络为32层深度卷积神经网络,包括卷积层、降采样层、PRelu激活层、全连接层和损失函数层。
4.如权利要求3所述的基于GPU加速检索的大规模人脸识别方法,其特征在于:所述损失函数层包括softmax-loss和center-loss两个损失函数,所述softmax-loss损失函数用于提高样本经网络映射后在特征空间内的类内聚合程度;所述center-loss损失函数用于增大样本经网络映射后在特征空间内的类间距离。
5.如权利要求1所述的基于GPU加速检索的大规模人脸识别方法,其特征在于:所述步骤S2中,按如下公式融合步骤S1处理后人脸照片实值特征向量和该照片镜像的实值特征向量:
fi=max(xi,yi)i=1,2,…,n
其中,xi和yi分别是待融合向量x,y的第i维,n是实值特征向量的维数,fi为融合后的实值特征向量的第i维。
6.如权利要求1所述的基于GPU加速检索的大规模人脸识别方法,其特征在于:所述步骤S3中,按如下公式将步骤S2中得到的人脸实值特征转化为哈希特征:
f(x)=0.5×(sign(x)+1)
其中,
Figure FDA0002275392870000041
7.如权利要求1所述的基于GPU加速检索的大规模人脸识别方法,其特征在于:所述步骤S7中,使用Cosine度量或欧式度量计算步骤S5中得到的待查询人脸的实值特征向量与候选集中每一个实值特征向量的距离。
8.如权利要求1所述的基于GPU加速检索的大规模人脸识别方法,其特征在于:所述步骤S8中,使用的投票器公式如下:
其中,score(id)为候选集中每个人脸ID的最终投票分数,sim为步骤S7中得到的待查询人脸的实值特征向量与候选集中实值特征向量的距离,threshold为设置阈值。
CN201710675398.2A 2017-08-09 2017-08-09 一种基于gpu加速检索的大规模人脸识别方法 Active CN107577990B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710675398.2A CN107577990B (zh) 2017-08-09 2017-08-09 一种基于gpu加速检索的大规模人脸识别方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710675398.2A CN107577990B (zh) 2017-08-09 2017-08-09 一种基于gpu加速检索的大规模人脸识别方法

Publications (2)

Publication Number Publication Date
CN107577990A CN107577990A (zh) 2018-01-12
CN107577990B true CN107577990B (zh) 2020-02-18

Family

ID=61034399

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710675398.2A Active CN107577990B (zh) 2017-08-09 2017-08-09 一种基于gpu加速检索的大规模人脸识别方法

Country Status (1)

Country Link
CN (1) CN107577990B (zh)

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110390344B (zh) * 2018-04-19 2021-10-26 华为技术有限公司 备选框更新方法及装置
CN110263603B (zh) * 2018-05-14 2021-08-06 桂林远望智能通信科技有限公司 基于中心损失和残差视觉仿真网络的人脸识别方法及装置
US11443176B2 (en) * 2018-05-17 2022-09-13 International Business Machines Corporation Acceleration of convolutional neural networks on analog arrays
CN109062942A (zh) * 2018-06-21 2018-12-21 北京陌上花科技有限公司 数据查询方法和装置
CN108921065A (zh) * 2018-06-21 2018-11-30 北京陌上花科技有限公司 建立特征数据库的方法和装置
CN108920720B (zh) * 2018-07-30 2021-09-07 电子科技大学 基于深度哈希和gpu加速的大规模图像检索方法
CN109034119A (zh) * 2018-08-27 2018-12-18 苏州广目信息技术有限公司 一种基于优化的全卷积神经网络的人脸检测方法
CN109241325B (zh) * 2018-09-11 2020-12-08 武汉魅瞳科技有限公司 一种基于深度特征的大规模人脸检索方法和设备
CN111382287A (zh) * 2018-12-30 2020-07-07 浙江宇视科技有限公司 一种图片的搜索方法、装置、存储介质及电子设备
CN109783692B (zh) * 2019-01-08 2021-12-31 深圳英飞拓科技股份有限公司 一种快数据和慢数据结合的目标特征码比对方法和装置
CN110059644A (zh) * 2019-04-23 2019-07-26 杭州智趣智能信息技术有限公司 一种基于人脸图像的活体检测方法、***及相关组件
CN110110125A (zh) * 2019-04-28 2019-08-09 重庆学析优科技有限公司 一种快速精确的图片搜索匹配方法及***
CN110110113A (zh) * 2019-05-20 2019-08-09 重庆紫光华山智安科技有限公司 图像搜索方法、***及电子装置
CN110659290B (zh) * 2019-09-20 2021-06-11 中科寒武纪科技股份有限公司 数据处理方法及装置以及相关产品
CN110647722B (zh) * 2019-09-20 2024-03-01 中科寒武纪科技股份有限公司 数据处理方法及装置以及相关产品
CN110879984A (zh) * 2019-11-18 2020-03-13 上海眼控科技股份有限公司 一种人脸比对的方法及设备
CN111310732A (zh) * 2020-03-19 2020-06-19 广东宜教通教育有限公司 高精度人脸认证方法、***、计算机设备及存储介质
CN112000845B (zh) * 2020-08-19 2021-07-20 东北大学 一种基于gpu加速的超空间哈希索引方法
CN112527855B (zh) * 2020-09-23 2024-05-03 广东协城信息科技有限公司 一种人脸向量快速比对技术
CN112215183B (zh) * 2020-10-21 2024-06-21 中国银行股份有限公司 银行客户识别方法及装置
CN112685580A (zh) * 2020-12-25 2021-04-20 公安部第三研究所 基于深度学习的社交网络头像比对的分布式检测***、方法、装置、处理器及其存储介质
CN112434678B (zh) * 2021-01-27 2021-06-04 成都无糖信息技术有限公司 基于人工神经网络的人脸测量特征空间搜索***及方法
CN113516002A (zh) * 2021-03-05 2021-10-19 武汉特斯联智能工程有限公司 应用智慧社区的基于人脸识别模型的人脸识别方法及装置
CN113254686B (zh) * 2021-04-02 2023-08-01 青岛以萨数据技术有限公司 人员行为检测方法、装置及存储介质
CN112907810A (zh) * 2021-04-02 2021-06-04 吉林大学 一种基于嵌入式gpu的人脸识别测温校园门禁***
CN113469350B (zh) * 2021-07-07 2023-03-24 武汉魅瞳科技有限公司 一种适于npu的深度卷积神经网络加速方法和***
CN114064948A (zh) * 2021-10-15 2022-02-18 西安深信科创信息技术有限公司 基于广义平均池化策略的哈希图像检索方法及装置
CN114048344A (zh) * 2021-11-25 2022-02-15 天翼数字生活科技有限公司 一种相似人脸搜索方法、装置、设备和可读存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6691126B1 (en) * 2000-06-14 2004-02-10 International Business Machines Corporation Method and apparatus for locating multi-region objects in an image or video database
CN102521366A (zh) * 2011-12-16 2012-06-27 华中科技大学 融合分类与全局索引的图像检索方法和图像检索***
CN106599830A (zh) * 2016-12-09 2017-04-26 中国科学院自动化研究所 人脸关键点定位方法及装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6691126B1 (en) * 2000-06-14 2004-02-10 International Business Machines Corporation Method and apparatus for locating multi-region objects in an image or video database
CN102521366A (zh) * 2011-12-16 2012-06-27 华中科技大学 融合分类与全局索引的图像检索方法和图像检索***
CN106599830A (zh) * 2016-12-09 2017-04-26 中国科学院自动化研究所 人脸关键点定位方法及装置

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
"FaceHunter:A multi-task convolutional neural network based face detector";Dong Wang etc.;《Signal Processing:Image Communication》;20160419;论文第1-2,3.1节,图1 *
"图像相似性计算及其GPU加速的若干研究";陈伟平;《中国优秀硕士学位论文全文数据库 信息科技辑》;20131015(第10期);论文第1.1,5.3节 *
"基于哈希算法的图像检索***";倪康康;《中国优秀硕士学位论文全文数据库 信息科技辑》;20160315(第03期);论文第3.3.1-3.3.2节,表3.1 *

Also Published As

Publication number Publication date
CN107577990A (zh) 2018-01-12

Similar Documents

Publication Publication Date Title
CN107577990B (zh) 一种基于gpu加速检索的大规模人脸识别方法
Yu et al. Spatial pyramid-enhanced NetVLAD with weighted triplet loss for place recognition
CN107609497B (zh) 基于视觉跟踪技术的实时视频人脸识别方法及***
CN111198959B (zh) 一种基于卷积神经网络的两阶段图像检索方法
Paisitkriangkrai et al. Pedestrian detection with spatially pooled features and structured ensemble learning
Lynen et al. Placeless place-recognition
CN111126360A (zh) 基于无监督联合多损失模型的跨域行人重识别方法
CN108280187B (zh) 一种基于卷积神经网络深度特征的分级图像检索方法
CN110751027B (zh) 一种基于深度多示例学习的行人重识别方法
Huang et al. Sketch-based image retrieval with deep visual semantic descriptor
CN115830637B (zh) 一种基于姿态估计和背景抑制的遮挡行人重识别方法
CN112597324A (zh) 一种基于相关滤波的图像哈希索引构建方法、***及设备
CN112084895B (zh) 一种基于深度学习的行人重识别方法
Zhang et al. Loop closure detection via maximization of mutual information
Zhou et al. Retrieval and localization with observation constraints
CN111144469B (zh) 基于多维关联时序分类神经网络的端到端多序列文本识别方法
Gao et al. Efficient view-based 3-D object retrieval via hypergraph learning
CN112084353A (zh) 一种快速陆标-卷积特征匹配的词袋模型方法
Schall et al. Deep aggregation of regional convolutional activations for content based image retrieval
Ameur et al. Unconstrained face verification based on monogenic binary pattern and convolutional neural network
Cheng et al. Research on feasibility of convolution neural networks for rock thin sections image retrieval
CN115100694A (zh) 一种基于自监督神经网络的指纹快速检索方法
Wu et al. Visual loop closure detection by matching binary visual features using locality sensitive hashing
Cui et al. A face alignment method based on SURF features
Wang et al. Visual Loop Closure Detection Based on Stacked Convolutional and Autoencoder Neural Networks

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