DSGCN

近年来,人脸识别技术取得了长足的进步,其性能达到了很高的水平。将其提升到一个新的水平需要相当大的数据,这将涉及极高的注释成本。因此,利用未标记的数据成为一种有吸引力的选择。最近的工作表明,将未贴标签的面孔聚类是一种很有前途的方法,通常可以显着提高性能。然而,如何有效地聚类,尤其是在大规模(即百万级或以上)数据集上,仍然是一个悬而未决的问题。一个关键的挑战在于集群模式的复杂变化,这使得传统的集群方法很难满足所需的精度。这项工作探索了一种新颖的方法,即学习聚类而不是依靠手工制定的标准。具体来说,我们提出了一个基于图卷积网络的框架,该框架结合了检测和分段模块来精确定位人脸聚类。实验表明,我们的方法产生的人脸簇准确得多,因此,还可以进一步提高人脸识别的性能。

1.简介

由于深度学习技术的进步,人脸识别的性能得到了显着提高[25,22,27,3,31]。但是,应该指出的是,现代人脸识别系统的高精度在很大程度上取决于大规模带注释的训练数据的可用性。尽管可以很容易地从Internet上收集大量的面部图像,但对它们进行注释却非常昂贵。因此,利用未标记的数据,例如通过无监督或半监督学习,成为一种令人信服的选择,并且引起了学术界和工业界的极大兴趣[30,1]。

利用未标记数据的自然想法是将它们聚类为“伪类”,以便像标记数据一样使用它们并将其馈送到有监督的学习管道中。最近的工作[30]表明,这种方法可以带来性能提升。但是,该方法的当前实现仍然有很多不足之处。特别是,他们经常求助于无监督方法,例如将K-均值[19],光谱聚类[11],层次聚类[32]和近似等级顺序[1]分组,以对未标记的面孔进行分组。这些方法都基于简单的假设,例如,K均值隐式假设每个群集中的样本都围绕一个中心。频谱聚类要求聚类大小相对平衡,等等。因此,它们缺乏应对复杂聚类结构的能力,因此十个聚类会产生噪声聚类,尤其是当应用于从实地收集的大规模数据集时世界设置。此问题严重限制了性能的提高。

因此,为了有效地利用未标记的面部数据,我们需要开发一种有效的聚类算法,该算法能够应对实践中经常出现的复杂聚类结构。显然,依靠简单的假设将无法提供此功能。在这项工作中,我们探索了一种根本不同的方法,即学习如何从数据中进行聚类。特别是,我们希望利用图卷积网络的强大表达能力来捕获人脸簇中的常见模式,并利用它们来帮助对未标记的数据进行分区。

我们提出了一种基于图卷积网络的人脸聚类框架[15]。该框架采用类似于Mask R-CNN [10]的流水线进行细分,即生成提案,识别积极提案,然后使用掩码进行细化。这些步骤分别由基于超级顶点的迭代提议生成器,图形检测网络和图形分割网络来完成。应当指出的是,虽然我们受到Mask R-CNN的启发,但我们的框架仍然存在本质差异:前者在2D图像网格上运行,而后者在具有任意结构的亲和图上运行。如图1所示,依靠基于图卷积网络学习的结构模式,而不是一些简单的假设,我们的框架能够处理具有复杂结构的集群。

所提出的方法显着提高了大规模人脸数据的聚类精度,获得了85.66的F分数,不仅优于无监督聚类方法获得的最佳结果(F分数68.39),而且还更高而不是最新的技术水平[30](F得分75.01)。使用此聚类框架来处理未标记的数据,我们将MegaFace上的人脸识别模型的性能从60.29提高到78.64,这与通过监督学习所有数据获得的性能非常接近(80.75) 。

主要贡献在于三个方面:(1)我们首次尝试以有监督的方式执行自上而下的面部聚类。 (2)这是将聚类表达为基于图卷积网络的检测和分割管道的第一项工作。 (3)我们的方法在大规模人脸聚类中实现了最新的性能,并且在应用发现的聚类时将人脸识别模型提高到接近监督结果的水平。

2.相关工作

人脸聚类聚类是机器学习中的一项基本任务。 Jain等。 [12]提供了对经典聚类方法的调查。大多数现有的聚类方法都不可行。人脸聚类提供了一种利用大量未标记数据的方法。沿着这个方向的研究仍处于早期阶段。如何在大规模数据上对面孔进行聚类的问题仍然存在。

