本申请涉及人脸识别技术领域,特别是涉及一种人脸比对的方法、装置、计算机设备及存储介质。
背景技术:
随着信息技术和计算机技术的发展,人脸识别已成为现今的热门研究方向,广泛应用于门禁和拍照等场景中。人脸比对为人脸识别的一个分支领域,其主要思想是将获取到的用户图像与已注册的底图进行对比,如果用户图像与底图较为相似,则将该底图作为比对的结果。
在相关技术中,一般使用彩色图像或者红外图像去进行人脸比对,但是这是这两种比对图像方式是在图像在同一类型的基础上的结果。而当现实场景变成了彩色图像和红外图像进行比对的时候,会出现识别效果变差的问题,这在一定程度上限制了人脸比对的使用场景。
针对相关技术中,人脸比对中彩色图像和红外图像之间存在识别差异的问题,目前尚未提出有效的解决方案。
技术实现要素:
针对相关技术中,人脸比对中彩色图像和红外图像之间存在识别差异的问题,本发明提供了一种人脸比对的方法、装置、计算机设备及存储介质,以至少解决上述问题。
根据本发明的一个方面,提供了一种人脸比对的方法,所述方法包括:
利用深度神经网络训练出基于预设彩色图像的第一比对模型,并根据所述第一比对模型搭建孪生网络;
根据用户彩色图像、用户红外图像生成正样本和负样本;将所述正样本和所述负样本分别输入到所述孪生网络中,得到所述用户彩色图像的第一特征向量,并得到同一样本中的所述用户红外图像的第二特征向量;
计算所述第一特征向量和所述第二特征向量之间的余弦相似距离和kullback-leibler散度(简称为kl散度),将所述余弦相似距离代入预设对比损失函数得到对比损失值,并根据所述对比损失值和所述kl散度训练所述孪生网络,待样本数据迭代后得到第二比对模型;
将目标彩色图像和目标红外图像输入所述第二比对模型,并进行相似度计算;根据所述相似度计算输出人脸比对的结果。
在其中一个实施例中,所述根据用户彩色图像、用户红外图像生成正样本和负样本包括:
根据同一人之间的一对所述用户彩色图像和所述用户红外图像生成所述正样本,并根据不同人之间的一对所述用户彩色图像和所述用户红外图像生成所述负样本。
在其中一个实施例中,所述根据用户彩色图像、用户红外图像生成正样本和负样本包括:
对所述用户彩色图像进行第一关键点提取,根据所述第一关键点得到第一仿射矩阵,根据所述第一仿射矩阵得到对齐彩色图像,并将所述对齐彩色图像裁减为预设图像尺寸的裁减彩色图像;
对所述用户红外图像进行第二关键点提取,根据所述第二关键点得到第二仿射矩阵,根据所述第二仿射矩阵得到对齐红外图像,并将所述对齐红外图像裁减为所述预设图像尺寸的裁减红外图像;
根据同一人之间的所述裁减彩色图像和所述裁减红外图像生成所述正样本,并根据不同人之间的所述裁减彩色图像和所述裁减红外图像生成所述负样本。
在其中一个实施例中,所述将所述正样本和所述负样本分别输入到所述孪生网络中包括:
对所述正样本进行归一化处理,得到归一化正样本;并将所述负样本进行归一化处理,得到归一化负样本;
将所述归一化正样本和所述归一化负样本分别输入到所述孪生网络中。
在其中一个实施例中,所述根据所述第一比对模型搭建孪生网络包括:
将所述第一比对模型作为基干网络,固定所述基干网络中卷积单元的参数,并放开所述基干网络中全连接层的参数;根据所述基干网络搭建所述孪生网络。
在其中一个实施例中,所述根据所述对比损失值和所述kl散度训练所述孪生网络,待样本数据迭代后得到第二比对模型包括:
根据所述对比损失值和所述kl散度调整更新所述孪生网络中全连接层的参数;
设置学习率和衰减方式,待输入所述孪生网络中的样本数据迭代后得到第二比对模型。
根据本发明的另一个方面,提供了一种人脸比对的装置,所述装置包括:
搭建模块,用于利用深度神经网络训练出基于预设彩色图像的第一比对模型,并根据所述第一比对模型搭建孪生网络;
特征模块,用于根据用户彩色图像、用户红外图像生成正样本和负样本;所述特征模块将所述正样本和所述负样本分别输入到所述孪生网络中,得到所述用户彩色图像的第一特征向量,并得到同一样本中的所述用户红外图像的第二特征向量;
获取模块,用于计算所述第一特征向量和所述第二特征向量之间的余弦相似距离和kl散度,将所述余弦相似距离代入预设对比损失函数得到对比损失值,并根据所述对比损失值和所述kl散度训练所述孪生网络,待样本数据迭代后得到第二比对模型;;
比对模块,用于将目标彩色图像和目标红外图像输入所述第二比对模型,并进行相似度计算;所述比对模块根据所述相似度计算输出人脸比对的结果。
在其中一个实施例中,所述搭建模块还用于将所述第一比对模型作为基干网络,固定所述基干网络中卷积单元的参数,并放开所述基干网络中全连接层的参数;所述搭建模块根据所述基干网络搭建所述孪生网络。
根据本发明的另一个方面,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述任一所述方法的步骤。
根据本发明的另一个方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一所述方法的步骤。
通过本发明,采用一种人脸比对的方法、装置、计算机设备及存储介质,利用深度神经网络训练出基于预设彩色图像的第一比对模型,并根据该第一比对模型搭建孪生网络;根据用户彩色图像、用户红外图像生成正样本和负样本;将该正样本和该负样本分别输入到所述孪生网络中,得到该用户彩色图像的第一特征向量,并得到同一样本中的该用户红外图像的第二特征向量;计算该第一特征向量和该第二特征向量之间的余弦相似距离和kl散度,将该余弦相似距离代入预设对比损失函数得到对比损失值,并根据所述对比损失值和所述kl散度训练所述孪生网络,待样本数据迭代后得到第二比对模型;将目标彩色图像和目标红外图像输入该第二比对模型,根据该相似度计算输出人脸比对的结果,从而解决了人脸比对中彩色图像和红外图像之间存在识别差异的问题。
附图说明
图1为根据本发明实施例中一种人脸比对应用场景的示意图;
图2为根据本发明实施例的一种人脸比对的方法的流程图一;
图3为根据本发明实施例的一种人脸比对的方法的流程图二;
图4为根据本发明实施例的一种人脸比对的方法的流程图三;
图5为根据本发明实施例的一种人脸比对的方法的流程图四;
图6为根据本发明实施例的一种人脸比对的方法的流程图五;
图7为根据本发明实施例的一种人脸比对的方法的流程图六;
图8为根据本发明实施例的一种人脸比对的装置的结构框图一;
图9为根据本发明实施例的一种人脸比对的装置的结构框图二;
图10为根据本发明实施例的一种计算机设备内部的结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
在本实施例中,提供了一种人脸比对的方法,图1为根据本发明实施例中一种人脸比对应用场景的示意图,如图1所示,在该应用环境中,终端12通过网络与服务器14通过网络进行通信。服务器14搭建孪生网络,并将存储的预设彩色图像和预设红外图像分别输入到该孪生网络中;服务器14计算预设彩色图像和预设红外图像的kl散度并训练出第二比对模型;终端12向该服务器14发送目标彩色图像和目标红外图像,并接收该服务器14发送的比对结果;该比对结果通过该服务器14将该目标彩色图像和该目标红外图像输入该第二比对模型得出。其中,终端12可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑、便携式可穿戴设备和摄像设备,服务器14可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
在本实施例中,提供了一种人脸比对的方法,图2为根据本发明实施例的一种人脸比对的方法的流程图一,如图2所示,该方法包括如下步骤:
步骤s202,利用深度神经网络训练出基于预设彩色图像的第一比对模型,并根据该第一比对模型搭建孪生网络;其中,深度神经网络(deepneuralnetwork,dnn)是由多层互相连接而形成的复杂网络模型;根据该预设彩色图像建立数据集,或者使用目前开源的彩色图片数据集,利用轻量的深度神经网络可以训练出该第一比对模型,并采用一对结构相同的、权值共享的该第一比对模型组成孪生网络。
步骤s204,根据用户彩色图像、用户红外图像生成正样本和负样本;将该正样本和该负样本分别输入到该孪生网络中,得到该用户彩色图像的第一特征向量,并得到同一样本中的该用户红外图像的第二特征向量;其中,将该孪生网络的全连接层的输出作为特征向量。
步骤s206,根据孪生网络全连接层的输出结果,计算该第一特征向量和该第二特征向量之间的余弦相似距离,将该余弦相似距离代入预设对比损失函数得到对比损失值,该对比损失值的计算入公式1所示:
其中,lcontrastive_loss是对比损失值,d=1-cos(x1,x2)是余弦相似距离,x1是该用户彩色图像的第一特征向量,x2是该用户红外图像的第二特征向量,y是二值函数,该二值函数的具体表达式如公式2所示:
n是一次训练所选取的样本数;再计算该第一特征向量和该第二特征向量之间的kl散度,结合kl散度,整个损失函数如公式3所示:
其中,α是控制kl散度的权重参数;最后结合对比损失值和散度值去调整整个网络参数更新,并通过α值去控制散度值对整体网络的训练的影响,从而在若干样本数据迭代后训练出第二比对模型。
步骤s208,在实际人脸比对的过程中,将目标彩色图像和目标红外图像输入该第二比对模型,并得到这两种图像的特征向量,对该特征向量进行相似度计算,该计算公式如公式4所示:
similar=cos(x1,x2)公式4
根据该相似度计算即可得到两者之间的相似度,将该相似度与预设阈值进行比较,以此来判断该目标彩色图像和该目标红外图像上是否是同一个人,并输出人脸比对的结果。
在相关技术中人脸比对需要比对图像为同一类型,而本发明实施例通过上述步骤s202至s208,正样本和负样本分别经过相同结构的特征提取网络,对输出的特征向量进行余弦相似距离计算,并应用到对比损失函数中,同时根据kl散度去量化这两者分布的差异。最后结合对比损失值和kl散度的均值去引导整个孪生网络的参数更新,直到第二比对模型收敛,从而对人脸识别模型进行了优化,使得可在实际环境中应用红外设备,得到红外的人脸图像,再用已有的清晰的彩色图像做为基准图像进行人脸比对,避免了环境中可见光对彩色图像的干扰,解决了人脸比对中彩色图像和红外图像之间存在识别差异的问题,扩充了人脸识别的应用场景。
在一个实施例中,提供了一种人脸比对的方法,图3为根据本发明实施例的一种人脸比对的方法的流程图二,如图3所示,该方法包括如下步骤:
步骤s302,将该第一比对模型作为基干网络,固定该基干网络中卷积单元的参数,并放开全连接层的参数;根据该基干网络,搭建共享该基干网络的参数的孪生网络;其中,在搭建该孪生网络的过程中,由于基干网络输出结果是整个图像的特征表达,因此只固定基干网络中所有的卷积单元的参数,从而更好的去学习全连接层的特征信息,孪生网络初始化过程中也主要针对的是全连接层的参数,以此达到好的识别效果,进一步优化了人脸比对模型。
在一个实施例中,提供了一种人脸比对的方法,图4为根据本发明实施例的一种人脸比对的方法的流程图三,如图4所示,该方法包括如下步骤:
步骤s402,根据同一人之间的一对用户彩色图像和用户红外图像生成所述正样本,并根据不同人之间的一对用户彩色图像和用户红外图像随机生成负样本。其中,用户彩色图像和用户红外图像的采集包括:终端12将通过各种方式采集好的彩色图像和红外图像导入至服务器14,服务器14自动完成逐个人脸图像的采集工作;或者终端12调用摄像机或摄像头,在可见光或红外设备的可拍摄范围内自动实时抓取人脸图像。
通过上述步骤s402,根据两类彩色图像和红外图像制作具有正、负样本的人脸数据集,便于在两类图像之间进行人脸比对,解决了开源数据集信息和图像类型较为单一的问题。
在一个实施例中,提供了一种人脸比对的方法,图5为根据本发明实施例的一种人脸比对的方法的流程图四,如图5所示,该方法包括如下步骤:
步骤s502,对该用户彩色图像进行第一关键点提取,根据该第一关键点得到第一仿射矩阵,根据该第一仿射矩阵对该用户彩色图像进行仿射变换得到对齐彩色图像,并将该对齐彩色图像裁减为预设图像尺寸的裁减彩色图像;其中,根据人脸检测模型,可以得到五个人脸关键点,分别是左眼中心处,右眼中心处,鼻尖及嘴角两个点;根据这五个人脸关键点对该用户彩色图像进行人脸对齐得到第一关键点;该预设图像尺寸可以为高度和宽度均设置为112像素。
步骤s504,对该用户红外图像进行第二关键点提取,根据该第二关键点得到第二仿射矩阵,根据该第二仿射矩阵对该用户红外图像进行仿射变换得到对齐红外图像,并将该对齐红外图像裁减为该预设图像尺寸的裁减红外图像;该第二关键点的提取与第一关键点提取相同,可以通过训练关键点网络来进行关键点提取,得到图像中识别出的关键点所在的图像坐标;通过根据该关键点得到的仿射矩阵可以将该用户彩色图像和该用户红外图像进行图像对齐。
步骤s506,根据同一人之间的裁减彩色图像和所述裁减红外图像生成正样本,并根据不同人之间的裁减彩色图像和裁减红外图像生成负样本;其中,裁剪后的红外图像和彩色图像随机组合,拼接生成正样本和负样本,因此,在本实施例中,正样本和负样本为112×224的图像。
步骤s508,将该正样本和该负样本分别输入到该孪生网络中,从而得到该裁减彩色图像的第一特征向量,并得到同一样本中的该裁减红外图像的第二特征向量;其中,将该孪生网络的全连接层的输出作为特征向量。
通过上述步骤s502至s508,对两类图像进行关键点提取,并得到仿射矩阵,根据该仿射矩阵将这两类图像进行对齐操作,实现了图像矫正,同时将对齐后的图像裁减成分辨率为112×112像素的固定图像尺寸,并生成具有固定图像尺寸(112×224)的正样本和负样本,从而提高了特征向量提取的准确性。
在一个实施例中,提供了一种人脸比对的方法,图6为根据本发明实施例的一种人脸比对的方法的流程图五,如图6所示,该方法包括如下步骤:
步骤s602,对该正样本进行归一化处理,得到归一化正样本;并将该负样本进行归一化处理,得到归一化负样本;其中,该归一化处理主要是将样本中的两类图片的像素值都除以255,使得这两类图片的像素值在(0,1)的范围之内。
步骤s604,将该归一化正样本和该归一化负样本分别输入到该孪生网络中;其中,该过程理论上是同步进行的,在此过程中不进行损失值反向传播;通过该孪生网络得到该归一化后彩色图像的第一特征向量,并得到同一样本中该归一化后红外图像的第二特征向量。
通过上述步骤s602至s604,对两类图像的像素均进行归一化处理,使得像素在(0,1)的范围之内,使得神经元输入值适当,从而加快了训练模型的收敛性,避免了当训练数据的值是较大整数值时,会减慢模型训练的过程。
在一个实施例中,提供了一种人脸比对的方法,图7为根据本发明实施例的一种人脸比对的方法的流程图六,如图7所示,该方法包括如下步骤:
步骤s702,根据该对比损失值和该kl散度调整更新该孪生网络中全连接层的参数;设置该学习率和衰减方式,待输入该孪生网络中的样本数据迭代后得到第二比对模型;其中,该衰减方式包括指数衰减、自然指数衰减、分段常数衰减或其他衰减方式,经过多次数据迭代后得到最终的人脸识别模型,即第二比对模型。在本实施例中,采用指数形式的衰减方式。
通过上述步骤s702,通过设置学习率的初始值和衰减方式实现了学习率衰减,在训练到达一定程度后,使用小的学习率来提高精度,有利于训练模型更快收敛,进一步优化了人脸比对模型训练的算法。
应该理解的是,虽然图2至图7的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2至图7中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在本实施例中,提供了一种人脸比对的装置,图8为根据本发明实施例的一种人脸比对的装置的结构框图一,如图8所示,该装置包括:
搭建模块82,用于利用深度神经网络训练出基于预设彩色图像的第一比对模型,并根据该第一比对模型搭建孪生网络;
特征模块84,用于根据用户彩色图像、用户红外图像生成正样本和负样本;该特征模块84将该正样本和该负样本分别输入到该孪生网络中,得到该用户彩色图像的第一特征向量,并得到该用户红外图像的第二特征向量;
获取模块86,用于计算第一特征向量和第二特征向量之间的余弦相似距离和kl散度,将余弦相似距离代入预设对比损失函数得到对比损失值,并根据对比损失值和kl散度训练孪生网络,待样本数据迭代后得到第二比对模型;
比对模块88,用于将目标彩色图像和目标红外图像输入该第二比对模型,并进行相似度计算;该比对模块88根据该相似度计算输出人脸比对的结果。
通过上述人脸识别的装置,该特征模块84将该正样本和该负样本分别经过相同结构的该搭建模块82搭建的孪生网络,获取模块86对输出的特征向量进行余弦相似距离计算,并应用到对比损失函数中,同时根据kl散度去量化这两者分布的差异,并根据该kl散度和该对比损失值去训练孪生网络,样本数据迭代后得到第二比对模型,从而对人脸识别模型进行了优化,使得可在实际环境中应用红外设备,得到红外的人脸图像,再用已有的清晰的彩色图像做为基准图像进行人脸比对,避免了环境中可见光对彩色图像的干扰,解决了人脸比对中彩色图像和红外图像之间存在识别差异的问题,扩充了人脸识别的应用场景。
在一个实施例中,该搭建模块82还用于将该第一比对模型作为基干网络,同时固定该基干网络中所有的卷积单元的参数,并放开该基干网络中全连接层的参数;该搭建模块82根据该基干网络搭建共享参数的该孪生网络。
在一个实施例中,特征模块84还用于根据同一人之间的一对用户彩色图像和用户红外图像生成正样本,并根据不同人之间的一对用户彩色图像和用户红外图像生成负样本。
在一个实施例中,提供了一种人脸比对的装置,图9为根据本发明实施例的一种人脸比对的装置的结构框图二,如图9所示,该装置还包括裁减模块:
该裁剪模块92用于对该用户彩色图像进行第一关键点提取,根据该第一关键点得到第一仿射矩阵,根据该第一仿射矩阵得到对齐彩色图像,并将该对齐彩色图像裁减为预设图像尺寸的裁减彩色图像;
该裁剪模块92对该用户红外图像进行第二关键点提取,根据该第二关键点得到第二仿射矩阵,根据该第二仿射矩阵得到对齐红外图像,并将该对齐红外图像裁减为该预设图像尺寸的裁减红外图像;
该特征模块84根据同一人之间的一对裁减彩色图像和裁减红外图像生成正样本,并根据不同人之间的一对裁减彩色图像和裁减红外图像生成负样本。
在一个实施例中,该特征模块84还用于对该正样本进行归一化处理,得到归一化正样本;该特征模块84将该负样本进行归一化处理,得到归一化负样本;
该特征模块82将该归一化正样本和该归一化负样本分别输入到该孪生网络中。
在一个实施例中,该获取模块86还用于根据对比损失值和kl散度调整更新孪生网络中全连接层的参数;
该获取模块86还用于设置学习率和衰减方式,待输入孪生网络中的样本数据迭代后得到第二比对模型。
关于人脸比对装置的具体限定可以参见上文中对于人脸比对方法的限定,在此不再赘述。上述人脸比对装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,图10为根据本发明实施例的一种计算机设备内部的结构图,如图10所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储第二比对模型数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种人脸比对方法。
本领域技术人员可以理解,图10中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述各实施例提供的人脸比对方法中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述各实施例提供的人脸比对方法中的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。