一种三维人脸识别模型训练方法及装置与流程

文档序号:21728660发布日期:2020-08-05 01:20阅读:118来源:国知局
一种三维人脸识别模型训练方法及装置与流程

本发明涉及人脸识别技术领域,更具体地说,涉及一种三维人脸识别模型训练方法及装置。



背景技术:

二维人脸识别研究的时间相对较长,方法流程也相对成熟,在多个领域都有使用。但随着科技的不断发展,人们对生活各方面的体验期望越来越高,二维人脸识别到了一定的瓶颈,而三维人脸识别却能较好克服这些缺点和瓶颈。

但是,由于三维人脸图像的获取成本较高,也没有公开的较大规模的样本,所以单纯依赖高成本采集样本使得三维人脸识别模型的迭代周期过长。

因此,如何解决小样本场景下的三维人脸识别问题,成为本领域亟需解决的技术问题。



技术实现要素:

有鉴于此,为解决上述问题,本发明提供一种三维人脸识别模型训练方法及装置。技术方案如下:

一种三维人脸识别模型训练方法,其特征在于,所述方法包括:

获取少样本学习的多个对象的三维人脸图像;

从所述多个对象的三维人脸图像中随机选择至少一个对象的三维人脸图像作为训练样本,输入至原型网络,将所述原型网络训练为三维人脸识别模型。

可选的,所述获取少样本学习的多个对象的三维人脸图像,包括:

采集多个对象的图像帧,所述图像帧包括深度图像和彩色图像;

针对所述多个对象中的每个对象,在该对象的彩色图像中确定人脸区域;

分别从该对象的深度图像和彩色图像中分割出所述人脸区域对应的人脸深度图像和人脸彩色图像;

通过迭加所述人脸深度图像和所述人脸彩色图像,转换得到该对象的人脸彩色三维点云;

归一化该对象的人脸彩色三维点云。

可选的,在执行所述通过迭加所述人脸深度图像和所述人脸彩色图像,转换得到该对象的人脸彩色三维点云之前,所述方法还包括:

对所述人脸深度图像进行滤波去噪处理。

可选的,在执行所述归一化该对象的人脸彩色三维点云之前,所述方法还包括:

对该对象的人脸彩色三维点云进行人脸姿态转正。

可选的,所述将所述原型网络训练为三维人脸识别模型,包括:

通过输入处理单元,针对所述训练样本中每个对象,从该对象的三维人脸图像中随机选择至少一个三维人脸图像加入至支持样本中,并将该对象的三维人脸图像中未被选择的三维人脸图像加入至查询样本中;

通过卷积神经网络,分别提取所述支持样本和所述查询样本中每个三维人脸图像的特征向量;

通过输出处理单元,处理所述支持样本和所述查询样本中每个三维人脸图像的特征向量,计算得到所述卷积神经网络的损失函数值,所述损失函数值是调整所述卷积神经网络的权重参数的基础或依据。

可选的,所述处理所述支持样本和所述查询样本中每个三维人脸图像的特征向量,计算得到所述卷积神经网络的损失函数值,包括:

针对所述支持样本中每个对象,将该对象的三维人脸图像的特征向量的平均值作为该对象的类原型;

针对所述查询样本中每个三维人脸图像,计算该三维人脸图像的特征向量与所述支持样本中每个对象的类原型的欧氏距离,并通过归一化计算得到该三维人脸图像在所述支持样本中所属对象的概率分布;

根据所述查询样本中每个三维人脸图像对应的对象、及其在所述支持样本中所属对象的概率分布,计算所述卷积神经网络的损失函数值。

一种三维人脸识别模型训练装置,所述装置包括:

图像获取模块,用于获取少样本学习的多个对象的三维人脸图像;

模型训练模块,用于从所述多个对象的三维人脸图像中随机选择至少一个对象的三维人脸图像作为训练样本,输入至原型网络,将所述原型网络训练为三维人脸识别模型。

可选的,所述图像获取模块,具体用于:

采集多个对象的图像帧,所述图像帧包括深度图像和彩色图像;针对所述多个对象中的每个对象,在该对象的彩色图像中确定人脸区域;分别从该对象的深度图像和彩色图像中分割出所述人脸区域对应的人脸深度图像和人脸彩色图像;通过迭加所述人脸深度图像和所述人脸彩色图像,转换得到该对象的人脸彩色三维点云;归一化该对象的人脸彩色三维点云。

