一种人脸识别的方法、装置及计算机可读存储介质与流程

文档序号:24875283发布日期:2021-04-30 12:50阅读:105来源:国知局
一种人脸识别的方法、装置及计算机可读存储介质与流程

本发明属于人工智能技术领域,尤其涉及一种人脸识别的方法、装置及计算机可读存储介质。



背景技术:

人脸识别,是基于人的脸部特征信息进行身份识别的一种生物识别技术,可以从视频图像中查找人脸,并通过与人脸数据库进行比对,实现身份的快速识别,目前已被广泛应用于门禁管理、信息安全、司法刑侦、电子金融等各个领域。

现阶段,人脸识别技术的实现大致包括了人脸位置检测、人脸关键点检测和人脸识别这三个环节,需要为上述三个环节分别设置对应的卷积神经网络,并且每个环节的卷积神经网络独立执行计算过程,从而导致现有的人脸识别技术存在对计算资源的消耗过大的问题。



技术实现要素:

有鉴于此,本发明的主要目的在于提供一种人脸识别的方法、装置及计算机可读存储介质,以解决现有的人脸识别技术对计算资源的消耗过大的问题。

为达到上述目的,本发明的技术方案是这样实现的:

本发明实施例的第一方面提供了一种人脸识别的方法,包括:

将图片输入至设定的卷积神经网络,得到所述卷积神经网络在不同阶段输出的特征图;

将所述特征图依照输出顺序组成自底向上路径,所述自底向上路径的每一节点分别对应一个阶段输出的特征图,基于所述自底向上路径创建自顶向下路径;

由所述自底向上路径计算得到所述图片中人脸的位置区域;

由所述自顶向下路径对所述人脸的位置区域进行计算,得到所述人脸的特征向量;

根据所述特征向量对所述人脸进行人脸识别。

作为本发明实施例第一方面的第一种可能的实现方式,所述由所述自顶向下路径对所述人脸的位置区域进行计算,得到所述人脸的特征向量,包括:

在所述自顶向下路径中的特征图里,对所述人脸的位置区域进行兴趣区域池化运算,得到所述位置区域对应的输出,所述位置区域包括人脸位置区域和五官位置区域;

对所述位置区域对应的输出进行级联操作,得到所述人脸的特征向量。

结合本发明实施例第一方面的第一种可能的实现方式,在第二种可能的实现方式中,所述在所述自顶向下路径中的特征图里,对所述人脸的位置区域进行兴趣区域池化运算,包括:

在所述自顶向下路径的末端节点对应的特征图里,对所述人脸的位置区域进行兴趣区域池化运算。

结合本发明实施例第一方面的第一种可能的实现方式,在第三种可能的实现方式中,所述在所述自顶向下路径中的特征图里,对所述人脸的位置区域进行兴趣区域池化运算,包括:

对所述自顶向下路径中的特征图进行反卷积运算;

在经过反卷积运算的所述特征图里,对所述人脸的位置区域进行兴趣区域池化运算。

作为本发明实施例第一方面的第四种可能的实现方式,所述将所述特征图依照输出顺序组成自底向上路径,包括:

根据所述特征图的尺寸,每一所述尺寸对应提取一个阶段输出的特征图;

将提取出的特征图依照输出顺序组成所述自底向上路径。

结合本发明实施例第一方面的第四种可能的实现方式,在第五种可能的实现方式中,所述每一所述尺寸对应提取一个阶段输出的特征图,包括:

每一所述尺寸对应提取通道数量最多的一个阶段输出的特征图。

作为本发明实施例第一方面的第六种可能的实现方式,所述基于所述自底向上路径创建自顶向下路径,包括:

通过

创建所述自顶向下路径;

所述为所述自顶向下路径中的第i层,所述为所述自底向上路径的第i层,upsampling为跨度为2的最近邻上采样运算,

本发明实施例的第二方面提供了一种人脸识别的装置,包括:

第一处理单元,用于将图片输入至设定的卷积神经网络,得到所述卷积神经网络在不同阶段输出的特征图;

第二处理单元,用于将所述特征图依照输出顺序组成自底向上路径,所述自底向上路径的每一节点分别对应一个阶段输出的特征图,基于所述自底向上路径创建自顶向下路径;

人脸检测单元,用于由所述自底向上路径计算得到所述图片中人脸的位置区域;

特征计算单元,用于由所述自顶向下路径对所述人脸的位置区域进行计算,得到所述人脸的特征向量;

人脸识别单元,用于根据所述特征向量对所述人脸进行人脸识别。

本发明实施例的第三方面提供了一种人脸识别的装置,所述装置包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如本发明实施例第一方面或者第一方面的任一种可能的实现方式所述的人脸识别的方法的步骤。

本发明实施例的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如本发明实施例第一方面或者第一方面的任一种可能的实现方式所述的人脸识别的方法的步骤。

本发明实施例与现有技术相比存在的有益效果是:基于同一个卷积神经网络来实现人脸位置检测、人脸关键点检测和人脸识别,在保证人脸识别的精度的前提下,有效节省了计算资源,并提升了人脸识别的计算效率。

附图说明

