【ICCV】AIGC时代下的SOTA人脸表征提取器TransFace,FaceChain团队出品

news2024/11/16 6:00:19

一、论文

本文介绍被计算机视觉顶级国际会议ICCV 2023接收的论文 "TransFace: Calibrating Transformer Training for Face Recognition from a Data-Centric Perspective"

论文链接:https://arxiv.org/abs/2308.10133

开源代码:https://anonymous.4open.science/r/ TransFace-294C

二、背景

1. Vision Transformer (ViT)

Vision Transformer (ViT) 已经在计算机视觉社区多项视觉任务上展现出其强大的表征能力和拟合能力。相比于卷积神经网络 Convolutional Neural Networks (CNNs),ViT缺少了归纳偏置,因此很容易过拟合小规模数据集上。在实际的应用中,ViT的训练通常需要大规模的数据集来做支撑,并配合相应的data augmentation技术,才能保证其有效地收敛。

2. 人脸识别

随着深度学习的发展,基于CNNs的人脸识别技术已经取得了巨大的成功。训练基于CNNs人脸识别模型的损失函数主要分为以下两种类型:(1)Metric-based loss functions, e.g., Triplet loss, Tuplet loss and Center loss. (2) Margin-based loss functions, e.g., ArcFace, CosFace, CurricularFace and AdaFace. 相比于Metric-based loss functions, Margin-based loss functions 能够鼓励模型执行更加高效的sample-to-class的比较,因此能够促进人脸识别模型取得更好的识别精度。其中,ArcFace成为业界训练人脸识别模型首选的损失函数。

现存的人脸识别模型几乎都基于CNNs来构建。考虑到ViT在各项视觉任务上都展现出了一流的性能(远超于CNNs的性能),并且人脸识别任务天然拥有着大规模的训练集,因此我们探索了ViT在人脸识别任务上的性能表现。我们意外地发现,ViT的性能跟CNNs的性能几乎不相上下。

本文旨在探索ViT在人脸识别任务上表现不佳的原因,并从data-centric的角度去提升ViT在人脸识别任务上的性能。

三、方法

1. Motivation

1.1 改进方向

我们发现ViT在人脸识别任务上表现不佳的原因是:ViT的预测很容易过拟合到人脸图像某几个patches上 (e.g., eyes, forehead and hair), 而忽略了一些包含重要人脸线索的patches (e.g., nose, mouth, ears and jaw). 在测试场景,一旦人脸上半部分被干扰 (e.g., a superstar wearing sunglasses or hat), ViT就容易做出错误的预测。我们将这个过拟合问题称作为 Patch-level overfitting issue.

1.2 数据增强

现存的有关ViT研究通过采用一些data augmentation技术,(e.g., Mixup, CutMix and Random Erasing),来缓解ViT过拟合问题。但这些Instance-level data augmentation技术并不适用于人脸识别任务,因为它们不可避免地破坏了人脸的结构信息和保真性,如下图所示。因此如何在充分保留人脸关键信息的基础上精准地解决Patch-level overfitting issue是值得深入研究的。

1.3 难样本挖掘

难样本挖掘技术(e.g., Focal loss, MV-Softmax, OHEM and ATk)在提升模型最终的精度中往往起到了重要的作用。现存的大部分难样本挖掘策略都是为CNNs设计的,它们通常采用instance-level indicators of the sample,(e.g., prediction probability, prediction loss and latent features),来挖掘难样本。然而,由于ViT的预测主要由几个patches所决定, 我们可以推断出其用于分类的global token将被几个local tokens所主导。因此,直接利用ViT的global token或者prediction information来挖掘难样本是一个有偏的行为,如下图所示。如何充分利用所有patches information来更精准地挖掘难样本是值得深入思考的。

2. Method

2.1 概览

针对上述问题,本文从data-centric角度出发,提出了基于ViT的人脸识别新框架TransFace,如下图所示。

2.2 Patch级数据增强