可选的,所述模型训练模块,具体用于:

通过输入处理单元,针对所述训练样本中每个对象,从该对象的三维人脸图像中随机选择至少一个三维人脸图像加入至支持样本中,并将该对象的三维人脸图像中未被选择的三维人脸图像加入至查询样本中;通过卷积神经网络,分别提取所述支持样本和所述查询样本中每个三维人脸图像的特征向量;通过输出处理单元,处理所述支持样本和所述查询样本中每个三维人脸图像的特征向量,计算得到所述卷积神经网络的损失函数值,所述损失函数值是调整所述卷积神经网络的权重参数的基础或依据。

可选的,用于处理所述支持样本和所述查询样本中每个三维人脸图像的特征向量,计算得到所述卷积神经网络的损失函数值的所述模型训练模块,具体用于:

针对所述支持样本中每个对象,将该对象的三维人脸图像的特征向量的平均值作为该对象的类原型;针对所述查询样本中每个三维人脸图像,计算该三维人脸图像的特征向量与所述支持样本中每个对象的类原型的欧氏距离,并通过归一化计算得到该三维人脸图像在所述支持样本中所属对象的概率分布;根据所述查询样本中每个三维人脸图像对应的对象、及其在所述支持样本中所属对象的概率分布,计算所述卷积神经网络的损失函数值。

本发明实施例提供的三维人脸识别模型训练方法及装置,以少样本学习的多个对象的三维人脸图像为基础,从中随机选择训练样本,对原型网络进行训练得到三维人脸识别模型。本发明通过少样本学习能够深度挖掘现有样本的人脸特征,在样本规模有限的情况下,特别是三维人脸图像缺乏、且获取成本较高的情况下,能够使模型具备较好的人脸识别性能,从而解决小样本场景下的三维人脸识别问题。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为本申请实施例提供的三维人脸识别模型训练方法的方法流程图;

图2为本申请实施例提供的三维人脸识别模型训练方法的部分方法流程图;

图3为本申请实施例提供的三维人脸识别模型训练方法的另一部分方法流程图;

图4为本申请实施例提供的三维人脸识别模型训练方法的再一部分方法流程图;

图5为本申请实施例提供的三维人脸识别模型训练装置的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

在本申请中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

人类非常擅长通过极少量的样本识别一个新物体,比如小孩子只需要书中的一些图片就可以认识什么是“斑马”,什么是“犀牛”。在人类的快速学习能力的启发下,研究人员希望机器学习模型在学习了一定类别的大量数据后,对于新的类别,只需要少量的样本就能快速学习,这就是少样本学习(few-shotlearning)所要解决的问题。

通常对于样本规模有限的训练任务中,使用数据增强和正则化来解决小样本学习过拟合的情况。但是对于人脸识别任务来讲,数据增强无非就只能通过调整图片亮度,对比度,噪声等手段来实现,增强的效果有限,特别是一个人脸id对应的图片只有一张或几张的情况下,增强的效果就更加有限,过拟合(overfitting)就更加严重。

少样本学习是机器学习领域内一个令人兴奋的研究方向,它能够让模型能够在小规模的样本上也能快速进行学习领域知识,该方法主要是探索如何训练一个模型使其基于少量的样本能在目标任务中获得好的性能。早期的少样本学习算法研究多集中在图像领域,少样本学习方法大致可分为三类:modebased,metricbased和optimizationbased。其中,modelbased方法旨在通过模型结构的设计快速在少量样本上更新参数,直接建立输入和预测值的映射函数;metricbased方法通过度量batch集中的样本和support集中样本的距离,借助最近邻的思想完成分类;optimizationbased方法认为普通的梯度下降方法难以在小样本(few-shot)场景下拟合,因此通过调整优化方法来完成小样本分类的任务。

就复杂程度而言,metricbased方法的复杂度和流程相对其他的较为简洁,metricbased方法主要分为孪生网络(siamesenetwork)、匹配网络(matchnetwork)、原型网络(prototypenetwork)和关系网络(relationnetwork)。

基于深度学习的人脸识别训练方法主要是按照分类任务的训练方式,选择softmax损失函数及改进版的softmax损失函数作为分类任务的损失函数,或者选择对比损失或triple损失函数这种需要同时输入成对人脸或同时输入三张人脸的训练方式。但是在数据规模有限的情况下,这些方法都极容易陷入过拟合。

