首次!用合成人脸数据集训练的识别模型,性能高于真实数据集

机器心科技身 2024-09-14 16:38:32

AIxiv专栏是机器之心发布学术、技术内容的栏目。过去数年,机器之心AIxiv专栏接收报道了2000多篇内容,覆盖全球各大高校与企业的顶级实验室,有效促进了学术交流与传播。如果您有优秀的工作想要分享,欢迎投稿或者联系报道。投稿邮箱:liyazhou@jiqizhixin.com;zhaoyunfeng@jiqizhixin.com

研究动机

一个高质量的人脸识别训练集要求身份 (ID) 有高的分离度(Inter-class separability)和类内的变化度(Intra-class variation)。然而现有的方法普遍存在两个缺点:

1)实现了大的 intra-class variation,但是 inter-class separability 很低;

2)实现了较高的 inter-class separability,但是 intra-class variation 需要用额外的模型来提高。

这两点要么使得在合成的人脸数据集训练的模型性能表现不佳,要么难以合成大型数据集。

因此,我们通过让提出的 Vec2Face 模型学习如何将特征向量转化为对应的图片,并且在生成时对随机采样的向量加以约束,来实现高质量训练集的生成。这一方法不但可以轻松控制 inter-class separability 和 intra-class variation,而且无需额外的模型进行辅助。此外我们还提出了 Attribute Operation algorithm 来定向的生成人脸属性,这一优势也可以被用来补足各类人脸任务的数据缺陷。

论文链接: https://arxiv.org/abs/2409.02979代码链接: https://github.com/HaiyuWu/Vec2FaceDemo 链接: https://huggingface.co/spaces/BooBooWu/Vec2Face

本文的亮点可以归纳为:

此工作提出的 Vec2Face 模型首次实现了从特征向量生成图片的功能,并且向量之间的关系,如相似度,和向量包含的信息,如 ID 和人脸属性,在生成的图片上也会得到继承。Vec2Face 可以无限生成不同身份 (synthetic ID) 的图像!之前的生成式模型 (GAN, Diffusion model, Stable diffusion model) 最多只能生成 8 万个不同身份的图像 [1]。本文利用 Vec2Face 生成了来自于 300K 个人的 15M 张图片。用 Vec2Face 生成的 HSFace10k 训练的模型,首次在人脸识别的年龄测试集 (CALFW) 上实现了性能超越同尺度的真实数据集 (CASIA-WebFace [2])。另外,当合成数据集的 ID 数量大于 100k 后,训练的人脸识别模型在毛发测试集 (Hadrian) 和曝光度测试集 (Eclipse) 上也同样超越了 CASIA-WebFace。

主要实验

性能对比

我们在 5 个常用的人脸识别测试集 LFW [3]、CFP-FP [4]、AgeDB [5]、CALFW [6]、CPLFW [7] 上和现有的合成数据集进行了对比。

表一:对比用 Diffusion models,3D rendering,和 GAN 方法 (从上到下) 生成的合成数据集的性能。

第一:我们在生成的 0.5M 图片规模的训练集在上实现了 state-of-the-art 的平均精度(92%),并且在 CALFW 上超越了真实数据集 (CASIA-WebFace) 的精度。这证明了我们方法的有效性。第二:之前的最好的方法 Arc2Face [8] 使用了 Stable Diffusion V1.5 并且在 WebFace42M [9] 上进行微调,而我们的方法仅用了 1M 的数据进行训练。这足以证明我们方法的高效性和有效性。第三:HSFace 首次实现了 GAN 范式训练超过其他范式。

扩大数据集的有效性

因为 Vec2Face 可以无限生成不同的身份 (ID),所以我们对 Vec2Face 的 scalability 进行了测试。我们分别生成了 1M (20K ID),5M (100K ID),10M (200K ID) 和 15M (300K ID) 的数据集。在这之前最大的人脸合成训练集仅有 1.2M (60K ID)。

表二:测试 Vec2Face 在 scalability 上的表现。

从结果上看,当我们通过生成更多的 ID 来扩大数据集后,精度也随之提高,并且提高的趋势并未衰减!这证明 Vec2Face 能够有效的生成不同的身份。

计算资源对比

理论上来说,Arc2Face 也可以实现无限 ID 的生成并且扩大数据集。然而由于 SD 需要大量的计算资源来合成人脸,这在实际应用上并不高效。具体对比如下:

表三:对比 Arc2Face 和 Vec2Face 的模型大小,推理速度和 FID。对于 Arc2Face,我们使用 LCM-lora [10] 作为 scheduler 来生成图片。

对比结果显示,即使使用 4 步的 scheduler,Vec2Face 达到了 Arc2Face 的 311 倍同时保持了更高的与原图分布的相似度。

