闵玉琴 万文章 余 瑛
(江西中医药大学 江西 南昌 330004)
生物识别平台已经越来越多地应用于各种安全认证,融入了我们生活的方方面面。这类平台的代表性技术是指纹识别、虹膜识别、人脸识别这三类身份识别技术。指纹、虹膜和人脸是目前认证系统中最常用的生物特征[1]。
和指纹、虹膜等生物特征相比,人脸在普遍性、可采集性与可接受性方面占有一定的优势(见表1)。然而人脸识别存在可能会被面具、照片[2]、视频、3d建模等手段欺骗攻击的问题(见图1)。时至今日,活体检测仍是人脸识别技术迈向更高层次所面临的一个致命障碍。
表1 各种生物特征识别技术的比较
(a) 纸质照片 (b) 电子照片 (c) 视频图1 人脸识别现今面临的三种主要欺骗方式
活体检测主要是使用各种生理特性来区分真实和假体。本文提出了一种新型的利用心率变化特征的人脸活体检测技术,通过普通摄像头获取人脸视频中的RGB信号,确定特征点选取ROI[3]后运用iPPG的方法获取实时心率。将其一段时间内的心率平均值存入数组,再对其进行分析,获得表示数据稳定性的标准差,送入阈值比较程序中检测从而判断是否为活体真人图像。实验结果表明,本文提出的心率活体检测技术提供了低成本和高度可用的生物识别系统。对比文献[15]发现,本文提出的算法识别范围更广,能够准确地识别真人、纸质照片、电子照片或视频人脸,而且兼具人脸识别功能。并且,利用的心率原理更加精细,因为视频包含RGB三通道信息,不同的通道包含的心率信息比例不同,本文利用G通道(含有心率信息最好的通道)既能更准确地提取心率信号,也能避免其他通道造成的干扰。
本文将用于人脸识别的活体检测技术分为运动信息分析、纹理信息分析、多光谱分析和多种特征综合分析四种[4-8],简化了现有面部抗欺骗方法的分类。具体分类如图2所示。
图2 脸部抗欺骗方法的分类
运动信息分析的目的是提取人脸区域特定的运动信息以判断真假人脸(例如眼睛眨眼或小头和脸部移动),以决定捕获的生物特征样本是否是合成的。这增加了额外的时间并造成用户体验繁琐的后果。基于纹理分析的方法是利用假人脸经过二次采集或多次采集呈现出与真人图片在纹理细节上的差异(如真实形状和局部高光的差异等)。多光谱分析是基于皮肤和其他材质的反射率不同,从而在成像系统上呈现较大差异,进而判断真假人脸。最后考虑到欺骗攻击方式的多样性,采取多种技术融合进一步在机理上形成互补。
由于一些性能良好但需要额外的硬件设备支持,其搭建复杂成本高昂,不利于使用和普及。我们将注意力转向基于信号处理技术软件的方法,本文探讨了三种不同的活体检测的方法:基于运动的方法[9-10]、基于纹理分析的方法[6]、基于图像失真的分析方法[11-12]。
此外,本文还提出了一种新的基于从视频提取的RGB信号获取实时心率进行阈值比较,从而达到抗欺骗攻击的解决方案。
本文方法基于四大生命体征中的心率。由于心脏跳动引起血液周期性灌注,从而导致皮肤毛细血管对光的吸收发生变化。使用图像光电容积描记法(iPPG),通过记录该变化实现非接触式的心率测量[13],从而可以达到活体检测的目的。
因为iPPG是一种基于光线变化的测量方法,实验结果表明,欺骗攻击会由于各种原因(手的抖动、屏幕闪烁频率等)产生细微震动,从而造成反射光线的变化。而基于电子产品的照片或者视频回放的欺骗攻击,其屏幕自身的刷新频率和显示机制等原因[14]也会有光线的变化,欺骗攻击手段也会测量出心率,但波动范围很大。所以,短时间内的心率是否稳定,能够成为活体检测技术的依靠。在进一步的实验中我们发现,利用心率平均值分析的方法会存在纸质照片和真实人脸识别错误的漏洞,因为纸质照片和人脸一样都不是自发光的。但是纸质照片反射的光比较明显,所以在利用以上方法还是可以区分的。为了弥补这个漏洞,我们又提出了动态人脸识别计算多帧图像相似度的方法。综合性假体识别算法流程如图3所示。
图3 基于心率的假体识别算法流程
首先,实时录入3秒左右的视频,获得50帧人脸图像,取较为稳定的后20帧图像,提取脸部感兴趣区(ROI)中包含心率信号最强的G信号。计算出G信号的平均值存入数组,再变换得到这组数据的方差。从50幅图像中获取的G分量平均值经过平滑滤波后获得的折线图如图4所示。
(a) 真实人脸
(b) 纸质人脸
(c) 电子照片人脸
(d) 视频人脸图4 不同信号来源提取的g分量
由图4可知,真实人脸折线图的波形比较有规律,而另外三幅相反。经过多次的实验得出,波形还跟G分量平均值的大小有关,G分量平均值越小,其规律更加明显。所以本文方法的应用场景受限于室内,没有太阳光的场景下识别效果最好,日光灯不影响本系统的识别效果。
由于人眼无法分析波形的稳定性,于是利用标准差来计算数据的稳定性,最后发现,真实人脸的标准差一般在30以下。而纸质照片、电子照片以及视频照片的标准差一般都在40以上。所以区分假体的极限值可以设置在30至40之间。标准差如表2所示。
表2 真实人脸、视频人脸、电子照片、纸质照片的标准差
续表2
为了克服利用求G分量平均值的标准差来实现抗假体时无法识别纸质照片的漏洞,本文采用了动态人脸识别计算多帧图像相似度的方法。利用纸质照片是静态的,其相似值变化不大的特点,将50帧图像的前30帧图像与人脸特征库的人脸进行相似度计算,取大于0.57的相似值存入数组,并对这30个数据求标准差,如表3所示。
表3 照片相似度标准差和真实人脸说话相似度的标准差
由表3可知,照片相似度的标准差只有144左右,而真实人脸说话时的相似度标准差在500以上。经过多次的实验可以知道照片的相似度最高不超过200,而真实人脸说话时的相似度标准差不低于400。由此可以设置区分照片与人脸的极限值可以在200至400之间。这种方法不仅可以区分纸质照片,还可以区分电子照片与真实人脸,但是由于此方法是用相似度来计算标准差,无法正确地区分视频与真实人脸。若视频录入的是一个正在说话的人脸,那么该方法也会失效。
实验数据采集给定由合法访问和欺骗攻击组成的测试视频。首先,对输入的测试视频进行人脸检测,选取ROI区域减少其他组织产生的光线变化干扰。其次,对RGB颜色通道进行分离,获取G通道(含有的脉搏信息最强)。然后,我们运用iPPG的测量出心率。 随着一组心率的获得,计算其平均值存入数组。最后,计算出方差同阈值比较得出结果,用于判断给定的测试视频是否是欺骗攻击,在判断是活体的前提下再进入人脸识别流程。活体检测模块的总体流程如图5所示。
图5 假体识别流程图
采集实验室的全部人员的电子照片和部分人脸录制视屏作为实验数据。其呈现类型和采集方式同文献[12],如图6所示。
3.2.1实验设计与分析
在人脸识别活体检测系统中,抗假体检测是核心模块,涉及的思路及识别的流程如图7所示。
图7 人脸识别系统总流程图
3.2.2人脸图片帧数的选取
实验选取前30帧图像的相似度求标准差,剩下的20帧图像用来计算G分量平均值的标准差。
3.2.3变量参数化
设20帧图像G分量的平均值为xi(i从1到20顺序取值),N为总数(即20),u为20个G分量平均值的平均值,得到G分量平均值的标准差。同理设30帧图像的相似度为xi(i从1到30顺序取值),N为总数(即30),u为30个相似度的平均值,于是有相似度的标准差。标准差的公式如下:
3.3.1限制性条件
系统必须在一定的光强环境、识别距离等限制性条件下进行,才能达到较好的效果。
3.3.2性能测试
为了验证系统的性能,从人脸识别、活体检测两个方面进行实验。
(1) 人脸识别。通过摄像头采集的人脸图像大小为640×480,帧率为25帧每秒。采集50张图片总耗时需2 s,然后系统将会对前30帧图像进行相似度计算,只要有一帧大于0.57即识别成功,并输出身份。采集过程中应正对摄像头,点击采集数据,然后停止采集,再点击开始验证,如果识别成功,在身份框处会显示识别者的身份,如图9所示。
图8 人脸识别结果
(2) 活体识别。利用照片、视频等对该识别部分抗假体攻击的能力进行测试。测试时分别将纸质照片、电子照片以及视频正对摄像头,点击采集数据,采集数据框中会显示开始采集,采集完成后会显示采集成功,此时按下停止采集按钮,点击开始验证。如果系统显示活体识别失败,那么就说明系统活体识别成功;若是系统显示活体检测成功,那么就说明系统活体识别失败。图9-图11分别是纸质照片、电子照片以及视频在检测时的输出结果。
图10 电子照片识别结果
图11 视频识别结果
由于实验室人数不够多,以实验室人数进行该测试很难得出准确结果,于是我们又在CMU_PIE_Face中随机选择280张人脸照片填充至该系统的人脸数据库,使系统的人脸数据库达到300张,实验结果如表4所示。
表4 300张照片测试结果
本文提出了一种用于抵抗面部欺骗攻击的算法,利用心率变化在真实面部和伪造合法用户信息之间存在的差异来识别人脸。通过ROI区域提取,对感兴趣区中的G信号进行平均值计算、方差变换等一系列信号处理,提取出表示心率稳定的参数。将获得的参数送入阈值比较程序,从而判断面部的真实或伪造。为了验证算法的可行性,我们对实验中获取的数据进行了统计分析。结果表明,本文方法在检测不同类型的攻击(纸质照片,电子照片,视频)中具有良好有效性。本文方法仍有改进之处,由于其以测量心率为基础的,RGB三通道信息的获取是基于光线变化原理,所以非轻微的光线变化会对检测效果造成一定影响。在未来的工作中,我们将进行更多的文献阅读和实验,寻找更有效的方式来优化算法,从而能更好地适应光线变化中的面部检测问题。