图1是本发明实施例提供的人脸识别方法的实现流程图;

图2是本发明另一实施例提供的人脸识别方法的实现流程图;

图3是本发明实施例提供的基于自底向下路径创建自顶向下路径的示意图;

图4是本发明另一实施例提供的人脸识别方法的实现流程图;

图5是本发明实施例提供的对人脸的位置区域进行兴趣区域池化运算的实现流程图;

图6是本发明实施例提供的人脸识别网络的结构示意图;

图7是本发明实施例提供的对用于训练人脸识别网络的样本数据进行预处理的过程示意图;

图8是本发明实施例提供的人脸识别的方法的实现示意图;

图9是本发明实施例提供的人脸识别的装置的结构框图;

图10是本发明实施例提供的人脸识别的装置的硬件结构示意图。

具体实施方式

以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本发明实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本发明。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本发明的描述。

为了说明本发明所述的技术方案,下面通过具体实施例来进行说明。

图1示出了本发明实施例提供的人脸识别方法的实现流程,该人脸识别方法的执行主体可以为终端或服务器等独立运行的计算设备,也可以为部署在分布式系统中的多台计算设备,其实现流程包括以下步骤:

s101:将图片输入至设定的卷积神经网络,得到卷积神经网络在不同阶段输出的特征图。

在本发明实施例中,图片是整个人脸识别过程的原始输入,其可以为单帧拍摄得到的图片,也可以为从一段视频流中截取出的视频帧。作为原始输入,图片可以通过摄像头实时捕捉得到,也可以通过访问本地数据库或调用远程数据库以获得数据库中预先存储的图片。由于在得到图片之后,要将图片输入卷积神经网络进行处理,而卷积神经网络通常要求输入的图片尺寸固定,因此,在得到图片之后,可以通过对图片进行短边像素填充以及尺寸调整等操作,将图片的尺寸调整至符合卷积神经网络的输入要求。

图片中所展示的图像包含有丰富的信息,通常,称图像的颜色、纹理、形状和区域等可以独立、客观地直接从图像中获得的属性信息为图像的低级信息,相对地,图像语义用于对用户面对图像时的想象、描述、情感或心情进行表达,称之为图像的高级信息。在本发明实施例中,选用能够进行人脸位置检测和人脸关键点检测的卷积神经网络来进行图像语义信息的提取。示例性地,可以采用inception-v3网络作为卷积神经网络,对输入的图片进行处理,从图片中提取图像语义信息。inception-v3网络具备对人脸及其他物品进行特征提取的通用特征提取能力,且具有优良的局部拓扑结构,能够对图像并行地执行多个卷积运算或池化操作,并将所有输出结果拼接为一个特征非常深入的特征图,以获得更好的图像表征。为了便于说明,下文中均以inception-v3网络作为设定的卷积神经网络来进行方案阐述,而下文中基于inception-v3网络所实现的部分也可由本领域技术人员在相同设计思路的基础上选用其他适用的卷积神经网络实现,文中不再另作说明。

需要说明的是,虽然inception-v3网络可以对图像中的检测区域进行分类,以输出该检测区域是否包含人脸的结果,但是由于在本方案中,inception-v3网络的主要作用是提取图片的图像语义信息,而在对人脸进行识别时,并不会直接沿用inception-v3网络的分类功能,因此,在将inception-v3网络应用至本方案时,需要将其中用以分类的层去除。去除了用以分类的层之后,inception-v3网络的处理过程包含十个阶段(stage),除第一个阶段以图片作为输入之外,每个阶段均以上一阶段输出的特征图作为输入。就inception-v3网络本身的特性来说,在对图片进行处理的过程中,其会在不同阶段分别使用大小不同的线性卷积核来对每个阶段的输入进行运算,并采用激活函数relu(rectifiedlinearunit,修正线性单元)作为非线性算子,此外,对于张量较大的输入,inception-v3网络对该张量进行平均值池化运算,以使其张量减小为原来的一半。在这里,以3*300*300的图片为例,该张量用于表示该图片为一尺寸为300*300,rgb三通道的图片,将其输入inception-v3网络后,各个阶段输出的特征图对应的张量分别为:

第一阶段:256*36*36;

第二阶段:320*36*36;

第三阶段:576*18*18;

第四阶段:576*18*18;

第五阶段:576*18*18;

第六阶段:608*18*18;

第七阶段:608*18*18;

第八阶段:1056*9*9;

第九阶段:1024*9*9;

第十阶段:1024*9*9。

可以看出,使用inception-v3网络对图片进行处理,最终输出的特征图的张量为1024*9*9,代表特征图的尺寸为9*9,通道数量为1024。由于在特征图的尺寸较大的情况下,卷积神经网络只能从中提取到图像的低级信息,且在特征图的通道较少的情况下,卷积神经网络所能提取到的特征的维度较低,为了得到更深层次的图像信息及更高维度的特征,作为本发明的一个实施例,先后对inception-v3网络第十阶段的输出进行卷积核大小分别为1*1和3*3,卷积跨度分别为1和2的线性卷积运算,并使用relu函数对运算结果进行非线性化,得到第十一阶段的输出。重复上述方法对第十一阶段的输出进行处理,得到第十二阶段的输出,对第十二阶段的输出重复上述方法得到第十三阶段的输出,从而各阶段输出的特征图对应的张量分别为:

第十一阶段:512*5*5;

第十二阶段:256*2*2;

第十三阶段:256*1*1。

因此,在本发明实施例中,若基于inception-v3网络对输入的图片进行处理,能够顺序得到十三个阶段的输出,可以看出,这十三个阶段的输出中包含有6种不同尺寸的特征图,这6种尺寸分别为:36*36、18*18、9*9、5*5、2*2和1*1。

s102:将特征图依照输出顺序组成自底向上路径,自底向上路径的每一节点分别对应一个阶段输出的特征图,基于自底向上路径创建自顶向下路径。

在本发明实施例中,利用inception-v3网络在不同阶段输出的特征图组成自底向上路径(bottom-uppathway),自底向上路径具备方向性,其以特征图在inception-v3网络中的输出顺序为方向依据,且自底向上路径中的每一节点分别对应的是inception-v3网络其中一个阶段的输出。例如,自底向上路径的起始节点由inception-v3网络第一阶段输出的特征图构成,第二个节点由inception-v3网络第二阶段输出的特征图构成、第三个节点由inception-v3网络第三阶段输出的特征图构成……以此类推,自底向上路径的末端节点由inception-v3网络第十三阶段输出的特征图构成。因此,结合上文中十三个阶段分别对应的特征图尺寸可知,构成自底向上路径末端节点的特征图的尺寸最小,能够从中提取出的图像信息层次最深。

进一步地,为了在保证检测精度的前提下提高计算效率,作为本发明的一个实施例,对自底向上路径进行优化,在inception-v3网络不同阶段的输出中,仅对输出的特征图尺寸互不相同的阶段进行特征图提取,以此来组成自底向上路径,如图2,将s102中的细化为s1021和s1022:

s1021:根据特征图的尺寸,每一尺寸对应提取一个阶段输出的特征图。

s1022:将提取出的特征图依照输出顺序组成自底向上路径。

根据上文提及的十三个阶段的输出,可以看出,在第一阶段和第二阶段,输出的特征图的尺寸均为36*36,在第三阶段至第七阶段,输出的特征图的尺寸均为18*18,在第八阶段至第十阶段,输出的特征图的尺寸均为9*9,第十一阶段输出的特征图的尺寸为5*5,第十二阶段输出的特征图的尺寸为2*2,第十三阶段输出的特征图的尺寸为1*1,以上各阶段输出的特征图共涉及到六个不同的尺寸。由于不同尺寸的特征图的图像语义信息量不一,在本发明实施例中,为了提高计算效率,对输出的特征图尺寸相同的多个阶段,仅对其中一个阶段的特征图进行提取,这样一来,针对六个不同的尺寸共提取六个阶段输出的特征图,并依照输出顺序,每个阶段输出的特征图构成自底向上路径中的一个节点,由此组成自底向上路径。

进一步地,在图2对应的实施例的基础之上,考虑到特征图的通道数量越多,该特征图所包含的特征维度越高,在此基础上得到的人脸位置检测结果越精确,因此,作为本发明的一个实施例,根据每个阶段输出的特征图的尺寸,每一尺寸对应提取通道数量最多的一个阶段的特征图。例如,针对36*36的尺寸,第二阶段输出的特征图对应的通道数量最多,为320个,针对18*18的尺寸,第七阶段输出的特征图对应的通道数量最多,为608个,针对9*9的尺寸,第十阶段输出的特征图对应的通道数量最多,为1024个,因此,针对六个不同的特征图的尺寸,分别将第二阶段、第七阶段、第十阶段、第十一阶段、第十二阶段和第十三阶段输出的特征图提取出来,组成自底向上路径。以输入为3*300*300的图片为例,自底向上路径中各个节点的特征图对应的张量依次为:320*36*36、608*18*18、1024*9*9、512*5*5、256*2*2和256*1*1。

由于在本发明实施例中,仅以一个设定的卷积神经网络为基础来实现人脸位置检测、人脸关键点检测和人脸识别,而人脸识别所需要的图像语义信息要远多于人脸位置检测和人脸关键点检测所需要的图像语义信息,因此,仅仅基于自底向上路径来进行人脸识别,在图像语义信息上是得不到充分支持的,出于以上原因,在本发明实施例中,基于自底向上路径来反向地创建自顶向下路径(top-downpathway),以对特征图进行初始化还原,得到包含的图像语义信息更为丰富的特征图,在此基础上进行特征向量的提取。作为本发明的一个实施例,自顶向下路径可以在自底向上路径的基础上,通过上采样的方式实现:设为自顶向下路径中的第i层,为自底向上路径的第i层,upsampling为跨度为2的最近邻上采样运算,由此递归地得到自顶向下路径的第i+1层

图3为本发明实施例提供的基于自底向下路径创建自顶向下路径的部分示意图,图3未示出的部分包括自底向上路径中的以及自顶向下路径中的如图3所示,在整个人脸识别过程中,自底向上路径的起始节点源于图片输入得到,基于自底向上路径进行人脸位置检测和人脸关键点检测,自顶向下路径用于进行人脸识别,最终输出人脸识别结果。

