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

news2024/11/20 13:43:00

说明

这篇文章是这次比赛的第三名: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 小总结

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/191275.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

中科蓝讯读取CSV文件中地址来指定地址段烧录

优势:可不需要通过小牛测控来写码,在烧录的时候直接进行读取文件来写码,可节省小牛测控写码并复位耳机的时间 功能:通过读取外置的 excel 表格里面的配置项,实现对 setting 文件里面的特定配置项的值 进行设置&#…

详解 k8s 中的 RBAC

Kubernetes 主要通过 API Server 对外提供服务,对于这样的系统来说,如果不加以安全限制,那么可能导致请求被滥用,甚至导致整个集群崩塌。 Kubernetes 中提供了良好的多租户认证管理机制,RBAC正式其中重要的一个&#…

Linux驱动开发基础__异步通知

目录 1 适用场景 2 使用流程 3 驱动编程 4 应用编程 5 代码 5.1 gpio_key_drv.c 5.2 button_test.c 5.3 Makefile 6 异步通知机制内核代码详解 1 适用场景 在前面引入中断时,我们曾经举过一个例子: 妈妈怎么知道卧室里小孩醒了? 异…

【深度学习】U-Net和FCN具体分析

FCN 相比于普通分类网络而言:FCN把后面几个全连接都换成卷积,这样就可以获得一张2维的feature map,后接softmax获得每个像素点的分类信息,从而解决了像素级分割问题。 整个FCN网络基本原理如图5**(只是原理示意图)**: image经过多个conv和+一个max pooling变为pool1 f…

SpringCloud_Alibaba Sentinel实现熔断与限流

目录一、Sentinel介绍1.官网2.是什么3.能干嘛4.去哪下5.怎么玩二、安装Sentinel控制台1.sentinel组件由2部分组成2.安装步骤三、初始化演示工程1.启动Nacos8848成功2.案例3.启动Sentinel80804.启动微服务84015.启动8401微服务后查看sentienl控制台四、流控规则1.基本介绍2.流控…

计算机网络 | 网络层知识点期末汇总【还不赶紧收藏】

看不完就慢慢看,扎实掌握👊一、网络层的几个重要概念1、互联网设计思路2、虚电路与数据报服务3、网络层的两个层面二、网际协议 IP1、配套协议2、互连虚拟网络3、IP地址(1)IP 地址及其表示方法(2)分类的 IP…

基于 PyTorch 的目标检测和跟踪(无敌版)

一个不知名大学生,江湖人称菜狗 original author: jacky Li Email : 3435673055qq.com Time of completion:2023.2.1 Last edited: 2023.2.1 目录 图像中的目标检测 视频中的目标跟踪 作者有言 在文章《基于 PyTorch 的图像分类器》中,介绍…

网卡ID简要说明

一、概述 网卡ID标识着网卡的具体类型,由五个ID共同确认。根据这五个ID可以在公示网站查到具体的网卡型号。 1. Class id (1) 区分不同的PCI(外设)设备 (2) 网卡类型是:0200 (3) 查询网址:http://pci-ids.ucw.cz/read/PD 2. Vendor id: …

15_open_basedir绕过

open_basedir绕过 一、了解open_basedir 1. 搭建环境 在test目录下存在一个open_basedir.php的文件 里面的php代码就是简单的文件包含或者ssrf,利用的是file_get_contents函数 open_basedir也就是在这种文件包含或者ssrf访问其它文件的时候生效 然后在www目录下再新建一个t…

(隐私计算)联邦学习概述

一、是什么 概念 联邦学习(Federated Learning,FELE)是一种打破数据孤岛、释放 AI 应用潜能的分布式机器学习技术,能够让联邦学习各参与方在不披露底层数据和底层数据加密(混淆)形态的前提下,…

Unity-TCP-网络聊天功能(一): API、客户端服务器、数据格式、粘包拆包

1.TCP相关API介绍与服务端编写TCP是面向连接的。因此需要创建监听器,监听客户端的连接。当连接成功后,会返回一个TcpClient对象。通过TcpClient可以接收和发送数据。VS创建C# .net控制台应用项目中创建文件夹Net,Net 下添加TCPServer.cs类&am…

界面组件DevExtreme v22.2亮点——UI模板库升级换代!

DevExtreme拥有高性能的HTML5 / JavaScript小部件集合,使您可以利用现代Web开发堆栈(包括React,Angular,ASP.NET Core,jQuery,Knockout等)构建交互式的Web应用程序。从Angular和Reac&#xff0c…

高频链表算法

1.从尾到头打印链表值 输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回) 思路 (1)如果使用数组来保存反转之后的链表数据,这样只需要使用到队列或栈的知识,关键是unshif和push,reverse函数 &…

【vue2】vuex基础与五大配置项

🥳博 主:初映CY的前说(前端领域) 🌞个人信条:想要变成得到,中间还有做到! 🤘本文核心:vuex基础认识、state、getters、mutations actions、modules使用 目录(文末原素材) 一、…

【JavaEE初阶】第九节.多线程 (基础篇)定时器(案例三)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 前言 一、定时器概述、 二、定时器的实现 2.1 Java标准库 定时器的使用 2.2 自己模拟实现一个定时器 2.3 对自己实现的定时器的进一步优化 2.3.1 为何需要再进行优化 2…

CMOS图像传感器——了解光圈

在之前有提到传感器英寸,也提到了曝光三要素之一的ISO,这里主要说明另外一个曝光三要素——光圈。在本文中,我们将介绍光圈及其工作原理。 一、什么是光圈 光圈可以定义为镜头中的开口,光线通过该开口进入相机。类比眼睛是的工作原理,就容易理解了:当人在明亮和黑暗的环…

【链表之单链表】

前言:链表是什么? 链表的操作 1.单链表的结构 2.头文件的包含 3.动态申请一个节点 4.单链表打印 5.单链表尾插 6.单链表头插 7.单链表尾删 8.单链表头删 9.单链表查找 10.单链表在pos位置之后插入x 11.单链表在pos位置之前插入x 12. 单链表…

【数据挖掘】基于粒子群算法优化支持向量机PSO-SVM对葡萄酒数据集进行分类

1.粒子群算法的概念 PSO是粒子群优化算法(Particle Swarm Optimization)的英文缩写,是一种基于种群的随机优化技术,由Eberhart和Kennedy于1995年提出。粒子群算法是模仿昆虫、兽群、鸟群和鱼群等的群集行为,这些群体按…

中国电子学会2021年03月份青少年软件编程Scratch图形化等级考试试卷三级真题(含答案)

2021-03Scratch三级真题 分数:100题数:38 一、单选题(共25题,每题2分,共50分) 1.在《采矿》游戏中,当角色捡到黄金时财富值加1分,捡到钻石时财富值加2分,下面哪个程序实现这个功能&#xff1…

【软件测试】资深测试总结的测试必备8点,堪称测试人的好莱坞大片......

目录:导读前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜)前言 测试8板斧。测试8板…