CVPR2023活体检测Instance-Aware Domain Generalization for Face Anti-Spoofing学习笔记

news2024/12/24 3:47:38

论文链接:https://arxiv.org/pdf/2304.05640.pdf

代码链接:GitHub - qianyuzqy/IADG: (CVPR 2023) Instance-Aware Domain Generalization for Face Anti-Spoofing(尚未公布)

研究动机

  1. 此前的基于域泛化(domain generalization,简称DG)的活体检测方法为了学习域不变特征表示,通常依赖域标签来对齐各域的分布。但是,人工标记的域标签是粗粒度且主观的,它们无法准确地反映真实的域分布;
  2. 基于域感知的方法专注于domain-level的对齐,这些方法不够细粒度,很难保证学到的特征表示对域不敏感(与域脱敏)。

研究创新点

为了解决上述缺陷,作者从新颖的角度(Instance-Aware)提出了一种基于DG的活体检测方法(Instance-Aware Domain Generalization,简称IADG),该方法探索了与域不敏感的特征并在细粒度的instance level上对齐这些特征(该方法无需使用域标签),提升了模型在没见过的场景中的泛化性。具体来说,作者首先引入了Asymmetric Instance Adaptive Whitening(AIAW),通过自适应地白化每个实例中敏感于域的特征相关性,提升了特征的泛化能力。与直接学习domain-agnostic的特征不同,AIAW旨在细粒度的instance level上弱化来自高阶统计的特征相关性。此外,作者还提出了Dynamic Kernel Generator(DKG)和Categorical Style Assembly(CSA),这两个模块有助于AIAW学习与域不敏感的特征。

相关工作

与FAS相关的works就不介绍了,这块主要记录Feature Covariance and Instance Whitening

《Texture synthesis using convolutional neural networks》和《Image style transfer using convolutional neural networks》指出特征相关性(比如协方差矩阵)存储了图片的domain-specific styles。白化方法(whitening transformation),如《Image-to-image translation via group-wise deep whitening-and-coloring transformation》、《Universal style transfer via feature transforms》、《Switchable whitening for deep representation learning》,能够移除特征的相关性并允许每个特征具有unit variance。基于以上理论基础,大量研究证明了在图像翻译、风格转换、域自适应、语义分割领域中,白化能够有效移除domain-specific styles。因此,实例白化可以提高特征的泛化能力,但在DG FAS中尚未得到充分的探索。在这些工作的启发下,考虑到真假人脸之间的不对称性,作者提出了AIAW方法来提高FAS模型的泛化能力。

方法论

上图为IADG的整体框架,该框架通过弱化特征对instance-specific styles的敏感性来在instance level上对齐特征。IADG的核心模块为:DKGCSAAIAW。下面将分别介绍这三个模块。

DKG

考虑到来自不同源域的样本间的差异性,很难通过static filter提取到具有instance-adaptive的特征。因此,作者设计了DKG来自动生成instance-adaptive filters,这有助于instance-static filter学习全面的instance-adaptive特征。

DKG由static convolution分支和dynamic kernel分支组成,第一个分支具有固定参数,第二个分支的参数取决于每个实例。根据模型参数是否随每个样本的变化而变化,将模型表示为静态或动态。如下图所示,X^{i}F^{i}表示第i个样本在DKG模块中的输入和输出特征。在训练阶段,两个分支都会被优化。具体来说,作者首先沿着通道维度将X^{i}分为两部分,分别表示为\hat{X}^{i}\tilde{X}^{i}。在static convolution分支上,\tilde{X}^{i}会被送入到一个静态卷积中。在dynamic kernel分支上,\hat{X}^{i}会先被送入到全局平均池化层和卷积模块中,以生成instance-adaptive kernel(dynamic kernel)W^{i},随后W^{i}会被用于提取\hat{X}^{i}上的特定特征(相当于给输入乘个mask)。两个分支的输出的计算公式如下:

DKG模块的输出计算公式如下:

CSA

该模块用于生成不同风格的样本。具体来说,作者利用farthest point sampling(FPS)技术,迭代地从所有样本中为每个类别选择L个风格,因此,FPS获得的基础风格最大程度地代表了整个风格空间。基础风格在每个epoch都会动态更新。对于每个类别的基础风格,计算它们的均值和方差,\mu _{base}^{r}\mu _{base}^{s}分别表示真人和假体的基础风格的均值。

考虑到用假人脸风格重组真人脸的内容可能会影响真人脸的活性特征(liveness feature),作者在特征增强中对它们进行了不同处理。只有当内容特征和风格特征具有相同的类标签时,才会执行风格增强。对于每个类别c,作者从Dirichlet分布B([\alpha _{1},...,\alpha _{L}])中提取组合权值W^{c}=[w_{1},...,w_{L}],计算公式如下:

对于每一个实例F_{org}的内容特征,将使用与F_{org}具有相同类别的新基础风格进行风格组装,避免了标签更改,使风格化的样本更加逼真。

AIAW

为了在更细的粒度中对齐每个样本,作者将特征通道之间的相关性视为实例自适应泛化的显式约束。由于已有研究证明白化能够有效去除特定风格,这可能会提高DG-FAS特征的泛化能力。然而,直接应用这些实例白化会同时去除对FAS分类具有判别性的域不变特征,导致次优的性能。因此,作者为FAS设计了一种新型实例白化损失。该损失旨在选择性的抑制敏感性的协方差的同时,增强非敏感性的协方差。具体来说,考虑到FAS任务的背景,作者在实例白化中引入了真假人脸不对称的思想(真实人脸特征应该更紧凑,而假人脸特征可以在特征空间中分离)。因此,在白化过程中,采用不同的选择比例来抑制真假人脸的敏感性协方差。

AIAW计算方法:

1、将样本的特征图输入到IN层,得到对应的标准化特征F;

2、特征F的协方差矩阵使用如下公式计算:

3、为协方差矩阵推导出selective mask,计算公式如下:

4、使用selective mask来进行AIAW,实例白化损失的计算公式如下:

整体训练和优化

为了在没见过的域中表现出强泛化性,使用二分类损失来监督特征F_{org}^{i}F_{aug}^{i},保证特征提取器提取的是任务相关的特征,公式如下:

此外,作者使用深度估计器Dep来为真人脸估计深度图(假体的深度图为全0特征图),该部分的损失计算公式如下:

总体训练损失如下:

在训练阶段,原始分支和增强分支同时被优化。在测试阶段,仅使用原始分支进行推理。

实验结果

从结果来看,IADG在不同测试协议下都有不错的效果,消融实验证明了各模块均能提升模型性能。期待作者开源代码。

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

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

相关文章

信号完整性分析:关于传输线的三十个问题解答(二)

11.对于 50 欧姆带状线的纵横比,什么是好的经验法则?(What is a good rule of thumb for the aspect ratio of a 50-Ohm stripline?) 在带状线几何形状和 FR4 基板中,线宽和平面之间的电介质间距的纵横比为 。由于有两个平面,带…

如何快速建立一个podman环境

本文介绍如何安装podman,并创建podman容器 环境 Centos8 安装podman Podman 是一个容器环境,首先在主机上安装 Podman。执行下面命令来安装podman: [rootlocalhost ~]# yum -y install podman然后修改一下用户命名空间的大小&#xff1a…

202305读书笔记|《因思念而沉着》——任何赞美都是身外之物唯自由可随身携带

《因思念而沉着》作者巴哑哑,忘了是什么时候加入的书架,昨天下班地铁上读完的书。是美的! 部分节选如下: 羽叶茑萝举着熄灭的花青色的小枣落了一地所以哭泣沾染上了你的脸 在没落下 当我们开始生活 就是开始患上了眼疾你独自悲伤…

互联网求职指南2023版(内含腾讯、阿里、字节真实面经)

0. 缘起 五年前,小编曾经写过一篇文章,文章主要带大家了解当时的互联网巨头公司、独角兽公司。并给出了互联网的求职建议。从简历、知识储备、暑期实习、面试上给出了中肯的建议。现在看来也是很受用的,感兴趣的可以点击链接《互联网求职指南…

【人工智能概论】 构建神经网络——以用InceptionNet解决MNIST任务为例

【人工智能概论】 构建神经网络——以用InceptionNet解决MNIST任务为例 文章目录 【人工智能概论】 构建神经网络——以用InceptionNet解决MNIST任务为例一. 整体思路1.1 两条原则1.2 四个步骤 二. 举例——用InceptionNet解决MNIST任务2.1 模型简介2.2 MNIST任务2.3 完整的程序…

【ChatGPT 】ChatGPT Sidebar 实战:自定义 ChatGPT 搜索页面回复模板(示例开发和文员专用模板)

目录 一、前言 二、ChatGPT Sidebar 通用配置 (1)通用配置入口 (2)设置 ① 如何访问 ChatGPT ② 语言 ③ 主题 三、ChatGPT Sidebar 搜索页面 (1)搜索页面入口 (2)设置 …

Node 05-Node.js模块化

Node.js 模块化 介绍 什么是模块化与模块 ? 将一个复杂的程序文件依据一定规则(规范)拆分成多个文件的过程称之为 模块化 其中拆分出的 每个文件就是一个模块,模块的内部数据是私有的,不过模块可以暴露内部数据以便其他模块使用…

【问题解决】Git报错:failed to push some refs to xxxxx

