APP下载

深度学习在解决光线影响人脸识别活体检测算法中的应用

2019-04-28王同磊

电子技术与软件工程 2019年3期
关键词:活体人脸识别人脸

文/王同磊

1 深度学习介绍

在人工神经网络这一领域的研究过程中,衍生出了深度学习这一概念。例如,多层感知器,也就是含多隐层的感知器,这一类就属于深度的学习结构。深度学习是如何表示的呢?通常而言,是通过各种组合,将低层特征形成某种抽象特征,或者是属性类别等,通过这些过程,将发现的数据以分布式特征进行表示。

2006年,Hinton等人首次将深度学习这一概念提出。他们基于(DBN),也就是深信度网这一概念,提出了一种训练算法,称为非监督贪心算法。这一算法为解决与深层结构等内容有关的优化类难题带来可能性。并且据此又提出了自动编码器这种深层结构。另外,由其他研究学者提出了例证,卷积神经这种网络就是例证,它是首个真正意义上的正多层类型的学习算法。具体内容是依据空间的这种相对关系,从而减少参数,用以提高神经的训练性能。

2 人脸识别活体检测算法综述

人脸识别这一技术,主流观点认为,分两部分:一为前端人脸活检。这一技术支持iOS和安卓等程序平台。具体过程是:用户通过点头或摇头,以及眨眼等各种动作进行智能检测,目的是确定机器设备前是真人人脸。二为基于后台功能的人脸识别。这种技术以第一部分为基础,在其基础之上,获取到全脸图像之后,经过扫描,识别用户的身份证,身份证头像与前端活检人像对比而后做出判断,得出是否是同一人的结论。

图1

2.1 什么是活体检测?

活体检测,通俗意义上理解,就是判断人脸活检这一过程中是真人脸还是静态假脸,比如照片打印的人脸,电脑中的人脸,甚至说是面具等;人脸活检这项技术目前我们可以看到,经常应用在iOS、安卓等系统的移动平台中,比如APP等。同时,由于这项对比技术运算量超级大,所以必须使用大量服务器支持,常见的是win平台,国外也会使用Linux等平台。

2.2 为什么需要活体检测?

活检的应用领域非常广泛,我们熟知的应用场景有:银行金融、各种支付以及安保门禁等。活体检测通常是嵌套程序模块使用。将人脸识别与活检二者结合使用,成功的案例很多,比如实名认证等领域,避免了各种漏洞与攻击。

2.3 活体检测对应的计算机视觉问题

实际上就是分类,用计算机语言说是1和0,也就是真和假,还有一种是多分类。前面提到的照片攻击、面具攻击,还有真人等。

3 深度学习如何在人脸识别活体检测算法中应用

首先我们从基础开始说起,首先定义一个神经网络。

在图1中需要我们最先了解的是ωljk。k,位于右下角,它代表第k个神经元位于L-L层;L, 位于右上角,代表层数,即“输入”与权重w这一项结合;j,位于右下角的,代表第j个神经元位于L层。

这么写看起来好像比较奇怪,因为直觉上说,k在L之前,才是更符合我们认知的理解方式。但是后面我们可以看到,在这种处理方法之后,我们可以得到一种更简洁的处理式子。比较而言,这种前后稍微颠倒下,也无所谓了,适应下就好了。

如图2所示,除了权重w之外,我们还有 b和 a。

b是我们的偏差,a是我们的输入向量经过激活函数之后的结果,也就是α=δ(z)。

在表现形式上,b跟a有这类似的特点:右上角的值是所在的层数;右下角数值,代表所在的神经元位置。据此,结合之前的公式,我们可以得出以下算式结论:

这个式子看起来好像复杂,但实际上很简单,而且完全描述了我们刚才说的神经网络的问题,当然,这里的αlj是其中的一个神经元,它位于第L层的第j个。

这个神经元的得来,就是从前一层L层的所有神经元,与与之对应的权重结合之后,所有的相加,经过激活函数得来的。

在矩阵中,我们要求的某个值,就是行与列对应位置的值相乘之后相加得到的。可以看出,k即对应的位置。例如,我们有公式

图2

这个公式就是典型的矩阵相乘求值的公示,那么我们转成矩阵相乘:

li=minj

可以把αlj理解成第l行第j列的值,那么我们采用矩阵相乘的方法来计算,就得到了:

αl=δ(ωlαl-1+bl)

下面,我们来总结一下,可以看到简化的算式。并且很显然,还能得出l与k颠倒的优点。为了更方便,我们设定:

于是,我们很轻松的得出αl=σ(zl)接下来,该backpropagation了,为了计算这一项,我们可以进行两个假设。第一,代价方程写为:

这里面,x代表输入样本点,n代表样本数,y(x)代表输出值,而αL(x)代表的输出值是神经网络。其中L代表的就是层数,神经网络的,很明显也是最后一层。

第一个将 remote pluse 应用到活体检测中,多帧输入

(交代下背景:在CVPR2014,Xiaobai Li已经提出了从人脸视频里测量心率的方法)算法流程:

(1)通过 pluse 在频域上分布不同先区分 活体 or 照片攻击 (因为照片中的人脸提取的心率分布不同)

(2)若判别1结果是活体,再 cascade一个 纹理LBP 分类器,来区分 活体 or 屏幕攻击(因为屏幕视频中人脸心率分布与活体相近),如图3所示。

Pros: 通常意义上,按照学术界的观点,引入了新模态——心理信号,这是很大意义上的进步;从另一个角度而言,也就是工业发展的领域,加入做不到一步到位,还可以通过Cascade这一方式进行部署,这也是进步的。

Cons: 因为remote heart rate这一算法有它的局限性,所以结果来看,pulse-feature存在判别能力不足的弱点,加上显示器里video的视频中,人脸的pulse-feature方面是不是还存在比较细微的差别,这一方面还不确定,需要更进一步的验证。

正面人脸图像检测方法

图4

矩阵 Yi∈R64×64为第 i个个体的人脸图像矩阵,Di 为第i个个体所有人脸图像集合,Yi∈Di。正面人脸检测公式为:

我们通过训练深度神经网络来进行人脸重建。loss函数为:

I代表第i个,k代表i中第k张。X^{0}代表的是训练图像,Y代表的是目标图像。

深度的神经网络,它包含三层。max pooling是与前两层相接;全连接层是与第三层相接。与传统统卷积神经网络不同,我们的fi lters不共享权重(我们认为人脸的不同区域存在不同类型的特征)。以下是第l层的卷积层算式:经过这些计算,我们终于可以得出人像图了。下面就是经过训练之后,生成的canonical view:如图4所示。

4 总结

目前的研究水平,要想达到人脸识别和深度学习的全部结合,可以说路漫漫其修远兮,还有很多探索空间。比如说双胞胎识别,比如说妆前和妆后的识别,要达到一定的准确度,还存在一定难度。相信不久的将来人脸识别系统将在速度、可靠性、稳定性,成本取得更好的。从而能够为人类的进步贡献力量。

猜你喜欢

活体人脸识别人脸
人脸识别 等
有特点的人脸
张帆:肝穿刺活体组织学检查
让活体肝移植研究走上世界前沿
活体器官移植,你怎么看?
揭开人脸识别的神秘面纱
三国漫——人脸解锁
“汪星人”要打“飞的”——话说活体空运
基于类独立核稀疏表示的鲁棒人脸识别
马面部与人脸相似度惊人