通过上述方式创建得到的自顶向下路径,其末端节点的特征图相对于自底向上路径的起始节点来说,具备更为丰富的图像语义信息,能够为人脸识别提供充分的支持,从而带来较佳的人脸识别效果。

s103:由自底向上路径计算得到图片中人脸的位置区域。

为了产生人脸检测的结果,在本发明实施例中,可以采用类似ssd(singleshotmultiboxdetector,单发多框检测)的方法,对自底向上路径的各个节点分别进行卷积核大小为p*3*3、卷积跨度为1的线性卷积运算,其中,p为输出的特征图的通道数,也即每一节点产生的预设框的输出结果个数。在本发明实施例中,通过上述卷积运算,自底向上路径中的每一节点会分别在其特征图上生成面积相同、宽高比不同的若干预设框。在本发明实施例中,示例性地,设定有宽高比分别为1、0.8、0.6的三种预设框,且按照路径顺序,将每一节点生成的预设框的根号面积分别设置为0.88、0.71、0.54、0.37、0.2、0.1。进一步地,为了提升检测精度,按照路径顺序,对自底向上路径中的每一节点再增加根号面积分别为0.961、0.79、0.619、0.447、0.242和0.141的一个预设框,该预设框的宽高比设定为0.8。通过上述设置,自底向上路径的起始节点会在其特征图的每个空间位置上生成根号面积均为0.88,宽高比分别为1、0.8、0.6的三个预设框,以及根号面积为0.961,宽高比为0.8的一个预设框;自底向上路径的第二个节点会在其特征图的每个空间位置上生成根号面积均为0.1,宽高比分别为1、0.8、0.6的三个预设框,以及根号面积为0.79,宽高比为0.8的一个预设框……以此类推,每一节点均会在特征图的每个空间位置上生成四个预设框,由于每个预设框会对应有4个矩形框位置偏移、10个关键点坐标偏移及2个分别代表人脸概率和背景概率的得分,也即每个预设框对应有共计16个输出,那么对于每个预设框,均会产生16*4个输出结果,p为64。

在s103中,在不同的特征图尺寸下生成了多个预设框,inception-v3网络通过对这些预设框进行逐个判定,最终在图片中检测出人脸,并通过人脸检测框和人脸关键点的形式标记出该人脸在图片中的位置区域。在inception-v3网络中,输出的人脸的位置区域包括有人脸位置区域和五官位置区域,其中,人脸位置区域通过人脸检测框进行标注,人脸检测框即为用于框定人脸所在区域的矩形框,而五官位置区域为基于人脸关键点所标注出的矩形框,包括左眼位置区域、右眼位置区域、鼻子位置区域和嘴巴位置区域,即,inception-v3网络针对其在图片中检测出的每张人脸,会输出共计五个矩形框,分别对应五个位置区域。

进一步地,在人脸检测的过程中,inception-v3网络对于人脸检测框和人脸关键点的输出并非是通过二者在图片中的绝对坐标,而是通过二者分别与预设框之间的偏移来输出的,因此,作为本发明的一个实施例,为了方便计算,在检测过程中,利用inception-v3网络输出的偏移来对预设框的坐标位置进行补偿,从而得到人脸检测框的左上角、右下角,以及人脸关键点在图片上的绝对坐标。

进一步地,在人脸检测的过程中,由于可能存在同时有多个预设框成功检测到人脸的情况,为了能够消除卷积神经网络的冗余输出,对判断为人脸图像的预设框进行非极大值抑制(non-maximumsuppression),这样一来,对于图片中的每张人脸,最终只输出一个人脸检测框和对应的人脸关键点坐标。

s104:由自顶向下路径对人脸的位置区域进行计算,得到人脸的特征向量。

作为本发明的一个实施例,在由自顶向下路径计算得到人脸的特征向量的过程中,通过构建一个关键点聚焦网络,以此来直接通过人脸关键点的坐标得到不同人脸部位的特征,进而得到整个人脸的特征向量,从而避免了对人脸进行转正对齐操作,在保证人脸识别精度的前提下能够很好地提高计算效率。如图4所示,s104通过s1041和s1042实现:

s1041:在自顶向下路径中的特征图里,对人脸的位置区域进行兴趣区域(regionofinterest,roi)池化运算,得到位置区域对应的输出,其中,位置区域包括人脸位置区域和五官位置区域。

基于上文六个节点的自底向上路径所创建的自顶向下路径,其节点数也为六个,在s1041中,在自顶向下路径中的特征图里,根据s103所定位出人脸位置区域和五官位置区域,对这些位置区域进行roi池化运算,得到每个位置区域对应的输出。

由于在自顶向下路径中,对应的层数越大的特征图具有越大的尺寸及越丰富的语义信息,因此,作为本发明的一个实施例,可以将自顶向下路径末端节点的特征图作为输入,其尺寸为256*36*36,在此基础上来进行人脸识别,能够得到更为精准的识别结果。

