整理的人脸系列学习经验:包括人脸检测、人脸关键点检测、人脸优选、人脸对齐、人脸特征提取、人脸跟踪、人脸活体检测等学习过程总结,有需要的可以参考,仅供学习,请勿盗用。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-人脸活体检测-双目红外活体检测解读相关推荐

  1. 人脸方向学习(四):人脸关键点检测+Mobilenet_v3结构探索

    一.关键点训练问题 关键点网络思路:在寻找关键点新的网络过程中,尝试过训练SEnet网络结构,因为通道特征加权的思路比较好,但是训练效果较差,SEnet训练的关键点很难收敛:因为初始关键点模型采用的M ...

  2. 人脸方向学习(四):Face Recognition-SphereFace解读

    整理的人脸系列学习经验:包括人脸检测.人脸关键点检测.人脸优选.人脸对齐.人脸特征提取五个过程总结,有需要的可以参考,仅供学习,请勿盗用.https://blog.csdn.net/TheDayIn_ ...

  3. OpenCV与图像处理学习十四——SIFT特征(含代码)

    OpenCV与图像处理学习十四--SIFT特征(含代码) 一.SIFT算法 二.SIFT实现过程 三.代码实现 一.SIFT算法 SIFT, 即尺度不变特征变换算法(Scale-invariant f ...

  4. PyTorch框架学习十四——学习率调整策略

    PyTorch框架学习十四--学习率调整策略 一._LRScheduler类 二.六种常见的学习率调整策略 1.StepLR 2.MultiStepLR 3.ExponentialLR 4.Cosin ...

  5. C1认证学习十四、十五(算法常识、HTML Head 头)

    C1认证学习十四.十五(算法常识.HTML Head 头) 文章目录 C1认证学习十四.十五(算法常识.HTML Head 头) 十四(算法常识) 任务背景 任务目标 查找算法 1.顺序查找 2.二分 ...

  6. 『深度学习项目四』基于ResNet101人脸特征点检测

    相关文章: [深度学习项目一]全连接神经网络实现mnist数字识别 [深度学习项目二]卷积神经网络LeNet实现minst数字识别 [深度学习项目三]ResNet50多分类任务[十二生肖分类] 『深度 ...

  7. OpenCV学习笔记(五十四)——概述FaceRecognizer人脸识别类contrib

    在最新版的2.4.2中,文档的更新也是一大亮点,refrence manual扩充了200多页的内容,添加了contrib部分的文档.contrib就是指OpenCV中新添加的模块,但又不是很稳定,可 ...

  8. 人脸方向学习(十九):Face Landmark Detection-SBR-解读

    最近刷到CVPR和ICCV近两年来在关键点方面的论文,简单总结下,主要是想选一些在移动端能部署的网络结构.最近两年的关键点论文主要用一些主流的方法去做的,比如用教师模型去筛选检测之后的关键点(知识蒸馏 ...

  9. 人脸方向学习(十):Face Detection-MobileNet_SSD解读

    整理的人脸系列学习经验:包括人脸检测.人脸关键点检测.人脸优选.人脸对齐.人脸特征提取五个过程总结,有需要的可以参考,仅供学习,请勿盗用.https://blog.csdn.net/TheDayIn_ ...

最新文章

  1. Socket:UDP协议小白
  2. tcp报文格式_面试必备TCP(一):三次握手
  3. 医疗信息化、医学、医院管理、医疗器械资料下载
  4. Latex ! Missing $ inserted error 解决方法
  5. Android性能优化典范第二季
  6. Django 框架14: 缓存
  7. java水晶报表pull模式_水晶报表pull模式
  8. python 虚拟环境 django.db 报错_jumpserver一体化安装
  9. pytorch GPU分布式训练 数据并行
  10. php使用cookie实现记住用户名和密码实现代码
  11. 易语言Note:酷Q插件开发起航
  12. csv文件转为shp文件
  13. 靶机渗透练习57-digitalworld.local:JOY
  14. 上海交通大学python期末考试样题加解析_上海交通大学python期末考试样题加解析...
  15. JSP出租房管理系统myeclipse开发mysql数据库BS模式java编程网页结构详细设计
  16. kubernetes存储:local,openEBS,rook ceph
  17. Linux中动态探针kprobes
  18. 人生路漫漫,如何走下去
  19. 搞定支付接口(一) 支付宝即时到账支付接口详细流程和代码
  20. Pandas速查手册

热门文章

  1. ajax加载数据到页面无法打印的解决办法
  2. CodeWithMosh--mysql 学习笔记(4) -- 相关数据类型
  3. 深度学习---循环神经网络RNN详解(LSTM)
  4. android 控件监听方法是,Android | Android中监听Button的实现
  5. linux压缩比,Linux下各压缩方式测试(压缩率和使用时间)
  6. Eclipse下,修改MAVEN 中央仓库地址,解决maven下载慢问题
  7. HTML5 -canvas拖拽、移动 绘制图片可操作移动,拖动
  8. python模块安装
  9. 插入排序算法(insertion-sort)
  10. 【数据结构】二分查找代码模板