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. Centos 8 部署harbor 访问502

    部署过程不做多说, 部署完之后访问502, 以下可能只是一种情况, 有可能是其它情况导致的503 查看日志 core.log 提示访问数据库被拒绝 贴出解决方案:https://github.com/ ...

  2. 替换yum源

    1.yum源进行备份 进入到yum源的配置文件中 执行命令如下:cd /etc/yum.repos.d 将yum源进行备份:mv Centos-Base.repo Centos-Base.repo.b ...

  3. centos 通过yum安装docker-ce报错

    通过yum安装docker-ce报错,是因为本机安装过多次造成的,如下所示,需要解决掉冲突依赖,从新安装 1 从 https://mirrors.aliyun.com/docker-ce/linux/ ...

  4. ubuntu16.04+win10双系统安装

    先下载Ubuntu到电脑:http://mirrors.ustc.edu.cn/ubuntu-releases/16.04.6/ubuntu-16.04.6-desktop-amd64.iso 准备个 ...

  5. 怎样清空 DNS 缓存?

    在 Windows 下命令行执行:ipconfig /flushdns 在 macOS 下执行命令:sudo killall -HUP mDNSResponder

  6. 谈恋爱要做什么事?基于auto.js自动发早安给女朋友

    谈恋爱要做什么事?除了用心之外,每天早安晚安必然是少不了的.但是每天都发免不了会忘, 为了避免遗忘,引起不必要的尴尬,我们可以做个自动化脚本来做这件事. 1 auto.js 是什么? Auto.JS是 ...

  7. .NET中委托性能的演变

    .NET中的委托 .NET中的委托是一项重要功能,可以实现间接方法调用和函数式编程. 自.NET Framework 1.0起,委托在.NET中就支持多播(multicast)功能.通过多播,我们可以 ...

  8. 为什么 C# 可能是最好的第一编程语言

    纵观神州大地,漫游中华互联网,我看到很多人关注为什么你应该开始学习JavaScript做前端,而对blazor这样的面向未来的框架有种莫名的瞧不起,或者为什么你应该学习Python作为你的第一门编程语 ...

  9. 熹乐科技范维肖CC:基于开源 YoMo 框架构建“全球同服”的 Realtime Metaverse Application

    前言 在「RTE2022 实时互联网大会」中,熹乐科技创始人 & CEO @范维肖CC 以<基于开源 YoMo 框架构建"全球同服"的 Realtime Metave ...

  10. 孙勇男:实时视频 SDK 黑盒测试架构丨Dev for Dev 专栏

    Dev for Dev 专栏全称为 Developer for Developer,该专栏是声网与 RTC 开发者社区共同发起的开发者互动创新实践活动.透过工程师视角的技术分享.交流碰撞.项目共建等多 ...