活体识别5:论文笔记之FeatherNets

2023-05-16

说明

这篇文章是这次比赛的第三名:ChaLearn Face Anti-spoofing Attack Detection Challenge@CVPR2019,此次比赛项目是人脸防欺诈攻击检测。

论文标题:《FeatherNets: Convolutional Neural Networks as Light as Feather
for Face Anti-spoofing》
论文地址:https://arxiv.org/pdf/1904.09290.pdf

论文内容

如下图,使用的数据集是CASIA-SURF,它由1000个受试者拍摄的21000个视频组成,每个样本包含三种模态:RGB、深度和IR。样本主要是受试者拿着自己的照片,分别将鼻子、眼睛、嘴巴等不同的区域切除下来,有的照片是平面的,有的照片是弯曲贴着脸放的。整体感觉有点单调,没有视频回放和面具的攻击方式。可能是因为加入了深度的图像原因,所以视频攻击就不考虑了。
在这里插入图片描述
该文作者还自制了一个数据库用以增强模型的鲁棒性和泛化性。该数据库称为MMFD,由15名受试者采集了15415张真脸照片和28438张假脸照片。除了将照片放在眼前,受试者还要戴眼睛、做表情、变换和镜头的距离等,比CASIA-SURF丰富些。

作者使用的整体方案也比较简单粗暴,先集成再级联。作者发现,使用深度图像的进行鉴别的效果已经很好了,所以第一阶段集成了多个不同的模型对深度图像的结果进行鉴定(多个模型结果求平均),得分很高和很低的直接就输出结果。得分在中间的再用IR图像进行第二阶段的分类鉴别。因为作者发现IR图像对第一阶段区分不明显的真假脸有较好的区分效果。
在这里插入图片描述
在第一阶段使用了6个模型(多个模型结果求平均):FishNet150 1, FishNet150 2, MobilenetV2, FeatherNetA, FeatherNetB, ResNet GC。第二阶段鉴别IR图像使用的是FeatherNetBForIR。除了FeatherNetA/B,其它的都是别人的模型。
这个论文的很大一部分在讨论FeatherNet的结构细节。FeatherNet是作者设计的一个较轻量级的网络。如果不打比赛仅仅为了在嵌入式端部署,两个阶段应该可以都用FeatherNet。
FeatherNet分为A和B两个版本。它们都是由下面三个基础模块组成的:
在这里插入图片描述
其中模块A是组成网络结构的主要模块,来自MobilenetV2。模块B和模块C是降采样模块,可以将特征快速缩小。模块B是FeatherNetB的降采样模块,左侧分支的AVG灵感来自Inception,模块B右侧分支灵感来自ShuffleNet。模块C是FeatherNetA的降采样模块,它能用更少的参数和更少的计算量快速完成降采样的工作。每个下采样之后都跟一个SE-model用注意力机制来增强特征的有效信息。
下图是FeatherNetB的结构表。将表中的BlockB替换为BlockA就是FeatherNetA了。
在这里插入图片描述
FeatherNet非常轻量级,参数只有0.35M,计算量在80M左右。FeatherNetA因为下采样模块只有一个分支,参数比FeatherNetB还小点。
在这里插入图片描述
除了结构上的设计,作者还对网络结构最后的结构进行了探讨。那就是分类网络常用的全局平均池化(AVG)不适合人脸类的任务(这点其实来自Mobilefacenets)。为啥呢,你看下图:
在这里插入图片描述
特征的感知野的权重分布类似高斯分布,特征中间的那个蓝色特征应该比边缘的那个红色特征有更多的影响才对,将它们求平均显然不是一个好办法。所以作者设计了一个 Stresming Module放在网络的最后面,那就是用深度卷积(DWConv)将特征由7x7x64变成4x4x64,然后将所有通道展开成一维数据。后面也没跟全连接,因为这会显著增加参数量,也增加了过拟合的风险。Stresming Module后面直接用 focal loss作为损失函数。
在这里插入图片描述
对于用Stresming Module替换GAP,去掉末尾的全连接,甚至是BlodkB左侧分支的AP-down,作者都做了对比测试。下图中可以看到作者策略的收益。
在这里插入图片描述

总结

