APP下载

基于双目视觉与树莓派的活体人脸识别装置

2021-08-02叶晓峰邝泽权关健恒郑文靖李卓文

软件导刊 2021年7期
关键词:活体人脸识别权值

叶晓峰,邱 健,邝泽权,关健恒,郑文靖,李卓文

(华南师范大学物理与电信工程学院,广东广州 510006)

0 引言

随着计算机视觉在人工智能领域的快速发展,人脸识别作为一种重要的身份鉴别技术广泛应用于出入门禁、考勤打卡、安全监控、刑事侦查、快捷支付等领域[1]。然而,由于人脸容易被伪造,人脸识别系统的安全性受到威胁。目前,人脸伪造攻击方式一般有照片攻击、视频回放攻击以及人脸面具或模型攻击[2-4]。其中,人脸面具或模型制作工艺较为复杂,因而比较常见的是照片和视频人脸欺骗攻击。面对人脸伪造攻击,活体检测技术应运而生。

基于图像纹理分析的方法依据照片或显示屏上的人脸图像经过二次或多次采集后,通过甄别局部高光区域、阴影区域以及图像清晰度等纹理细节与真脸存在的差异,实现真假人脸识别[5]。Li 等[6]提出采用傅里叶频谱分析方法判别真假人脸,认为照片为平面且尺寸较小,因而高频分量较少,同时在一定时间内无运动;局部二值模式(Local Binary Patterns,LBP)等算子或其改进方法常用于人脸图像的纹理特征描述[7-9],在实验中有较高的检测准确率。然而,基于纹理的方法容易受图像质量、光照条件等因素影响,且跨数据集通用能力不强[10]。

基于运动信息的方法在生活中较常见,活体认证时要求用户配合完成随机指定的动作,通过实时检测用户的眨眼、张嘴等动作状态来判断是否为真人[11]。该方法识别率很高,但需要用户长时间配合,用户体验感不好,存在可能被视频攻击的风险。

活体检测可在非可见光波段实现。在近红外光谱下,由于真人皮肤和伪造人脸材质不同,会表现出明显的反射特性差异,从而可以排除非活体人脸[12]。伪造人脸温度往往比真人脸低,其红外辐射较小,热红外图像相对真人脸较为暗淡,因此可使用热红外成像方法进行活体检测[13]。上述方法检测效果较好,但采集条件较严格,对设备要求较高,成本远高于一般可见光系统。

基于深度信息的方法考虑照片和显示屏上的人脸是平面结构,而真实人脸具有立体三维结构,所以可利用深度信息的差异进行活体检测。Lagorio 等[14]利用结构光3D扫描仪获取特征点的三维信息,通过计算各点的表面曲率判别人脸真伪,很好地排除了假人脸,但将图片进行弯曲时检测效果不理想,而且扫描仪设备结构较复杂,成本较高。

针对活体检测方法存在的问题,本文提出一种基于双目视觉深度信息的人脸活体检测方法。该方法作为基于深度信息方法的一种,无需用户过多配合,对照片和视频假人脸有很好的区分效果,硬件设备简单、成本较低,满足多数实际应用需求。依据双目视觉原理对人脸特征点进行三维重建,建立基于人脸深度特征的活体判别模型。对于人脸照片弯曲的特殊情况借助层次分析法(Analytic Hi⁃erarchy Process,AHP)进行主观赋权,提高了活体检测的鲁棒性。本系统应用上述方法,以树莓派为控制核心,设计一个活体人脸识别的小型化检测装置。该装置具有算法简单、准确率高、设备便携、功耗小等优点。

1 人脸三维重建

1.1 双目视觉成像原理

依据双目视觉原理可实现目标物的三维重建,其实质是利用双目摄像头系统的成像关系,由三角形几何关系计算出图像中物体的三维坐标[15]。

