Face Anti-Spoofing Using Patch and Depth-based CNNs

这篇文章是人脸防伪领域比较容易理解,适合入手的一篇,主要运用到了两个CNN网络,根据输入图像的细节特征以及深度图特征来进行判别。

一、 论文概述

由于直接基于RGB纹理分类的方法非常容易过拟合,而像屏幕中的人脸一般是平的,估计不出深度信息,所以patch and depth-based CNNs方法将深度信息和RGB特征进行融合。

文章引用量:50+

推荐指数:✦✦✦✧✧

[2] Atoum Y, Liu Y, Jourabloo A, et al. Face anti-spoofing using patch and depth-based CNNs[C]//2017 IEEE International Joint Conference on Biometrics (IJCB). IEEE, 2017: 319-328.

  • 文章创新点:提出了一个双通道的CNN网络用于人脸防伪;
  • 运用到的两个网络:

(1)卷积神经网络(CNN),输入是固定尺寸的局部图片,输出是一个分类score,网络部分对输入的局部特征进行深层提取,并根据输出的分类score判断这种局部特征是属于spoof or live。

(2)全卷积网络(FCN),输入是整张人脸图像,尺寸不固定,经过多层卷积网络的特征提取以及SVM得到分类结果是spoof or live。

(3)将两个网络得到的结果通过某种方式进行融合,得到最终输出。

  • 采用的数据集:CASIA-FASD / MSU-USSA / Replay Attack

二、 论文涉及的两个网络(配合图解说明)

【图1】 双流网络的可视化结果

(1)左边是Patch-Based CNN的可视化结果,黄色部分表示该局部属于活体的可能性更大,蓝色部分表示该局部属于伪人脸的可能性更大。

采用patch-based CNN 网络的优点:

  • 增加CNN网络的训练样本数;
  • 输入到训练网络的图片需要被归一化到统一尺寸,如果输入整幅图像可能会造成信息失真,但是输入局部图像不会,因为局部大小是固定的;
  • 有利于发现更细节的伪信息。

(2)右边是Depth-Based CNN的可视化结果,黄色部分表示离镜头较近,蓝色部分表示离镜头较远。

(3)在实验测试的网络中,这两个CNN网络都会给出一个分类score,通过某种方式融合得到最终的输出。

【图2】 网络模型基本框架

可以见得,这两个网络都是end-to-end training (输入原图像,得到分类score)

(1)在patch-based CNN中会取到多个局部区域作为训练数据,每一个patch对应一个score,取所有score的平均值。

(2)在Depth-Based CNN中由于采用的是全卷积神经网络,因此结果是细化到对像素点的分类,将数据归一化到(0,1)可以看作是基于深度图给出的分类结果。

【图3】 两个神经网络层

(1)左图是经典的CNN网络结构,5层卷积层+3层全连接层。

  • BN(正则化)

正则化一般是在原有的损失函数之上再加上一个约束,避免过拟合发生。将数据点本身的因素考虑进去,一般是通过L1范数或者L2范数实现。

  • ReLU

线性修正单元(ReLU)是激活函数的一种,它能够使得部分量被置0,增强数据的稀疏性。

  • Drop out

其基本思想是以概率p使得某些神经元停止工作,使其激活值变为0,这样可以提高网络的泛化性能,让一个神经元的出现不再依赖于另外一个神经元。

(2)右图是在CNN网络的基础上发展得到的全卷积网络(FCN),即将CNN中的全连接层换成了卷积层。

其特点在于输出的特征大小于原图像大小相同,相当于是对原图像的每一个像素进行了分类。


有关FCN的深刻理解参考
https://blog.csdn.net/sinat_24143931/article/details/78696442?locationNum=4&fps=1

由于池化过程会降低特征图的维度,因此也会丢失一些空间信息,反卷积扩大了特征图尺寸,先后进行卷积和反卷积可以理解为:在保留空间信息的同时提取图像的特征信息,对每个像素点进行分类的结果可以归一化到(0,1),由此可以代替深度信息图。

【图4】 测试结果图

上图显示的是基于CASIA-FASD数据集的不同类型的图像数据通过Depth-Based CNN网络后的输出结果对比。从左到右一次是:live images / print attacks / cut print attacks / video attacks。

实验结果明确的显示了本文提出的网络可以有效的对真伪人脸作分类。

三、 补充知识

本文尝试了用多种图像特征作为输入,除了传统的三通道RGB图像之外,还包括HSV / YCbCr / LBP算子

  • HSV

H表示色彩信息,S表示纯度,V表示色彩明亮程度

  • YCbCr

常用于肤色检测和影像连续处理的色彩模型。Y为颜色的亮度(luma)成分,而CB和CR则为蓝色和红色的浓度偏移量成份

  • LBP算子

LBP(Local Binary Pattern,局部二值模式)是一种用来描述图像局部纹理特征的算子;它具有旋转不变性和灰度不变性等显著的优点

经不同的特征处理之后的图片数据如下:

更多信息请关注公众号:

[人脸活体检测] 论文:Face Anti-Spoofing Using Patch and Depth-based CNNs的更多相关文章

  1. [人脸活体检测] 论文:Learn Convolutional Neural Network for Face Anti-Spoofing

    [人脸活体检测] 论文:Learn Convolutional Neural Network for Face Anti-Spoofing 论文简介 这是最早期CNN用于活体检测的文章,在此之前都是手 ...

  2. [人脸活体检测] 论文:Searching Central Difference Convolutional Networks for Face Anti-Spoofing

    文章目录 Searching Central Difference Convolutional Networks for Face Anti-Spoofing 1 导读 2 简介 3 方法 中心差分卷 ...

  3. [人脸活体检测] 论文:Face De-Spoofing: Anti-Spoofing via Noise Modeling

    Face De-Spoofing: Anti-Spoofing via Noise Modeling 论文简介 将非活体人脸图看成是加了噪声后失真的x,用残差的思路检测该噪声从而完成分类. 文章引用量 ...

  4. [人脸活体检测] 论文: Learning Deep Models for Face Anti-Spoofing: Binary or Auxiliary Supervision

    Learning Deep Models for Face Anti-Spoofing: Binary or Auxiliary Supervision 论文简介 与人脸生理相关的rppG信号被研究者 ...

  5. [人脸活体检测] 论文:Aurora Guard- Real-Time Face Anti-Spoofing via Light Reflection

    Aurora Guard- Real-Time Face Anti-Spoofing via Light Reflection 论文简介 该论文提出的方法已经部署到百万台终端,整篇文章底气十足.作者设 ...

  6. 从零玩转人脸识别之RGB人脸活体检测

    从零玩转RGB人脸活体检测 前言 本期教程人脸识别第三方平台为虹软科技,本文章讲解的是人脸识别RGB活体追踪技术,免费的功能很多可以自行搭配,希望在你看完本章课程有所收获. ArcFace 离线SDK ...

  7. OpenCV实战:人脸关键点检测(FaceMark)

    Summary:利用OpenCV中的LBF算法进行人脸关键点检测(Facial Landmark Detection) Author:    Amusi Date:       2018-03-20 ...

  8. Qt编写百度离线版人脸识别+比对+活体检测

    在AI技术发展迅猛的今天,很多设备都希望加上人脸识别功能,好像不加上点人脸识别功能感觉不够高大上,都往人脸识别这边靠,手机刷脸解锁,刷脸支付,刷脸开门,刷脸金融,刷脸安防,是不是以后还可以刷脸匹配男女 ...

  9. 虹软人脸识别 - faceId及IR活体检测的更新介绍

    虹软人脸识别 - faceId及IR活体检测的介绍 前几天虹软推出了 Android ArcFace 2.2版本的SDK,相比于2.1版本,2.2版本中的变化如下: VIDEO模式新增faceId(类 ...

随机推荐

  1. django orm的增删改查 以及django1.x和2.x的区别

    ORM对字段的增删改查 # 建一个作者表 class Author(models.Model): ''' 如果你以后在创建表的时候,主键就叫id名,那么可以省略不写,orm会自动帮你创建出主键名称为i ...

  2. SSH、SFTP、FTP、Telnet、SCP、TFTP协议的原理

    一.SSH协议1.什么是SSH?SSH全称 安全外壳协议(Secure Shell),,是一种加密的网络传输协议,可在不安全的网络中为网络服务提供安全的传输环境. 如果一个用户从本地计算机,使用SSH ...

  3. windows远程linux桌面

    TigerVNC是一个高性能.平台无关的虚拟网络计算(Virtual Network Computing,VNC)实现,是一个客户端/服务器应用程序,允许用户在远程机器上启动并与图形应用程序进行交互. ...

  4. 对深度学习中全连接层、卷积层、感受野、1×1卷积、池化层、softmax层、全局平均池化的一些理解

    1.全连接层 在卷积神经网络中,在多个卷积层和池化层后,连接着1个或1个以上的全连接层,全连接层把卷积层和池化层提取出来的所有局部特征重新通过权值矩阵组装成一个完整的图,因为用到了所有的局部特征,所以 ...

  5. sql server 索引检测

    -- 声明表变量 DECLARE @userTable TABLE (table_name NVARCHAR(20)); -- 将源表中的数据插入到表变量中 INSERT INTO @userTabl ...

  6. 人人皆可虚拟,直播还能这么玩?声网推出 MetaLive 元直播解决方案

    视频群聊.在线社交.电商带货.游戏竞技.......越来越多的场景融入了直播这一功能.无可厚非,直播可以拉近人与人间的距离,让彼此间的交流更具象.但传统直播场景更为强调主播个人的表现,用户多以围观.刷 ...

  7. CAS 6.x + Delegated Authentication SAML2.0 配置记录

    最近领导派了一个活儿, 需要把我们CAS系统的身份识别交给甲方的系统, 甲方的系统是SAML2.0的协议. 由于之前对SAML2.0协议了解不多,折腾了不少时间,在这里记录一下.以后忘掉还可以看看. ...

  8. 在asp.net core webapi 中开启swagger

    首先需要安装包 Swashbuckle.AspNetCore 接着在项目中右键属性 接着在Startup 文件中声明一个字段 private string currentAssemblyName = ...

  9. SpringBoot——模板引擎及原理

    更多内容,前往IT-BLOG 一.模板引擎的思想 模板是为了将显示与数据分离,模板技术多种多样,但其本质都是将模板文件和数据通过模板引擎生成最终的 HTML代码. 二.SpringBoot模板引擎 S ...

  10. Django笔记十之values_list指定字段取值及distinct去重处理

    这篇笔记将介绍 reverse.distinct.values 和 values_list 的用法. 本篇笔记目录如下: reverse() values() values_list() distin ...