一种基于改进的光流法的活体检测方法及系统与流程

文档序号:17725797发布日期:2019-05-22 02:30阅读:1198来源:国知局
一种基于改进的光流法的活体检测方法及系统与流程

本发明涉及活体检测技术领域,具体地说是一种基于改进的光流法的活体检测方法及系统。



背景技术:

目前针对人脸识别中活体检测的方案有以下几种方式,1、让用户根据提示进行眨眼、摇头或者让用户读一段语音的方式进行检测。2、根据光流法,利用图像序列中的像素强度数据的时域变化和相关性来确定各自像素位置的“运动”,然后利用svm等方法进行检测。3、利用3d技术进行活体检测。

利用第一种方法进行活体检测,需要用户根据提示进行配合,拒识别率比较高,例如,用户在按照提示做动作的时候反应慢了,就会错过系统提示的动作,或者动作的幅度比较小时,系统也无法检测出用户的动作。第二种,大部分的活体检测用到的光流法是基于单个像素的方向信息来进行活体检测。这种方式能够避免,整个照片的上下和左右方向等比较单一的运动,对于照片针对摄像头前后和旋转的等攻击的识别率比较低。并且利用svm进行是否是活体检测分类,需要人为的照片的特征值信息,对于图像信息的利用率不充分。第三种方式采用3d的活体检测方法,需要有专门的硬件设备支持,当时当前大量的摄像头设备是不支持3d的成像方式,普及性不高,只能在特定的应用领域内进行应用。

同时,现有技术中对图像中的人脸识别往往采用归一化进行图片处理,此种方式带来的计算误差较大。



技术实现要素:

为了解决上述问题,本发明实施例中提供了一种基于改进的光流法的活体检测方法及系统。

本发明第一方面提供了一种基于改进的光流法的活体检测方法,该方法包括:

对图像中的人脸区域进行识别;

采用改进的光流法对人脸区域的光流进行计算,生成特征矩阵;

利用mobilenetv2模型提取矩阵的特征信息,通过深度学习判断是否是活体。

结合第一方面,在第一方面第一种可能的实现方式中,采用改进的光流法对人脸区域的光流进行计算包括:

计算整张图像的光流场,截取人脸区域的光流场;

计算每个像素的光流大小和方向,做方差统计,生成大小和方向的两个矩阵。

结合第一方面,在第一方面第二种可能的实现方式中,在计算人脸区域的光流之前还可对图片进行缩小至特定尺寸。

结合第一方面,在第一方面第三种可能的实现方式中,计算每个像素的光流大小和方向,做方差统计,生成大小和方向的两个矩阵具体包括:

建立坐标系,以水平向右的方向为x的正方向,垂直向下的为y的正方向;

将该像素运动方向上的每个像素分别与该像素做差值计算,进行方差统计;

结合每个像素点的运动速度生成大小和方向两个w*h特征矩阵,w为人脸区域的宽度,h为人脸区域的高度。

本发明第二方面提供了一种基于改进的光流法的活体检测系统,利用所述的方法,该系统包括图像识别模块,用于识别图像中的人脸区域;

光流计算模块,用于计算人脸区域的光流;

方差统计模块,根据人脸区域的每个像素的光流大小和方向,做方差统计,生成大小和方向的两个矩阵;

活体判断模块,利用mobilenetv2模型,提取矩阵的特征信息,通过深度学习判断是否是活体。

本发明第二方面的所述系统能够实现第一方面及第一方面的各实现方式中的方法,并取得相同的效果。

由以上技术方案可见,本发明提出了一种新的活体检测方案,相对于传统的用户配合的方案,通过改进的光流法提高了人脸区域的识别的精度,解决了普通的光流法检测中的照片旋转和前后运动的攻击方式。

本发明实施例还改进了对图像的人脸区域进行识别,减小了计算误差,加快了计算速度。

本发明实施例将mobilenetv2模型应用到活体检测场景中,提高了模型的识别精度,同时也保证了运行的效率。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为一种基于改进的光流法的活体检测方法流程示意图;

图2为本发明实施例所应用的一种基于改进的光流法的活体检测结构示意图。

具体实施方式