为精准地解决Patch-level overfittting issue, 本文提出了一个Patch-level Data augmentation策略DPAP, 其专为基于ViT的人脸识别框架所设计。

我们将人脸图像送入网络进行前向传播,DPAP首先利用SE Module筛选出对ViT预测影响最大的top-K dominant patches:

其次,对这些top-K dominant patches执行Fourier Transform, 并分别提取其幅度谱信息和相位谱信息:

为了在不破坏人脸结构信息和保真性的基础上构建多样化的训练样本,我们利用了一个类似于Mixup的机制来线性混合domaint patch与random patch的幅度谱信息:

其中,混合强度系数λ从均匀分布中采样 . 然后,我们将混合后的幅度谱信息与原始的相位谱信息重新组合并执行傅里叶逆变换,以此得到重建的new style patch:

最后,我们将扩增后的图像正式送入网络中执行有监督训练,并采用ArcFace loss作为基础分类损失:

2.3 基于熵的难样本挖掘

信息论已经表明信息熵可以用于衡量图像所包含信息量的丰富度。对于人脸图像来说,高质量的人脸图像(easy sample)通常包含了更丰富的信息(高信息熵),因此更容易被网络学习。而低质量的人脸图像(hard sample),例如一些模糊人脸、低质量人脸等,通常包含较少的有用信息(低信息熵),因此很难被网络所学习。

为了更精确地挖掘难样本,受信息熵启发,我们提出根据人脸样本local tokens所包含信息量的多少来衡量样本的困难性。由于在深度神经网络中,each local token都服从一个未知的复杂分布,因此直接计算each local token的信息熵是非常困难的。受Maximum Entropy Principle的启发,我们转而去估计each local token的信息熵的高斯上界:

其次,我们利用一个entropy-aware weight mechansim将each local token的信息熵聚合在一起,以此来自适应地为每个样本分配一个重要性权重:

最后,我们将这个重要性权重加权至ArcFace loss前面,以此来有效地鼓励模型在优化过程中重点关注信息量较少的困难样本:

在训练过程中,最小化将带来两个好处:

(i)最小化将鼓励模型从多样化的训练样本中更好地学习出人脸特征
(ii)最小化重要性权重,相当于最大化local tokens的总体信息,这将促进模型充分挖掘each face patch中所包含的人脸线索(e.g., nose, lip and jaw),并极大地提升each local token的表征能力。在一些极端情况下,即使人脸上半部分特征信息被破坏,模型也能充分利用剩余的人脸线索来做出稳定的预测。

四、实验及结果

1.1 数据集

我们分别采用MS1MV2 (5.8 Mimages, 85K identities)与Glint360K (17M images, 360K identities) 作为我们模型的训练集。并利用LFW, AgeDB-30, CFP-FP和IJB-C来作为benchmarks评估我们模型的识别性能。

1.2 小数据集实验

我们可以观察到,TransFace在这些easy benchmarks上的性能几乎达到了饱和。

1.3 大数据集实验

我们可以看到,原始ViT的性能跟ResNet-based ArcFace模型的性能不相上下。我们提出的TransFace极大地提升了ViT的在各项评估指标上性能。此外,相比于原始ViT,TransFace仅引入了较小的计算复杂度,而取得了明显的性能增益。

1.4 数据增强对比

相比于以前的data augmentation技术,我们提出的patch-level DPAP策略可以在充分保留人脸结构信息的基础上更精准地解决ViT所面临的Patch-level overfitting issue,因此也获得了更高的性能增益。

1.5 难样本挖掘对比

相比于以前专为CNNs所设计的难样本挖掘策略,我们为ViT所设计的EHSM可以更好地衡量样本的困难性并提升模型的识别性能。

1.6 难样本挖掘有效性

我们调查了训练过程中local token所包含的平均信息熵的变化趋势,发现当ViT收敛时,ESHM能够明显地提升each local token的信息量,这有效地提升了each local token的表征能力。

1.7 DPAP可视化