经过立体校正后,双目摄像头平面已经达到前向平行对准[16],即左、右摄像头的主光轴相互平行,且成像面在同一平面上。双目摄像头系统的三维成像如图1 所示,其中Cl和Cr分别表示左、右摄像头的光心,两个光心之间的距离(基线距离)为b。对于同一目标点P(x,y,z)(左摄像头坐标系中的坐标),其在两个相机坐标系中的Z轴坐标相同。

Fig.1 Imaging principle of binocular camera system图1 双目摄像头系统成像原理

图2 为图1 在X-Z平面上的投影成像原理。其中,f表示两摄像头的焦距,P点为空间中一目标点,z为P点在Z轴方向上的坐标,Pl和Pr分别为P点在左、右摄像头平面上的成像点,它们在左、右摄像头坐标系中的X轴坐标分别为xl和xr。将右像平面上的Pr点映射至左像平面上的点,使得线段和PrCr平行,则由几何关系可知点即是空间点P '(x-b,z)在左像平面上的成像点。

Fig.2 Imaging principle on the X-Z plane图2 X-Z 平面上的成像原理

由三角形相似关系可以得到:

在此定义视差为d=xl-xr,对上式进行变换有:

由式(2)可知,在确定了两个摄像头的基线长度b和焦距f后,只要求出目标点在两摄像头成像面上成像时的视差d,便可确定目标点在摄像头坐标系中的Z轴坐标,即该点到摄像头平面的距离。而在双目测距过程中,基线长度和焦距可在相机标定时求得,视差则可由立体匹配得到。

根据三角形关系还可求得目标点在X轴和Y轴方向上的坐标,这样就能获得空间点在实际场景中的三维信息,实现三维物体重建,表达式如下:

1.2 人脸特征点提取

对人脸进行活体识别需要检测出人脸特征点,因此提取人脸特征点是很重要的一步。由于本文研究的重点是活体检测,因此提取人脸特征点直接使用Dlib 库提供的68点标记方法。该方法基于级联回归树(Ensemble of Regres⁃sion Trees,ERT)算法,即基于梯度增强学习的回归树训练方法[17]。其准确性较高,对人脸特征点识别和标记速度较快,且对人脸角度没有太大要求,可根据人脸姿态的变化进行检测[18]。使用Dlib 库的标准特征点检测模型提取到的68 个特征点位置如图3 所示,还可根据需要由68 个特征点位置确定其它特征点位置。

Fig.3 68 facial feature points图3 人脸68 个特征点

在调用双目视觉中的立体匹配算法后,可以得到左、右图像中对应点的视差图,并由视差图计算出人脸图像的深度矩阵。只要获得了任一所需特征点位置,就能得到该特征点的三维坐标。

2 基于AHP 的活体检测

2.1 层次分析法(AHP)

层次分析法是一种将定性与定量分析结合的多因素决策分析方法,用决策者的经验判断和推理各标准之间的相对重要程度,并进行量化表示,合理给出每个标准的权重,利用权重求出各方案的优劣次序[19],常用于主观赋权。

在实际问题中,首先要建立目标层、准则层、方案层的多层次结构模型[20],然后对每一层因素进行两两比较,构造判断矩阵。如表1 所示,采用1-9 分的标度方法。其中,每两个因素之间的标度值互为倒数,表示相对重要性相反。

可使用和积法计算判断矩阵的最大特征根及其特征向量。先将判断矩阵的每一列元素归一化,再将每一行元素相加,对得到的列向量进行归一化处理,便可得到近似特征向量即权向量,然后通过式(4)得到最大特征根。其中,Aw表示判断矩阵A和权向量w的乘积。

Table 1 Definition of the scale of judgment matrix表1 判断矩阵标度的定义

为保证构造的判断矩阵有较好的一致性,还需要通过一致性检验指标CI 和RI 来衡量矩阵偏离程度[20]。其中,一致性指标CI 由式(5)得到,平均随机一致性指标RI 的值如表2 所示[21]。

