一种基于深度学习与视频放大技术的人脸活体判断方法与流程

文档序号:21547498发布日期:2020-07-17 17:58阅读:432来源:国知局
本发明涉及智能化检测技术,涵盖光机电算软领域,特别设计生物识别中的人脸活体检测技术。
背景技术
::自从苹果公司在北京时间2017年9月13日凌晨1点发布会第一次演示faceid面部解锁技术后,活体检测技术进入高速发展的时代,活体检测主要作用是用于区分真实人脸与虚假人脸。由于面部解锁技术是非接触式的,方便快捷,所以各个领域都相继上线了自己的面部解锁技术,在2019年10月份,媒体爆出国内丰巢快递公司的快递柜出现重大bug,丰巢快递柜上线了面部解锁快递的新功能,但调查人员发现使用打印照片就能骗过机器,取出快递。越来越多的电子设备也相继搭载了“刷脸”解锁技术,甚至主流的支付平台也上线了“刷脸”功能,由此可见,“刷脸”的安全性尤为重要。目前,国内外活体检测技术方案众多,涵盖动作配合式活体检测,离线3d结构光活体检测,离线近红外活体检测等。这些方法都具有各自的优缺点,配合式活体检测属于非静默检测,需要用户做出指定的动作,相对较为繁琐。技术实现要素:为了克服上述问题,本发明提出通过采集人脸视频与图像,分为真实人脸图像与虚假人脸图像,通过视频放大技术与深度学习训练模型识别两类图像之间的差异来进行活体判断。主要目标为搭载在需要进行活体检测人脸识别解锁安全设备。本发明技术方案为一种基于深度学习与视频放大技术的人脸活体判断方法,该方法包括:步骤1:训练样本的获取;采用高分辨率和低分辨率相机分别获取大量活体人脸的不同距离、不同光强、不同角度、不同遮挡情况的图片数据和视频数据,作为正样本数据;步骤2:将步骤1获取的数据采用显示器播放以及打印照片及海报的形式,同样的采用高分辨率和低分辨率相机分别拍摄显示图像,得到的图片数据和视频数据,作为负样本数据;步骤3:对所获取的正负样本数据进行预处理;步骤3-1:将正负样本的数据分类为视频数据与图像数据,排查视频数据是否每一帧都含有面部数据,是否每一张图像都含有面部数据,保留含有面部数据的视频与图像数据;步骤3-2:对于正样本数据中的视频数据进行一次备份,处理作为视频放大技术的预处理数据集;步骤3-3:对正样本数据中的视频数据画面中的非人脸的背景区域进行背景mask处理,消除背景,仅留下含有面部信息的画面;步骤3-4:对步骤3-1中处理后的数据进行videostable以及videoalign处理,实现人脸对齐以及算法消抖,videoalign处理使得画面的人脸在每一帧对齐并具有近似相同的大小,videostable处理消除因为环境因素以及其他人为因素对面部的抖动影响;步骤4:心率权重的计算;步骤4-1:对步骤3得数据采用faciallandmarks对数据中的面部信息实现人脸关键点标定;步骤4-2:并利用关键点以及opencvpolylines和fillpoly函数锁定面部血流量充足以及变化规律明显的额头矩形区以及两个人脸面部的三角区;一个三角区为鼻梁骨的根部为顶点,两口角的连线为底边的等腰三角形区域;另一个是以两眼角和下嘴唇底部为三个顶点的倒三角区域;步骤4-3:对步骤3获取的数据进行视频放大处理并对步骤4-2获得的三个区域分别测试心率,作为参照的初始心率记录数值x1、x2、x3,并利用标准的医学设备测量原数据对象的真实心率y作为标定;步骤4-4:对步骤4-3多次进行,获取批量的测试心率与标准心率,利用拟合曲线求出三块心率的权重a1、a2、a3;步骤5:对正负样本数据中另一部分作为深度学习的预处理数据集;对该部分数据中的视频数据每一帧存储为图像数据,采用训练好的的caffemodel以及opencv的haarcascade文件对图像数据进行批量处理获取每张图像人脸box,最终制作成tfrecord的voc格式数据文件;步骤6:采用步骤5得到的文件,对基于ssd_mobilenet的神经网络模型进行训练,直到训练成功;步骤7:使用视频放大技术实际检测时,获取待检测目标的视频数据,依次采用步骤3-3、步骤3-4、步骤4-1、步骤4-2、步骤4-3中的方法计算出待检测目标的三个区域的心率;步骤8:根据步骤4计算得到的权重值,计算出真实心率,将真实心率与设定的心率阈值进行对比,若不满足要求则认定为攻击人脸,否则进行步骤9;步骤9:采用步骤6训练好的基于ssd_mobilenet的神经网络模型对面部进行识别,判断是否为活体人脸。本发明采用视频数据判断面部的心率特征,采用心率特征和神经网络共同判断面部为真实面部还是攻击面部,判断过程中不需要测试者的互动,并且对攻击面部的识别精度高,难以被现有的攻击方式欺骗。附图说明图1为本发明视频放大技术检测流程。图2为本发明卷积神经网络流程。图3为本发明数据集制作流程。图4为本发明整体工作流程。具体实施方式为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施案例,对本发明做进一步详细说明,应当理解,此处所描述的具体实施案例仅用于解释本发明,但并不用于限定本发明。请参阅图1至图4,本发明是基于深度学习与视频放大技术的人脸活体检测系统,包括数据采集相机,搭载攻击面部的电子设备与非电子设备,电脑,安卓手机与一套安卓的人机交互ui,人机交互ui用于处理由手机摄像头采集到的人脸图像数据,通过对图像数据的分析判断当前所搜集面部数据的真假。所述数据采集模块包括采集对象10、相机滑带20、高分辨率相机30、低分辨率相机40、采集对象位置滑带50。采集10对象可以是人,也可以是面部攻击对象,如搭载攻击面部的电子设备:平板,电脑,手机。搭载攻击面部的非电子设备:海报,照片。采集对象10的位置可以在位置滑带50上滑动来调整与采集相机30,40的距离。采集相机30,40可以在相机滑带20上滑动来确定使用哪一台相机。一种基于深度学习与视频放大技术的人脸活体检测方法,包括如下步骤:步骤1-1:调整图1中的高分辨率相机30对采集对象10的不同人脸进行面部图像采集,在采集的过程中,缓慢移动采集对象10,使其在滑带50上不断滑动来采集到不同距离位置的图像,采集的人脸在采集过程中应不断调整采集面部对相机的夹角,并允许对面部有不同的遮挡,如戴帽子,墨镜,口罩等,采集的数据应具有不同距离,不同角度,不同人脸,不同光强,不同的面部遮挡。高分辨率相机30采集完成后,采用低分辨率相机40进行同样的步骤。步骤1-2:采集的数据搭载到电子设备上成为攻击面部,利用高分辨率相机30与低分辨率相机40进行采集,本次采集只需要调整光强,移动滑带50对距离的调整只需根据搭载不同攻击面部调至最适距离即可。采集攻击面部的数据,最后将总的采集数据作为待处理数据。步骤2-1:进行正式数据处理之前需要对所获取的正负样本数据进行预处理;步骤2-2:首先将对正负样本的数据分别类为视频数据与图像数据,排查视频数据是否每一帧都含有面部数据,是否每一张图像都含有面部数据,保留符合要求的数据;步骤2-3:对于正样本数据中的视频格式数据集进行一次备份,处理作为视频放大技术的预处理数据集;步骤2-4:首先对该部分视频数据集画面中的非人脸的背消除,仅留下含有面部信息画面;步骤2-5:对步骤2-4中处理后的数据进行处理,实现人脸对齐以及算法消抖步骤2-6:通过以上的步骤,现已获取满足实现视频放大技术的数据,我们对数据中的面部信息实现人脸关键点标定;步骤2-7:并利用关键点锁定面部血流量充足以及变化规律明显的额头矩形区以及两个人脸面部的三角区;步骤2-8:对步骤上述获取的数据进行视频放大处理并对步骤2-7获得的三个区域分别测试心率,作为参照的初始心率记录数值x1、x2、x3,并利用标准的医学设备测量原数据对象的真实心率y作为标定;步骤2-9:对步骤4-3多次进行,获取批量的测试心率与标准心率,求出每一区域心率权重;步骤2-10:使用视频放大技术实际检测时,获取待检测目标的视频数据,然后采用步骤2-4与步骤2-5的方法对视频数据进行处理;步骤2-11:获取步骤2-9的权重值,并利用权重值计算出经视频放大后的面部数据的心率,将此心率的值与人体心率阈值进行对比,确定所测试人脸是否为活体;步骤3-1:对于非静态的攻击面部,我们使用深度学习进行处理,将采集的待处理数据利用训练有素的caffemodel以及opencv所提供的haarcascade文件对数据进行批量处理获取人脸box并最终制作成tfrecord的voc数据文件格式,并最终将数据分为三部分,训练集,验证集,测试集。步骤3-2:利用基于ssd_mobilenet的神经网络模型对输入的数据进行训练,直到loss下降到一直处于1以下,并对检测目标阈值设定为0.6,并评估模型在测试集测试正确率达到97%后停止训练,确立模型。步骤4:将步骤3-2所得到的模型利用tensorflow的toco工具转化为安卓支持模型,搭载使用。编写人机交互界面实时显示识别情况。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1