摘要
人脸聚类在利用大量未标记的人脸数据中起着至关重要的作用。最近,基于图的人脸聚类方法因其令人满意的性能而越来越受欢迎。然而,它们通常会遭受过多的内存消耗,尤其是在大规模图上,并且在推理中依赖经验阈值来确定样本之间的连通性,这限制了它们在各种现实世界场景中的应用。为了解决这些问题,在本文中,我们从成对的角度探索人脸聚类。具体来说,我们将人脸聚类任务制定为成对关系分类任务,避免了大规模图上的内存消耗学习。分类器可以直接确定样本之间的关系,并通过利用上下文信息得到增强。此外,为了进一步提高我们方法的效率,我们提出了一个秩加权密度来指导发送到分类器的对的选择。实验结果表明,我们的方法以最快的速度在几个公共聚类基准上实现了最先进的性能,并且与基于图形的聚类方法相比,在内存消耗方面具有很大的优势。
一、简介
如今,互联网上可以访问海量的人脸数据,从而推动了人脸分析技术的发展[1, 13]。然而,大规模未标记的人脸数据导致注释价格相当高,人工注释并不总是可靠的。因此,利用未标记的人脸数据引起了极大的兴趣。旨在为未标记的人脸图像分配伪标签,人脸聚类是一项基本的人脸分析任务,在人脸识别[22、23]和相册的数据集准备或清理等实际场景中具有广泛的应用管理[19]。
传统的聚类方法存在不切实际的假设,它们的性能可能对
超参数。例如,DBSCAN [2] 假设集群具有相同的密度,并且 K-Means [3] 的性能高度依赖于原始 k。最近,基于图的人脸聚类方法通过学习代表性嵌入而不做出过度简化的假设 [4, 5, 6],因其令人满意的性能而备受关注。但是,由于在大图上学习的成本高得惊人 [20, 26],计算成本和内存使用需求尤其在大规模人脸聚类场景中尤为突出。并且已经提出了一些工作来缓解这些问题。在 [7] 中,Yang 等人。设计了一个基于图卷积网络的置信度估计器来选择具有大置信度的节点,这减少了高度重叠的子图的数量并提高了效率。尽管置信度估计器仅包含一个单层,但在处理大规模图时仍然会出现内存不足的问题,这将在第 4 节中揭示。Guo 等人。 [8]通过定义一个密度感知图来利用集群级特征分布,通过避免在整个图上学习来减少内存消耗,但是当内存容量有限时,这种方法仍然可能落在大规模人脸聚类场景中。更重要的是,与之前基于图的聚类方法一样,要在推理阶段生成最终的聚类,它仍然需要手动设置阈值来确定样本之间的连通性。这些聚类方法的最终性能对经验阈值非常敏感,当阈值设置不当时可能会大幅下降,这限制了各种现实世界场景的泛化。
为了解决上述问题,在这项工作中,我们关注人脸聚类任务的基本问题,即样本的同质性。具体来说,我们从成对的角度探索了一种记忆友好且无阈值的人脸聚类方法,从而提高了效率和准确性。我们不是在图级别或集群级别上学习,而是在最低级别(即配对级别)处理人脸聚类,这大大减少了内存消耗。我们采用了一个简单而有效的分类器网络,分类器直接给出了一对样本的连接关系,这也使我们免于手动设置阈值。此外,受强调上下文信息的基于图学习的方法的启发,分类器在我们设计的加权邻域特征上进行训练,这为分类器和整体聚类任务带来了可观的性能提升。如图 1 所示,流行的基于图的方法依赖于经验阈值来确定样本之间的连接性,这些方法在学习了具有高内存消耗的可区分特征嵌入之后。相比之下,我们的方法可以直接给出成对关系,并在内存使用非常有限的情况下有效地生成最终集群。
此外,为了提高整个管道的效率,我们提出了等级加权密度。等级加权密度更加关注附近的邻居,这减轻了异常值在寻找更高密度邻居的过程中的影响。这种更精确的秩加权密度的引入不仅通过选择更少的对发送到分类器一个数量级来降低时间复杂度,而且还对我们方法的性能做出了进一步的贡献。
我们的主要贡献总结如下: (1) 与流行的基于图的方法不同,我们提出了一种基于成对分类的人脸聚类方法,该方法对内存更加友好且无阈值。 (2) 提出等级加权密度来指导发送到分类器的对选择,从而进一步提高效率和准确性。 (3) 我们的方法提高了公众脸聚类基准的性能-
在 MS-Celeb-1M 数据集上,Pairwise F 得分为 90.67,BCubed F 得分为 89.54,分别超过了以前公开的最先进方法 90.60 [8] 和 86.09 [7]。
以下第 2 节将对相关工作进行简要回顾。第 3 节详细介绍了我们提出的方法。实验结果和分析在第 4 节中介绍,我们最终在第 5 节中总结论文。
二、相关工作
人脸聚类的挑战主要来自现实世界中人脸表示的巨大变化[25]。大多数现有的基于图的聚类方法通过从亲和图中学习代表性特征来实现令人满意的性能,但依赖于经验阈值来最终决定两个样本是否应该属于同一类。因此,此类方法的性能受到手动设置的严重影响,并且在现实世界的人脸聚类场景中可能会严重下降。
人脸聚类中的成对关系预测。确定样本之间的成对关系是推理中人脸聚类任务的重要组成部分。詹等人。 [6] 聚合多视图信息并通过 MLP 分类器发现鲁棒对,最后设置一个经验阈值来确定两个样本之间的成对关系。王等人。 [4] 预测节点之间的链接概率并找到具有动态阈值的连接。杨等人。 [7]尽管引入了连通性估计器,但利用预定义的阈值来切断具有小相似性的边缘。郭等人。 [8] 提出了可学习的局部和远程特征来削弱对聚类阈值的敏感性,但仍然需要一个合适的阈值来决定最终的成对关系。与以前的方法不同,我们的方法侧重于利用稳健的模块来发现成对关系,并旨在摆脱经验阈值。这使我们的方法在现实世界的人脸聚类场景中更具通用性。
基于 GNN 的人脸聚类。最近关于人脸聚类任务的工作主要采用基于 GNN 的模型来学习代表性特征嵌入,并倾向于通过利用每个样本的“密度”[21、24] 或“置信度”[7] 来估计样本之间的相对顺序,导致最先进的表演。王等人。 [4] 利用图卷积网络 (GCN) 模型来查找枢轴节点与其邻居之间的连接。杨等人。 [5] 在 GCN 检测和分割模块中学习了集群。在 [7] 中,Yang 等人。提出了一种改进的基于 GCN 的方法来学习海量亲和图上的顶点置信度和局部子图上的边连通性。郭等人。 [8] 通过学习基于 GCN 的上下文感知特征嵌入来利用集群级特征分布。基于 GNN 的方法的成功主要在于学习上下文感知特征,其中非常强调邻域信息。然而,基于 GNN 的方法很容易导致计算成本高,因此无法在内存不足的情况下处理大规模的聚类场景。
在本文中,我们解决了流行的最先进方法中提出的内存消耗问题,并通过学习鲁棒的成对关系将人脸聚类方法从设置经验阈值中解放出来,并通过以下方式进一步提高准确性和效率引入秩加权密度。
3. 方法论
如上所述,当前基于 GNN 的人脸聚类算法可能非常消耗内存,并且依赖专家知识来设置适当的阈值来确定人脸之间的连接性。为了应对这些挑战,我们提出了一种基于成对分类的人脸聚类方法。我们将人脸聚类任务制定为人脸之间的分类任务,并训练一个分类器来直接确定两个人脸是否应该属于同一类。此外,为了更有效地生成人脸聚类,我们基于一种新的秩加权密度方式选择发送到分类器的人脸对,结果证明这种方式对异常值更不敏感。图 2 展示了我们提出的方法的概述。
3.1。基于成对的分类
给定一个人脸数据集 F = [f1, f2, ..., fN] ∈ RN×D,其中 N 是人脸图像的数量,D 是从经过训练的 CNN 中提取的特征的维度,人脸聚类是将人脸划分为不同集群的任务,其中同一集群中的人脸共享一个身份。许多流行
lar人脸聚类方法侧重于学习代表性嵌入,然后使用经验阈值来确定样本之间的连通性,这些阈值对人脸聚类的最终性能有很大影响,但严重依赖经验,并且在不同的数据集上差异很大。同时,大规模图(例如,节点数超过 1000 万)上的图学习可能非常消耗内存。为了解决这些问题,我们将学习从图级更改为对级。给定一对面孔,我们寻找的是一个二元分类器来直接给出这两个面孔之间的关系,即它们是否属于同一身份。
分类器的动机。基于图学习的方法中巨大的内存消耗是由数据集的巨大大小 N 造成的。但是我们不一定需要学习这么大规模的知识,而且人脸聚类实际上往往会分配带有伪标签的样本,所以我们在最小级别,pair-level 上解决人脸聚类任务,并训练一个分类器来预测是否两个样本应该属于同一类。以一对图像特征 f1, f2 作为输入,自然我们可以将两个特征向量连接起来形成一个新的特征向量发送到网络,我们只需要一个像多层感知器一样简单的网络( MLP)。人们还可以看到,我们的方法可以启发式地推广到其他类型的分类器。
受基于 GNN 的人脸聚类方法的启发,该方法利用上下文信息来帮助聚类人脸,以及样本很可能与其邻居共享身份的直觉,我们使用邻居特征来改进其特征。对于样本 xi,我们使用 k-NN 选择其前 k 个最近邻 xi1 , xi2 ,..., xik ,样本 xi 与其邻域之间的相似度 si1 , si2 ,..., sik 可以计算为内积的两个特点。我们不是简单的求和,而是应用相似性作为权重来计算样本的加权邻域特征:
其中 j = 0 表示样本本身的特征,si0 设置为 1。这实际上使类内特征更紧凑,类间样本更可分离。然而,考虑到样本分布在特征空间中不同类的边界附近,对邻居的过度关注可能会给分类带来错误,因此我们将原始特征和加权邻居特征连接起来形成组合特征,对特征最终确定为:
与基于图的方法相比,通过在pair-level上学习,在训练和推理阶段的内存使用量都大大减少了,我们可以灵活地改变batch size以适应可用的内存容量。训练集制定。为方便起见,我们将具有相同类的对定义为正对,将具有不同类的对定义为负对。为了制定训练集,对于每个人脸,我们收集同一类的人脸集合,并将所有这些集合作为正样本。对于负样本,我们使用 k-NN 来查找人脸的前 k 个最近邻居。然后我们选择具有不同类别的邻居作为负样本,它们自然是硬负样本,因为它们在特征空间中足够接近但属于不同的类别。我们改变 k 值,直到负样本的数量几乎等于训练集中的正样本。
3.2.秩加权密度
在推理阶段预测所有对的关系非常耗时,因为一个大小为 N 的测试集会导致一个大小为 N2 的测试对集,而如此大的测试对集的推理结果将导致不充分在广度优先搜索(BFS)过程中获得最终的集群。为了提高聚类管道的效率,我们使用密度来选择合适的对,从而减少发送到分类器的对数。
直观地说,在一个簇中,边界样本彼此之间可能不太相似,但质心样本很可能与几乎所有样本相似。所以我们尝试将样本与质心样本配对。样本的原始“密度”[2, 24, 8] 可以衡量样本成为聚类中心的可能性或样本与聚类中心的接近程度,并定义为最近的前 k 个相似度之和样本与目标样本。前面已经介绍了相似度的计算。例如,给定一个样本,可以计算其邻居与自身的相似度,样本 xi 的密度 di 定义为:
其中 k 是邻居的数量。
然而,由于异常值的存在导致
与另一个样本相比,样本可能会获得更高的密度,但距离聚类中心更远,原始密度可能会导致较低的密度顺序并生成不合适的对。在密集簇分布中,异常值对样本密度的影响更大。为了抑制异常值的不利影响,考虑到它们通常是大多数样本的十个相对较远的邻居,我们以这种方式更新密度:
其中 f(j) 是一个单调递减函数,这表明更近的邻居在计算密度时应该权重更大。当我们更新的秩加权密度与原始密度不一致时,例如,与样本 xj 相比,样本 xi 具有更高的更新密度,而原始密度较低,这是因为与目标样本 xj 不接近的样本被给予较少尽管它们与 xj 有很高的相似性,但仍引起注意。图 3 (a) 说明了我们更新后的密度如何优于原始密度。在原始密度中,虽然 xi 往往处于更密集的情况并且更可能靠近聚类中心,但异常值有助于 xj 获得更高的密度,从而导致样本之间的聚类中心偏移。我们在图 3 (b) 中展示了从 MS-Celeb-1M 数据集 [1] 中采样的集群的特征分布。可以清楚地看到,边界样本和质心样本的密度都得到了优化。使用我们新颖的秩加权密度,样本成为聚类中心的可能性更加精确,并且对异常值不太敏感。
我们现在使用我们更新的等级加权密度来指导在推理中选择发送到分类器的对。对于每个样本,我们在其 k 个最近邻中选择密度较高的第一个样本并形成一对。所选样本更接近聚类中心,但仍然足够相似,可以与目标样本共享同一类。如果样本没有更高密度的邻居,则不会选择邻居。但可以看出,这样的样本极有可能被其他样本挑选出来,形成对。并且我们只需要测试不超过 N 对的大小发送到分类器,这大大提高了推理的效率。
3.3.复杂性分析
我们方法的时间复杂度主要来自 k-NN 搜索。由于近似最近
[28] 中提出的搜索,时间复杂度降低到 O(nlogn),并且可以通过 GPU [18] 进一步加速。一旦 k-NN 搜索完成,如算法 1 所示,每个样本的密度计算、对选择和所有测试样本的特征构建都是 O(n)。选择发送到分类器的对数不超过样本数,因此时间成本也是 O(n)。因此,我们方法的总体时间复杂度为 O(nlogn),时间消耗主要在于 k-NN 搜索。
我们的方法也是内存友好的。流行的基于图学习的方法需要 O(ND) 空间复杂度来学习整个图,其中 N 是样本数,可以达到数百万,D 是特征长度。通常,N≫D。在我们提出的方法中,网络的输入只是长度为 D 的串联特征向量,并且在训练或推理中将大量 N 分成批次,因此我们的方法大大减少了内存消耗。我们的时间和内存消耗的细节将在第 2 节中揭示。 4.
4. 实验
4.1。实验设置
数据集。我们首先在两个大型公共面部聚类基准 MS-CELB-1M[1] 和 IJB-B[31] 上评估所提出的方法。根据 ArcFace [29] 中广泛使用的注释,收集了一个可靠的子集,其中包含来自 86K id 的 MS-Cleb-1M 的 5.8M 图像。训练集和测试集按照 [7] 的设置进行划分,其中子集几乎均等地分成 10 个部分。我们在一个标记的部分上进行训练,并从其他 9 个未标记的部分中选择 1、3、5、7 和所有部分,得到大小分别为 584K、1.74M、2.89M、4.05M 和 5.21M 图像的测试集。对于 IJB-B,我们使用与 [4] 中相同的设置,采用包含 5K id 和 200K 样本的 CASIA 数据集 [30] 的随机子集作为训练集,并在 IJB-B 的三个最大子任务上进行测试。三个子任务的id个数分别为512、1024和1845,分别包含18171、36575和68195张图片。我们还在人脸图像以外的数据集上评估了我们的聚类方法,以证明我们提出的方法在聚类任务上的泛化性。为了公平比较,我们使用与 [7] 中相同的设置,其中包含来自 4K 类别的约 26K 图像的训练集和包含来自 4K 类别的约 27K 图像的测试集是从 DeepFashion [17] 基准中采样的。
指标。我们提出的方法和比较方法的性能分别在两个流行的聚类指标 [15] 上进行评估,即 Pairwise F-score 和 BCubed F-score [16]。这两个指标都计算为准确率和召回率的调和平均值,在以下部分将称为 FP 和 FB。实施细节。为了在成对关系分类器中构建邻居特征并计算秩加权密度,对于每个数据集,我们在所有 k-NN 场景中使用相同的 k。 k的选择主要取决于训练集中簇的大小。具体来说,对于 MS-Celeb-1M、IJB-B 和 Deep-Fashion,k 分别设置为 80、40 和 5。分类器由 3 个全连接层堆叠而成。在训练中,我们使用 SGD 优化器,起始学习率为 0.01,动量为 0.9,权重衰减为 5e-4。批量大小设置为 2048,训练在 60 个 epoch 后停止。在秩加权密度的计算中,我们使用幂函数作为权重函数:
图 5. t-SNE 上 MS-Celeb-1M 数据集的两个样本簇的特征分布。 (a) 基本事实。具有相同颜色的节点属于同一类。 (b) GCN (V+E) [7]的结果。 (c) 我们方法的结果。我们的方法预测更准确,生成的单例集群更少。
p 的设置将在消融研究中进一步讨论。
4.2.方法比较
我们将我们的方法与一系列面部聚类基线进行比较。这些方法通常可以分为传统方法和基于学习的方法。前一类中的代表性方法包括 K-means [3, 9]、分层凝聚聚类 (HAC) [10, 27]、基于密度的噪声应用空间聚类 (DBSCAN) [2] 和近似等级顺序 ( ARO) [11]。后者显示出更有希望的结果,包括共识驱动传播 (CDP) [6]、L-GCN [4]、学习聚类 (LTC) [5]、GCN (V+E) [7] 和 DANet [ 8],其中最后两个分别在 FB 和 FP 上取得了之前最好的性能。
结果。我们首先在 MS-Celeb-1M 数据的第一个测试部分测试我们的方法和其他比较方法,其中包含 8,573 个身份的 580K 图像,如 [6, 8]。表 1 中显示的结果比较了该集合上不同方法的 Pairwise F-score 和 BCubed F-score 性能。我们的方法在这两个指标方面都达到了最先进的性能,超过了所有以前的方法。图 5 可视化了 t-SNE 上测试集的两个集群,我们可以看到我们的方法在生成更少的单例集群和更准确地从大集群中聚类样本方面表现更好。通过将人脸聚类定义为成对分类并在对级而不是图级上学习,我们的方法实际上是从一个基本的角度处理人脸聚类任务,并面临聚类的终极问题,即几个样品。
为了证明我们的无阈值方法的稳健性,评估了最先进的方法 GCN (V+E) [7] 在不同推理阈值下的 FP 和 FB 性能。图 6 显示该方法的性能对阈值非常敏感,当应用于各种现实世界场景时会引入不一致。但是我们的方法不需要阈值,因此是一种更稳健的方法。
此外,我们进行了一个实验,比较了不同方法在未标记图像的增量上的泛化。表 2 中的结果表明,与其他方法相比,我们的方法可以更好地泛化并在更大的测试集上实现一致的改进。它表明我们提出的方法可以在大规模场景中获得更强大和更出色的性能。表 3 给出了我们的方法和比较方法在另一个大型人脸聚类基准 IJB-B 上的结果。可以看出,我们的方法在该数据集的三个最大子任务上获得了比较甚至更好的性能。
表 4 显示,在 DeepFashion 等其他聚类基准测试中,我们的方法也获得了令人满意的性能,在 BCubed F-score 中以 2.11% 领先于最先进的方法,这进一步揭示了我们提出的方法在集群上的泛化能力- 完成任务。
内存和时间消耗。我们在具有 24G 内存容量的单台 Telsa P40 上运行我们的实验。如上所述,大规模图上的图学习可能非常消耗内存,因此在某些现实世界场景中变得不切实际。以 GCN (V+E) [7] 为例,为了减少内存消耗,GCN-V 只使用了一层,但当测试集的大小在 MS- 上达到 2.89M 时仍然会引发内存不足的错误Celeb- 1M 推理数据集。人们可以在推理阶段使用小批量来减少基于图的方法中的内存消耗。但是,小批量会导致批次之间的链接丢失,这会影响方法的性能。此外,图对小批量的不同划分会带来不同的性能,这使得这些方法不稳定。然而在我们的方法中,由于分类器的输入只是具有批量输入的一维特征,我们可以将我们的方法应用于任何大小的数据集,并灵活地设置批量大小以适应我们可访问的计算资源,即使仅在 CPU 上也是如此。而2048的batch size只需要0.7G内存。
从表 1 可以看出,我们的方法也具有时间效率,并且实际上是最快的一种,甚至超过了常规方法。为了公平比较,我们分析了 MS-Celeb-1M 上所有监督方法的推理时间,N = 584K,如 [7] 所示,我们的方法在单个 GPU 上花费了大约 1.7m,批量大小为 2048。 IJB-B 上的 F512 子任务耗时 23.5 秒。图 4 说明了准确性和效率之间的权衡。这表明我们的方法不仅达到了最先进的性能,而且在时间消耗上也具有很大的优势。总而言之,我们的方法在内存使用量非常有限的情况下以最快的速度实现了最先进的性能。
4.3.消融研究
我们主要在 MS-Celeb-1M 数据集上进行消融研究。
输入特征的设计。我们探索发送到分类器的输入特征的不同设计。正如在第 2 节中所讨论的那样。 3,给定两个特征,首先想到的是两个原始特征向量的简单连接,我们将其称为原始特征。为了强调邻居特征的重要性,我们设计了邻居特征的相似度加权求和,并将它们记为加权邻居特征。原始特征和加权相邻特征的连接最终被称为组合特征。我们使用完全相同的超参数来训练基于不同类型特征的分类器,以便进行更清晰的比较。
如表 5 所示,基于加权邻居特征的分类器的性能在很大程度上优于原始特征,因为附近的邻居更有可能与样本共享相同的身份,从而提供有关类别的上下文信息,这最终提高了分类器的性能。组合特征比加权邻居特征有进一步的改进,因为它更加关注样本本身,这可能会减少不同类别的邻居的可能影响。
秩加权密度设计。为了在计算密度时更多地关注最近的邻居并减少异常值的影响,应用单调递减函数来增加相似度总和的权重。我们选择简单的幂函数 f (i) = (k − i)p 并改变幂以获得最佳结果。表 6 显示了功率对 MS-Celeb-1M 数据集的影响。当幂设置为 0 时,秩加权密度变为原始密度。我们可以看到,设计的秩加权密度带来了一致的性能增益,幂 5 达到了准确率和召回率之间的最佳平衡。我们相信每个数据集的最佳功率选择取决于数据集本身的稀疏性。图 7 对 t-SNE 上不同数据集的特征分布进行了可视化。在像 DeepFashion 这样的数据集上,样本分布更均匀,不同功率选择的影响非常有限。然而,在像 MS-Celeb-1M 这样超过 100 万张图像的大规模数据集上,样本在特征空间中分布非常密集,功率应该更高,以使不同距离等级的邻居的影响更加可区分。
5. 结论
本文提出了一种基于成对分类的简单而优雅的人脸聚类框架。我们采用分类器来确定样本之间的关系,通过在pair-level而不是graph-level上学习大大减少了内存消耗,并且将人脸聚类任务从推理中手动设置阈值中解放出来。此外,为了进一步提高效率,我们设计了一种新的秩加权密度来指导发送到分类器的对的选择。在公共基准上的大量实验结果表明,我们的方法在准确性和效率方面都取得了出色的表现,并且在更大的测试集和其他聚类任务中也能很好地泛化。