早期作品使用手工制作的功能和经典的聚类算法。例如,Ho等。 [11]使用梯度和像素强度作为面部特征。崔等。 [2]使用了LBP功能。它们都采用频谱聚类。最近

方法利用学习的功能。 [13]以无监督的方式进行了自上而下的聚类。 Finley等。 [5]以自下而上的方式提出了一种基于SVM的监督方法。奥托等。 [1]使用了基于CNN的面部模型的深度特征,并提出了一种近似的秩序度量来将图像对链接为簇。 Lin等。 [18]设计了一种基于在数据样本的最近邻居上训练的线性SVM的相似性度量。 Shi等。 [23]提出了条件成对聚类,通过成对相似性将聚类公式化为条件随机场来聚类人脸。 Lin等。 [17]提出通过引入邻域的最小覆盖范围来提高深度特征的局部结构,以改善相似性度量。詹等。 [30]训练了一个MLP分类器来聚合信息,从而发现更健壮的链接,然后通过找到连接的组件获得聚类。

尽管使用了深层功能,但这些工作主要集中在设计新的相似性度量标准上,并且仍然依靠无监督的方法来执行聚类。与上述所有工作不同,我们的方法基于检测-细分范式学习如何自上而下地进行聚类。这使模型可以处理结构复杂的集群。

图卷积网络图卷积网络(GCN)[15]将CNN扩展为处理图结构化数据。现有工作表明了GCN的优点,例如对复杂图形模式进行建模的强大能力。在各种任务上,使用GCN可以显着提高性能[15、9、26、29]。例如,Kipf等。 [15]将GCN应用于半监督分类。汉密尔顿等。 [9]利用GCN来学习特征表示。伯格等。 [26]表明,GCN在链路预测方面优于其他方法。严等。 [29]采用GCN来为基于骨骼的动作识别建模人体关节。

在本文中,我们采用GCN作为捕获亲和图上聚类模式的基本机制。据我们所知,这是使用GCN学习如何以监督方式进行集群的第一篇著作。

3.方法论

在大规模人脸聚类中,聚类模式的复杂变化成为进一步提高性能的主要挑战。为了应对这一挑战,我们探索了一种有效的方法,即基于图卷积网络学习聚类模式。具体来说,我们将此公式表示为亲和图上的联合检测和分割问题。

给定一个面部数据集,我们使用经过训练的CNN为每个面部图像提取特征,形成一组特征D = {fi} Ni = 1,其中fi是d维向量。为了构造亲和图,我们将每个样本视为一个顶点,并使用余弦相似度为每个样本找到K个最近邻居。通过邻居之间的连接,我们获得了整个数据集的亲和度图G =(V,E)。或者,亲和图G也可以由对称的相邻矩阵A∈RN×N表示,其中如果连接两个顶点,则元素ai,j是fi和fj之间的余弦相似度,否则为零。亲和度图是具有数百万个顶点的大规模图。从这样的图中,我们希望找到具有以下属性的聚类:(1)不同的聚类包含带有不同标签的图像; (2)一簇中的图像具有相同的标签。

3.1。框架概述

如图2所示,我们的集群框架由三个模块组成,即提案生成器,GCN-D和GCN-S。第一模块从亲和度图中生成聚类提议,即,可能是聚类的子图。然后,针对所有提案集,我们引入两个GCN模块,即GCN-D和GCN-S,以形成一个两阶段程序,该程序首先选择高质量的提案,然后通过消除噪声来精炼选定的提案。在其中。具体而言,GCN-D执行群集检测。以集群提案为输入,它评估提案构成期望集群的可能性。然后,GCN-S进行细分以细化所选提案。特别地,给定一个聚类,它估计每个顶点成为噪声的可能性,并通过丢弃离群值来修剪聚类。根据这两个GCN的输出,我们可以有效地获得高质量的集群。

3.2。集群提案