Table 2 Values of average random consistency index RI表2 平均随机一致性指标RI 的值

若一致性比率CR=CI/RI<0.1,就可认为判断矩阵满足一致性要求,否则需要修改判断矩阵,重新计算权重。

2.2 活体人脸深度特征赋权方法

本文所考虑的活体检测主要用于区分真实人脸与照片、视频中的伪造人脸。真实人脸三维结构与这些假人脸相比差别较大,其各个面部器官是立体的。对于平面结构的假人脸,其各个位置的深度相同,而即便将照片偏转或弯曲折叠,其深度信息也不会与真人脸相同。由此,可将双目视觉原理计算出的深度信息作为区别真假人脸的特征。

由于鼻尖点到摄像头的距离最小,本文以鼻尖点为参考点,选取10 个特征点与鼻尖点的深度差值构建深度特征,这些深度差值在一定程度上能反映面部器官三维结构的凹凸起伏状况。如图4 所示,点①②为眉梢点,③④为外眼角点,⑤⑥为颧骨点,⑦⑧为嘴角点,⑨⑩为鼻根点和下巴中心点。根据各点位置为各深度差值赋以权值,计算其加权和,由此构建判别模型,如式(6)所示。

Fig.4 10 selected feature points图4 选取的10 个特征点

其中,di表示各点与鼻尖点的深度差,wi表示各点所占权重,D 表示总深度特征值。显然,平面伪造人脸的总深度特征值应接近于0,而真实人脸的总深度特征值则为相对较大的正值,如此便可判定人脸的真实性。

真实人脸与平面假人脸在各点权重相等时就能取得较好效果,但显示伪造人脸照片、电子显示屏等往往会被攻击者尝试往水平或竖直方向偏转一定角度,这样人脸图像上各点的深度就会有所差异,可能使D 值较大。对于这种攻击情况要考虑让左右和上下两边的权值相等(分隔线见图4),从而使两边的深度差值正负抵消,D 值仍然较小。综上所述,对于各特征点深度差值所占权重的分配需要在权值平均分配基础上,使权值左右对称、上下相等。权值按表3 分配即可有效抵御平面假人脸及其在水平或竖直方向上偏转的攻击。

Table 3 Weights for the flat fake face and its deflection表3 针对平面假人脸及其偏转情况的权值

伪造人脸攻击还有其它形式,如将人脸照片进行一定程度的弯曲,包括向内弯曲和向外弯曲(见图5)。对于向内弯曲,由于各点深度比鼻尖点小,因此D 为负值,在各种权值分配下与真实人脸依然有很好的区分度。而向外弯曲时由于各点深度差均大于0,很接近于真实人脸情况,最有可能造成误判。这时要使D 尽量小,需要使两条分隔线附近点的权值大于两端距离较远的点的权值,例如在水平方向向外弯曲时应适当增大第9 和第10 号检测点权值,本文在此借助层次分析法进行主观赋权。

Fig.5 Curved face photos图5 弯曲人脸照片

应使分隔线附近点权重较大,但是权值不可能同时符合两个方向弯曲要求,因此需要分两种情况构造判断矩阵。本文给出水平方向向外弯曲情况下的判断矩阵,如表4 所示。

Table 4 Judgement matrix for the situation of horizontal outward bending表4 水平向外弯曲情况判断矩阵

然后按AHP 的基本步骤便可计算出相应的权向量并进行一致性检验,由此得到两种情况下的权值如表5 所示。

Table 5 Weights for the situation of horizontal and vertical outward bending表5 水平和竖直向外弯曲情况的权值

最后,按照分配的3 种权值分别计算总深度特征值D,并求出其中的最小值Dmin。若为假人脸,则至少在其中一种权值下的D 值较小,即Dmin值较小,而真人脸计算出的D值总是较大的,据此进行判别。根据实验测试数据可确定真实人脸和伪造人脸之间深度特征的阈值。当计算出的最小值大于阈值时,就判定为真实人脸,否则判定为伪造人脸。

