基于人脸微表情识别的活体检测方法与流程

文档序号:16309608发布日期:2018-12-19 05:13阅读:1986来源:国知局
基于人脸微表情识别的活体检测方法与流程

本发明涉及人工智能人脸识别分析应用技术领域,涉及在人脸识别应用上属于数据安全验证技术,具体涉及一种基于人脸微表情识别的活体检测方法。

背景技术

人脸识别作为当前最流行的人工智能落地技术已经在许多领域广泛应用了。但是人脸识别带来便捷的同时,又出现了很多隐患。日常生活中人脸的肖像很容易泄露,如果人脸验证绑定的数据验证私密性较高,那就会造成用户有很大损失。所以如何预防人脸信息泄露,而造成的验证失效的问题就成为人脸识别技术中一个至关重要的难题。此技术在专业领域成为人体活检技术。目前在行业上普遍应用的实现手段主要分为两种,1,通过3d摄像头捕捉人脸距离摄像头技术除人脸本身信息外,再取出人脸轮廓凹凸曲线空间立体数据,从而判断当前的人不是一张照片,而是一个3d的物体。2.由于3d物体可以是一个模型例如蜡像等,于是现有技术就有第二种活体检测手段,目前在许多app上都有涉及,就是通过人做一些行为动作,例如眨眼,点头,左右看,等行为判断镜头前的人是否是一个真实的人,此技术主要是通过算法定位眼镜,鼻子,嘴角等人脸特征点,判断特征点在不同动作下变化,完成验证。不同的厂家对于现有的两种方式都有一定的补充和提升,本发明主要提出了一个不同于现有方式的验证技术。



技术实现要素:

本发明的目的主要在于克服现有技术的不足,提出一种基于人脸微表情识别的活体检测方法。在验证人是否是真人活体时,主要要求当前验证人在屏幕前跟着验证指引做几个指定的表情,摄像头捕捉当前验证人的几个表情并进行判断,如果符合计算机当前需要的表情,则认为是真人,如果不对则摄像头对面是假的人的概率很大,然后结合人脸特征识别判断当前的人脸是不是对应的正确的人脸,两方面结合完成人脸的验证和活体检测。但是仅用这两个技术无法保证不能作假,本发明在两大技术上又做了深入的改进,使得验证更加可靠,作假的难度更大。

本发明为解决背景技术中提出的技术问题,采用的技术方案是基于人脸微表情识别的活体检测方法,包括如下步骤:

1)计算机内预先通过神经网络训练一个n类表情,其中n>=4,包括但不限于高兴、愤怒、惊讶、郁闷;

2)登录验证时,计算机会提示使用者连续做m个表情,使用者需要跟随计算机连续做m个表情,其中m<=n;

3)计算机通过神经网络判断上述步骤2)中m个表情是否和所需要的表情一致;

4)在做表情的一段时间内,取k*m张图片,其中k>=2,判定k*m张人脸是否是同一个人;

5)在k*m张图中取出q个人脸,其中q>=1,取多次验证后的平均结果,验证人脸身份。

本发明具体包括如下步骤:

1)利用opencv接入本地或者网络摄像头;

2)用dlib框架人脸检测方法检测人脸是否出现在视频里,并将人脸区域裁剪存储得到人脸face1;

3)系统随机出一个表情,指引验证着做一个表情;

4)将人脸区域face1传入用caffe深度学习网络训练的模型中,识别出人脸表情label1,判断是否与需要的人脸表情一致:如果是,继续下一次验证;如果不一致,需要重新开始验证;

5)再次执行上述步骤2)和3),获得face2;

6)用dlib卷积网络人脸识别判断face1与face2相似度,如果相似度超过预定给定的阈值,则认为是一个人。

本发明具体包括如下步骤:

1)利用opencv_python接入本地或者网络摄像头;

2)利用python_dlib检测活人并裁剪;

3)将用户的微表情传入到tensorflow训练的网络中,得到tensorflow框架预测的表情结果;

4)验证一次表情成功后再次检测活人并裁剪;

5)用python_dlib卷积网络人脸识别判断两次结果是否为一个人。

本发明所述tensorflow主要应用部署在网络中。

本发明适用于本地验证和网络验证。

与现有技术相比,本发明的优势在于:

1、在一般的2d摄像头(例如笔记本,手机等)下,可以让人很快的实现验证,而防止作假的手段区别于主流的活检手段:确保一个人脸的专用特征唯一性。本发明主要目的是通过完成活体检测的验证,防范作假,提高难度,增高作假成本,使一些不法分子因作假难度增大而被迫放弃作假的意图。