首先,我们不生成大型的相似度图,而是生成聚类提议。它受到对象检测中生成区域建议的方式的启发[7,6]。这样的策略可以大大降低计算成本,因为以这种方式,仅需要评估有限数量的候选群集。聚类提议Pi是亲和度图G的子图。所有提议组成一个集合P = {Pi} Np。基于超级顶点以i = 1生成聚类提议,并且所有超级顶点形成集合S = {Si} Ns。在本节中,我们首先介绍i = 1代的超级顶点,然后设计一种算法在其上构成聚类提议。

超级顶点。超级顶点是一个子图,其中包含相互紧密连接的少量顶点。因此,很自然地使用连接的组件来表示超级顶点。但是,直接从图G导出的连接分量可能太大。为了保持每个超级顶点之间的高连通性,我们删除那些亲和力值低于阈值eτ的边,并限制超级顶点的大小低于最大smax。海藻图1显示了生成超级顶点集S的详细过程。通常,具有1M个顶点的亲和图可以划分为50K个超级顶点,每个平均包含20个顶点。

提案生成。与所需簇相比,超级顶点是一个保守的形式。尽管超级顶点中的顶点很可能描述同一个人,但是一个人的样本可能会分布到多个超级顶点中。受目标检测中多尺度提议的启发[7,6],我们设计了一种算法来生成多尺度聚类提议。作为藻类。如图2所示,我们在超级顶点的顶部构造了一个更高级别的图,其中超级顶点的中心为顶点,而这些中心之间的亲和力为边缘。使用此高级图表,我们可以应用Alg。再次输入1并获得较大尺寸的投标。通过迭代应用此构造I次,我们获得了具有多个比例的提案。

3.3。集群检测

我们设计了GCN-D,这是一个基于图卷积网络(GCN)的模块,可以从生成的集群建议中选择高质量的集群。在这里,质量是通过两个指标来衡量的,即IoU和IoP分数。给定一个集群提案P,这些分数定义为

IoU(P)= | P∩P|,IoP(P)= | P∩P|,| P∪P| | P | (1)

  其中P是包含所有带有标签l(P)的顶点的地面真集合,而l(P)是簇P的多数标签,即在P中出现最多的标签。直观上,IoU反映了接近程度P等于期望的地面真相P;而IoP反映了纯度,即P中具有多数标记l(P)的顶点的比例。

GCN-D的设计。我们假设高质量的簇通常在各个顶点之间表现出某些结构模式。我们引入GCN来识别此类集群。具体来说,给定一个群集提议Pi,GCN会将与其顶点(表示为F0(Pi))和亲和度子矩阵(表示为A(Pi))相关的视觉特征作为输入,并预测两者IoU和IoP分数。

GCN网络由L层组成,每层的计算公式如下:

F(P)=σD̃(P)-1(A(P)+ I)F(P)W,(2)l + 1i i i lil

其中D = A Aij(Pi)是对角度矩阵。 F1(Pi)包含第l层的嵌入。 W1是用于转换嵌入的矩阵,而σ是非线性激活函数(在此工作中选择了ReLU)。直观地,该公式表示以下过程:对每个顶点及其相邻元素的嵌入特征进行加权平均,用W1对其进行变换,然后通过非线性激活对其进行馈送。这类似于CNN中的典型块,不同之处在于它在具有任意拓扑的图上运行。在顶层嵌入FL(Pi)上,我们在Pi中的所有顶点上应用了一个最大池,并获得了提供整体摘要的特征向量。然后,使用两个完全连接的层分别预测IoU和IoP分数。

训练和推理。给定一个带有班级标签的训练集,我们可以针对每个聚类提议Pi根据等式(1)获得真实的IoU和IoP分数。然后,我们训练GCN-D模块,以最小化地面真实分数和预测分数之间的均方误差(MSE)。我们通过实验证明,无需任何幻想的技术,GCN就能给出准确的预测。在推断过程中,我们使用训练有素的GCN-D来预测每个提案的IoU和IoP分数。 IoU分数将以秒为单位。 3.5首先保留IoU高的提案。 IoP分数将在下一阶段中用于确定是否需要完善提案。

3.4。聚类分割

GCN-D确定的顶级建议可能并不完全是纯净的。这些建议可能仍然包含一些离群值,需要将其消除。为此,我们开发了一个名为GCN-S的聚类细分模块,以将异常值排除在提案之外。

GCN-S的设计。 GCN-S的结构与GCN-D相似。差异主要在于要预测的值。 GCN-S不会预测整个群集P的质量得分,而是为每个顶点v输出一个概率值,以表明它是真正成员而不是异常成员的可能性。