此外,作为本发明的一个实施例,如图5所示,s1041被细化为s501和s502:

s501:对自顶向下路径中的特征图进行反卷积(deconvolution)运算。

结合上文中的实施例,可以对进行反卷积运算,进一步地,可以对进行两次反卷积运算。

s502:在经过反卷积运算的特征图里,对人脸的位置区域进行兴趣区域池化运算。

对特征图每进行一次反卷积运算,特征图的尺寸就会增加,因此,对进行两次反卷积运算之后,能够得到尺寸为64*144*144的特征图,该特征图的分辨率更高,能够具备更为丰富的图像语义信息,便于人脸识别更好地执行。

s1042:对位置区域对应的输出进行级联操作,得到人脸的特征向量。

如上文所述,利用之前步骤所得到人脸检测框及人脸关键点,将得到5个矩形区域,分别用于框定人脸位置区域、左眼位置区域、右眼位置区域、鼻子位置区域和嘴巴位置区域,通过对这五个矩形区域位置进行兴趣区域池化操作,使得不同大小的矩形区域能够产生相同大小的输出,这五个矩形区域所输出的张量分别为128*48*48、64*14*14、64*14*14、64*14*14、64*14*14。在本发明实施例中,对这五个矩形区域分别先后进行卷积核大小为3*3和1*1的线性卷积操作、relu非线性化操作以及平均值池化操作,得到维度为512、128、128、128、128的向量,将这五个向量进行级联得到维度为1024的向量,此后,对该向量使用线性全连接运算得到维度为128的向量。进一步地,为了能使该向量能够用于指标学习(matriclearning),在此,对该向量进行二范式归一(l2-normalization)运算,以获得长度为1维度为128的向量,该向量最终将用于人脸识别的指标学习。

s105:根据特征向量对人脸进行人脸识别。

通常来说,人脸识别会应用于至少两类不同的应用场景:

场景一:人脸比对,即判断两张人脸是否属于同一个人。

经过上述步骤的处理,检测到的人脸对应有特征向量,在进行人脸比对时,通过设定一个距离阈值,将两张人脸分别对应的特征向量进行比对,若两个特征向量之间的欧几里得距离小于该距离阈值,则判断这两张人脸属于同一个人;若两个特征向量之间的欧几里得距离不小于该距离阈值,则判断这两张人脸属于不同的人。

场景二:身份认证。

即预先给定若干张人脸及其身份信息,对于一张未知身份的人脸,判断其身份信息。在进行身份认证时,预先给定的所有人脸的特征向量将预先被提取并保存,未知身份的人脸的特征向量也通过上述步骤被计算出来。在身份认证过程中,将未知身份的人脸的特征向量与预先给定的所有人脸的特征向量进行一一比对,逐一计算两个特征向量之间的欧几里得距离,并根据计算结果按欧几里得距离从小到大进行排序,选出排序最前的若干个计算结果对应的预先给定的人脸,并将这些预先给定的人脸中所属身份的次数最多的身份作为未知身份的人脸的预测身份。

基于上文所述实施例,图6示出了本发明实施例提供的人脸识别网络的结构示意图,在本发明实施例中,基于图6所示的人脸识别网络,能够将人脸位置检测、人脸关键点检测和人脸识别融合进同一个卷积神经网络来实现,由于位置检测、人脸关键点检测和人脸识别的实现过程基于的是一个卷积神经网络的输出结果,不再需要调用额外的卷积神经网络,所以在一定程度上减少了对计算资源的消耗,在保证人脸识别精度的前提下提高了计算效率。此外,相比于现有技术,基于图6所示的人脸识别网络,本发明实施例省去了人脸关键点对齐和人脸转正的环节,从而进一步地提升了人脸识别的效率。

在本发明实施例中,图6所示的人脸识别网络中的各项模型参数通过对人脸识别网络进行训练学习得到,图7示出了本发明实施例提供的对用于训练人脸识别网络的样本数据进行预处理的过程,参照图7,主要通过以下步骤对样本数据进行预处理:

s701:获取样本数据集。

在本发明实施例中,可以将开源的人脸数据库作为数据源,例如feret人脸数据库、cmumulti-pie人脸数据库、yale人脸数据库,等等,还可以通过爬虫自行从网络上爬取人脸数据。获取到的人脸数据以样本图片的形式存在,一张样本图片中包含了若干人脸图像以及除人脸图像之外的背景图像,这些样本图片构成了样本数据集。由于人脸识别网络的准确率与训练时所使用的样本数量密切相关,且人脸识别网络的泛化能力,也即人脸识别网络对未知数据的预测能力,也与训练时所使用的样本数量密切相关,因此,样本数据的数量越多越好,示例性地,可以获取约八百万张样本图片来构成样本数据集。

s702:对样本数据进行人脸区域的标注。

对样本数据集中的样本数据进行人脸区域的标注,主要指的是对其中的每一张样本图片,均在该样本图片中以矩形框的形式标注出人脸在样本图片中的位置,以及以点坐标的形式标注出人脸关键点在样本图片中的位置。其中,矩形框叠加在样本图片之上,利用其四条边框将人脸包围起来,从而框定出人脸在样本图片中的位置,人脸关键点用于对人脸上具备显著特征的位置进行标注,其通常定位在人脸五官上,例如眼球、眉毛、嘴角、鼻尖等位置。