2、本发明不需要3d摄像头,不需要人跟随镜头做动作,验证方式简单,速度快,可操作性强。

3、由于是随机从n个微表情中取出m个人脸则组合的种类为nm种,此种方式虽然没有验证此人脸是否是照片或者预先录好的视频,但是由于验证顺序是随机的,所以破解者无法预先组合好众多中照片组合。

4、而且在验证微表情的过程中不停的对比是否是一个人,且当是本人验证时,使用者不需要很多的变化,所以验证的时间间隔非常短,作假者很难在如此短的时间内准备。所以基于组合的复杂性和验证的时效性双重保证下,使得作假的难度非常之高,进而无法作假。

5、为进一步保证方案的有效性,提示人脸做微表情时,尽量不使用文字提示,而采用对应的其他人脸或者卡通,符号等让人很快反应的图像,让人去判断提示表情是什么,然后再去做表情,此验证虽然有一定的风险让使用者无法理解的和提示背后含义相同而验证失败的风险,但是在防止用超级计算机(假设超级计算机有足够的算力在采集的间隔之类完成图像转换)获得确定含义后用深度学习模型去转换固定人脸表情到对应表情而通过验证的可能。

附图说明

图1为表情演示图:(a)为厌恶表情,(b)为轻蔑表情;

图2为验证流程图。

具体实施方式

以下结合附图和实施例来对本发明做进一步的说明。本发明的实施例是为了更好地使本领域的技术人员更好地理解本发明,并不对本发明作任何的限制。

本发明基于人脸微表情识别的活体检测方法,包括如下步骤:首先,计算机内预先通过神经网络训练一个n类(>=4)能代表人类内情情感的微表情,包括但不限于高兴、愤怒、惊讶、郁闷(区别于没有确定含义的指令性表情张嘴,伸舌头,点头、眨眼等);然后,如图2所示,登录验证时,计算机会提示使用者连续做m个微情(m<=n),使用者需要跟随计算机连续做m个微情;如图1所示(a)为厌恶表情,(b)为轻蔑表情,首先验证第i个表情,如图1(a),接着验证第i+1个表情,如图1(b);

其次,计算机通过神经网络判断m个表情是否和所需要的表情一致;

再次,在做表情的一段时间内,取k*m张图片,k>=2,判定k*m张人脸是否是同一个人;

最后,在k*m张图中取出q个(q>=1)人脸,取多次验证后的平均结果,验证人脸身份。

实施例1:

1)利用opencv接入本地或者网络摄像头;

2)用dlib框架人脸检测方法检测人脸是否出现在视频里,并将人脸区域裁剪存储得到人脸face1;

3)系统随机出一个表情,指引验证着做一个表情;

4)将人脸区域face1传入用caffe深度学习网络训练的模型中,识别出人脸表情label1,判断是否与需要的人脸表情一致:如果是,继续下一次验证;如果不一致,需要重新开始验证;

5)再次执行上述步骤2)和3),获得face2;

6)用dlib卷积网络人脸识别判断face1与face2相似度,如果相似度超过预定给定的阈值,则认为是一个人。

实施例2:

用深度学习框架tensorflow训练表情识别。因为tensorflow是基于python语言开发的框架,所以为了兼容性,实现时其他的框架也得使用对应python接口的版本。

1)利用opencv_python接入本地或者网络摄像头;

2)利用python_dlib检测活人并裁剪;

3)将用户的微表情传入到tensorflow训练的网络中,得到tensorflow框架预测的表情结果;

4)验证一次表情成功后再次检测活人并裁剪;

5)用python_dlib卷积网络人脸识别判断两次结果是否为一个人。

此tensorflow主要应用部署在网络中,可以是云服务器也可以是局域网服务器。

实施例3:

torch主要是lua语言架构下的深度学习训练框架。

使用torch方法与tensorflow步骤类似,只是步骤3)中深度学习网络训练的模型为torch,而人脸检测,定位,识别算法只能使用torch本身的框架提供的算法进行重新定义并实现。torch在使用上和目前主流的现成的图像识别库opencvdlib兼容性较差,资料较少所以在使用torch框架时选用torch框架自身的接口,由于torch使用的人数相对caffe,tensorflow较少,在检测人脸的准确度和效率上都有一定差距。

显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定,对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动,这里无法对所有的实施方式予以穷举,凡是属于本发明的技术方案所引伸出的显而易见的变化或变动仍处于本发明的保护范围之列。

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