“知物由学”是网易云易盾打造的一个品牌栏目,词语出自汉·王充《论衡·实知》。人,能力有高下之分,学习才知道事物的道理,而后才有智慧,不去求问就不会知道。“知物由学”希望通过一篇篇技术干货、趋势解读、人物思考和沉淀给你带来收获的同时,也希望打开你的眼界,成就不一样的你。当然,如果你有不错的认知或分享,也欢迎通过邮件(zhangyong02@corp.netease.com)投稿。

以下是正文:

本文作者:ArturBaćmaga,YND的AI专家。

想象一下,只需使用脸部即可解锁手机,无需指纹扫描或触摸。它会在没有任何用户干预的情况下自动且完美地工作。是的,目前已经可以做到了这一点,它被称为iPhone X,你可能已经在使用它了。

更好的未来是:使用人脸识别进行用户身份验证的潜力比这更大!在不远的将来,我们能够通过展示我们独特的面部特征来租一辆车,并签署法律文件。

实际上,我们已经开始看到需要身份验证的某些服务(如银行和其他类型的交易系统)。在这种情况下,所提供的法律数据将与文件上的ID和面部图像上的数据进行交叉检查,并与所有者的面部进行比较。但是,像大多数新技术一样,技术在创新,骗子也在创新。而欺骗人脸识别机制的最流行方式之一是“人脸欺骗”攻击。

欺骗攻击是指通过使用照片、视频或授权人脸部的其他替代品来获取其他人的特权或访问权。

一些欺骗攻击的例子:

  1. 打印攻击:攻击者将别人的照片打印或者显示在数字设备上。
  2. 重播/视频攻击:诱骗系统的更复杂的方式,通常需要一个受害者脸部的循环视频。与保持某人的照片相比,这种方法可以确保行为和面部运动看起来更自然。
  3. 3D掩码攻击:在这种类型的攻击中,掩码被用作欺骗的首选工具。这是一个比利用脸部视频更复杂的攻击。除了自然的面部运动之外,它还可以欺骗一些额外的保护层,例如深度传感器。

                                                      欺骗检测方法

欺骗的方法有很多种,对应的我们有许多不同的方法来应对它们的挑战。最流行的反欺骗最先进的解决方案包括:

  1. 面部生命力检测:一种基于分析测试面如何“活着”的机制。这通常通过检查眼球运动来完成,例如闪烁和脸部运动。
  2. 上下文信息技术:通过调查图像的周围环境,我们可以尝试检测扫描区域中是否有数字设备或照片纸。
  3. 纹理分析:在这里探测输入图像的小纹理部分,以便在欺骗和真实图像中查找图案。
  4. 用户互动:通过要求用户执行动作(将头部向左/向右转动,微笑,闪烁的眼睛),机器可以检测动作是否以与人类互动类似的自然方式进行。