孪生网络的网络是一个双路的神经网络,训练时,通过组合的方式构造不同的成对样本,输入网络进行训练,在最上层通过样本对的距离判断他们是否属于同一个类,并产生对应的概率分布。在预测阶段,孪生网络处理测试样本和支撑集之间每一个样本对,最终预测结果为支撑集上概率较高的类别,这一方法就是前面所说的对比损失函数。

关系网络认为度量方式也是网络中非常重要的一环,需要对其进行建模,所以该网络不满足单一且固定的距离度量方式,而是训练一个网络来学习(例如cnn)距离的度量方式,在loss方面也有所改变。考虑到关系网络更多的关注relationscore,更像一种回归,而非0/1分类,使用了mse取代了交叉熵,所以不适合人脸识别这种分类任务。

原型网络与匹配网络十分相似,但也有几个不同点:1.使用了不同的距离度量方式,匹配网络中是cosine度量距离,原型网络中使用的是属于布雷格曼散度的欧几里得距离(欧式距离)。2.二者在小样本(few-shot)的场景下不同,在one-shot时等价(one-shot时取得的原型就是支持集中的样本)。3.网络结构上,原型网络相比匹配网络,将编码层和分类层合一,参数更少,训练更加方便。

综上所述,本申请选择原型网络作为训练三维人脸识别模型的基础网络。

本申请提供一种三维人脸识别模型训练方法,该方法的方法流程图如图1所示,包括如下步骤:

s10,获取少样本学习的多个对象的三维人脸图像。

本申请实施例中,在开始训练模型之前需要准备好三维人脸图像。具体的,三维人脸图像的格式可以是rgb-d四通道、还可以是三维点云,还可以是rgb-xyz六通道,本实施例对此并不做限定。

由于现有公开的三维人脸图像的数量规模非常小,大都是在特定场景下采集到的,不仅采集的对象数量较少,而且同一对象的三维人脸图像也较少,因此,按照传统的训练方法得到的模型极易陷入过拟合,模型效果一般也会较差。

因此,本申请并不采用现有公开的三维人脸图像,而是重新采集。具体的,可以采用a200设备采集不同对象的人脸在不同表情、姿态和光照下的图像帧,该图像帧包括深度图像和彩色图像。例如,可以采集600人(300男、300女)、每人200帧在不同表情、姿态和光照下的图像帧。可以看出,本申请自采的数据规模无论从对象数量、又或者是从图像数量来说,都比现有公开的二维人脸图像的集合(如ms-celeb,vgg2等)要小的多。

为了说明每个对象有很少的图像数量也能得到较好的模型,本申请为了保证每个对象对应的图像帧数量较少,从每个对象的图像帧中选择表情、姿态和光照表现力最好的多个,并进一步将所选择的图像帧的深度图像和彩色图像转换为三维人脸图像。

在具体实现过程中,为优化模型训练样本的质量,步骤s10“获取少样本学习的多个对象的三维人脸图像”可以采用如下步骤,方法流程图如图2所示:

s101,采集多个对象的图像帧,图像帧包括深度图像和彩色图像。

本申请实施例中,按照如上描述采集各对象表情、姿态和光照表现力最好的图像帧。

s102,针对多个对象中的每个对象,在该对象的彩色图像中确定人脸区域。

本申请实施例中,针对多个对象中的每个对象,都执行步骤s102~s105的图像处理。

具体的,为加大人脸区域的识别精度,本申请实施例对彩色图像进行检测。首先,采用人脸检测器对彩色图像进行人脸检测,以获得彩色图像中的人脸检测框;进一步,采用人脸特征点检测器对人脸检测框进行人脸特征检测,以获得人脸检测框中的人脸特征点。

s103,分别从该对象的深度图像和彩色图像中分割出人脸区域对应的人脸深度图像和人脸彩色图像。

本申请实施例中,基于人脸区域位于彩色图像中的像素坐标,从深度图像中分割与该像素坐标相对应的区域作为深度图像中的人脸区域。

从而,将深度图像中人脸区域所在的部分图像作为人脸深度图像,相应的,彩色图像中人脸区域所在的部分图像即人脸彩色图像。