3 活体人脸识别装置实现

3.1 基于树莓派的硬件设备

本装置硬件设备比较简单,主要由树莓派和双目摄像头模组组成,具有很好的便携性。其中,树莓派为装置的控制核心[22]。版本为3B+,采用ARM Cortex-A53 架构,包含4 个1.4GHz 的64-bit CPU,1G 内存。树莓派3B+搭载官方的基于Linux 的Raspbian 操作系统,同时支持Python、Ja⁃va、C、Perl 等多种编程语言,功能十分完善,计算能力也很可观,能够较好地支持所需功能。

摄像头采用集成的高清USB 双目摄像头模组。该摄像头模组支持UVC 免驱协议,在MJPEG 格式下分辨率及帧率最高可达1 920×1 080 和30fps,且与树莓派系统兼容,适用于软件开发。

3.2 基于树莓派的软件设计与实现

软件开发以Python 作为编程语言,其功能实现的测试流程如图6 所示。首先,需要对双目摄像头进行标定,以获得摄像头的内、外参数;再根据标定参数对采集到的图像进行立体校正,以消除畸变,使两个成像平面同行共面,减少立体匹配的计算量[23];然后调用半全局块匹配(Semi-Global Block Matching,SGBM)算法匹配左、右图像中的对应点[24],获得人脸图像的视差图,并计算出深度矩阵,即得到三维坐标。从左图中提取人脸特征点,使用人脸活体检测算法判别人脸真伪;调用基于Haar 特征的级联分类器及局部二值模式直方图(Local Binary Patterns Histograms,LB⁃PH)算法,分别实现人脸检测和人脸识别功能[25-26],最终将活体人脸识别结果上传至数据库。

Fig.6 Software testing process图6 软件测试流程

设计的主界面如图7 所示,其集合了“拍摄照片”“显示图片”“立体匹配”“人脸真假判别”和“人脸数据采集”等几个功能模块。其中,在视频窗口通过加入矩形采集框方式对人脸位置、距离加以限制,以提高测量的可靠性。

Fig.7 Software main interface图7 软件主界面

4 活体人脸识别实验

4.1 实验设计

考虑到数据的全面性和可靠性,实验采集不同姿态、佩戴与不佩戴眼镜的人脸图像200 对,正对摄像头、相对摄像头朝不同方向偏转以及不同弯曲方向和弯曲程度的伪造人脸图像每组各100 对。由于人脸识别系统一般要求人脸只能正对摄像头或小角度偏转,因而对于真实人脸并未采集大角度偏转图像。为避免环境因素影响,实验均在相同的室内环境中进行。实验分下午和晚上两组,在同一时间段采集真假人脸图像,且室内灯光亮度充足。实验图像为固定于同一位置的双目摄像头模组所拍摄,并采用树莓派3B+进行数据处理。

本文实验包括真假人脸深度信息对比实验和真假人脸判别实验两部分。首先对真实人脸和平面伪造人脸的深度信息进行对比,通过观察各特征点的深度特征,验证基于双目深度信息的活体检测方法可行性;然后对本文方法进行真假人脸的判别实验。在活体检测方法中需要确定一个合适的阈值,它直接影响到活体检测的准确率。实验将伪造人脸分为正对摄像头和相对摄像头成像面偏转的平面人脸,以及向内和向外的弯曲人脸4 种情况。考虑到只有向外的弯曲人脸所计算出的总深度特征值才有可能接近真实人脸,且弯曲程度越大越接近,因此需要先针对不同弯曲程度的向外弯曲人脸照片进行测试,以获得深度特征阈值,再根据该阈值对其它情况进行判别。

4.2 真假人脸深度信息对比实验