示例性地,可以采用mtcnn(multi-taskcascadedconvolutionalnetworks,多任务级联卷积神经网络)来对样本数据集中每张样本图片进行人脸位置的标注,由于经实验证明,mtcnn的人脸检测准确度能够达到95.04,因此,采用mtcnn标注出来的样本数据集能够带来较为可靠的训练结果。在对样本数据进行人脸位置的标注的过程中,对于包含多张人脸的样本图片,mtcnn对其中的每一张人脸分别标注出对应的矩形框左上角顶点的坐标和右下角顶点的坐标,以及标注出该人脸的左眼、右眼、鼻尖、左嘴角和右嘴角的坐标,此后,对标注出的坐标进行归一化处理,即,将所有x轴的坐标除以图片宽度,将所有y轴坐标除以图片高度,使得标注出的坐标值的范围在0至1之间。进一步地,为了使训练过程更加简洁,对于包含了多张人脸的样本图片,仅对其中像素面积最大的一张人脸位置进行标注,这样一来,每张样本图片中只标注一张人脸,使得每张样本图片对应的标注为14个浮点数。在对一张样本图片人脸位置的标注完成之后,将标注的浮点数转换为字符串类型,并以缩进符分割各组浮点数,最后存储至文本格式的文件中。为了便于查找和管理,该文本格式的文件的文件名与该样本图片的文件名相同,例如,该样本图片的文件名为“abc.jpg”,为一张jpg格式的文件,则用于存储标注信息的txt格式的文件被命名为“abc.txt”。

s703:从标注出的人脸区域提取人脸特征向量。

人脸特征向量能够表征人脸的身份信息。示例性地,可以采用facenet模型来提取样本数据集中的人脸特征向量,其中,facenet模型是一个基于深度卷积神经网络的模型,用于进行人脸识别,且经实验证明,其人脸识别的准确率能够达到99.63%。

基于s702中所标注出的矩形框,可以从样本训练集的每张样本图片中剪切出人脸区域,并将剪切出的人脸区域作为facenet模型的输入,facenet模型将针对该输入输出一个128维且长度为1的人脸特征向量。facenet模型输出的人脸特征向量具有以下特性:属于同一人的人脸特征向量在空间上的距离较近,而属于不同的人的人脸特征向量在空间上的距离较远,这一特性能够很显著地区分出不同的人脸。在对样本数据集中的每张样本图片均输出人脸特征向量之后,将得到的人脸特征向量保存为文本格式的数据内容,并将该文本格式的数据内容追加存储到上一步骤中用于存储标注信息的文本格式文件的末尾。

在本发明实施例的实现过程中,可以选用性能较佳的人脸检测、人脸关键点检测和人脸特征向量提取的相关模型,从而能够在海量的无标注数据上进行人脸识别网络的训练,以加快训练过程中人脸识别网络的收敛时间。

以上是对用于训练人脸识别网络的样本数据进行预处理的过程,预处理完成后,基于样本数据对人脸识别网络进行训练。在技术实现过程中人脸识别网络可以在mxnet工作平台上部署并训练,其中,mxnet工作平台是一个深度学习的框架,可以在上面运行所需要的神经网络及各种深度学习相关的模型。

基于上文实施例可知,将一张样本图片输入至人脸识别网络,会产生四项输出,分别为:

1、生成的各预设框所框定的图像为人脸图像的概率,以及这些预设框所框定的图像为背景图像的概率。

在将样本图片输入至人脸识别网络后,人脸识别网络会对该样本图片进行处理,在样本图片的不同空间位置分别生成若干预设框,每个预设框中框定的图像有可能为人脸图像,也有可能为除人脸图像之外的背景图像,因此,人脸识别网络针对每个预设框会输出两个概率值,一个是该预设框框定的图像为人脸图像的概率,一个是该预设框框定的图像为背景图像的概率。

2、人脸检测框与各预设框之间的偏移。

人脸检测框,即用于框定人脸所在区域的矩形框,该人脸所在区域由卷积神经网络通过对样本图片进行计算检测得到。

3、人脸关键点与各预设框的中心点之间的偏移。

与第二项输出相类似,在将样本图片输入至卷积神经网络后,卷积神经网络会对该样本图片进行计算,检测得到各人脸关键点,并通过人脸关键点与各预设框的中心点之间的偏移的形式输出该检测结果。

4、人脸检测框中所框定的人脸图像的人脸特征向量。

作为人脸识别网络的训练目标,在本发明实施例中,为以上四项输出分别设计损失函数的计算方法如下:

1、生成的各预设框所框定的图像为人脸图像的概率,以及这些预设框所框定的图像为背景图像的概率:

将与标注的矩形框之间的jaccard覆盖率大于0.5的预设框视为正例,若共有k个正例,则在剩余预设框中,根据这部分预设框所框定的图像为人脸图像的概率,将其中概率最高的3k个预设框视为负例,对预设框进行归一化处理,并在此基础上计算正例与负例之间的交叉熵(cross-entropy)损失函数。其中,可以使用softmax函数对预设框进行归一化处理。