s104,通过迭加人脸深度图像和人脸彩色图像,转换得到该对象的人脸彩色三维点云。

本申请实施例中,采用现有点云转换技术即可实现迭加人脸深度图像和人脸彩色图像转换得到人脸彩色三维点云。本实施例在此不赘述。

此外,为提高人脸彩色三维点云的精度,本申请实施例还可以在执行人脸彩色三维点云转换之前,对人脸深度图像进行滤波去噪处理。以提高人脸深度图像的精度。

s105,归一化该对象的人脸彩色三维点云。

本申请实施例中,对于人脸彩色三维点云中的彩色部分数据,归一化按照减去127.5后除以128来归一到[-1,1]之间。而对于人脸彩色三维点云中的深度部分数据,归一化则按照如下公式(1)进行:

其中,x′,y′,z′是归一化之后的三维坐标,xmax,xmin是人脸彩色三维点云x坐标的最大和最小,ymax,ymin是人脸彩色三维点云y坐标的最大和最小,zmax,zmin是人脸彩色三维点云z坐标的最大和最小。

此外,为使得三维人脸图像均处于正脸状态,本申请实施例在执行归一化之前,对该对象的人脸彩色三维点云进行人脸姿态转正。

s20,从多个对象的三维人脸图像中随机选择至少一个对象的三维人脸图像作为训练样本,输入至原型网络,将原型网络训练为三维人脸识别模型。

本申请实施例中,步骤s10获得的多个对象的三维人脸图像可以用集合trainsetd={(x1,y1),...,(xn,yn)}来表示,其中,yi∈{1,...,k},dk表示trainsetd中yi=k的所有三维人脸图像集合,xi为三维人脸图像,yi为表征对象的标签,trainsetd中三维人脸图像的总数为n,对象的总数为k。

在trainsetd中的k个对象中选择c个对象的三维人脸图像作为训练样本,将其输入至原型网络中,以调整原型网络各层的权重参数,直到原型网络的损失函数值收敛,将结束训练的原型网络作为三维人脸识别模型。

在具体实现过程中,为提高三维人脸识别模型的识别精度,本申请实施例对原型网络做出改进,以优化原型网络的权重参数调整策略,较好挖掘样本中的人脸特征,避免出现样本过少情况下的严重过拟合现象。步骤s20中“将原型网络训练为三维人脸识别模型”可以采用如下步骤,方法流程图如图3所示:

s201,通过输入处理单元,针对训练样本中每个对象,从该对象的三维人脸图像中随机选择至少一个三维人脸图像加入至支持样本中,并将该对象的三维人脸图像中未被选择的三维人脸图像加入至查询样本中。

本申请实施例中,在c个对象的训练样本中,每个对象的样本都随机选择部分加入支持样本s(supportset)中,剩下的加入查询样本q(queryset)。

s202,通过卷积神经网络,分别提取支持样本和查询样本中每个三维人脸图像的特征向量。

本申请实施例中,可以通过诸如cnn网络的卷积神经网络,对支持样本s和查询样本q中每个三维人脸图像进行特征映射,以提取特征向量。实际应用中,cnn网络的主干网络可以选择mobilenetv3。

s203,通过输出处理单元,处理支持样本和查询样本中每个三维人脸图像的特征向量,计算得到卷积神经网络的损失函数值,损失函数值是调整卷积神经网络的权重参数的基础或依据。

本申请实施例中,可以以支持样本中每个对象的三维人脸图像的特征向量总结每个对象的类原型,并通过对比查询样本中每个三维图像在支持样本中所属的对象和其对象的标签,来计算卷积神经网络的损失函数值。

需要说明的是,类原型主要用来描述一个样本集的“中心”,根据该“中心”来衡量新的样本与该样本集之间的距离或关系。

具体实现过程中,步骤s203中“处理支持样本和查询样本中每个三维人脸图像的特征向量,计算得到卷积神经网络的损失函数值”可以采用如下步骤,方法流程图如图4所示:

s2031,针对支持样本中每个对象,将该对象的三维人脸图像的特征向量的平均值作为该对象的类原型。

本申请实施例中,可以采用如下公式(2)计算对象k的类原型ck:

其中,nc为支持样本中对象k的三维人脸图像的数量,sk为对象k在支持样本s中的三维人脸图像集合,fφ为卷积神经网络的特征映射函数,fφ(xi)为支持样本s中对象k的三维人脸图像的特征向量。

