知物由学 | 基于DNN的人脸识别中的反欺骗机制
“知物由学”是网易云易盾打造的一个品牌栏目,词语出自汉·王充《论衡·实知》。人,能力有高下之分,学习才知道事物的道理,而后才有智慧,不去求问就不会知道。“知物由学”希望通过一篇篇技术干货、趋势解读、人物思考和沉淀给你带来收获的同时,也希望打开你的眼界,成就不一样的你。当然,如果你有不错的认知或分享,也欢迎通过邮件(zhangyong02@corp.netease.com)投稿。
以下是正文:
本文作者:ArturBaćmaga,YND的AI专家。
想象一下,只需使用脸部即可解锁手机,无需指纹扫描或触摸。它会在没有任何用户干预的情况下自动且完美地工作。是的,目前已经可以做到了这一点,它被称为iPhone X,你可能已经在使用它了。
更好的未来是:使用人脸识别进行用户身份验证的潜力比这更大!在不远的将来,我们能够通过展示我们独特的面部特征来租一辆车,并签署法律文件。
实际上,我们已经开始看到需要身份验证的某些服务(如银行和其他类型的交易系统)。在这种情况下,所提供的法律数据将与文件上的ID和面部图像上的数据进行交叉检查,并与所有者的面部进行比较。但是,像大多数新技术一样,技术在创新,骗子也在创新。而欺骗人脸识别机制的最流行方式之一是“人脸欺骗”攻击。
欺骗攻击是指通过使用照片、视频或授权人脸部的其他替代品来获取其他人的特权或访问权。
一些欺骗攻击的例子:
- 打印攻击:攻击者将别人的照片打印或者显示在数字设备上。
- 重播/视频攻击:诱骗系统的更复杂的方式,通常需要一个受害者脸部的循环视频。与保持某人的照片相比,这种方法可以确保行为和面部运动看起来更自然。
- 3D掩码攻击:在这种类型的攻击中,掩码被用作欺骗的首选工具。这是一个比利用脸部视频更复杂的攻击。除了自然的面部运动之外,它还可以欺骗一些额外的保护层,例如深度传感器。
欺骗检测方法
欺骗的方法有很多种,对应的我们有许多不同的方法来应对它们的挑战。最流行的反欺骗最先进的解决方案包括:
- 面部生命力检测:一种基于分析测试面如何“活着”的机制。这通常通过检查眼球运动来完成,例如闪烁和脸部运动。
- 上下文信息技术:通过调查图像的周围环境,我们可以尝试检测扫描区域中是否有数字设备或照片纸。
- 纹理分析:在这里探测输入图像的小纹理部分,以便在欺骗和真实图像中查找图案。
- 用户互动:通过要求用户执行动作(将头部向左/向右转动,微笑,闪烁的眼睛),机器可以检测动作是否以与人类互动类似的自然方式进行。
当然,我们不能忽视房间里的大象(指某种巨大到不可能被忽视的真相,而事实上如此巨大的大象常常被集体忽略。)——iPhone X上的FaceID。在最新的硬件迭代中,Apple推出了先进的深度映射和3D感应技术,可以以前所未有的精度实现欺骗检测。但是,由于这种高端硬件在不久的将来将无法在大多数消费类设备上使用,所以我们不得不进化我们的技术以保证我们可以避免被欺骗。
事实上,在我们的研究和实施过程中,我们发现使用中等质量的2D相机也可以实现极高水平的实时欺骗检测。到底是什么让2D相机拥有如此高的检测水准?答案就是当下最火的深度学习解决方案和自定义的神经网络。
我们通过与现有的文档化方法进行交叉检查来验证我们的方法。
交叉检查1:图像质量评估
该解决方案基于将原始图像与用高斯滤波处理的图像进行比较。该论文的作者[1]证明了假图像之间的差异与真实图像之间的差异,并且可以自动检测。为了做到这一点,我们提取了14种流行的图像质量特征,例如:均方误差,平均差或边缘/角差。下一步是将它们发送给分类器,以确定它是“真实”的脸还是“假的”脸。

图1. IQA分类处理流程:将图像转换为灰度,使用高斯滤波器,从原始图像和滤波图像之间的差异中提取14个特征,将特征传递给分类器。
交叉检查2:图像失真分析
四种不同的特征(镜面反射、模糊、色度矩和色彩多样性)被发送分类器用于分类。分类器由多个模型构建而成,每个模型都训练出不同类型的欺骗攻击矢量。

图2. IDA分类过程流程:提取4个失真特征,将它们传递给一组分类器,将结果传递给负责欺骗/非欺骗决策的分类器
最终方法:深度神经网络模型
这是基于用CNN(卷积神经网络,这是图像分析中最流行的神经网络)建立的模型。裁剪后的人脸图像被传递到神经网络,然后通过神经层进行处理,以将其分类为真实/假的。

图3. DNN分类处理流程:将面部图像传递到CNN
训练系统
上述所有解决方案都包含了需要监督学习才能返回正确结果的模型。训练集是从站在摄像机前面的人们的图像构建的,或者拿着一个设备,并在其上显示他们的脸部。所有的面孔被裁剪并分成两组:真实的和假的。这些图像是由中等分辨率的800万像素相机拍摄的,这是一款在工业应用中使用的流行款式,三种方法都使用相同的训练集。

训练集示例
比较结果
对于性能测试,我们使用简单的精确度、召回率和F1分数。所有三个实验的结果显示在下表中:

准确性和性能总结