我觉得作者做了两件事,一件是通过“集成+级联”的方式拿到了比赛的好成绩,一个是设计了一个轻量级的人脸任务分类网络。这两件事不一定有特别大的关系。要是作者能把只用两个FeatherNet级联的结果写出来就更好了,这样才是一个更有针对性的论文。

作为一个开发者,我打算用作者开源的FeatherNetBForIR试试效果。毕竟我只有NIR相机,没有深度相机。

参考资料

论文地址:https://arxiv.org/pdf/1904.09290.pdf

FeatherNet开源地址:FeatherNets_Face-Anti-spoofing-Attack-Detection-Challenge-CVPR2019

CVPR2019| 人脸防伪检测挑战赛-俄初创公司夺冠,中美企业位列二三(附论文代码及参赛模型解析)

CVPR 2019 ChaLearn Face Anti-spoofing TOP3 小总结

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

活体识别5:论文笔记之FeatherNets 的相关文章

  • debian9.13系统安装libreoffice6.4.6

    1 在root用户下 apt get remove purge libreoffice 2 切换到下载好的软件包位置 xff0c 然后执行 3 解压Libreoffice安装包和汉化包 tar zxvf LibreOffice 6 4 6
  • tftp和xinetd服务器的配置

    为了开机启动tftpd服务器 需要用到配置xinetd服务器 所以顺便研究下 与xinetd服务器相关的配置就1个文件和1个目录 etc xinetd conf etc xinetd d vim etc xinetd conf defaul
  • c语言 inline函数的总结

    1 inline只是个编译器建议 xff0c 编译器不一定非得展开Inline函数 例如 xff1a Inline函数地址引用 inline在递归函数中使用 2 inline必须用于函数定义 xff0c 对于函数声明 xff0c inlin
  • Linux线程挂掉是否影响进程

    严格的说没有 线程崩溃 xff0c 只是触发了SIGSEGV Segmentation Violation Fault 如果没有设置对应的Signal Handler操作系统就自动终止进程 xff08 或者说默认的Signal Handle
  • python matplotlib.subplot绘制子图

    版权声明 xff1a 本文为博主原创文章 amp amp 转载请著名出处 64 http blog csdn net gatieme 目录 43 问题描述subplot函数介绍示例程序 1 规则划分成33的2 不规则划分 CSDNGitHu
  • SIFT 三线性差值原理与代码分析

    参考了文章 http blog csdn net fzthao article details 62424271 Jie Pro 在进行特征描述时 xff0c 讲的非常详细 但未对三线性插值进行阐述 我也是花了好久的时间才慢慢搞懂 有错之处
  • Cortex-M3的PendSV中断以及uCOS系统一点思考

    uCOS中 OSStart函数 OSStartHighRdy函数 会重新设置PendSV中断的优先级 把该中断优先级设置为最低 每次时钟中断时 一般为最高优先级 xff0c 查看是否要进程切换 如果此时有中断嵌套则不进行进程切换 xff0c
  • opencv3.2安装opencv_contrib

    opencv3 2 增加opencv contrib组件 之前在ubuntu16 04下安装caffe和opencv3 2 xff0c 由于需要需要使用opencv contrib组件 xff0c 在安装中遇到一些问题 在已安装好openc
  • 最小二乘法

    最小二乘法 xff08 又称最小平方法 xff09 是一种数学优化技术 它通过最小化误差的平方和寻找数据的最佳函数匹配 利用最小二乘法可以简便地求得未知的数据 xff0c 并使得这些求得的数据与实际数据之间误差的平方和为最小 最小二乘法还可
  • python vstack

    Python numpy函数hstack vstack stack dstack vsplit concatenate 感觉numpy hstack 和numpy column stack 函数略有相似 xff0c numpy vstack
  • Linux下VNC Server的配置

    1 xff09 安装vnc server xff1a rpm ivh tigervnc server 1 1 0 5 el6 x86 64 rpm 2 修改配置文件 xff0c 1 表示第1号桌面 xff0c 对应端口号5901 2 表示2
  • WIN10_GTX1650_深度学习环境搭建

    这篇博客总结的非常好 xff0c 但安装过程中可能会碰到一些问题 在这记录 xff0c 分享一下解决方案 https blog csdn net weixin 45755980 article details 105397874 Tenso
  • Linux面试必备20个常用命令

    文章目录 第一章 什么是linux第二章 linux的基础命令1 pwd 命令2 ls 命令3 cd 命令4 man 命令5 grep 命令6 find 命令7 chmod 命令8 ps 命令9 kill 命令10 tail 命令11 ne
  • Python爬虫实战(一):翻页爬取数据存入SqlServer

    目录 前言爬取目标准备工作代码分析1 设置翻页2 获取代理ip3 发送请求4 获取详情页地址5 提取详情信息6 存入数据库7 循环实现翻页8 启动 前言 x1f525 x1f525 本文已收录于Python爬虫实战100例专栏 xff1a
  • 已解决error: subprocess-exited-with-error

    已解决 xff08 pip安装第三方模块lxml模块报错 xff09 Building wheels for collected packages lxml Building wheel for lxml setup py error er
  • 已解决此处缺少‘,‘, ‘]‘字符, 实际上是一个 ‘EOF‘

    已解决Python解析JSON xff0c 抛出此处缺少 39 39 39 字符 实际上是一个 39 EOF 异常的解决方法 xff0c 亲测有效 文章目录 报错问题报错原因解决方法千人全栈VIP答疑群联系博主帮忙解决报错 报错问题 粉丝群
  • 已解决E: Unable to locate package ros-kinetic-desktop-full

    已解决Ubuntu安装ros xff0c 抛出异常E Unable to locate package ros kinetic desktop full的正确解决方法 xff0c 亲测有效 xff0c 文末附上Ubuntu系统对应ros系统
  • 数组元素交叉排列的算法题(a1 a2 a3 .. an b1 b2 b3 .. bn -->a 1 b1, a2 b2, a3 b3, .. an bn ) 概论思想(perfect shuffle 算法)

    perfect shuffle 算法 今天又发现一个关于完美洗牌的算法 这个比较简单一些 xff0c 由 microsoft的Peiyush Jain提出 原论文 xff1a A Simple In Place Algorithm for
  • Linux操作系统之命令

    Linux操作系统指令有很多 xff0c 这里就先介绍一些最最基础的吧 首先就是将操作界面显示 xff1a Ctrl 43 alt 43 t 显示当前目录内容 xff1a ls ls l xff1a 将目录内容使用列表显示 ls a xff