识别离群点要训练GCN-S,我们需要准备地面真相,即识别离群点。一种自然的方法是将其标签与多数标签不同的所有顶点视为离群值。但是,如图3所示,这种方式对于包含几乎相同数量的带有不同标签的顶点的提议可能会遇到困难。为避免过度拟合手动定义的离群值,我们鼓励模型学习不同的细分模式。只要分割结果包含一类顶点,无论是否为多数标记,都可以认为是合理的解决方案。具体来说,我们在提案中随机选择一个顶点作为种子。我们为每个顶点特征连接一个值,其中选定种子的值是1,而其他种子的值是0。与种子具有相同标签的顶点被视为正顶点,而其他顶点被视为离群值。我们使用随机选择的种子多次应用此方案,从而从每个建议P获取多个训练样本。

训练和推理。通过上述过程,我们可以从保留的建议中准备一组训练样本。每个样本包含一组特征向量,每个特征向量用于一个顶点,一个亲和力矩阵以及一个二进制向量,以指示顶点是否为正。然后,我们使用顶点方式的二进制交叉熵作为损失函数来训练GCN-S模块。在推论过程中,我们还为生成的集群提议得出多个假设,并且仅保留具有最高正顶点(阈值为0.5)的预测结果。该策略避免了被选择与极少的正对应项相关联的顶点作为种子的情况所误导的情况。

我们仅将IoP在0.3到0.7之间的提案提供给GCN-S。因为当提案非常纯净时,离群值通常是很难删除的示例。当提案非常不纯时,很可能没有一个类占主导地位,因此该提案可能不适合由GCN-S处理。利用GCN-S预测,我们从提案中删除了异常值。

3.5。去重叠

上述三个阶段导致了群集的集合。但是,不同的簇仍可能重叠,即共享某些顶点。这可能对在其上进行的面部识别训练造成不利影响。在这里,我们提出了一种简单快速的去重叠算法来解决这个问题。具体来说,我们首先按照IoU分数的降序对集群提案进行排名。我们从排名列表中顺序收集提议,并通过删除前面的顶点来修改每个提议。详细算法在Alg中进行了描述。 3。

与对象检测中的非最大抑制(NMS)相比,去重叠方法更为有效。特别是,前者的复杂度为O(N2),而后者的复杂度为O(N)。通过为去重叠设置IoU阈值,可以进一步加快此过程。

4.实验

4.1。实验设定

训练集。 MS-Celeb-1M [8]是一个大规模的人脸识别数据集,由10万个身份组成,每个身份约有100张面部图像。由于原始身份标签是从网页自动获取的,因此非常嘈杂。我们基于ArcFace [3]的注释来清理标签,从而生成一个可靠的子集,其中包含来自86K类的580万张图像。清除后的数据集被随机分为10个部分,它们具有几乎相等的身份。每个部分包含约580K图像的8.6K身份。我们随机选择1个部分作为标记数据,另9个部分作为未标记数据。 Youtube人脸数据集[28]包含3、425个视频,我们从中提取155、882帧进行评估。特别是,我们使用14个,653个具有159个身份的帧进行训练,其余140个,629个具有1,436个身份的图像进行测试。

测试装置。 MegaFace [14]是面部识别的最大公开基准。它包括来自FaceScrub [21]的探针集,其中包含3张,530张图像和包含1M张图像的图库集。 IJB-A [16]是另一个人脸识别基准,其中包含来自500个身份的5,712张图像。

指标。我们评估两项任务的性能,即面部聚类和面部识别。人脸聚类是将相同身份的所有图像聚类到一个聚类中,在该聚类中,性能是通过成对回忆和成对精度来衡量的。为了同时考虑精度和查全率,我们报告了广泛使用的F分数,即精度和查全率的谐波平均值。使用MegaFace中的面部识别基准和IJB-A的面部验证协议对面部识别进行评估。我们在MegaFace中采用top-1识别命中率,即从1M画廊图像中对top-1图像进行排名并计算top-1命中率。对于IJB-A,我们采用人脸验证协议,即确定两个给定的人脸图像是否来自同一身份。我们在假阳性率为0.001的条件下使用真阳性率进行评估。实施细节。在实验中,我们将GCN与两个隐藏层一起使用。动量SGD使用的初始学习率为0.01。提案是通过eτ∈{0.6,0.65,0.7,0.75}和smax = 300生成的,如Alg.1所示。

