一种融合三元组损失函数的rgb人脸活体识别方法技术

技术编号:36032034 阅读:20 留言:0更新日期:2022-12-21 10:33
本发明专利技术公开了一种融合三元组损失函数的rgb人脸活体识别方法,包括如下步骤:步骤1:将采集的到图片让标注人员标注,标注的类别只有两个,即真实人脸和攻击样本;步骤2:对所有的图片通过人脸检测得到人脸检测框,然后使用关键点模型将检测后的人脸姿态矫正;步骤3:根据标注的结果,将所有的数据生成大量的三元组;步骤4:将生成好的所有的三元组作为我们的训练输入,设置不同的神经网络模型超参数,选择合适的网络结构,然后开始训练,每训练完一个epoch都把训练的模型参数保存下来。本发明专利技术在训练的过程中逐渐拉开不同样本之间的距离以及缩小同类别样本之间的距离,从而能使得模型的精度进一步提升,而且泛化性能大大加强。而且泛化性能大大加强。

【技术实现步骤摘要】
一种融合三元组损失函数的rgb人脸活体识别方法


[0001]本专利技术涉及一种人脸识别
,具体涉及一种融合三元组损失函数的rgb人脸活体识别方法。

技术介绍

[0002]随着人工智能技术地不断发展,人脸识别作为一种图像识别技术,广泛地应用在安防、支付等领域。但是在人脸识别技术中,存在这么一个问题,即攻击者使用特定人员的照片来绕开人脸识别;因此,为了防止被人脸照片攻破,需要对获取到的人脸图像先进行活体识别判断是否是真人,再使用人脸识别技术。
[0003]现有技术中,通常通过让用户完整指定动作来验证当前验证人员是否为真人,虽然此举可以对抗大部分的图片或者视频伪造的活体攻击,但同时仍能被攻击者精心制作的视频给绕过,且用户体验不够好。用户希望得到的体验是当人脸出现在摄像头面前,即使是不需要做任何动作,系统也能在较短时间内快速识别出到底是攻击样本还是真实人脸。因此,大量研究人员开始使用基于深度神经网络模型来做活体识别。
[0004]在人脸活体识别这一领域,有诸如基于rgb的或者基于depth等多种不同的方式,由于不同的方式可利用的信息不等,所以无法统一比较。
[0005]现有的技术方案大多都是先搜集大量的攻击样本和真实人脸样本,使用诸如ResNet或者MobileNet等神经网络进行训练,最终使用 Softmax损失函数来进行二分类,即攻击样本还是真实人脸。Softmax 函数的优点是在训练模型的时候收敛速度快,但是有个最大的缺点就是无法优化训练出来的特征的表征能力,通常得到特征之间的类内距离和类间距离不够明显,公式如下:
[0006][0007]其原理是将神经网络模型生成的特征向量值映射到(0,1)之间,且这些值相加之和等于1;由公式可见,神经网络在训练过程中,会逐渐向样本正确的分类去学习,却没有去学习如何拉开不同样本之间的差距,其分类精度较低,降低了从抗击活体攻击样本的成功率。

技术实现思路

