| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 人工智能 -> CVPR2022 活体检测 Adaptive Transformers for Robust Few-shotCross-domain Face Anti-spoofing -> 正文阅读 |
|
[人工智能]CVPR2022 活体检测 Adaptive Transformers for Robust Few-shotCross-domain Face Anti-spoofing |
论文链接:https://arxiv.org/pdf/2203.12175.pdf 域泛化 (domain generalization):旨在从多个源域数据集中学习一个模型,该模型能泛化到未知的数据集中。? 元学习 (meta-learning):在训练期间模仿域偏移 (domain shift),以获得一个表达能力强的特征空间。 少样本学习 (few-shot learning):旨在从每个类的几个样本中学习,使模型适应新类(假设训练集的数据类别与测试集的数据类别不相交)。 研究动机与密码和指纹等传统的识别方法相比,人脸生物识别技术因其安全性、便利性和非接触性等优势被广泛用于身份认证等应用中。在进行人脸识别前,系统需要一个额外的模块来甄别真假人脸,该模块便是活体检测。 现有方法使用数据集内测试和跨数据集测试来评估域内和跨域的 FAS 性能。前者训练集和测试集来自同一数据集,而后者的训练集和测试集则来自不同的数据集。最近的算法在前者中已经能获得非常好的性能,研究员开始逐渐将注意力投向跨域的 FAS。尽管已经取得了重大进展,但现有方法在跨数据集上的测试结果仍然效果不佳。因此,开发出一种在不同数据集上都表现良好的活检算法的意义重大。 在跨域数据集中进行测试的难点在于:不同数据集之间存在域差、FAS 数据有限。域差受环境因素、拍照设备以及假体类型等因素的影响。与其它 CV 任务的数据集相比,FAS 的数据集则明显小得多。用有限数据去训练的模型很容易过拟合训练数据,自然而然就不能很好地推广到跨域中。 研究创新点作者为了解决上述挑战,提出了一个强大的跨域模型,该模型在跨域的性能与域内中的一样好。所提出的模型旨在学会利用训练数据中与人脸欺骗相关的重要视觉信息,并通过少量样本很好地适应到新的域。具体来说,作者引入了 ViT 作为跨域 FAS 的骨干网络。为了通过少量样本促进跨域适应,作者通过结合集成适配器模块和特征变换层来提出自适应的 transformer。这篇论文的主要贡献如下: (1)提出了具有集成适配器和特征变换的自适应 transformer,使用少量样本进行鲁棒的跨域 FAS 任务。 (2)在多个数据集上实现了最佳 FAS 性能,缩小了同域与跨域测试之间的差距。 (3)深入分析自适应 transformer,从 FAS 的角度展示了模型的可解释性。 方法论首先假设有??个来自不同域的数据集??以及 一个目标域数据集?,每个数据集都由真假人脸组成。少样本跨域学习旨在通过源域数据集??以及少量目标域样本 (如5个样本) 来学习一个分类模型,该模型可以很好地泛化到目标域 ?中。 为了实现这一目标,作者提出了一个基于 ViT 和自适应模块的少样本跨域学习框架。该框架由三部分组成,分别是:ViT、集成的适配器和特征转换层,下面两张图分别展示了作者提出的整体框架以及集成适配器。 ViT作者采用 ViT 作为骨干模块,用来解决 FAS 问题。遵循 ViT 训练的标准流程,作者对输入图片进行分割和缩放后,图片就转换成了展平的 2D patches。为了保留位置信息,作者将可学习的位置 embedding 添加到 patch embedding 中。此外,作者还使用多层感知器 (MLP) 头来输出分类结果,判断输入图像是真人脸还是假人脸。 在每次训练迭代中,作者都从 ?个源域数据集和少量的目标域数据中构建了正负样本数量平衡的 batch?,并使用交叉熵损失来约束模型收敛,公式如下, 与其他整体信息发挥重要作用的目标分类任务不同,作者提出的方法需要检测可能出现在图像中的局部欺骗线索,以解决 FAS 问题。以往的经验表明,基于 patch 的 FAS 方法可以提高算法性能,因为网络可以通过使用 patch 作为输入来提取更具辨别力的局部特征。然而,这些方法使用卷积神经网络来提取 patch 特征并独立预测每个 patch 的欺骗分数。此外,这些方法使用全局池化来融合最终预测的分数,这无法通过考虑 patch 之间的相关性来进行全局推理。相比之下,ViT 则通过全局自注意力机制来捕获不同 patch 之间的依赖关系。因此,ViT 可以独立检测局部 patch 与欺骗相关的线索,并在全局范围内累积,以便更好地进行欺骗预测。 集成适配器 (Ensemble Adapters)作者尝试使用 FAS 数据来微调骨干网络 (使用 ImageNet 预训练好的) 和分类器,尽管可以在源域上实现良好的性能,但即使训练损失接近收敛,模型在目标域数据集上的性能也会变得不稳定。作者将这种不稳定性归因于两个因素:1)使用较少的样本来微调大型模型时,灾难性的遗忘问题通常会导致训练不稳定。2)目标域与源域之间的域差较大,使得目标样本接近决策边界,具有较高的不确定性。补救措施是冻结大部分骨干网络参数并微调剩余的网络。然而,仅对骨干网络顶层进行微调的方法并不能解决这个问题。因此,作者建议使用集成适配器来获得稳定的跨域性能。 自适应模块 (Adaptive module)在自然语言处理中,adapterBERT 已被证明可以成功地将预训练的 BERT 模型转移到各种下游任务,而无需重新训练整个网络。因此作者引入了适配器层来缓解不稳定问题。适配器有一个bottleneck,其中包含与前馈层相关的少量参数。它首先将 n 维特征线性投影到较低的维度 m,随后接一个非线性激活函数 GELU,然后再投影回原来的维度 n。由于适配器还包含一个 skip-connection,如果投影头的参数被初始化为接近零,那么它几乎是一个恒等映射。两个自适应模块被插入到每个 Transformer 块中。在微调阶段,作者固定/冻结了原始的 Transformer 骨干网络权重并更新自适应模块的权重。由于有 skip-connection,适配器生成的表示与预训练模型的偏差较小,并缓解了灾难性的遗忘问题,从而提高了训练的稳定性。适配器还有助于调整预训练的 Transformer 块的特征分布以适应 FAS 数据,保持 Transformer 判别性表示能力的同时又拥有良好的泛化能力。 集成适配器和余弦相似度损失 (Ensemble adapters and cosine similarity loss)作者引入了集成适配器模块以获得更高的准确性并最大限度地缓解训练不稳定性问题。作者在每个 Transformer 块中插入两个集成适配器模块。集成适配器包含 K 个并行的适配器。具体来说,在每个集成适配器中,K 个适配器的输入为?h,集成适配器的输出则把 K 个适配器的输出聚合起来,随后再输入到下一层中。然而,简单地集成适配器输出,多个适配器学习重复信息,这不会提高特征的判别性。为了从多个适配器中学习不同的特征,作者使用余弦相似度损失来限制适配器的多个输出,使它们形成互补关系。具体来说,作者最小化适配器的每对输出之间的余弦距离。余弦损失强制适配器的输出彼此不同,并有助于学习不同的特征。假设输入图像有 N 个 tokens,特征维度为 D,计算沿特征维度的余弦距离,并求 N 个 tokens 的均值。余弦损失的公式如下, 特征转换层 (Feature-wise Transformation)作者的目标是学习一个模型,该模型使用源域数据集和目标域数据集的一小部分进行训练就可以很好地泛化到目标域中。由于源域和目标域的数据分布不一致并且在训练期间只使用了有限的目标域数据,模型容易过拟合到源域数据中。因此,作者在 Transformer 块中加了一个特征转换(FWT)层。首先从高斯分布中对仿射变换的缩放和偏置项进行采样, 其中,?和??为可学习的采样超参数,?表示每个 Transformer 的?activation map 的通道数。然后,作者通过将采样的仿射变换应用到? 层的中间特征,以计算调制特征,如下所示, 作者在每个 Transformer? 块中插入一个 FWT 层。FWT 层仅在训练时用作数据增强,而不在测试时使用。FWT 层用作特征级数据增强,以增加训练样本的多样性,从而显著减少过拟合并提高模型的稳定性和 FAS 性能。FWT 层还是对图像级数据增强的补充,作者同时应用这两者来帮助模型训练。 自适应的 Transformer (Adaptive Transformer)提出的自适应 Transformer 包括三个阶段:预训练、微调和测试。在预训练阶段,作者冻结了使用 ImageNet 预训练好的 ViT 权重,并使用二元交叉熵损失训练 MLP 头部。在微调阶段,作者将两个集成适配器模块和一个 FWT 层插入到每个 Transformer 块中,并使用交叉熵损失和余弦损失训练集成适配器和 FWT 层以及在预训练阶段冻结的权重,直到收敛。在测试阶段,作者移除 FWT 层并保留集成适配器以进行跨域分类。 实验实验设置数据集和测试协议作者使用了两种评估协议。在协议 1 中,作者提供了对四个基准数据集的评估:CASIA、Idiap Replay attack、MSUMFSD 和 Oulu-NPU。参考之前的研究,作者将每个数据集视为一个域,并应用留一法测试协议来评估跨域泛化性能。在协议 2 中,作者对更大规模的数据集进行了类似的跨域评估:CASIA-SURF、CASIA-CeFA 和 WMCA。与协议 1 中的数据集相比,协议 2 中的数据集具有更多的类型和更丰富的环境变化,因此在协议 2 的结果可以更好地反映模型性能。在这两个协议中,作者都将 CelebA-Spoof 作为补充训练数据,以增加训练样本的多样性,从而更好地学习欺骗线索。 实施细节输入图像被裁剪和缩放为 224 × 224 × 3 并分割成 16 × 16 的 patch 大小。作者使用 Adam 优化器,初始学习率为 1e-4,权重衰减为 1e-6。在训练期间,每个源域的 batch size 为 8。作者使用 ViT-Base 作为骨干网络,输出的 embedding 维度为 768,MLP 头包含两个维度为 512 和 2 的全连接层。适配器层的维度分别为 n = 768 和 m = 64。使用了 2 个集成适配器。作者首先在预训练阶段训练 MLP 头 (迭代 100 次),然后在微调阶段训练集成适配器和 FWT 层 (迭代 4000 次)。 评估指标作者使用三个指标来评估模型性能:HTER、AUC 和在固定 FPR 下的 TPR?(TPR@FPR=1%)。 实验结果在协议 1 和协议 2 的测试结果分别如下, SSDG:SOTA 方法,Single-side domain generalization for face anti-spoofing ViTF:带有 FWT 层的 ViT。 ViTA:带有简单适配器的 ViT。 ViTAF:带有简单适配器和 FWT 层的 ViT。 ViTAF*:带有集成适配器和 FWT 层的 ViT。 消融实验结果如下, 适配器的可视化结果如下, 更多的实验结果在论文的附录中,感兴趣的小伙伴可以去看看原文。 结论作者用少量样本研究了跨域的 FAS 任务。提出了带有集成适配器和特征转换的 ViT 以适应新的域。所提出的集成适配器显著促进了模型训练的稳定性。最后作者在多个数据集上进行的实验验证了提出的方法在少样本跨域 FAS 任务中实现了 SOTA。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 | -2024/12/28 2:50:32- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |
数据统计 |