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

    设计模式(Design pattern)是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结.使用设计模式是为了可重用代码.让代码更容易被他人理解.保证代码可靠性. 毫无疑问,设计模式于 ...

  2. codeforce round#466(div.2) B. Our Tanya is Crying Out Loud

    B. Our Tanya is Crying Out Loud time limit per test1 second memory limit per test256 megabytes input ...

  3. SSH相关知识

    SSH(Secure Shell, 安全Shell协议)是一种加密的网络传输协议,经常用于安全的远程登录. SSH只是一种协议,可以有多种实现. OPENSSH是一种应用广泛的实现. sshd是dae ...

  4. 【Java】0X001.配置开发环境,JDK、classpath等

    [Java]0x01 配置开发环境,JDK.CLASSPATH等 一. 下载JDK安装文件 首先,进入Oracle官网Java页面. 注意,要下载的是JDK而不是JRE,这点很重要,因为JRE并不包含 ...

  5. PTA常见错误

    1.最常犯的错误. 格式错误 在PTA程序检测中,输入输出要严格按照题目要求.输出的格式要完全按照题目要求来,该空格地方空格,该换行要换行.否则,就算你运行结果是对的,PTA还是提示你格式错误 比如下 ...

  6. C语言函数嵌套调用作业

    一.实验作业 1.1 PTA题目:6-4 十进制转换二进制 设计思路 如果n大于1 对n/2继续进行该函数运算 输出n%2的值 代码截图 调试问题 我第一次做的时候判断的边界条件是大于0继续进行运算, ...

  7. C语言第九次作业

    一.PTA实验作业 题目1:统计大于等于平均分人数 1. 本题PTA提交列表 2.设计思路 float i为循环变量,sum=0,count=0来表示所求人数 float *p=s来储存首地址 for ...

  8. 学号:201621123032 《Java程序设计》第14周学习总结

    1:本周学习总结 2:使用数据库技术改造你的系统 2.1:简述如何使用数据库技术改造你的系统.要建立什么表?截图你的表设计. 建立一个图书馆的表 建立读者用户个人的借书信息表---但是目前没有办法做到 ...

  9. MySQL 自关联查询

    定义表areas,结构如下 id atitle pid 因为省没有所属的省份,所以可以填写为null 城市所属的省份pid,填写省所对应的编号id 这就是自关联,表中的某一列,关联了这个表中的另外一列 ...

  10. django搭建web (三) admin.py -- 待续

    demo 关于模型myQuestion,myAnswer将在后述博客提及 # -*- coding: utf-8 -*- from __future__ import unicode_literals ...