Git报错:failed to push some refs to xxxxx To https://xxxxxxxxxxxx.git ! [rejected] master -> master (fetch first) error: failed to push some refs to ‘https://xxxxxxxx.git’ hint: Updates were rejected because the remote contains work that yo…

AI+明厨亮灶智能算法 yolo

AI明厨亮灶智能算法通过pythonyolo网络模型分析算法,AI明厨亮灶模型算法可接对后厨实现如口罩识别、厨师服穿戴、夜间老鼠监测、厨师帽识别、厨师玩手机打电话识别、抽烟识别等实时分析监测。Python是一种由Guido van Rossum开发的通用编程语言,它很快就…

领导力专题︱聊聊领导力的主要问题

本文内容结构 一、领导力的主要问题:领导者与下属 1、让人敬佩的领导者的能力与技巧 2、下属的期望 (1)热情 (2)重视 (3)欣赏 (4)归属感 3、下属(追随…

微结构MRI参数估计的神经网络:在白质扩散-弛豫模型中的应用

导读 通过使用生物物理模型来解释弛豫-扩散MRI大脑数据,可以研究白质微观结构的具体特征。尽管更复杂的模型有可能揭示组织的更多细节,但也会导致参数估计耗时较长,由于简并拟合地形中普遍存在局部最小值,这些参数估计可能会收敛…

软件测试工程师需要达到什么水平才能顺利拿到 20k 无压力?

最近有粉丝朋友问:软件测试员需要达到什么水平才能顺利拿到 20k 无压力? 这里写一篇文章来详细说说: 目录 扎实的软件测试基础知识:具备自动化测试经验和技能:熟练掌握编程语言:具备性能测试、安全测试、全…

前端Vue.js项目开发,不重启项目,快速切换后台地址---使用nginx负载简单快速实现更换后台代理地址

前端Vue.js项目开发,不重启项目,快速切换后台地址—使用nginx负载简单快速实现更换后台代理地址 本文实现了在vue项目不重启的情况下,快速实现更换联调后台服务器的方法, 能够大大节省vue项目重启时间 chen 2023-04-20 文档源码地址,最新版本会在这里修改…

互交式3d地球仪工具:Earth 3D - World Atlas Mac

Earth 3D - World Atlas for Mac是一款3d地球仪。这个交互式 3D 地球仪以世界奇观、政治和物理地图以及天气为特色。发现许多关于我们星球的有趣事实和有用信息!原始的彩色图形、用户友好的界面和准确的信息——这就是 Earth 3D - World Atlas 的全部意义所在&#…

leetcode Two Sum-Java 和Python 的写法

我想这题是正要开始写LeetCode 的人,大部分的人的第一题吧,这题是个基本题算在easy 的题型,看到题目直接就会想到使用双回圈的写法,不过双回圈时间复杂度只有达到 O(N^2) 不那么理想,如果比较资深的工程师会用HashMap …

wsl的图像化实现,在wsl中启动浏览器

最近在学习wsl,原本我看以前的教程说wsl和vmware的区别有一点就是,wsl只能使用命令行,而vmware可以实现图像化,结果我在 microsoft 官方发现现在的wsl 2已经实现了 GUI 界面,所以就来记录一下吧。 wsl 的 GUI 实现 首…

Vue3.2 + TypeScript + Pinia + Vite4 + Element-Plus + 微前端(qiankun) 后台管理系统模板(已开源)

最终效果 一、前言 Wocwin-Admin,是基于 Vue3.2、TypeScript、Vite、Pinia、Element-Plus、Qiankun(微前端) 开源的一套后台管理模板;同时集成了微前端 qiankun也可以当做一个子应用。项目中组件页面使用了Element-plus 二次封装 t-ui-plus 组件&#xf…

C/C++每日一练(20230420)

目录 1. 存在重复元素 II 🌟 2. 外观数列 🌟🌟 3. 最优路线 🌟🌟🌟 🌟 每日一练刷题专栏 🌟 Golang每日一练 专栏 Python每日一练 专栏 C/C每日一练 专栏 Java每日一练 专…

搭建sentry来监控Django项目

sentry搭建 我的环境: centos7,已安装docker和docker compose 下载最新zip包到 /usr/local/ https://github.com/getsentry/self-hosted/tagshttps://github.com/getsentry/self-hosted/tags解压 unzip self-hosted-23.4.0.zip 安装期间会提示是否…

Ceph入门到精通-Cephadm安装Ceph(v17.2.5 Quincy)全网最全版本

Deploy Ceph(v17.2.5 Quincy) cluster to use Cephadm - DevOps - dbaselife Install cephadm Cephadm creates a new Ceph cluster by “bootstrapping” on a single host, expanding the cluster to encompass any additional hosts, and then depl…