人脸方向学习(十四):Face Anti-Spoofing-人脸活体检测-双目红外活体检测解读
整理的人脸系列学习经验:包括人脸检测、人脸关键点检测、人脸优选、人脸对齐、人脸特征提取、人脸跟踪、人脸活体检测等学习过程总结,有需要的可以参考,仅供学习,请勿盗用。https://blog.csdn.net/TheDayIn_CSDN/article/details/93199307
思路
双目红外活体检测
一、活体检测简介
活体检测:判断捕捉到的人脸是真实人脸,还是伪造的人脸攻击(彩色纸张打印人脸图,电子设备屏幕中人脸数字图像及面具)应用场景:金融支付门禁等应用场景,活体检测一般是嵌套在人脸检测与人脸识别or验证中的模块,用来验证是否用户真实本人分类问题:就是分类问题,可看成二分类(真 or 假);也可看成多分类(真人,纸张攻击,屏幕攻击,面具攻击)
二、攻击手段、检测方式
照片攻击与动作活体
最简单的攻击方式相信大家都能想到,用照片呗。现在大家都喜欢玩社交媒体,经常往朋友圈和微博上传照片,搞到一张别人的照片简直轻而易举。所以,照片自然是活体检测首要的防范对象咯。对付照片的方式,大家也很容易想到。照片总是死的,不能做出眨眼张嘴转头这些动作。那好,在活体检测这一关,我就给你下达几个动作的指令,让你做动作给我看,这就是交互式动作活体检测。
升级版照片攻击
有了动作活体这个东西,用静止照片来攻击就不行了。于是攻击者一拍脑袋,就想出了经过“改进”的攻击方式。他先是把另外一个人的照片打印出来,跟真人一般大小,还挺清晰的,反正花不了几个钱。你不是要让我眨眼张嘴吗?照片本身不会眨眼张嘴,可是我本人会啊。于是他就把照片在眼睛和嘴巴那块抠个洞,然后把照片贴在脸上,他自己的眼睛和嘴巴就露出来了。你让他眨眼,他就眨眼,让他张嘴,他就张嘴。对此,我们只能说,too naive too simple,因为抠眼和抠嘴后的造作痕迹实在太明显了,对我们的抠眼抠嘴检测算法形成不了太大的威胁。最后说下转头,攻击者往往把照片贴在自己脸上,或者在那揉来揉去,想模拟出真实的转头效果。可是,他们不知道,这种伪造的转头动作,人脸上各部位的运动情况实在与真人相去甚远,很容易被我们的转头检测算法识别出来。
视频回放攻击
到这里,攻击者还是不肯作罢,又心生一计:不就是几个动作吗?我把那人的动作录成视频,再拿来播放不就得了。其实啊,到这里我们可以明显看到,攻击难度已经上升一个级别了。为什么呢?你要搞到另外一个人的视频,还得包含很规矩的这几个动作,本身就不那么容易。可是我们不能存有侥幸心理啊。没关系,办法总是有的。你把视频搞来了,总得找个有屏幕的东西播放啊。这样一来,就漏马脚了。你只要仔细看看用屏幕播放视频,然后再经过摄像头成像的画面,再看看真人在摄像头面前成像的画面,就会发现,二者其实很不一样啊。用普通PC屏幕播放的效果就不说了,一堆纹路,我们称之为摩尔纹。用pad或者手机的高清屏播放的效果好一些,可是也有很多不一样,比如反光、倒影,最关键是画面质量总是模糊一些,失真度明显高一些。所以呢,我们根据这些线索搞了对应的算法,把视频攻击也能防得很好。回过头来说说央视315晚会上演示的合成人脸,要靠这种方式攻击人脸识别系统,也只能用屏幕来播放,只是把合成的视频拿出来展示一下,就说容易攻破,实在有违实事求是的精神。
立体面具攻击
照片和视频回放攻击都是把人脸图像投射到一个平面上,还一种攻击方式就是做一个和真人比较相似的立体面具。到这里,攻击难度又上升了一个级别。面具有很多种,最普通的是塑料或者硬纸做成的面具,这种面具虽然成本低廉,但材质相似度极低,用普通纹理特征就可以识别出来。另外,还有用硅胶、乳胶以及3D打印的的立体面具,这类面具的表观和皮肤更加接近,但它们的材料表面反射率和真实人脸还是不同的,因此在成像上仍然有差别,这种差别是可以用最先进的机器学习算法学习到,很难达到以假乱真的程度。
静默活体
动作活体检测的方式具有很高的安全性,但另一方面,对用户来说,由于要配合着做几个动作,因此体验不是非常好。为此,我们又发明了一种新的活体检测方式,不需要用户做任何动作,只需要自然正对摄像头三四秒钟,就可以完成检测了。也许你会问,如果不做动作,岂不是拿张普通照片就可以攻破了?非也。虽然没有刻意做动作,但真实的人脸并不是绝对静止的,总有一些微表情存在,比如眼皮和眼球的律动、眨眼、嘴唇及其周边面颊的伸缩等,利用这些特征,我们完全可以防住照片攻击。至于视频回放攻击和立体面具攻击,防范的原理和之前介绍的一样。
红外活体
其实啊,上面这些还不是最厉害的。在有些应用场景,比如ATM机上,我们可以安装红外摄像头,利用红外图片,我们可以实现更好的防攻效果。我们知道,不管是可见光还是红外光,其本本质都是电磁波。我们最终看到的图像长什么样,与材质表面的反射特性有关。真实的人脸和纸片、屏幕、立体面具等攻击媒介的反射特性都是不同的,所以成像也不同,而这种差异在红外波反射方面会更加明显,比如说,一块屏幕在红外成像的画面里,就只有白花花的一片,连人脸都没了,攻击完全不可能得逞。
三、相关资源
CVPR 2019 活体检测比赛
https://github.com/SeuTao/CVPR19-Face-Anti-spoofing
https://github.com/SoftwareGift/FeatheNets_Face-Anti-spoofing-Attack-Detection-Challenge-CVPR2019
https://www.pyimagesearch.com/2019/03/11/liveness-detection-with-opencv/
活体检测数据:
人脸识别中的活体检测算法综述:https://blog.csdn.net/SIGAI_CSDN/article/details/82772813
人脸方向学习(十四):Face Anti-Spoofing-人脸活体检测-双目红外活体检测解读相关推荐
- 人脸方向学习(四):人脸关键点检测+Mobilenet_v3结构探索
一.关键点训练问题 关键点网络思路:在寻找关键点新的网络过程中,尝试过训练SEnet网络结构,因为通道特征加权的思路比较好,但是训练效果较差,SEnet训练的关键点很难收敛:因为初始关键点模型采用的M ...
- 人脸方向学习(四):Face Recognition-SphereFace解读
整理的人脸系列学习经验:包括人脸检测.人脸关键点检测.人脸优选.人脸对齐.人脸特征提取五个过程总结,有需要的可以参考,仅供学习,请勿盗用.https://blog.csdn.net/TheDayIn_ ...
- OpenCV与图像处理学习十四——SIFT特征(含代码)
OpenCV与图像处理学习十四--SIFT特征(含代码) 一.SIFT算法 二.SIFT实现过程 三.代码实现 一.SIFT算法 SIFT, 即尺度不变特征变换算法(Scale-invariant f ...
- PyTorch框架学习十四——学习率调整策略
PyTorch框架学习十四--学习率调整策略 一._LRScheduler类 二.六种常见的学习率调整策略 1.StepLR 2.MultiStepLR 3.ExponentialLR 4.Cosin ...
- C1认证学习十四、十五(算法常识、HTML Head 头)
C1认证学习十四.十五(算法常识.HTML Head 头) 文章目录 C1认证学习十四.十五(算法常识.HTML Head 头) 十四(算法常识) 任务背景 任务目标 查找算法 1.顺序查找 2.二分 ...
- 『深度学习项目四』基于ResNet101人脸特征点检测
相关文章: [深度学习项目一]全连接神经网络实现mnist数字识别 [深度学习项目二]卷积神经网络LeNet实现minst数字识别 [深度学习项目三]ResNet50多分类任务[十二生肖分类] 『深度 ...
- OpenCV学习笔记(五十四)——概述FaceRecognizer人脸识别类contrib
在最新版的2.4.2中,文档的更新也是一大亮点,refrence manual扩充了200多页的内容,添加了contrib部分的文档.contrib就是指OpenCV中新添加的模块,但又不是很稳定,可 ...
- 人脸方向学习(十九):Face Landmark Detection-SBR-解读
最近刷到CVPR和ICCV近两年来在关键点方面的论文,简单总结下,主要是想选一些在移动端能部署的网络结构.最近两年的关键点论文主要用一些主流的方法去做的,比如用教师模型去筛选检测之后的关键点(知识蒸馏 ...
- 人脸方向学习(十):Face Detection-MobileNet_SSD解读
整理的人脸系列学习经验:包括人脸检测.人脸关键点检测.人脸优选.人脸对齐.人脸特征提取五个过程总结,有需要的可以参考,仅供学习,请勿盗用.https://blog.csdn.net/TheDayIn_ ...
最新文章
- Socket:UDP协议小白
- tcp报文格式_面试必备TCP(一):三次握手
- 医疗信息化、医学、医院管理、医疗器械资料下载
- Latex ! Missing $ inserted error 解决方法
- Android性能优化典范第二季
- Django 框架14: 缓存
- java水晶报表pull模式_水晶报表pull模式
- python 虚拟环境 django.db 报错_jumpserver一体化安装
- pytorch GPU分布式训练 数据并行
- php使用cookie实现记住用户名和密码实现代码
- 易语言Note:酷Q插件开发起航
- csv文件转为shp文件
- 靶机渗透练习57-digitalworld.local:JOY
- 上海交通大学python期末考试样题加解析_上海交通大学python期末考试样题加解析...
- JSP出租房管理系统myeclipse开发mysql数据库BS模式java编程网页结构详细设计
- kubernetes存储:local,openEBS,rook ceph
- Linux中动态探针kprobes
- 人生路漫漫,如何走下去
- 搞定支付接口(一) 支付宝即时到账支付接口详细流程和代码
- Pandas速查手册
热门文章
- ajax加载数据到页面无法打印的解决办法
- CodeWithMosh--mysql 学习笔记(4) -- 相关数据类型
- 深度学习---循环神经网络RNN详解(LSTM)
- android 控件监听方法是,Android | Android中监听Button的实现
- linux压缩比,Linux下各压缩方式测试(压缩率和使用时间)
- Eclipse下,修改MAVEN 中央仓库地址,解决maven下载慢问题
- HTML5 -canvas拖拽、移动 绘制图片可操作移动,拖动
- python模块安装
- 插入排序算法(insertion-sort)
- 【数据结构】二分查找代码模板