图8 和图9 分别为系统对真实人脸和平面假人脸照片的识别结果。从图中可以看到系统会生成视差图,检测出人脸区域及提取特征点,并给出活体检测与人脸识别的判断结果。

表6 为真假人脸各特征点与鼻尖点之间的平均深度差值。由表6 可知,真实人脸各特征点深度均大于鼻尖点深度,而平面假人脸各特征点深度都与鼻尖点接近,验证了真假人脸在深度信息上具有明显差别,初步证明本文方法可行。

Fig.8 Real face result display图8 真实人脸结果显示

Fig.9 Flat fake face result display图9 平面假人脸结果显示

Table 6 Depth information of feature points of real and fake face表6 真假人脸特征点深度信息

4.3 真假人脸判别实验

本实验首先对真实人脸和向外弯曲人脸照片进行测试,结果如表7 所示。其中,在实验时将人脸照片直接对折来表示弯曲情况,以对折后两边的夹角来区分不同的弯曲程度,夹角越小则弯曲程度越大,深度特征值Dmin也越大。

实验中发现,对于真实人脸,其Dmin值大小大部分在15~30 之间,只有个别在15 以下;对于向外弯曲的人脸照片,Dmin值除少数几个外基本不超过10。考虑到活体检测中排除伪造人脸的攻击更为重要,因此将阈值取15,较大的阈值能保证伪造人脸检测结果的准确性。而若是真实人脸被错误地判断为假人脸,仍可重新进行检测。从实验结果来看系统对真实人脸的判别仍具有较高的准确率。

此外,当弯曲人脸照片夹角小于90°时,因弯曲程度较大,检测模型无法提取出人脸特征点位置,此时深度特征值无法计算,因此在实验时直接判定为伪造人脸。

Table 7 Experimental results of real faces and outwardly curved face photos表7 真实人脸与向外弯曲人脸照片实验结果

然后以15 为阈值对伪造人脸的其它3 种情况进行测试,结果如表8 所示。其中,平面人脸的深度特征值接近于0;向内弯曲的人脸照片深度特征值为负值,这是因为选取点的深度值都小于鼻尖点的深度值。该结果表明真实人脸与另外3 种情况伪造人脸的深度特征差异显著,该方法能有效分辨出人脸真伪。

Table 8 Experimental results of three kinds of fake faces表8 三种伪造人脸实验结果

综上所述,活体人脸识别装置对各种情况下的人脸真伪判别准确率都很高。在适当牺牲真实人脸准确率的情况下,伪造人脸识别准确率在实验范围内可达到100%,而真实人脸的准确率也有98%,能够有效抵御各种假人脸照片和视频的攻击。由此可知,本文采用的人脸活体检测方法简单可行,具有较高的可靠性和较好的鲁棒性。

5 结语

考虑到人脸面部器官的三维凹凸性特征,本文提出基于双目视觉获取的三维信息对人脸特征位置进行深度计算,并结合AHP 主观赋权的活体检测简化算法思路;采用树莓派作为核心控制器,设计系统用户界面,完成功能移植和小型化装置搭建,实现人脸检测、人脸识别和活体检测功能。实验结果表明,该装置能够有效提取真假人脸的深度特征,对于伪造人脸的攻击有很好的判别能力,同时简单便携、硬件成本低、功耗小等特点使其具有很好的应用前景。

后续将对人脸特征点提取算法进行优化,减少在树莓派上人脸特征点检测时间,更高效准确地进行人脸识别。

猜你喜欢

活体人脸识别权值
一种融合时间权值和用户行为序列的电影推荐模型
人脸识别 等
张帆:肝穿刺活体组织学检查
CONTENTS
让活体肝移植研究走上世界前沿
活体器官移植,你怎么看?
揭开人脸识别的神秘面纱
基于权值动量的RBM加速学习算法研究
“汪星人”要打“飞的”——话说活体空运
基于类独立核稀疏表示的鲁棒人脸识别