4.2。方法比较

4.2.1人脸聚类

我们将提出的方法与一系列聚类基线进行比较。下面简要介绍这些方法。

(1)K-means [19],最常用的聚类算法。在给定数目的群集k下,K均值使群集内的总方差最小。

(2)DBSCAN [4],一种基于密度的聚类算法。它根据设计的密度标准提取聚类,并将稀疏的背景保留为噪声。

(3)HAC [24],分层的聚类聚类是一种自底向上的方法,可以基于某些准则迭代合并紧密聚类。

(4)近似秩次[1],开发了一种算法作为HAC形式。它仅使用修改的距离量度执行聚类的一次迭代。

(5)CDP [30],最近的工作提出了一种基于图的聚类算法。它以自下而上的方式更好地利用了成对关系。

(6)GCN-D,该方法的第一个模块。它应用GCN以监督的方式学习集群模式。 (7)GCN-D + GCN-S,该方法的两阶段版本。引入了GCN-S来完善GCN-D的输出,该输出可以检测并丢弃集群内部的噪声。

结果为了控制实验时间,我们随机选择一部分数据进行评估,其中包含580K图像的8,573个身份。标签。 1比较了此方法上不同方法的性能。群集性能由F分数和时间成本评估。我们还报告了簇数,成对精度和成对召回率,以更好地了解每种方法的优缺点。

结果表明:(1)对于K均值,性能受簇数k的影响很大。我们在数字范围内改变k,并以较高的F分数报告结果。 (2)DBSCAN精度高,但召回率低。它可能无法处理大规模人脸聚类中较大的密度差异。 (3)与以前的方法相比,HAC给出了更可靠的结果。请注意,标准算法消耗O(N2)内存,当N高达580K时,它会超出内存容量。我们使用适应性的层次聚类[20]进行比较,它仅需要O(Nd)内存。 (4)近似排名顺序由于其一种迭代设计而非常有效,但是其性能不如我们设置中的其他方法。 (5)作为旨在利用未标记数据进行人脸识别的最新工作,CDP实现了精度和召回率的良好平衡。为了公平起见,我们将CDP与单个模型版本进行比较。请注意,CDP的想法和我们的方法是互补的,可以结合起来进一步提高性能。 (6)我们的方法将GCN应用于学习聚类模式。它可以同时提高精度和召回率。标签。 2证明了我们的方法是鲁棒的,可以应用于具有不同分布的数据集。由于GCN是使用多尺度集群建议进行训练的,因此可以更好地捕获所需集群的属性。如图8所示,我们的方法能够精确指出一些结构复杂的簇。 (7)GCN-S模块从第一阶段开始进一步完善集群提案。它通过牺牲一点召回率来提高精度,从而提高整体性能。

运行时分析我们的方法的整个过程大约需要2200s,其中在CPU上生成150K提议最多需要1000s,而在批量大小为32的GPU上推断GCN-D和GCN-S分别需要1000s和200s。公平地比较运行时,我们还将在CPU上测试所有模块。我们的方法在CPU上总共需要3700s,这仍然比我们大多数方法要快。由于主要的计算成本在GCN上,因此使用GPU的速度提升在这项工作中并不是很重要。由于GCN依赖稀疏矩阵乘法,因此无法充分利用GPU并行性。我们方法的运行时间随未标记数据的数量线性增长,并且可以通过增加批处理大小或与更多GPU并行化来进一步加速该过程。

4.2.2人脸识别

利用训练好的聚类模型,我们将其应用于未标记的数据以获得伪标记。我们调查了带有伪标签的未标记数据如何增强人脸识别的性能。特别是,我们遵循以下步骤来训练人脸识别模型:(1)以监督方式训练带有标签数据的初始识别模型; (2)使用从初始模型得出的特征表示,在标记集上训练聚类模型; (3)应用聚类模型对各种数量(1、3、5、7、9部分)的未标记数据进行分组,从而在其上附加“伪标签”; (4)使用整个数据集训练最终识别模型,包括原始标记数据和其他具有分配的伪标记的数据。仅在1部分标记数据上训练的模型被视为