我们可视化了原始训练样本和DPAP(K=15)所扩增的训练样本。我们可以明显观察到dominant patch主要分布于人脸的hard, forehead and eyes周围,这也充分印证了patch-level overfitting issue的存在。DPAP被提出从dominant patch角度来扩增样本,有效地缓解ViT对dominant patch的过拟合,这也间接地鼓励了ViT充分利用其余人脸线索(e.g., nose, mouth, ears and jaw)来辅助最后的预测,提升了网络的泛化能力。

五、结论

本文提出了一种基于ViT的人脸识别新框架。我们并没有为ViT引入任何较大的结构改进,而是从data-centric角度提出了两个学习策略:DPAP和EHSM,这确保了两个策略的通用性和灵活性。一系列在popular face benchmarks上的实验结果表明了我们TransFace模型的优越性。

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

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

相关文章

在PyCharm中使用Jupyter Notebooks实现高效开发

大家好,在数据科学领域,Jupyter Notebooks已成为一种流行的工具,许多专业人士都在使用它来进行数据分析、机器学习等任务。有时,我们希望在更加强大、功能齐全的IDE环境中运行Jupyter笔记本,以提高工作效率和开发体验。…

GIT | 解决IDEA每次git拉取远程代码 default changelist 都会出现 .idea文件修改记录

问题描述: 每次我在拉取远程代码的时候,git都会默认将 .idea当中的文件(例如:compiler.xml or workspace.xml)都会莫名其妙的自动修改。 这里吐槽一下很离谱的一个现象,仔细看下修改的内容,最离…

【并查集】一种简单而强大高效的数据结构

目录 一、并查集原理 二、并查集实现 三、并查集应用 1. LeetCode并查集相关OJ题 2. 并查集的其他应用及总结 一、并查集原理 并查集(Disjoint Set)是一种用来管理元素分组和查找元素所属组别的数据结构。它主要支持两种操作:查找&…

第四篇【传奇开心果系列】Python的自动化办公库技术点案例示例:深度解读Pandas生物信息学领域应用

传奇开心果博文系列 系列博文目录Python的自动化办公库技术点案例示例系列 博文目录前言一、Pandas生物学数据操作应用介绍二、数据加载与清洗示例代码三、数据分析与统计示例代码四、数据可视化示例代码五、基因组数据分析示例代码六、蛋白质数据分析示例代码七、生物医学图像…

LabVIEW管道缺陷智能检测系统

LabVIEW管道缺陷智能检测系统 管道作为一种重要的输送手段,其安全运行状态对生产生活至关重要。然而,随着时间的推移和环境的影响,管道可能会出现老化、锈蚀、裂缝等多种缺陷,这些缺陷若不及时发现和处理,将严重威胁到…

阿珊比较Vue和React:两大前端框架的较量

🤍 前端开发工程师、技术日更博主、已过CET6 🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 🍚 蓝桥云课签约作者、上架课程《Vue.js 和 E…

linux下访问MySQL,检索数据库库表字段报错 Public Key Retrieval is not allowed(不允许公钥检索)

报错如下: 解决办法 在连接数据库的配置文件中加上&allowPublicKeyRetrievaltrue语句,如下: jdbc:mysql://localhost:3306?useUnicodetrue&zeroDateTimeBehaviorconvertToNull&autoReconnecttrue&characterEncodingutf-8&…

图片速览 BitNet: 1-bit LLM

输入数据 模型使用absmax 量化方法进行b比特量化,将输入量化到 [ − Q b , Q b ] ( Q b 2 b − 1 ) \left[-Q_{b},Q_{b}\right](Q_{b}2^{b-1}) [−Qb​,Qb​](Qb​2b−1) x ~ Q u a n t ( x ) C l i p ( x Q b γ , − Q b ϵ , Q b − ϵ ) , Clip ⁡ ( x , a , b ) ma…

代码随想录算法训练营第day9|28. 找出字符串中第一个匹配项的下标、459.重复的子字符串