[0008]本专利技术的目的在于提供一种融合三元组损失函数的rgb人脸活体识别方法,其在训练的过程中逐渐拉开不同样本之间的距离以及缩小同类别样本之间的距离,从而能使得模型的精度进一步提升,而且加强了泛化性能。
[0009]为解决上述技术问题,本专利技术所采用的技术方案是:
[0010]一种融合三元组损失函数的rgb人脸活体识别方法,包括如下步骤:
[0011]步骤1:将采集的到图片让标注人员标注,标注的类别只有两个,即真实人脸和攻
击样本;
[0012]步骤2:对所有的图片通过人脸检测得到人脸检测框,然后使用关键点模型将检测后的人脸姿态矫正;
[0013]步骤3:根据标注的结果,将所有的数据生成大量的三元组;
[0014]步骤4:将生成好的所有的三元组作为我们的训练输入,设置不同的神经网络模型超参数,选择合适的网络结构,然后开始训练,每训练完一个epoch都把训练的模型参数保存下来,最后根据评价指标决定最终使用保存的哪个epoch模型参数;
[0015]步骤3中,数据生成大量的三元组函数公式如下:
[0016][0017]其中:
[0018]a代表anchor,为从训练集中随机选定的样本,
[0019]p代表positive,表示跟选定的anchor一样的类别的样本,
[0020]n代表negative,表示跟选定的anchor不一样的类别的样本,
[0021]则(a,p,n)便构成了一个三元组;n是一个参数,表示anchor与 negative之间需要的最小的差异值。
[0022]其中,步骤3中,将所有的数据生成大量的三元组时,三元组的具体生成方式如下,
[0023]首先从训练样本中随机选取一个样本作为anchor,然后再从与 anchor相同类别的样本中随机选取一个作为positive,再从与anchor 不同类别的样本中随机选取一个作为negative,从而生成一个三元组;如此反复操作,便可以形成大量的三元组,作为我们训练神经网络模型的输入。
[0024]进一步限定,在随机生成三元组的时候不生成重复的三元组。
[0025]进一步优化,步骤4中,设置不同的神经网络模型超参数,模型超参数包括学习率、优化器;模型超参数为人工预先设置。
[0026]其中,三元组(a,p,n)中包含的三个样本,若选定的anchor为攻击样本,那么p也为攻击样本,n则为真实人脸样本;针对三元组中的每个元素,训练一个参数共享或者不共享的网络,得到每个元素的特征表达x_a,x_p,x_n;融合三元组损失函数的目的就是通过学习,让x_a 和x_p特征表达之间的距离尽可能小,而x_a和x_n的特征表达之间的距离尽可能大,并且要让x_a与x_n之间的距离和x_a与x_p之间的距离之间有一个最小的间距m。
[0027]其中,人脸姿态矫正后使得所有的人脸都处于统一的一个角度。
[0028]进一步优化,为了避免在随机生成三元组的时候生成重复的三元组时,具体步骤如下,
[0029]用哈希集合把每个生成的三元组先保存下来,每次生成新的三元组的时候都判断一下是否已经存在一样的三元组,若不存在则把当前生成的三元组加入,若存在则跳过。
[0030]与现有技术相比,本专利技术具有以下有益效果:
[0031]本专利技术在实际的使用中,融合三元组损失函数主要是用于神经网络模型的训练阶段,用来计算模型预测值与真实值之间的误差,然后把误差反向传播给模型前面的各个网络层中,用于更新各个网络层的权重参数,从而使得模型更近一步地拟合当前训练数据;在使用rgb图像训练神经网络模型的时候,没有使用传统的softmax损失函数,而是提出了用
融合三元组损失函数来训练,该损失函数在保证最终分类正确的前提下,能拉大不同类别的样本的特征之间的距离以及缩小同类别之间样本特征之间的距离。
具体实施方式
[0032]在下文中,仅简单地描述了某些示例性实施例。正如本领域技术人员可认识到的那样,在不脱离本专利技术实施例的精神或范围的情况下,可通过各种不同方式修改所描述的实施例。
[0033]实施例一
[0034]本实施例公开了一种融合三元组损失函数的rgb人脸活体识别方法,包括如下步骤:
[0035]步骤1:将采集的到图片让标注人员标注,标注的类别只有两个,即真实人脸和攻击样本;
[0036]步骤2:对所有的图片通过人脸检测得到人脸检测框,然后使用关键点模型将检测后的人脸姿态矫正;
[0037]步骤3:根据标注的结果,将所有的数据生成大量的三元组;
[0038]步骤4:将生成好的所有的三元组作为我们的训练输入,设置不同的神经网络模型超参数,选择合适的网络结构,然后开始训练,每训练完一个epoch都把训练的模型参数保存下来,最后根据评价指标决定最终使用保存的哪个epoch模型参数;
[0039]其中,需要说明的是,合适的网络结构,可以为RestNet18,其具体网本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种融合三元组损失函数的rgb人脸活体识别方法,其特征在于,包括如下步骤:步骤1:将采集的到图片让标注人员标注,标注的类别只有两个,即真实人脸和攻击样本;步骤2:对所有的图片通过人脸检测得到人脸检测框,然后使用关键点模型将检测后的人脸姿态矫正;步骤3:根据标注的结果,将所有的数据生成大量的三元组;步骤4:将生成好的所有的三元组作为训练输入,设置不同的神经网络模型超参数,选择合适的网络结构,然后开始训练,每训练完一个epoch都把训练的模型参数保存下来,最后根据评价指标决定最终使用保存的哪个epoch模型参数;步骤3中,数据生成大量的三元组函数公式如下:其中:xi代表的就是第i个样本;a代表anchor,为从训练集中随机选定的样本,p代表positive,表示跟选定的anchor一样的类别的样本,n代表negative,表示跟选定的anchor不一样的类别的样本,则(a,p,n)便构成了一个三元组;n是一个参数,表示anchor与negative之间需要的最小的差异值。2.根据权利要求1所述的一种融合三元组损失函数的rgb人脸活体识别方法,其特征在于:步骤3中,将所有的数据生成大量的三元组时,三元组的具体生成方式如下,首先从训练样本中随机选取一个样本作为anchor,然后再从与anchor相同类别的样本中随机选取一个作为positive,再从与anchor不同类别的样本中随机选取一个作为negative,从而生成一个三元组;如此反复操作,便可以形成大量的三元组,作为我们训练神经网络模型的输入...

【专利技术属性】
技术研发人员:赵凌园康若帆杨振宇张焰陆汪
申请(专利权)人:眉山环天智慧科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1