Vec2Face 的训练和生成方法

Vec2face 的训练

数据集:从 WebFace4M 中随机抽取的 5 万个人的图片。

生成

因为 Vec2Face 仅需输入特征向量(512-dim)来生成人脸图片并且能够保持 ID 和部分人脸属性的一致,所以仅需采样 ID vector 并确保 即可保证生成的数据集的 inter-class separability。至于 intra-class variation,我们仅需在 ID vector 加上轻微的扰动 就能够在身份一致的情况下实现图片的多样性。

然而,由于在训练集里的大部分图像的头部姿态都是朝前的(frontal),这使得增加随机扰动很难生成大幅度的头部姿态(profile)。因此,我们提出了 Attribute Operation(AttrOP)算法,通过梯度下降的方法调整 ID vector 里的数值来使得生成的人脸拥有特定的属性。

Eq.5:

其他实验

AttrOP 的影响

我们通过 AttrOP 来定向提高生成的人脸质量和对应的头部姿态的变化。这一方法能够有效的大幅提高最终模型的性能。另外,增加头部姿态的变化度的同时也提高了在年龄测试集上的表现,从而实现了对真实数据集性能的超越。

衡量现有合成数据集的身份分离度

身份分离度是衡量数据集质量的重要指标。此实验衡量了 Vec2Face 和其他现有合成数据集内身份的分离度。具体过程:1)我们通过使用人脸识别模型提取出数据集里图片的特征;2)将他们的图片特征取平均来计算出身份特征;3)计算身份与身份之间的相似度;4)我们统计了所有身份与其他身份相似度相似度小于 0.4 的个数,从而衡量分离度。结果显示,Vec2Face 能够实现和真实数据集 WebFace4M 相同的分离度。这一优势为数据集的质量提供了保障。

Noise 采样中 σ 对于精度的影响

在本文中,σ 的大小对于 noise 的采样起到了直接的影响,从而影响到人脸属性的变化程度。于是我们对它的大小做了消融实验。结果显示,当σ 过小时 (=0.3) 和 σ过大时 (0.3, 0.5, 0.9),性能出现了大幅下降。从生成的结果上来说,过小的 σ 无法提供足够的人脸属性变化从而降低模型的泛化能力。过大的 σ 无法保持身份的一致,这会使模型无法学习到好的表达。因此,选择合适的采样范围至关重要。

ID 分离度对于精度的影响 (Avg. ID sim 越大,分离度越小)

这个实验研究了身份分离度对于精度的影响。虽然身份分离度的重要性是共识,但是目前为止并未有工作来验证它的真实性。因此,我们控制了数据集种身份与身份之间的平均相似度来进行消融实验。结果显示,高的分离度会大幅降低最终识别模型的性能,而过低的分离度也无法持续对最终性能提供帮助。

在其他识别测试集上 HSFace 和 CASIA-WebFace 的性能对比

因为前文的 5 个测试集只有对头部姿态变化和年龄变化的测试,为了更广泛的对比真实数据集和 HSFace 在其他人脸属性变化上的表现,我们引入了 Hadrian (面部毛发),Eclipse (面部光照),SSLFW (相似外表),和 DoppelVer (分身)。在 Hadrian 和 Eclipse 上,我们通过扩大数据集的规模最终超越了真实数据集的性能。然而,在 SSLFW 和 DoppelVer 上,我们并未实现超越。这一表现引出了另一个哲学方面的思考:目前来说,身份 (ID) 是由相似度进行定义。然而对于双胞胎,分身,近亲等,他们之间的人脸相似度会非常高但是他们又是不同的身份。这就暴露出单纯的用相似度来定义身份的缺点。因此,如何更好的定义不同的身份对于未来的工作至关重要。

References

[1] DCFace: Synthetic Face Generation with Dual Condition Diffusion Model.

[2] Learning face representation from scratch.

[3] Labeled faces in the wild: A database for studying face recognition in unconstrained environments

[4] Frontal to profile face verification in the wild

[5] AgeDB: The First Manually Collected, In-the-Wild Age Database

[6] Cross-age lfw: A database for studying cross-age face recognition in unconstrained environments

[7] Cross-pose lfw: A database for studying cross-pose face recognition in unconstrained environments

[8] ArcFace: Additive Angular Margin Loss for Deep Face Recognition

[9] Webface260m: A benchmark for million-scale deep face recognition

[10] Lcm-lora: A universal stable-diffusion acceleration module

[11] The unreasonable effectiveness of deep features as a perceptual metric

[12] Image-to-image translation with conditional adversarial networks

[13] Scaling autoregressive models for content rich text-to-image generation.

0 阅读:0