s2032,针对查询样本中每个三维人脸图像,计算该三维人脸图像的特征向量与支持样本中每个对象的类原型的欧氏距离,并通过归一化计算得到该三维人脸图像在支持样本中所属对象的概率分布。

本申请实施例中,按照如下公式(3)计算概率分布pφ:

其中,查询样本中对象k′∈(1,c),fφ(x)为查询样本q中对象k′的三维人脸图像的特征向量。

s2033,根据查询样本中每个三维人脸图像对应的对象、及其在支持样本中所属对象的概率分布,计算卷积神经网络的损失函数值。

本申请实施例中,按照如下公式(4)计算卷积神经网络的损失函数值jφ:

jφ=-log(pφ(y=k|x))(4)

需要说明的是,本申请实施例训练得到的三维人脸识别模型,其测试和应用与普通的人脸识别模型相同,得到任意两个人脸图像的特征向量后,通过两个特征向量之间的余弦距离来判断这两个人脸是否属于同一人,从而输出识别结果。

本发明实施例提供的三维人脸识别模型训练方法,通过少样本学习能够深度挖掘现有样本的人脸特征,在样本规模有限的情况下,特别是三维人脸图像缺乏、且获取成本较高的情况下,能够使模型具备较好的人脸识别性能,从而解决小样本场景下的三维人脸识别问题。

基于上述实施例提供的三维人脸识别模型训练方法,本申请实施例还提供一种三维人脸识别模型训练装置,该装置的结构示意图如图5所示,包括:

图像获取模块10,用于获取少样本学习的多个对象的三维人脸图像;

模型训练模块20,用于从多个对象的三维人脸图像中随机选择至少一个对象的三维人脸图像作为训练样本,输入至原型网络,将原型网络训练为三维人脸识别模型。

可选的,图像获取模块10,具体用于:

采集多个对象的图像帧,图像帧包括深度图像和彩色图像;针对多个对象中的每个对象,在该对象的彩色图像中确定人脸区域;分别从该对象的深度图像和彩色图像中分割出人脸区域对应的人脸深度图像和人脸彩色图像;通过迭加人脸深度图像和人脸彩色图像,转换得到该对象的人脸彩色三维点云;归一化该对象的人脸彩色三维点云。

可选的,图像获取模块10,还用于:

在执行通过迭加人脸深度图像和人脸彩色图像,转换得到该对象的人脸彩色三维点云之前,对人脸深度图像进行滤波去噪处理。

可选的,图像获取模块10,还用于:

在执行归一化该对象的人脸彩色三维点云之前,对该对象的人脸彩色三维点云进行人脸姿态转正。

可选的,模型训练模块20,具体用于:

通过输入处理单元,针对训练样本中每个对象,从该对象的三维人脸图像中随机选择至少一个三维人脸图像加入至支持样本中,并将该对象的三维人脸图像中未被选择的三维人脸图像加入至查询样本中;通过卷积神经网络,分别提取支持样本和查询样本中每个三维人脸图像的特征向量;通过输出处理单元,处理支持样本和查询样本中每个三维人脸图像的特征向量,计算得到卷积神经网络的损失函数值,损失函数值是调整卷积神经网络的权重参数的基础或依据。

可选的,用于处理支持样本和查询样本中每个三维人脸图像的特征向量,计算得到卷积神经网络的损失函数值的模型训练模块20,具体用于:

针对支持样本中每个对象,将该对象的三维人脸图像的特征向量的平均值作为该对象的类原型;针对查询样本中每个三维人脸图像,计算该三维人脸图像的特征向量与支持样本中每个对象的类原型的欧氏距离,并通过归一化计算得到该三维人脸图像在支持样本中所属对象的概率分布;根据查询样本中每个三维人脸图像对应的对象、及其在支持样本中所属对象的概率分布,计算卷积神经网络的损失函数值。

本发明实施例提供的三维人脸识别模型训练装置,通过少样本学习能够深度挖掘现有样本的人脸特征,在样本规模有限的情况下,特别是三维人脸图像缺乏、且获取成本较高的情况下,能够使模型具备较好的人脸识别性能,从而解决小样本场景下的三维人脸识别问题。

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统或系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的系统及系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

以上所述仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。

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