当然,我们不能忽视房间里的大象(指某种巨大到不可能被忽视的真相,而事实上如此巨大的大象常常被集体忽略。)——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的人脸识别中的反欺骗机制的更多相关文章

  1. 【计算机视觉】基于OpenCV的人脸识别

    一点背景知识 OpenCV 是一个开源的计算机视觉和机器学习库.它包含成千上万优化过的算法,为各种计算机视觉应用提供了一个通用工具包.根据这个项目的关于页面,OpenCV 已被广泛运用在各种项目上,从 ...

  2. 基于 OpenCV 的人脸识别

    基于 OpenCV 的人脸识别 一点背景知识 OpenCV 是一个开源的计算机视觉和机器学习库.它包含成千上万优化过的算法,为各种计算机视觉应用提供了一个通用工具包.根据这个项目的关于页面,OpenC ...

  3. 基于node.js人脸识别之人脸对比

    基于node.js人脸识别之人脸对比 Node.js简介 Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境. Node.js 使用了一个事件驱动.非阻塞式 I/O ...

  4. (转载)人脸识别中Softmax-based Loss的演化史

    人脸识别中Softmax-based Loss的演化史  旷视科技 近期,人脸识别研究领域的主要进展之一集中在了 Softmax Loss 的改进之上:在本文中,旷视研究院(上海)(MEGVII Re ...

  5. 深度挖坑:从数据角度看人脸识别中Feature Normalization,Weight Normalization以及Triplet的作用

    深度挖坑:从数据角度看人脸识别中Feature Normalization,Weight Normalization以及Triplet的作用 周翼南 北京大学 工学硕士 373 人赞同了该文章 基于深 ...

  6. 浅谈人脸识别中的loss 损失函数

    浅谈人脸识别中的loss 损失函数 2019-04-17 17:57:33 liguiyuan112 阅读数 641更多 分类专栏: AI 人脸识别   版权声明:本文为博主原创文章,遵循CC 4.0 ...

  7. 基于MATLAB的人脸识别算法的研究

    基于MATLAB的人脸识别算法的研究 作者:lee神 现如今机器视觉越来越盛行,从智能交通系统的车辆识别,车牌识别到交通标牌的识别:从智能手机的人脸识别的性别识别:如今无人驾驶汽车更是应用了大量的机器 ...

  8. 基于 HTML5 的人脸识别技术

    基于 HTML5 的人脸识别技术 https://github.com/auduno/headtrackr/

  9. 机器学习:PCA(人脸识别中的应用——特征脸)

    一.思维理解 X:原始数据集: Wk:原始数据集 X 的前 K 个主成分: Xk:n 维的原始数据降维到 k 维后的数据集: 将原始数据集降维,就是将数据集中的每一个样本降维:X(i) . WkT = ...

随机推荐

  1. 警示:AL32UTF8字符集不是ZHS16GBK字符集的超集

    今天有一个客户向我咨询:数据库由ZHS16GBK字符集修改为AL32UTF8字符集,发现中文的数据中小部分出现乱码,客户认为AL32UTF8明明可以支持更多的文字,不应该出现这样的情况才对. 从现象看 ...

  2. 浅谈-RMQ

    浅谈RMQ Today,我get到了一个新算法,开心....RMQ. 今天主要说一下RMQ里的ST算法(Sparse Table). RMQ(Range Minimum/Maximum Query), ...

  3. Nginx出现500 Internal Server Error 错误的解决方案

    500(服务器内部错误) 服务器遇到错误,无法完成请求. 501(尚未实施) 服务器不具备完成请求的功能.例如,当服务器无法识别请求方法时,服务器可能会返回此代码. 502(错误网关) 服务器作为网关 ...

  4. echarts对每个data[i]的图片添加点击事件

    1.综述:以饼图为例,只需要对echarts对象option添加以下几行代码即可 //添加点击事件(单击),还有其他鼠标事件和键盘事件等等 myChart1.on("click", ...

  5. JavaWeb学习笔记五 会话技术Cookie&Session

    什么是会话技术? 例如网站的购物系统,用户将购买的商品信息存储到哪里?因为Http协议是无状态的,也就是说每个客户访问服务器端资源时,服务器并不知道该客户端是谁,所以需要会话技术识别客户端的状态.会话 ...

  6. 『练手』手写一个独立Json算法 JsonHelper

    背景: > 一直使用 Newtonsoft.Json.dll 也算挺稳定的. > 但这个框架也挺闹心的: > 1.影响编译失败:https://www.cnblogs.com/zih ...

  7. 201621123031 《Java程序设计》第5周学习总结

    作业05-继承.多态.抽象类与接口 1. 本周学习总结 1.1 写出你认为本周学习中比较重要的知识点关键词 关键字:接口.继承.多态 1.2 尝试使用思维导图将这些关键词组织起来.注:思维导图一般不需 ...

  8. 浅谈CPU三级缓存和缓存命中率

    CPU: CPU缓存(Cache Memory)是位于CPU与内存之间的临时存储器,它的容量比内存小的多但是交换速度却比内存要快得多.缓存的出现主要是 为了解决CPU运算速度与内存读写速度不匹配的矛盾 ...

  9. Hibernate之缓存

    Hibernate为了解决频繁查询数据的效率问题,提供了三种级别的缓存 1.一级缓存 一级缓存 又叫 session缓存 .Session对象会缓存处于持久化状态的每个对象 ,如果下次想用数据表中同一 ...

  10. 第二章 Idea搭建maven

    第二章 Idea搭建maven 1.配置Maven的环境变量 a.首先我们去maven官网下载Maven程序,解压到安装目录,如图所示: b.配置M2_HOME(MAVEN_HOME)的环境变量,然后 ...