下界,而由所有带有地面标签的零件监督的模型则成为我们问题的上限。对于所有聚类方法,聚类后,每个未标记图像都属于一个唯一的聚类。我们为每个图像分配一个伪标签作为其群集ID。

图5表明,人脸聚类的性能对于改善人脸识别至关重要。对于K均值和HAC,虽然召回率很高,但低精度表示嘈杂的预测簇。当未标记和已标记数据的比例较小时,嘈杂的簇会严重损害面部识别训练。随着未标记数据和已标记数据的比率增加,未标记数据增加所带来的增益会减轻噪声的影响。但是,总体改进是有限的。 CDP和我们的方法都受益于未标记数据的增加。由于聚类的性能提高,我们的方法始终优于CDP,并将MegaFace上的人脸识别模型的性能从60.29提高到78.64,接近完全监督的上限(80.75)。

4.3。消融研究

我们随机选择未标记数据的一部分,其中包含8个573个身份的580K图像,以研究我们框架中的一些重要设计选择。

4.3.1提案策略

集群提案生成是我们框架中的基本模块。在固定的K = 80且I,eτ和smax不同的情况下,我们生成了大量具有多个比例的投标。通常,大量建议会导致更好的集群性能。选择适当数量的投标时,需要在性能和计算成本之间进行权衡。如图4所示,每个点代表在一定数量的建议下的F分数。不同的颜色意味着不同的迭代步骤。 (1)当I = 1时,只有Alg生成的超顶点。将使用1。通过选择不同的eτ,可以获得更多建议以增加F分数。随着数量增加到超过10万,性能逐渐饱和。 (2)当I = 2时,将不同的超级顶点组合添加到建议中。回想一下,它利用了超级顶点之间的相似性,从而有效地扩大了建议的接受范围。加上少量建议后,F分数提高了5%。 (3)当I = 3时,它会进一步合并以前阶段的相似提案,以创建更大规模的提案,从而继续为绩效提升做出贡献。但是,随着提案规模的增加,提案中会引入更多的噪音,因此性能增益会达到饱和。

4.3.2 GCN-D的设计选择

尽管训练GCN不需要任何花哨的技术,但仍有一些重要的设计选择。作为标签。如图3a,3b和3c所示,合并方法对F分数有很大的影响。与最大池相比,平均池和总池均会削弱聚类结果。对于汇总池,它对顶点数量很敏感,这往往会产生大量建议。较大的建议导致较高的查全率(80.55)但精度较低(40.33),最终F得分较低。另一方面,均值池可以更好地描述图结构,但可能会遭受建议中的异常值的困扰。除了池化方法外,Tab。 3c和3d表明,缺少顶点特征会大大降低GCN的预测准确性。它说明了在GCN训练期间充分利用顶点特征和图形结构的必要性。此外,如选项卡所示。如图3c,3e和3f所示,拓宽GCN的渠道可以提高其表达能力,但是更深的网络可能会使顶点的隐藏特征相似,从而产生类似均值合并的效果。

4.3.3 GCN-S

在我们的框架中,GCN-S用作GCN-D之后的降噪模块。但是,它可以作为独立模块与以前的方法结合使用。考虑到K-means,HAC和CDP的聚类结果,我们将它们视为聚类提议,并将其输入GCN-S。如图6所示,GCN-S可以通过丢弃聚类中的离群值来提高其聚类性能,通过各种方法可以获得约2%-5%的性能提升。

4.3.4后处理策略

NMS是对象检测中广泛使用的后处理技术,可以作为去重叠的替代选择。使用不同的IoU阈值,可以使提案保持最高的IoU预测,同时抑制其他重叠提案。 NMS的计算复杂度为O(N2)。与NMS相比,去重叠不会抑制其他提议,因此会保留更多样本,从而增加了聚类召回率。如图7所示,去重叠可以实现更好的聚类性能,并且可以在线性时间内进行计算。

5。结论

本文提出了一种基于图卷积网络的新型监督人脸聚类框架。特别地,我们将聚类公式化为亲和图上的检测和分割范例。所提出的方法在人脸聚类上比以前的方法有很大的提高,从而使人脸识别性能接近于监督结果。广泛的分析进一步证明了我们框架的有效性。

你可能感兴趣的:(DSGCN)