为了使本技术领域的人员更好地理解本发明中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。

如图1所示,一种基于改进的光流法的活体检测方法,该方法可以包括以下步骤:

s1、利用mtcnn算法对图像中的人脸区域进行识别;

s2、对图片进行缩小至320*240的图像尺寸;

s3、采用改进的光流法对人脸区域的光流进行计算;

s4、利用mobilenetv2模型提取矩阵的特征信息,通过深度学习判断是否是活体。

s1中利用mtcnn算法对图像中的人脸区域进行识别由三个阶段组成:

第一阶段,浅层的cnn快速产生候选窗体;采用全卷积神经网络,即p-net,去获得候选窗体和边界回归向量。同时,候选窗体根据边界框进行校准。然后,利用nms方法去除重叠窗体。

第二阶段,通过更复杂的cnn精炼候选窗体,丢弃大量的重叠窗体;r-net,将经过p-net确定的包含候选窗体的图片在r-net网络中训练,网络最后选用全连接的方式进行训练。利用边界框向量微调候选窗体,再利用nms去除重叠窗体。

第三阶段,使用更加强大的cnn,实现候选窗体去留,同时显示五个面部关键点定位。o-net,网络结构比r-net多一层卷积,功能与r-net作用一样,只是在去除重叠候选窗口的同时,显示五个人脸关键点定位。

确定人脸的区域后,需要针对人脸区域进行光流的计算,计算光流时使用了opencv中的库函数。计算时输入两帧具有相同尺寸的图像,输出结果是与图像尺寸完全相同的光流帧。算法要求输入的两帧图像的尺寸完全相同。而人脸区域的尺寸是时刻变化的,所以不能直接计算,现有技术是需要先归一化到同一尺寸,但这样会带来较大的计算误差。本发明为了提高计算精度,注意到从摄像头中读取的原始图像尺寸是恒定的,采用间接的方式获取脸部区域的光流,即先计算整张图像的光流场,然后从中截取人脸区域的光流。为加快计算速度,计算光流前先将图片缩小,实际实验表明320*240的图像尺寸是合适的。

s3中,采用改进的光流法对人脸区域的光流进行计算包括:

s31、计算整张图像的光流场,截取人脸区域的光流场;

s32、计算每个像素的光流大小和方向,做方差统计,生成大小和方向的两个矩阵。

s32具体包括:

s321、建立坐标系,以水平向右的方向为x的正方向,垂直向下的方向为y的正方向;

s322、将该像素运动方向上的每个像素分别与该像素做差值计算,进行方差统计;

s323、结合每个像素点的运动速度生成大小和方向两个w*h特征矩阵,w为人脸区域的宽度,h为人脸区域的高度。

传统的光流活体检测只计算每个像素的运动方向,没有计算像素之间方向的差异性特征,本发明提出一种改进的光流法,将每个像素在光流运动方向上的像素点的运动方向,与当前像素的运动方向做差值计算,并统计其方差信息。例如:像素的运动方向的范围从0-360度,对应的方向值从也是0-360度(以图像中常见的坐标系为准,水平向右的方向为x的正方向,垂直向下的为y的正方向),两个像素之间的方向差,就是将两个像素的运动方向值做差值,依次类推,将该像素运动方向上的每个像素分别与该像素做差值,最终做方差统计。

s4中活体的判断标准是有深度学习的模型自己进行学习的,将训练的数据(已经提前标注了哪些样本是活体,哪些样本是非活体)输入到深度学习的网络中,深度学习的网络会根据已经标注好的样本信息,参照样本信息,从特征矩阵中提取出相应的特征来进行区分活体和非活体。

如图2所示,一种基于改进的光流法的活体检测系统,系统包括图像识别模块,用于识别图像中的人脸区域;光流计算模块,用于计算人脸区域的光流;方差统计模块,根据人脸区域的每个像素的光流大小和方向,做方差统计,生成大小和方向的两个矩阵;活体判断模块,利用mobilenetv2模型,提取矩阵的特征信息,通过深度学习判断是否是活体。

以上所述仅是本发明的具体实施方式,使本领域技术人员能够理解或实现本发明。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1