摘要
在本文中,我们提出了一个新的大规模的脸部数据集,叫做VGGFace2。该数据集包含9131个个体的331万张图片,平均每个个体有362.6张图像。图像是从谷歌图像搜索上下载的,在姿势,年龄,光照,种族和职业(例如,演员,运动员,政客)方面非常多样。
数据集的收集有三个目标:(i)在有大量的个体的同时每个个体也要有大量的图像;(ii)涵盖大范围的姿态,年龄和种族(iii)最小化标签噪声。我们阐述了数据集是如何收集的,特别是为了确保个体对应图像的高准确率而进行的自动和手动的过滤步骤。
为了评估使用这个新的数据集的面部识别的表现,我们在VGGFace2、MS-Celeb-1M和它们的联合数据集上训练了ResNet-50(带和不带挤压和引用块)卷积神经网络,并表明在VGGFace2上的训练可以提高姿势和年龄的识别性能。最后,使用在这些数据集上训练的模型,我们在IJB数据集上展示了最先进的性能表现,大大超过之前的最佳表现。数据集和模型公开可获取。(http://www.robots.ox.ac.uk/∼vgg/data/vgg face2/)
关键词:脸部数据集;脸部识别;卷积神经网络
1.引言
随着深度卷积神经网络(cnn)的快速发展,为了满足这些模型对数据的饥渴,最近在收集大规模数据集方面做了很多努力。总的来说,最近的数据集(见表1)探讨了类别内部和类别之间变化的重要性。
前者侧重于深度(一个个体的许多图像),后者侧重于广度(多个个体的有限的图像)。然而,这些数据集都不是专门为探索姿势和年龄变化而设计的。我们在这里通过设计一个数据集生成管道来解决这个问题,以明确地收集人脸的各种姿势、年龄、光照和种族变化的图像。
我们做了一下四点贡献:首先,我们收集了一个新的大规模的数据集VGGFace2,公开发表。它包括超过9000个个体,每个个体有80-800张图片,共计超过300万张图像;第二,提出了一个数据生成流程,鼓励每个个体姿势和年龄方面的多样性,也涉及多阶段的自动和手动的过滤来确保标签噪声的最小化;第三,为测试集提供模板标注,明确探索姿态和年龄识别性能;最后,我们表明在新数据集上训练的cnn的性能大大超过了IJB基准数据集上的最新性能。特别地,我们对最近的挤压和激励网络进行了实验,并研究了首先在具有宽度的数据集上进行预训练,然后在VGGFace2上进行微调的好处。
本文的其余部分组织如下:我们在第二节中回顾了以前的数据集,并在表1中对现有的公共数据集进行了总结。第三节概述了新数据集,并描述了基于姿势和年龄识别的模板注释。第四节描述了数据集收集过程。第五节报告了几种不同架构在IJB-A[13]、IJB-B[23]和IJB-C[14]基准测试上的最新性能。
2.数据集回顾
在本节中,我们将简要回顾最近出现的主要“真实环境”数据集。2007年,真实人脸标记(LFW)数据集发布,包含5749个身份和13000张图像。
CelebFaces+数据集于2014年发布有202,599张10,177名名人的照片。CASIA-WebFace数据集于同年发布,其中包含10575人的494,414张图像。2015年发布的VGGFace数据集拥有260万张图像,覆盖2,622人,使其成为最大的公开数据集之一。经过整理的版本中,标签噪音被人类注释者去除,有80万张图像,每个身份大约有305张图像。CASIA-WebFace和VGGFace数据集仅用于训练。
MegaFace 数据集 于 2016 年发布,旨在评估在人脸库中包含多达一百万张干扰图像的情况下,人脸识别方法的性能。它包含470万张图片672,057个个体作为训练集。然而,平均每个身份只有7张图像,这使得它在每个个体的面部变化方面受到限制。为了研究姿势和年龄变化对人脸识别的影响,MegaFace挑战使用FaceScrub子集(包含来自80个身份的4000张图像)和FG-NET子集(包含来自82个身份的975张图像)进行评估。
微软于2016年发布了大型MS-Celeb-1m数据集,其中包含来自10万名名人的1000万张图片用来训练和测试。这是一个非常有用的数据集,我们在本文中使用它进行预训练。然而,它有两个局限性:(i)虽然它拥有最多的训练图像,但由于平均每人81张图像,因此在一定程度上限制了身份内的变化;(ii)训练集中的图像是直接从搜索引擎中获取的,没有经过人工过滤,因此存在标签噪声。IARPA Janus Benchmark-A (IJB-A) ,Benchmark-B (IJB-B)和Benchmark-C (IJB-C)数据集,作为图像和视频中人脸检测、识别和聚类的评估基准(仅限测试)。
与上述面向基于图像的人脸识别的数据集不同,Youtube face (YTF)和UMDFaces-Videos数据集旨在识别无约束视频中的人脸。YTF包含1595个个体和3,425个视频,而UMDFaces- videos更大,有3,107个身份和22,075个视频(这些身份是UMDFaces中的子集)。
除了这些公共数据集,Facebook和b谷歌还有大量的内部数据集。例如,Facebook使用超过1000万受试者的5亿张图像训练了一个人脸识别模型。谷歌的人脸识别模型使用2亿张图像进行训练800万个身份。
3.VGGFace2概览
3.1 数据统计
VGGFace2数据集包含331万张来自9131名来自不同种族的名人,例如:它包含了比VGGFace更多的中国和印度面孔(尽管如此,种族平衡仍然受到名人和公众人物分布的限制),以及职业(例如,政治家和运动员)。这些图像是从 Google 图片搜索中下载的,在姿态、年龄、光照和背景等方面有很大的变化。数据集大致是性别平衡的,男性占59.3%,每个身份的图像在80到843之间变化,平均有362.6张图像。它包括人脸周围经过人类验证的边界框,以及[27]模型预测的五个基准关键点。此外,姿态(旋角、俯仰和转动)和表观年龄信息是通过我们预训练的姿态与年龄分类器估算的(姿态、年龄统计信息及示例图像见图 1)。
数据集被分成两部分:一部分用于训练,有8631个类,另一部分用于评估(测试),有500个类。
3.2 姿势和年龄的标注
VGGFace2提供了标注,可以对不同姿势下的人脸匹配和不同年龄下的人脸匹配两种场景进行评估。
**姿势模板。**这里的模板由来自同一个体的五张脸组成,姿势一致。这个姿势可以是正面,四分之三或侧面视图。对于评估集300个个体的子集,为每个姿态视图提供两个模板(每个模板5张图像)。因此总共有1.8K的模板(30032=1800)和9K(18005=9000)的图像。图2(左)显示了一个示例。
年龄模板 此处的模板由同一被试的五张人脸组成,其表观年龄要么低于 34 岁(视为“年轻”),要么为 34 岁及以上(视为“成熟”)。这些是由来自评估集中的100名受试者的子集提供的,每个年龄阶段有两个模板,因此,有400个模板(1002*2),总共有2K图像。示例如图2所示(右)
4.数据集收集
在本节中,我们描述了数据集收集过程,包括:如何获得候选身份列表;如何收集候选图像;以及如何自动和手动清理数据集。表二总结了这一过程。
4.1步骤1:获取然后选定一个姓名列表
我们使用的策略与[17]提出的类似。第一阶段是找到尽可能多的具有足够独特的图像集的主题,例如,名人和公众人物(如演员,政治家和运动员)。最初的50万公众人物名单是从Freebase知识图谱中获得的。
然后使用注释团队从候选列表中删除没有足够区分度图片的个体。为此,对于500K个名称中的每个名称,使用谷歌Image Search下载100张图像,并指示人类注释员保留100张图像中大约90%或更多属于单个身份的主题。这将删除没有足够图像或谷歌Image Search为单个名称返回多个人员的候选对象。通过这种方式,我们就把候选名单减少到9244个。种族和亲属关系等属性信息是从DBPedia获得的。
4.2步骤2:获取每个个体的图像
我们在 Google 图片搜索中查询每个被试,并下载 1000 张图像。为了获得具有较大姿态和年龄变化的图像,我们在每个名字后附加关键词“sideview”(侧面)和“very young”(非常年轻),并为每个关键词下载 200 张图像。这样每个身份共获得 1400 张图像。
4.3步骤3:面部检测
人脸检测使用[27]提供的模型。我们使用该工作中推荐的超参数来支持精度和召回率之间的良好权衡。然后将人脸边界框扩展0.3倍以包含整个头部。此外,五个面部关键点由同一模型预测。
4.4步骤4:通过分类器自动过滤
这一阶段的目的是自动去除每个身份的异常面孔。这是通过学习一个分类器来识别人脸,并去除低于分类分数的可能错误的人脸来实现的。为此,1-vs-rest分类器被训练来区分9244例。具体来说,每个身份的前100个检索图像中的人脸被用作正面,所有其他身份的前100个图像被用作负面用于训练。人脸描述符特征由VGGFace模型获得。然后,使用训练模型的分数(0到1之间)对每个主题从最可能到最不可能的图像进行排序。通过手动检查随机500个受试者的图像,我们选择0.5的阈值并删除低于此值的任何面孔。
4.5步骤5:去重
由于在不同的互联网位置找到相同的图像,下载的图像也包含完全或接近重复的图像,或者图像仅在色彩平衡或JPEG伪影方面略有不同。为缓解这一问题,我们通过对第4阶段剩余的所有图像的 VLAD 描述符进行聚类,并在每个聚类中仅保留一张图像,从而去除重复图像。
4.6步骤6:最终的自动和手动过滤
在这一点上,两种类型的错误可能仍然存在:第一,一些类仍然有异常值(即不属于该人的图像);其次,一些类包含不止一个人的混合面孔,或者它们与数据集中的另一个类重叠。这个阶段通过混合使用手动和自动算法来解决这两种类型的错误。
检测重叠的对象被试之间可能存在重叠。例如,候选列表中的 “Will I Am” 和 “William James Adams” 实际上指的是同一个人。为了检测每个类别中的混淆情况,我们将每个类别的数据随机分成两半:一半用于训练,另一半用于测试。然后,我们训练一个 ResNet-50模型,并通过计算测试样本的 top-1 错误率生成混淆矩阵。通过这种方式,我们发现有 20 个被试与其他人混淆。在这一阶段,我们移除了 19 个含有噪声的类别。此外,我们还移除了 94 个样本数量少于 80 张图像的被试,最终得到 9131 个身份的列表。
删除对象的异常图像这一部分人工参与的筛选工作的目的是为了实现超过 96% 的纯净度。我们发现,对于某些被试,第 4 阶段中分类器评分非常高的图像也可能是噪声。这种情况通常出现在下载的图像中包含情侣或经常一起公开露面的乐队成员时。在这种情况下,用这些混合样本在第 4 阶段训练的分类器往往会失效。
我们基于当前数据集重新训练模型,并根据每个身份的分类器得分将图像分为三个集合:H(高分组,即得分范围为 [1, 0.95])、I(中等分组,即得分范围为 (0.95, 0.8])和 L(低分组,即得分范围为 (0.8, 0.5])。人工标注人员根据这些得分对每个被试的图像进行清理,其具体操作取决于高分组 H 是否存在噪声。如果 H 集合中包含多个不同的人(即在一个身份文件夹中出现多个身份的图像),那么得分更低的 I 和 L 集合无疑也会包含噪声,因此这三个集合都需要人工清理。相反,如果 H 集合是干净的,那么只对得分最低、噪声最多的 L 集合进行清理。在清理完成后,我们使用清理后的 H 和 L 集合重新训练一个新模型,然后利用该模型对 I 集合(中等分数,噪声程度中等)进行清理。通过这种方式,在不需要人工检查每一张图像的前提下,就能实现极低的标签噪声。
4.7姿态和年龄标注
我们训练了两个网络来获取数据集中的姿态和年龄信息。为了获得头部姿态(滚转角、俯仰角、旋转角),我们在 CASIA-WebFace 数据集上训练了一个五分类的 ResNet-50 模型。然后,使用该训练好的模型对数据集中所有图像的姿态进行预测。类似地,为了估计表观年龄,我们在 IMDB-WIKI - 500k+ 数据集上训练了一个八分类的 ResNet-50模型。之后,通过该模型对人脸的年龄进行预测。
5. 实验
在本节中,我们通过一系列基准实验评估 VGGFace2 数据集的质量。我们报告在 VGGFace2 测试集上的结果,并在公开基准数据集 IJB 系列 [13]、[14]、[23] 上进行评估。我们的训练数据集中的被试与这些基准数据集中的被试没有重叠。在训练网络时,我们还移除了 MS-Celeb-1M 与这两个基准数据集之间的重叠部分。
5.1 实验设置
架构。 ResNet-50 和 SE-ResNet-50(简称 SENet)被用作比较不同训练数据集的主干架构。Squeeze-and-Excitation(SE)模块通过显式建模通道之间的关系,自适应地重新校准各通道的特征响应。它可以集成到诸如 ResNet 等现代架构中,并提升其表征能力。这一点已在物体和场景分类任务中得到验证,其中一个采用 Squeeze-and-Excitation 网络的模型在 ILSVRC 2017 图像分类竞赛中获得了冠军。
下面的实验是在四种设置下进行的:(a)从零开始学习网络VGGFace[17](简称VF);(b)网络在MS-Celeb-1M(简称MS1M)[7]上从零开始学习;©在VGGFace2(简称VF2)上从零开始学习网络;(d)网络首先在MS1M上进行预训练,然后在VGGFace2(简称VF2 ft)上进行微调。
相似度计算。在所有实验中(即验证和识别任务中),我们都需要计算被试模板之间的相似度。一个模板由一个单一向量表示,该向量是通过聚合模板集合中每张人脸的特征描述符计算得到的。在第 V-B 节中,模板向量是通过对图像的人脸特征描述符进行平均得到的,并使用 SVM 分类器进行身份识别。在第 V-C 和 V-D 节中,针对 IJB-A 和 IJB-B 数据集(其中的模板可能同时包含静态图像和视频帧),我们首先通过对每个媒体(即图像或视频帧)中的人脸特征描述符进行平均,计算出媒体向量。然后,再通过对该模板中的所有媒体向量进行平均,生成模板向量,并对其进行 L2 归一化。最后,使用余弦相似度来表示两个模板之间的相似性。
人脸特征描述符的提取过程如下:首先,将人脸的扩展边界框调整大小,使较短的一边为 256 像素;然后,从人脸图像中截取中心的 224 × 224 区域,作为网络的输入。接着,从靠近分类器层的那一层提取人脸特征描述符。这样得到的是一个 2048 维的特征向量,随后对其进行 L2 归一化处理。
训练实施细节所有网络均采用 softmax 损失函数进行分类训练。训练过程中,将人脸的扩展边界框调整大小,使较短边为 256 像素,然后从每个样本中随机裁剪出一个 224×224 像素的区域。对每个像素,还会从其各通道的值中减去该通道的均值。为了减少对彩色图像的过拟合,以 20% 的概率使用了单色增强(monochrome augmentation)。采用随机梯度下降(SGD)进行训练,使用大小为 256 的小批量(mini-batch),并在每个批次中采用均衡采样策略,以应对训练数据分布不均的问题。
对于从头训练的模型,初始学习率设置为 0.1,当误差进入平台期时,学习率会以 10 的因子进行两次下降。模型的权重初始化方式参考文献 [8]。对于模型微调(fine-tuning),学习率从 0.005 开始,逐步下降至 0.001。
5.2 在新数据集上的实验
在本节中,我们将评估在V-A节和VGGFace2测试集中描述的三个数据集上从头开始训练的ResNet-50。我们测试了姿态和年龄的识别性能和相似性,并验证了VGGFace2处理姿态和年龄变化的能力。
面部识别该场景旨在预测给定测试图像中的人脸属于谁。具体来说,对于评估集中的500个被试,每个被试随机选取 50 张图像作为测试集,其余图像作为训练集。然后,使用这些训练集图像为每个被试训练一个“一对多”的 SVM 分类器。随后,使用 Top-1 分类错误率来评估这些分类器在测试图像上的表现。如表 III 所示,使用 VGGFace2 训练的模型在性能上相比使用 VGGFace 训练的模型有显著提升。这表明在 VGGFace2 训练数据集中增加数据多样性(例如,被试数量、姿态和年龄的变化)带来了益处。更重要的是,尽管 MS1M 数据集中包含的被试数量是 VGGFace2 的十倍、图像数量是其三倍,但使用 VGGFace2 训练的模型仍取得了更好的结果,这进一步证明了 VGGFace2 数据集的高质量。特别是,VGGFace2 的极低 Top-1 错误率表明该数据集中的标签噪声非常少——这也是我们设计该数据集的主要目标之一。
跨姿态测试这个测试的目的是评估模板在三个姿态视图中的匹配程度:正面视图、四分之三视图和侧面视图。如III-B节所述,评估集中的300名被试被标注了姿态模板,每个受试者有6个模板:正面、四分之三视图和侧面视图各2个模板。
将这6个模板分成两组,每组一个姿态,在两组之间构造一个3 × 3的相似矩阵。图4显示了从正面到侧面视角的余弦相似度的两个示例。
表 IV 对 300 个被试的相似度矩阵取平均后进行了比较。我们可以观察到:(i)三个模型在匹配相似姿态时表现更好,例如正脸对正脸、三分之三侧脸对三分之三侧脸,以及侧脸对侧脸;(ii)在进行不同姿态之间的匹配时,例如正脸对三分之三侧脸、正脸对侧脸,性能会下降,表明跨姿态的人脸识别问题更具挑战性。
图 3 展示了相似度得分的直方图。可以明显看出,使用 VGGFace2 训练的模型在得分分布上偏向右侧,相较于 MS1M 和 VGGFace 训练的模型。这清楚地表明,在一个具有更大姿态变化的数据集上训练模型所带来的优势。
跨年龄测试该测试旨在评估模板在人脸年龄变化下的匹配效果,涵盖两个年龄段:年轻和成熟。如第 III-B 节所述,评估集中有 100 个被试被标注了年龄模板,每个被试包含四个模板:年轻脸和成熟脸各两个。
对于每个被试,都会计算一个 2 × 2 的相似度矩阵,其中每个元素表示两个模板之间的余弦相似度。图 6 展示了两个年轻模板与成熟模板之间的示例及其相似度得分。
表 V 比较了在不同模型下,100 个被试的相似度矩阵的平均结果。对于所有三个模型来说,在匹配年轻与成熟人脸之间时,性能都会出现明显下降,这表明“年轻-成熟”匹配比“年轻-年轻”或“成熟-成熟”的匹配要困难得多。此外,“年轻-年轻”的匹配也比“成熟-成熟”的匹配更具挑战性。图 5 展示了“年轻-成熟”模板相似度得分的直方图。
讨论在姿态与年龄评估协议中,使用 VGGFace2 训练的模型始终获得最高的相似度得分,而使用 MS1M 数据集训练的模型得分最低。这可以解释为:MS1M 数据集的设计更侧重于类别间的多样性(inter-class diversity),这在面对不同姿态和年龄的匹配任务时会削弱性能。这也说明了 VGGFace2 的价值在于其更高的类别内多样性(intra-class diversity),能够覆盖更大的姿态和年龄变化范围,从而提升了模型在跨姿态和跨年龄识别中的表现。
图 7 展示了使用在 VGGFace2 上训练的 ResNet 模型对正脸到侧脸模板匹配结果进行排序后得分最高的前三组和最低的后三组匹配样例。我们可以观察到,当除了姿态以外的变化较小时(如表情一致、图像清晰),模型会给出较高的相似度得分;而当存在诸如表情变化大或图像分辨率较低等其他干扰因素时,模型的相似度得分会明显降低。
图 8 展示了使用在 VGGFace2 上训练的 ResNet 模型对“年轻-成熟”模板匹配结果进行排序后得分最高的前三组和最低的后三组样例。可以看出,当“年轻-成熟”模板之间存在姿态差异或遮挡等变化时,模型会给出较低的相似度得分。
5.3 在IJB-A上的实验
在本节中,我们对比了在不同数据集上训练的模型在公开的 IARPA Janus Benchmark A(IJB-A 数据集) 上的性能表现。
IJB-A 数据集包含来自 500 名被试的 5712 张图像和 2085 段视频,每名被试平均有 11.4 张图像和 4.2 段视频。所有图像和视频均采集自非受控环境,呈现出在表情和图像质量方面的巨大变化。作为预处理步骤,我们使用 MTCNN 进行人脸检测,以在训练和评估之间保持一致的裁剪效果。
IJB-A 提供了包含十个划分的评估,以及两个标准测试协议:1:1 人脸验证和 1:N 人脸识别。在这些测试中,我们直接从模型中提取测试集的特征,并使用余弦相似度进行评估。在验证任务中,性能通过真阳性率(TAR)与假阳性率(FAR)的关系来报告,即ROC 曲线。在识别任务中,性能通过真正识别率(TPIR)与假正识别率(FPIR)的关系(相当于决策错误权衡曲线,DET 曲线)以及 Rank-N(即累积匹配特征曲线,CMC 曲线)来报告。表 VI 和图 9 展示了相关的对比结果。
**训练集的效果。**我们首先基于相同的架构 ResNet-50(见表 VI)研究不同训练集的影响,并从从头训练的网络开始分析。可以观察到,使用 VGGFace2 训练的模型相比使用 VGGFace 训练的模型性能有显著提升,尽管 VGGFace 的图像规模相近(260 万张),但其身份数量较少,姿态与年龄变化较小,且标签噪声更多。
此外,VGGFace2 模型的性能也明显优于 MS1M 模型,尽管后者的身份数量是 VGGFace2 的 10 倍。特别是在验证任务中,当 FAR=0.001 时,VGGFace2 相较于 MS1M 提高了约 4.4%;在识别任务中,当 FPIR=0.01 时提升约 3.7%,在 Rank-1 上提升约 1.5%。
与已有工作的结果相比,基于 VGGFace2 训练的模型在所有评估指标上均优于此前报告的结果(据我们所知,是在 IJB-A 的 1:1 验证和 1:N 识别协议上最好的结果),这进一步证明了 VGGFace2 数据集的优势。此外,通过先使用 MS1M 进行预训练,再使用 VGGFace2 进行微调(即 “VGGFace2 ft”)还可以进一步提升模型的泛化能力,尽管提升幅度较小(0.908 对比 0.895)。
许多现有的数据集都是基于假设更广泛的数据集(更多身份的优势来构建的,其中庞大的个体数量会增加模型训练的难度。相比之下,VGGFace2同时考虑了广度(受试者数量)和深度(每个受试者的样本数量)两个方面,保证丰富的内部变异和内部多样性。
架构的影响接下来我们研究在 VGGFace2 上训练的不同网络架构的影响(见表 VI)。对比从零开始训练的 ResNet-50 和 SENet 可发现,SENet 在验证和识别任务中始终表现出更优的性能。更重要的是,从零开始训练的 SENet 能够达到与经过微调的 ResNet-50(即先在 MS1M 上预训练)相当的结果,这表明我们数据集的多样性可以通过更先进的网络架构进一步挖掘。此外,若结合使用 VGGFace2 和 MS1M 两个数据集进行训练,SENet 的性能还能进一步提升,从而充分利用两个数据集各自的优势。
5.4 在IJB-B上的实验
IJB-B 数据集是 IJB-A 的扩展版本,包含 1845 名被试,21,800 张静态图像(其中 11,754 张为人脸图像,10,044 张为非人脸图像),以及来自 7,011 段视频的 55,000 帧图像。我们在两个标准协议上对模型进行评估:1:1 验证协议(匹配混合媒体探针与两个图库中的图像)和 1:N 识别协议(在两个图库中进行 1:N 混合媒体探针匹配)。
我们观察到的趋势与 IJB-A 的评估结果类似。在不同训练集之间的比较中(见表 VII 和图 10),使用 VGGFace2 训练的模型明显优于使用 MS1M 训练的模型,而将这两个数据集的优势结合起来,还可以进一步提升性能。此外,SENet 相较于 ResNet-50 在验证和识别任务中均表现出明显的优势,无论是从零开始训练还是进行微调的设定下均是如此。我们还与其他研究者在该基准数据集上报告的结果进行了对比(见表 VII),在所有评估指标上都取得了显著提升。
5.5 在IJB-C上的实验
IJBC 数据集是对 IJB-B 的进一步扩展,包含 3531 名被试,31,300 张静态图像以及来自 11,779 段视频的 117,500 帧图像。我们在两个标准协议上对模型进行评估:1:1 验证协议和 1:N 识别协议。结果如表 VIII 和图 11 所示。与文献 [14] 中报告的结果相比,我们在所有评估指标上都取得了显著提升。
6.结论
在这项工作中,我们提出了一个管道来收集高质量的数据集,VGGFace2,具有广泛的姿势和年龄。此外,我们证明了深度模型(ResNet-50和SENet)在VGGFace2上训练后,在IJB-A, IJB-B和IJBC基准上实现了最先进的性能