2、人脸检测框与各预设框之间的偏移:

对于人脸检测框与各预设框之间的偏移,以及标注的矩形框与各预设框之间的偏移,计算这两项偏移之间的平滑l1(smooth-l1)损失函数并除以4。

3、人脸关键点与各预设框的中心点之间的偏移:

对于人脸关键点与各预设框的中心点之间的偏移,以及标注的人脸关键点与各预设框的中心点之间的偏移,计算这两项偏移之间的平滑l1损失函数并除以10。

4、人脸检测框中所框定的人脸图像的人脸特征向量:

计算输出的人脸特征向量与标注的人脸特征向量之间的欧式距离,作为该项输出的损失函数。

为了加速训练过程,并使人脸识别网络中的各项参数能够尽量收敛到最优值,本发明实施例中,在训练之前将人脸识别网络中的所有可学习的参数进行初始化。在对可学习的参数进行初始化时,对于原属于inception-v3网络中的层,使用在imagenet平台上预训练的参数对其进行初始化,对于其他层,采用xavier方法对各卷积操作的权重进行初始化。xavier是一种很有效的神经网络初始化方法,其具体形式如下:

即随机初始化卷积权重,使其服从上述均匀分布。此外,对于批归一化(batchnormalization)中的参数,我们将权重初始化为1,将偏移初始化为0。

在本发明实施例中,在迭代训练开始之前,对学习速率(learningrate)、权重衰减(weightdecay)、批尺寸(batchsize)和各项损失函数的比重等超参数进行设置,以提高人脸识别网络学习的性能和效果。其中,学习速率决定着用于求解参数最优值的目标函数能否收敛到局部最小值,以及该目标函数何时收敛到局部最小值,合适的学习速率能够使目标函数在合适的时间内收敛到局部最小值;正则项通常用于指示人脸识别网络的复杂度,而权重衰减是放在该正则项前面的一个系数,能够调节人脸识别网络的复杂度对损失函数的影响;在迭代训练的过程中,每一次参数更新时所需要的损失函数是由一组数据加权得到的,这组数据的数量即为批尺寸。对于超参数的设置,通过实验确定下列超参数能够使得模型有效收敛:初始学习速率为0.1,当训练进行100000次迭代时调整为0.01,进行110000次迭代时调整为0.01,权重罚值为2e-4,批大小为32,各项损失函数的比值均为1。

在以上参数设置的基础上对人脸识别网络进行迭代训练,直至人脸识别网络的参数收敛至最优值。在训练过程中,为了加速人脸识别网络的训练过程,可以选用性能高的显卡来进行训练。对于每一次迭代,示例性地,可以随机地从样本数据集中选取32张样本图片,并对这32张样本图片的短边进行像素填充,使每张样本图片均为正方形,然后将样本图片的尺寸均调整至300*300,通道数为3,即红、绿、蓝三个通道。对于每个像素点来说,将其每个通道上的值减去该通道的均值后,除以该通道的标准差,将结果作为人脸识别网络的输入进行运算。当迭代次数达到120000次时,将此时的人脸识别网络的各项参数保存为二进制文件,以便检测时使用。

图8为本发明实施例提供的人脸识别的方法的实现示意图,参照图8,首先对整个人脸识别网络进行训练,在训练开始之前,获取到样本数据集并进行样本数据标注,以及对人脸识别网络进行网络搭建,初始化其中的网络参数。整个训练过程结束后,通过训练得到的网络参数对人脸识别网络进行初始化,当图片输入人脸识别网络,通过该人脸识别网络完成人脸位置的检测和人脸特征向量的提取,将人脸特征向量输入人脸数据库中搜索,与人脸数据库中的人脸进行特征向量比对,最终输出人脸识别结果。

应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。

对应于上文实施例所述的人脸识别的方法,图9示出了本发明实施例提供的人脸识别的装置的结构框图,该人脸识别的装置可以位于终端或服务器等计算设备之中,也可以分散部署在分布式系统中的多台计算设备中,参照图9,该装置包括:

第一处理单元91,用于将图片输入至设定的卷积神经网络,得到卷积神经网络在不同阶段输出的特征图;

第二处理单元92,用于将特征图依照输出顺序组成自底向上路径,其中,自底向上路径的每一节点分别对应一个阶段输出的特征图,基于自底向上路径创建自顶向下路径;

人脸检测单元93,用于由自底向上路径计算得到图片中人脸的位置区域;

特征计算单元94,用于由自顶向下路径对人脸的位置区域进行计算,得到人脸的特征向量;

人脸识别单元95,用于根据特征向量对人脸进行人脸识别。

可选地,特征计算单元94具体用于:

在自顶向下路径中的特征图里,对人脸的位置区域进行兴趣区域池化运算,得到位置区域对应的输出,其中,位置区域包括人脸位置区域和五官位置区域;

对位置区域对应的输出进行级联操作,得到人脸的特征向量。

进一步地,特征计算单元94中,所述在自顶向下路径中的特征图里,对人脸的位置区域进行兴趣区域池化运算,包括:

在自顶向下路径的末端节点对应的特征图里,对人脸的位置区域进行兴趣区域池化运算。

进一步地,所述特征计算单元94中,在自顶向下路径中的特征图里,对人脸的位置区域进行兴趣区域池化运算,包括:

对自顶向下路径中的特征图进行反卷积运算;

在经过反卷积运算的特征图里,对人脸的位置区域进行兴趣区域池化运算。

可选地,第二处理单元92中,所述将特征图依照输出顺序组成自底向上路径,包括:

根据特征图的尺寸,每一尺寸对应提取一个阶段输出的特征图;

将提取出的特征图依照输出顺序组成自底向上路径。

进一步地,第二处理单元92中,所述每一尺寸对应提取一个阶段输出的特征图,包括:

每一尺寸对应提取通道数量最多的一个阶段输出的特征图。

可选地,第二处理单元92中,所述基于自底向上路径创建自顶向下路径,包括:

通过

创建自顶向下路径;

所述为自顶向下路径中的第i层,所述为自底向上路径的第i层,upsampling为跨度为2的最近邻上采样运算,

图10是本发明实施例提供的人脸识别的装置的硬件结构示意图。该人脸识别的装置可以位于终端或服务器等独立运行的计算设备之中,也可以分散部署在分布式系统中的多台计算设备中,包括:

处理器1、存储器2以及存储在存储器2中并可在处理器1上运行的计算机程序3,例如人脸识别程序。处理器1执行计算机程序3时实现上述各个人脸识别的方法实施例中的步骤,例如图1所示的步骤101至105。或者,处理器1执行计算机程序3时实现上述各装置实施例中各单元的功能,例如图9所示单元91至95的功能。

示例性的,计算机程序3可以被分割成一个或多个单元,一个或者多个单元被存储在存储器2中,并由处理器1执行,以完成本发明。一个或多个单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述计算机程序3在人脸识别的装置中的执行过程。例如,计算机程序3可以被分割成第一处理单元、第二处理单元、人脸检测单元、特征计算单元和人脸识别单元,各单元具体功能如下:

第一处理单元,用于将图片输入至设定的卷积神经网络,得到卷积神经网络在不同阶段输出的特征图;

第二处理单元,用于将特征图依照输出顺序组成自底向上路径,其中,自底向上路径的每一节点分别对应一个阶段输出的特征图,基于自底向上路径创建自顶向下路径;

人脸检测单元,用于由自底向上路径对人脸的位置区域进行计——得到图片中人脸的位置区域;

特征计算单元,用于由自顶向下路径计算得到人脸的特征向量;

人脸识别单元,用于根据特征向量对人脸进行人脸识别。

可选地,特征计算单元具体用于:

在自顶向下路径中的特征图里,对人脸的位置区域进行兴趣区域池化运算,得到位置区域对应的输出,其中,位置区域包括人脸位置区域和五官位置区域;

对位置区域对应的输出进行级联操作,得到人脸的特征向量。

进一步地,特征计算单元中,所述在自顶向下路径中的特征图里,对人脸的位置区域进行兴趣区域池化运算,包括:

在自顶向下路径的末端节点对应的特征图里,对人脸的位置区域进行兴趣区域池化运算。

进一步地,特征计算单元中,所述在自顶向下路径中的特征图里,对人脸的位置区域进行兴趣区域池化运算,包括:

对自顶向下路径中的特征图进行反卷积运算;

在经过反卷积运算的特征图里,对人脸的位置区域进行兴趣区域池化运算。

可选地,第二处理单元中,所述将特征图依照输出顺序组成自底向上路径,包括:

根据特征图的尺寸,每一尺寸对应提取一个阶段输出的特征图;

将提取出的特征图依照输出顺序组成自底向上路径。

进一步地,第二处理单元中,所述每一尺寸对应提取一个阶段输出的特征图,包括:

每一尺寸对应提取通道数量最多的一个阶段输出的特征图。

可选地,第二处理单元中,所述基于自底向上路径创建自顶向下路径,包括:

通过

创建自顶向下路径;

所述为自顶向下路径中的第i层,所述为自底向上路径的第i层,upsampling为跨度为2的最近邻上采样运算,

本领域技术人员可以理解,图10仅仅是人脸识别的装置的示例,并不构成对人脸识别的装置的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如人脸识别的装置还可以包括输入输出设备、网络接入设备、总线等。

所称处理器1可以是中央处理单元(centralprocessingunit,cpu),还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

存储器2可以是人脸识别的装置的内部存储单元,例如硬盘或内存。存储器2也可以是人脸识别的装置的外部存储设备,例如配备的插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)等。进一步地,存储器2还可以既包括人脸识别的装置的内部存储单元也包括外部存储设备。存储器2用于存储计算机程序以及人脸识别的装置所需的其他程序和数据。存储器2还可以用于暂时地存储已经输出或者将要输出的数据。

所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元完成,即将人脸识别的装置内部结构划分成不同的功能单元,以完成以上描述的全部或者部分功能。实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

在本发明所提供的实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的人脸识别的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。

以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1