随机推荐

  • [操作系统]学习操作系统的经典书籍

    http blog chinaunix net u1 43966 showart 396940 html 介绍了一些操作系统学习的经典书籍 xff0c 包括理论上的 具体操作系统的 Abraham Silberschatz的两本书 xff1
  • 原创:史上最全最通俗易懂的,索引最左前缀匹配原则(认真脸)

    索引最左前缀匹配原则 对于最左前缀匹配原则居然没有百度百科 xff0c 实在是让我感觉不可思议 最左前缀匹配原则 xff0c 用几句话来概述就是 xff1a 顾名思义 xff0c 就是最左优先 xff0c 在创建多列索引时 xff0c 要根
  • MATLAB从文件读取数据

    一 从filename文件读取数据 1 readtable函数 语法 xff1a t 61 readtable xff08 filename xff09 支持的扩展名 xff1a txt csv xls xlsm xlsx xlsm xlt
  • 前端进阶之TS总结

    知识点 高频面试题TS装饰器axios二次封装 1 高频面试题 1 1 类型推论 amp 可赋值性 什么是类型推论 xff1f TypeScript 会在没有明确的指定类型的时候推测出一个类型 xff0c 这就是类型推论如果定义的时候没有赋
  • 岁月清浅,邀你入梦

    这世间本应美好 xff0c 怎无奈痛苦缠身 xff0c 卿心亦真 xff0c 免世人之苦 xff0c 乐自身之本 卿之容 xff0c 多沉醉 xff0c 于心赞 xff0c 日夜思 淡若微风的陪伴 xff0c 奈何情深缘浅 只相识 xff0
  • 记一次解BUG的心得感受

    今天遇到 了 一个 STP的问题 xff0c 从测试 现象 来看与之前一个FR的验证过程中表现出来的特征很相似 这种相似性将我引入了一种歧途 xff1a 怀疑原来的修改有问题 假设你知道第N次修改有潜在的case无法验证 那么这种潜在的风险
  • 02_Keil5报错 error: #5: cannot open source input file “XXX.h”: No such file or directory解决方法

    Keil5 error 5 cannot open source input file led h No such file or directory 是找不到包含文件 解决办法1 包含文件可以解决 解决办法2 如果包含了还是报 5找不到文
  • 05_FreeRTOS中断管理

    目录 什么是中断 中断相关寄存器 源码实验 什么是中断 简介 让CPU打断正常运行的程序 转而去处理紧急的事件 程序 就叫中断 举例 上课可以比做CPU正常运行的程序 上厕所可以比做中断程序 中断执行机制 可简单概括为三步 中断请求 外设产
  • 07_FreeRTOS任务调度器的挂起和恢复

    任务调度器的挂起和恢复 挂起任务调度器 调用此函数不需要关闭中断 使用格式示例 1 与临界区不一样的是 挂起任务调度器 未关闭中断 2 它仅仅是防止 xff1b 任务之间的资源争夺 中断照样可以直接响应 3 挂起调度器的方式 适合于临界区位
  • 09_FreeRTOS任务调度器

    目录 开启任务调度器vTaskStartScheduler函数 xPortStartScheduler开启任务调度器函数 启动第一个任务 prvStartFirstTask开启第一个任务函数 vPortSVCHandler SVC中断服务函
  • 13_FreeRTOS消息队列

    目录 队列简介 FreeRTOS队列特点 队列操作基本过程 队列结构体介绍 队列结构体整体示意图 队列相关API函数介绍 创建队列相关API函数介绍 往队列写入消息API函数 往队列写入消息函数入口参数解析 从队列读取消息API函数 实验源
  • golang XML解析

    使用微信支付的时候遇到这样一种情况 xff1a 支付成功之后微信会发送一个通知过来 xff0c 这个通知包含xml格式的数据 xff0c 其中有一个字段是这样的 xff1a coupon id n 代 金 券
  • FreeRTOS系列-- heap_4.c内存管理分析

    FreeRTOS系列 heap 4 c内存管理分析 heap 4 c简介理解heap 4 c的关键点图示heap 4 c内存申请过程图示heap 4 c内存合并过程内存初始化源码分析内存申请源码分析内存释放分析空闲块内存合并源码分析 hea
  • Cordova概述

    Cordova Apache Cordova is an open source mobile development framework It allows you to use standard web technologies HTM
  • Openstack学习(增加卷迁移限速)

    声明 xff1a 本博客欢迎转发 xff0c 但请保留原作者信息 博客地址 xff1a http blog csdn net halcyonbaby 内容系本人学习 研究和总结 xff0c 如有雷同 xff0c 实属荣幸 xff01 Ope
  • dht11 新手原理详解(附代码)

    dht11详解 dht11原理 简介 DHT11作为一款低价 入门级的温湿度传感器 xff0c 常用于我们的单片机设计实例中 它应用专用的数字模块采集技术和温湿度传感技术 xff0c 确保产品具有极高的可靠性与卓越的长期稳定性 传感器包括一
  • git推送报错 Your branch is ahead of 'origin/master' by 1 commit

    当出现no changes added to commit use git add and or git commit a git commit之后 xff0c 用git status xff0c 打印信息为 xff1a Your bran
  • ubuntu如何降级gcc

    ubuntu版本 xff1a ubuntu 18 04 安装指定版本的gcc g 43 43 xff0c 然后做如下链接 sudo apt get install gcc 4 5 g 43 43 4 5 cpp 4 5 gcc 4 5 mu
  • arm-linux开发环境之(busybox-ls命令)终端显示颜色

    在开发板终端中输入ls命令后终端文件夹和文件显示颜色 linux主机 xff1a ubuntu 12 04 交叉编译器 xff1a gcc version 4 6 2 20110630 prerelease 开发板kernel xff1a
  • 活体识别5:论文笔记之FeatherNets

    说明 这篇文章是这次比赛的第三名 xff1a ChaLearn Face Anti spoofing Attack Detection Challenge 64 CVPR2019 xff0c 此次比赛项目是人脸防欺诈攻击检测 论文标题 xf