欺骗示例
下一步是什么?
所呈现的最先进的解决方案仅适用于2D重放/视频攻击。为了增加对更多类型攻击的抵抗能力,DNN模型还可以通过使用纸质打印的攻击示例扩展训练数据来调整。另外,3D欺骗尝试可以通过附加传感器来处理(例如深度)。
安全是一个不断变化的问题,因为一旦引入新的保护方法,攻击者就会不断发现新的方法来破坏系统,我们需要不断发明一些新的方法来对抗那些攻击者!
知物由学 | 基于DNN的人脸识别中的反欺骗机制的更多相关文章
- 【计算机视觉】基于OpenCV的人脸识别
一点背景知识 OpenCV 是一个开源的计算机视觉和机器学习库.它包含成千上万优化过的算法,为各种计算机视觉应用提供了一个通用工具包.根据这个项目的关于页面,OpenCV 已被广泛运用在各种项目上,从 ...
- 基于 OpenCV 的人脸识别
基于 OpenCV 的人脸识别 一点背景知识 OpenCV 是一个开源的计算机视觉和机器学习库.它包含成千上万优化过的算法,为各种计算机视觉应用提供了一个通用工具包.根据这个项目的关于页面,OpenC ...
- 基于node.js人脸识别之人脸对比
基于node.js人脸识别之人脸对比 Node.js简介 Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境. Node.js 使用了一个事件驱动.非阻塞式 I/O ...
- (转载)人脸识别中Softmax-based Loss的演化史
人脸识别中Softmax-based Loss的演化史 旷视科技 近期,人脸识别研究领域的主要进展之一集中在了 Softmax Loss 的改进之上:在本文中,旷视研究院(上海)(MEGVII Re ...
- 深度挖坑:从数据角度看人脸识别中Feature Normalization,Weight Normalization以及Triplet的作用
深度挖坑:从数据角度看人脸识别中Feature Normalization,Weight Normalization以及Triplet的作用 周翼南 北京大学 工学硕士 373 人赞同了该文章 基于深 ...
- 浅谈人脸识别中的loss 损失函数
浅谈人脸识别中的loss 损失函数 2019-04-17 17:57:33 liguiyuan112 阅读数 641更多 分类专栏: AI 人脸识别 版权声明:本文为博主原创文章,遵循CC 4.0 ...
- 基于MATLAB的人脸识别算法的研究
基于MATLAB的人脸识别算法的研究 作者:lee神 现如今机器视觉越来越盛行,从智能交通系统的车辆识别,车牌识别到交通标牌的识别:从智能手机的人脸识别的性别识别:如今无人驾驶汽车更是应用了大量的机器 ...
- 基于 HTML5 的人脸识别技术
基于 HTML5 的人脸识别技术 https://github.com/auduno/headtrackr/
- 机器学习:PCA(人脸识别中的应用——特征脸)
一.思维理解 X:原始数据集: Wk:原始数据集 X 的前 K 个主成分: Xk:n 维的原始数据降维到 k 维后的数据集: 将原始数据集降维,就是将数据集中的每一个样本降维:X(i) . WkT = ...
随机推荐
- spring boot高性能实现二维码扫码登录(下)——订阅与发布机制版
前言 基于之前两篇(<spring boot高性能实现二维码扫码登录(上)——单服务器版>和<spring boot高性能实现二维码扫码登录(中)——Redis版>)的基础, ...
- JS时间处理由CST格式转成GMT格式时间
问题描述:js接收java后台的时间数据时,时间格式的CST时间,而js默认的是GMT时间格式,js 需要对这个时间进行处理才能使用,具体处理方法如function dateToGMT(sDate){ ...
- mysql学习第一天
Mysql语句语法 一.数据库定义语句(DDL) 1.alter database 语法 alter database 用于更改数据库的全局特性,这些特性存储在数据库目录中的db.opt文件中.要使用 ...
- mysql gtid 主从复制
基于GTID环境搭建主从复制 1.环境 ----------------------------------------------------------| |mysql版本 | 5.7.14 | ...
- 四则运算题目生成(python版)
四则运算题目生成-基于控制台 项目托管在码云:飞机票 需求分析 根据控制台提示信息,输入题目生成相关配置参数 题目生成数量 数字范围 式子中是否有分数 .... 程序支持 10000 题目生成 题目与 ...
- DFA算法的简单说明!
1.DFA算法简介 DFA全称为:Deterministic Finite Automaton,即确定有穷自动机.其特征为:有一个有限状态集合和一些从一个状态通向另一个状态的边,每条边上标记有一个符号 ...
- Beta版本敏捷冲刺每日报告——Day4
1.情况简述 Beta阶段第四次Scrum Meeting 敏捷开发起止时间 2017.11.5 08:00 -- 2017.11.5 22:00 讨论时间地点 2017.11.5晚9:00,软工所实 ...
- 冲刺每日报告--Day1
敏捷冲刺每日报告--Day1 情况简介 由于李世钰同学出差了,周六才能回来.所以我们只能先写爬虫,封装代码提供接口等他回来调用. 任务进度 赵坤:编写了基本爬虫代码,目前能在国内有版权的B站.爱奇艺中 ...
- 第二周c语言PTA作业留
6-1 计算两数的和与差(10 分) 本题要求实现一个计算输入的两数的和与差的简单函数. 函数接口定义: void sum_diff( float op1, float op2, float psum ...
- Spring事务注意点
service中未带事务的方法调用了自身带事务的方法时,按下面写法数据是提交不了的. public String getMaxSystemVersionNo() { SystemVersion ver ...