a.28. 找出字符串中第一个匹配项的下标 题目链接 给你两个字符串 haystack 和 needle ,请你在 haystack 字符串中找出 needle 字符串的第一个匹配项的下标(下标从 0 开始)。如果 needle 不是 haystack 的一部分,则返回 -1 。 示…

小火星露谷管理器 如何禁用管理器下载?

错误操作 当你在N网点击下载时,你可能会点击左边第一个按钮进行下载,如图: 然后你可能会看到这样的一个提示: 很多用户看着这个提示误以为小火星露谷管理器禁用了N网的下载。 正确操作 N网网页上的按钮MOD MANAGER DOWNLOAD翻…

[PTA] 分解质因子

输入一个正整数n(1≤n≤1e15),编程将其分解成若干个质因子(素数因子)积的形式。 输入格式: 任意给定一个正整数n(1≤n≤1e15)。 输出格式: 将输入的正整数分解成若干个质因子积的形式&#…

Linux 之五:权限管理(文件权限和用户管理)

1. 文件权限 在Linux系统中,文件权限是一个非常基础且重要的安全机制。它决定了用户和用户组对文件或目录的访问控制级别。 每个文件或目录都有一个包含9个字符的权限模式,这些字符分为三组,每组三个字符,分别对应文件所有者的权限…

面向对象中类与对象

思考系统1000个对象逻辑结构 理解系统1000个对象物理结构 对象this 引用 类的静态变量和静态函数 静态变量和静态函数属于类本身,而不是类的实例。它们可以在不创建类的实例的情况下直接通过类名访问。静态变量在内存中只有一份拷贝,被所有实例共享&…

基于FPGA加速的bird-oid object算法实现

导语 今天继续康奈尔大学FPGA 课程ECE 5760的典型案例分享——基于FPGA加速的bird-oid object算法实现。 (更多其他案例请参考网站: Final Projects ECE 5760) 1. 项目概述 项目网址 ECE 5760 Final Project 模型说明 Bird-oid object …

关于esp8266的一些经验汇总,新手必看

说实话,esp8266的nodemcu 已经使用了2年多了,各种问题遇到过,就尝试各种解决,而现在回头来看真的是稀里糊涂的在用,当然这个问题也同样涉及到esp32. 因为最近打算自己打一块esp8266的板,之前打的比较多的是…

数据结构之单链表详解(C语言手撕)

​ 🎉个人名片:🐼作者简介:一名乐于分享在学习道路上收获的大二在校生 🙈个人主页🎉:GOTXX 🐼个人WeChat:ILXOXVJE 🐼本文由GOTXX原创,首发CSDN…

(五)关系数据库标准语言SQL

注:课堂讲义使用的数据库 5.1利用SQL语言建立数据库 5.1.1 create Database 5.1.2 create schema...authorization... 创建数据库和创建模式的区别: 数据库是架构的集合,架构是表的集合。但在MySQL中,他们使用的方式是相同的。 …

如何修改SAP标准代码

文章目录 1 Introduction2 Method2.1 Click Change2.2 Switch off Assistent 3 Summary 1 Introduction In the sap sometimes we need change the standard code . I.E. How to comment code ? 2 Method 2.1 Click Change 2.2 Switch off Assistent This is the result wh…

GAMMA电源维修高压直流电源ES30P-5W ES系列

美国Gamma高压电源维修型号:D-ES30R-10N-5W/M,LXR30-1N,XRM5N-100W,ES50P-10W/DDPM,ES60P-10W/DDPM,RR20-20P/DDPM,ES30P-10W,ES60P-10W DDPM,RR60-18P/220V,…

iStoreOS系统内安装HomeAssistant服务

iStoreOS系统内安装HomeAssistant服务 1. HomeAssistant服务 HomeAssistant是一款基于Python的开源智能家居系统,简称HA。 HomeAssistant可以方便地连接各种外部设备,如智能设备、摄像头、邮件、短消息和云服务等,其成熟的可连接组件有近千…