没有合适的资源?快使用搜索试试~ 我知道了~
40830一种用于超大规模人脸识别的高效训练方法0Kai Wang 1, 2* Shuo Wang 2* Panpan Zhang 1 Zhipeng Zhou 2 Zheng Zhu 30Xiaobo Wang 4 Xiaojiang Peng 5 Baigui Sun 2 Hao Li 2 Yang You 1²01新加坡国立大学2阿里巴巴集团3清华大学4中国科学院自动化研究所5深圳技术大学0代码:https://github.com/tiandunx/FFC0摘要0由于超大规模和有标签的数据集,人脸识别在深度学习时代取得了显著的进展。然而,训练这些庞大的数据集非常耗时且占用大量硬件资源。因此,设计一种高效的训练方法是不可或缺的。计算和内存开销主要来自全连接(FC)层的百万级维度。为此,我们提出了一种新的训练方法,称为更快的人脸分类(F2C),以减少时间和成本,同时不损失性能。该方法采用动态类池(DCP)来动态存储和更新身份特征,可以看作是FC层的替代品。DCP具有高效的节省时间和成本的特点,因为它的尺寸较小且与整个人脸身份无关。我们进一步验证了所提出的F2C方法在几个人脸基准数据集和私有数据集上的性能,并展示了与最先进的基于FC的方法相当的结果,同时在识别准确性和硬件成本方面速度更快。此外,我们的方法通过一个精心设计的双数据加载器(包括基于身份和基于实例的加载器)进一步改进,使得更新DCP参数更加高效。01. 引言0深度神经网络(DNN)在计算机视觉任务中取得了许多显著的成果[4, 6, 7, 26, 27, 37, 38, 39,40]。人脸识别可以被视为计算机视觉中最热门的研究课题之一。在过去的十年中,许多大规模且有标签的数据集已经发布[11, 15, 47, 49, 53]。训练0*同等贡献(kai.wang@comp.nus.edu.sg,wang-shuo514@sina.com)²通讯作者(youy@comp.nus.edu.sg)。0人脸识别的过程旨在学习与身份相关的嵌入空间,其中类内距离减小,类间距离增大。之前的研究[11, 42,43]已经证明,使用大规模数据集进行训练可以相对小规模数据集获得显著的改进。为此,学术界和工业界收集了包括10甚至100亿个人脸身份的超大规模数据集。谷歌收集了2亿张人脸图像,涵盖了800万个身份[28]。清华引入了WebFace260M数据集[53],包含2.6亿张人脸图像,是目前最大的公共人脸数据集,并取得了最先进的性能。0总的来说,这些超大规模数据集极大地提升了人脸识别的性能。然而,随着人脸身份的增长和硬件的限制,在训练阶段主要存在两个问题。第一个问题是训练时间和硬件资源占用。如图1所示,当人脸身份达到1000万时,FC层的时间成本和GPU内存占用要远大于骨干网络。为了解决这些问题,许多先前的方法[1,20]致力于减少FC层的时间和资源成本。先前的方法可以总结为两类。一种[1]尝试将整个FC层分布到不同的GPU上,引入了大量的通信成本。另一种[50]试图通过随机选择FC层的一定比例的神经元来减少计算成本,但仍需要存储整个FC参数。当身份达到1000万或1亿时,存储整个FC参数是非常昂贵的。如何有效地减少由高维FC层引起的计算和内存成本?一个直观的想法是减小FC的大小或设计一种替代范式,这在以前几乎没有被探索过。第二个问题与FC参数的更新效率和速度有关。正如[9]所指出的,类中心的最优解实际上是该类别所有样本的平均值。那些具有非常低采样频率的稀有样本的身份将很少有机会通过它们来更新类中心。0510152025303540450.10.512468190102030405060700.10.5124681040840时间(毫秒)0人脸身份(百万)0主干网络0FC0(a)主干网络和FC时间成本的比较(毫秒)。0内存(GB)0人脸身份(百万)0V1000P1002080Ti0(b)训练阶段FC层的内存占用(G)。0图1:训练时间和GPU内存占用的可视化。图1a显示了主干网络(ResNet50)和FC层的前向时间比较。给定一张图像,FC的时间成本随着人脸身份数量的增加而急剧增加,而主干网络的时间保持不变。图1b说明了GPU内存占用与人脸身份数量的大小关系。即使是V100 32GGPU也只能存储大约600万个FC参数(人脸识别的维度通常为512)。因此,设计一种减少FC层训练时间和硬件成本的方法非常必要。0这可能会影响特征表示。0为了解决上述问题,我们提出了一种针对超大规模人脸数据集的高效训练方法,称为Faster Face Classification(F2C)。在F2C中,我们首先引入了名为Gallery Net(G-Net)和Probe Net(P-Net)的双背骨结构,分别用于生成身份中心和提取人脸特征。G-Net与P-Net具有相同的结构,并以移动平均方式继承自P-Net的参数。考虑到超大规模训练中耗时最长的部分在于全连接(FC)层,我们提出了Dynamic Class Pool(DCP)来存储G-Net的特征,并在每个小批次中使用正样本(其身份出现在DCP中)计算logits。DCP可以被视为FC层的替代品,其大小远小于FC层,这就是为什么F2C相比于FC层可以大大降低时间和资源成本的原因。对于负样本(其身份不出现在DCP中),我们最小化其与DCP之间的余弦相似度。为了提高DCP参数的更新效率和速度,我们设计了一个双数据加载器,包括基于身份和基于实例的加载器。双数据加载器通过实例和身份从给定数据集中加载图像,生成用于训练的批次。最后,我们在几个人脸基准数据集上进行了充分的实验证明F2C可以实现与普通基于FC的方法相当的结果和更高的训练速度。F2C在识别准确性和硬件成本方面也优于以前的方法。我们的贡献可以总结如下。01)我们提出了一种针对超大规模人脸识别训练的高效方法F2C,旨在减少训练时间和硬件成本,同时保持与最先进的基于FC的方法相当的性能。2)我们设计了DCP来动态存储和更新身份的特征,它是FC层的替代品。DCP的大小远小于FC,并且与整个人脸身份无关,因此可以大大降低训练时间和硬件成本。3)我们设计了一个双数据加载器,包括基于身份和基于实例的加载器,以提高DCP参数的更新效率。02. 相关工作0人脸识别。由于大规模数据集、先进的架构和损失函数,人脸识别取得了显著的进展。大规模数据集在提升人脸识别性能方面起着至关重要的作用[8]。这些数据集可以根据人脸身份数量分为三个区间:1-10K、11-100K、>100K。VGGFace [25]、VGGFace2 [3]、UMD-Faces [2]、CelebFaces[32]和CASIA-WebFace [49]属于第一个区间。IMDB-Face[34]和MS1MV2[8]的人脸身份数量在11K到100K之间。Glint360k[1]和Webface260M[53]分别拥有约0.36M和4M个身份。许多先前的工作[1, 14,50, 53]表明,在更大的人脸身份数据集上进行训练可以i=1logeW Tyixi�nIDj=1 eW Tj xi(1)∂L∂Wk= − 1N i=1(δkyi −eW Tk xi�nIDj=1 eW Tj xi )xi(2)40850在较小的数据集上获得更好的性能。因此,使用WebFace260M作为训练数据集可以在IJBC[23]上获得最先进的性能,并在NIST-FRVT挑战赛中排名前3。基于这些数据集,已经提出了各种用于改善性能的CNN架构,例如VGGNet [30],GoogleNet [33],ResNet[13],AttentionNet [36]和MobileFaceNet[5]。对于损失函数,对比损失[32,48]和三元组损失[30]可能是不错的选择。但是它们计算成本高,收敛速度慢。为此,研究人员尝试探索新的度量学习损失函数以提升人脸识别性能。已经开发了几种基于边界的softmax损失[8,21,35,44,45]并获得了最先进的结果。总之,当前的方法和大规模数据集在人脸识别方面取得了出色的性能,但是训练时间和硬件成本仍然是训练阶段的瓶颈,特别是在百万甚至更多的人脸身份数据集上进行训练。0大规模FC层的加速。如图1a所示,当人脸身份达到10M时,时间成本主要集中在FC层而不是卷积层上。自2001年以来,研究人员尝试了一些加速大规模FC训练的方法。一种直观的想法是设计一个近似函数来减少计算成本,层次化Softmax(HSM)[10]试图将多类分类器重新构造为一系列二进制分类器的层次结构。因此,通过给定样本只需沿着从根到相应类别的路径遍历,可以减少训练成本。然而,所有类别中心都存储在RAM中,随着人脸身份的增加,检索时间不可忽视。张等人[50]提出了一种方法,可以在每个小批次中识别少量的“活跃类别”,它在运行时构建动态类层次结构。然而,当人脸身份过大时,识别“活跃类别”也是耗时的。一些公司,如Google和Microsoft,尝试将所有类别均匀分配到多个GPU上。跨服务器的通信成本不可忽视。为解决这个问题,Partial FC[1]尝试在每次迭代中随机选择10%的身份来在单个GPU服务器上训练大规模数据集。然而,它仍然受限于单台机器上GPU的内存。如图1b所示,PartialFC只能在人脸身份数量不是超大规模(<10M)时工作,否则GPU仍然会耗尽内存。还有一些基于成对的方法[16]利用人脸对来训练大规模数据集,但时间复杂度为O(Nk),其中k表示对的大小。最新的相关工作VFC[20]构建了一些虚拟的FC参数来减少计算成本,但其性能远低于普通FC。与以前的工作不同,我们的F2C可以大大减少FC的训练成本0并且与基于普通FC的方法相比,实现了可比较的性能。03.更快的人脸分类0在本节中,我们首先概述F2C,以便对我们的方法有一个简要的了解。然后,我们介绍了超大规模数据集训练的动机和关键模块。之后,我们对这些模块进行理论/实证分析。最后,我们展示了更好的复现的训练细节。03.1. F2C概述0我们解决的问题是加速超大规模人脸数据集(人脸身份>10M)的训练速度,降低硬件成本,同时不明显降低性能。为此,我们提出了用于超大规模人脸数据集训练的F2C框架。如图2所示,给定超大规模人脸数据集,我们利用基于实例的加载器生成实例批次,就像数据加载器通常所做的那样。同时,基于身份的加载器从同一身份中随机选择两个图像,形成配对身份批次。随后,我们混合实例和配对身份批次的图像,如图2所示,并将它们输入到G-Net和P-Net中。受MoCo[12]的启发,G-Net具有与P-Net相同的结构,并以移动平均方式继承P-Net的参数。G-Net和P-Net用于生成身份的中心并提取用于人脸识别的人脸特征。然后,我们引入DCP作为FC层的替代品。DCP在每次迭代中通过来自G-Net的特征进行随机初始化和更新。DCP的更新策略遵循以下规则:使用当前特征替换DCP中最过时的特征部分。对于正样本,我们使用常见的交叉熵损失。对于负样本,我们最小化负样本与DCP之间的余弦相似度。整个F2C同时通过交叉熵损失和余弦相似度进行优化。03.2. 动机0在深入研究F 2C之前,我们通过重新思考与FC层合作的损失函数提供了一些动机。为了方便起见,我们考虑如下的Softmax:0L = − 10N0其中N是批次大小,nID代表整个人脸身份的数量。在训练过程的每次迭代中,分类器{ W j } n ID j =1的更新按照以下方程进行:0N̸i=1logeW Tyixi�nIDj=1 νjeW Tj xi(4)∂ ˆL∂Wk= − 1N i=1(δkyi −νkeW Tk xi�nIDj=1 νjeW Tj xi )xi(5)40860图2:F 2 C的流程。我们使用实例和身份数据加载器生成混合批次(I ∪ III,II ∪IV),然后分别将其馈送到G-Net和P-Net中。来自G-Net的特征将以LRU的方式更新DCP,而来自P-Net的特征将与DCP一起用于计算损失。0显然,所有的分类器{ W j } n ID j=1都将在每次迭代中进行更新,这意味着每个分类器都有相同的优化机会。人脸识别的目标是通过将来自同一身份的特征聚集在一起,并将属于不同身份的特征推开来区分不同的人。由于超大规模数据集训练的主要问题是FC层的爆炸性大小,我们可以将整个FC视为一组分类器。为了减少计算成本,在训练过程中每次迭代中只优化一定比例的分类器是直观的。具体而言,我们使用以下向量表示给定分类器是否在优化队列中。0V = { ν 1 , ..., ν n ID },对于每个i,ν i ∈ { 0 , 1 },且 # { νi | ν i � = 0 } =C(3),其中C是一个常数,代表优化队列的长度,ν i = 0/ 1表示分类器W i是否在优化队列中。我们绘制了该设置的相应目标。0ˆ L = − 10N0分类器的更新基于以下方程:0N0从形式上讲,方程式5与方程式2相似,向量V的选择机制将影响更新过程0分类器的选择机制应该设计得更好,以更好地优化分类器,同时满足每次迭代中只更新部分分类器的约束。然而,这种直接的方法仍然会受到存储整个分类器集合的巨大压力。实际上,在我们的新框架中,我们只提供有限的空间来动态存储一定比例的分类器/特征。03.3. 基于身份和实例的加载器0在本小节中,我们介绍了我们的双数据加载器的细节。为了方便起见,我们将批次大小表示为M。实际上,我们利用基于实例的加载器从给定的人脸数据集中随机采样M个图像,以获得实例批次。同时,我们应用基于身份的加载器,通过从整个身份中随机选择M个身份(不重复),并为每个身份采样两个图像,来提供身份批次。我们将实例批次分为两部分,每部分有M/2个图像。对于配对的身份批次,我们按照人脸身份将其分割成两部分,每部分具有相同的人脸身份集合。我们混合这四部分以获得I ∪ III;II ∪IV(如图2所示),其中∪表示集合的并操作。为什么使用双数据加载器?正如前面所述,我们设计双数据加载器来提高DCP参数的更新效率。为了更好地理解我们的设计,我们分析了基于身份和基于实例的加载器之间的不同影响,如下所示。设M为批次大小,nID为给定数据集中身份的总数,k min(kmax)为数据集中一个人的最小(最大)图像数量,¯k为每个身份的平均图像数量。这里提到的DCP的形状在下文中讨论。• If we only use instance-based loader, the update speed• If we only use identity-based loader, we can obtain theaverage fastest update speed ( nIDM ) of each identity.However, identity-based loader re-sample identitiesthat have rare number of images too many times, soPθ(I ∪ III) = F DCPp⊕ F ¬DCPpGφ(II ∪ IV ) = Fg(6)T[1 : C − M, :, :] = T[M + 1 : C, :, :] ∈ R(C−M)×K×DT[C − M + 1 : C, 0, :] = Fg ∈ RM×K×Di=1logW Ty Pi40870主要论文中的 C × K × D 是 DCP 的规模,C 是 DCP可容纳的人脸身份数量,K 是 DCP 中每个占位符的容量,D表示特征维度。给定数据集的总图像数可以表示为 ¯ knID。我们通过估计给定人脸身份更新 ¯ kn ID M的最小纪元来评估更新速度。0Mk min]。因此,仅使用基于实例的加载器可能会导致以下问题:1.如果身份数量严重不平衡,则具有稀缺图像数量的身份的中心更新速度太慢。2. 如果我们采样属于 M个不同身份的 M 张图像,则 DCP可能在此迭代中没有正样本。在这种情况下,关键的分类交叉熵无法计算。0比如,对于具有丰富类内图像的身份,基于实例的加载器需要比基于身份的加载器多 k min倍的迭代次数才能从数据集中采样所有图像。此外,对于具有丰富类内图像的身份的每个实例,采样概率太低,基于身份的加载器在训练阶段无法采样到足够多的类内图像。0•使用双数据加载器可以继承基于实例和基于身份加载器的优点。首先,双数据加载器提供了正负图像之间适当的比例,这对于 DCP非常重要。其次,双数据加载器保持了身份中心和各种类内图像的高更新效率(速度)。0特征提取:我们将 I ∪ III 和 II ∪ IV作为探针和库网的输入,分别提取人脸特征并生成身份中心。该过程可以表示如下:0其中探针和库网分别缩写为 P θ 和 G φ,其参数分别表示为θ、φ。符号 ¬ 用于将特征分为属于 DCP(第 3.4小节)的身份和不属于 DCP 的身份。F g表示由库网提取的特征。对于每个批次,我们将 DCP中的身份数量表示为 I,不在 DCP 中的身份数量表示为 M -I。03.4. 动态类池0在本小节中,我们介绍了动态类池(DCP)的细节。受滑动窗口[18]的启发。0在目标检测任务中,我们可以利用一个动态身份组,通过迭代滑动整个人脸身份。我们将这个滑动身份组称为DCP,它可以看作是 FC层的替代品。首先,我们定义一个大小为 C × K × D 的张量T,它用高斯分布进行初始化,其中 C 是 DCP可容纳的人脸身份数量,K表示属于同一身份的特征数量(我们将默认设置为 K =2)。我们将 F g 存储在 DCP 中,并使用每次迭代中的 F g更新 DCP中最过时的特征。更新规则类似于最近最少使用(LRU)1策略,可以表示为:0(7) 对于当前批次,在 DCP 更新后,我们获得了 DCP中每个身份的伪特征中心,包括 II ∪ IV中包含的身份。正如公式 6 所述,与 DCP 相比,P-Net的特征可以分为两种类型。一种是 F DCP p,另一种是 F ¬DCP p。对于 F DCPp,我们可以通过以下方程计算其逻辑值:0P = 10K0K0i = 10F DCP p,T [: , i, :] ∈ R I × C (8)0其中 �∙ , ∙� 表示内积操作,P 表示 F DCP p的逻辑值。因此,我们可以将交叉熵损失函数表示如下:0Lce = -10I0I�0�Cj=1eWTjPi,(9)0其中Wj是第j个分类器,yi是Pi的身份。对于ID不在DCP中的特征F¬DCPp,我们添加了一个约束,以最小化F¬DCPp和T之间的余弦相似度,可以表示为:0Lcos = 10M-I0i=1ϕ(F¬DCPp,¯T),(10)0其中ϕ是计算余弦相似度的操作,¯T表示在DCP中沿K轴的平均操作。总损失为Ltotal = Lce + Lcos。03.5. 经验分析。0DCP如方程式4和9所示,我们在DCP上使用的交叉熵损失与FC的损失类似。通过方程式3中向量V的特殊设置,我们可以将Lce表示为方程式4的形式。为了进一步验证这种机制对DCP训练的影响,我们提供了一些经验分析。01 https://www.interviewcake.com/concept/java/lru-cache1 for 1 ≤ t ≤40880算法1:DCP的更新机制0输入:DCP:T∈RC×K×D,用高斯分布初始化。身份批次的索引:t。批量大小:M。0M执行02使用G-Net从第t批次中提取特征作为伪特征中心,表示为Fg;03如果1≤t≤C0M:04将Fg顺序存储在DCP中的未占用位置。05否则:06更新DCP,如方程式7所示。07结束0如第3.3小节和方程式7中所述,DCP中的身份按照LRU机制进行更新,如算法1所示。当基于身份的加载器按照身份遍历数据集时,部分组件(M02)的向量V可以通过对整个人脸身份进行洗牌并取其对应的第t部分来确定,其中1≤t≤nIDM。当我们使用基于身份的加载器时,通过V的设置和LRU规则的属性,每个分类器/伪特征中心至少可以更新[C0M次。这意味着在我们的设置中,每个分类器都有类似的优化机会。DCP可能具有以下优势:1)DCP的大小与人脸身份的数量无关,可以远小于FC。因此,计算成本大大降低;2)DCP的硬件,特别是存储占用,也比FC小,通信成本可以大大降低。这些优势是我们将我们的方法称为更快的人脸分类的原因。03.6. 实验细节0我们在一台配备8个Tesla V100 32GGPU的服务器上训练了我们的F2C。我们使用ResNet100、ResNet50和Mobile-FaceNet作为我们的主干网络,评估了F2C的效率。学习率初始化为0.1,使用SGD优化器,在第10、14、17个epoch时除以10。训练在20个epoch时终止。DCP的长度(ID数量)默认为总人脸身份的10%。批量大小为512,即每个批次从基于身份的加载器中选择256张图像,从基于实例的加载器中选择256张图像。04. 实验0在本节中,我们首先简要回顾了人脸识别领域中的几个基准数据集。然后,我们进行了消融研究,评估了每个模块的有效性。0规则和F2C中的超参数设置。最后,我们将F2C与相关的最新方法进行比较。04.1. 数据集0我们使用MobileFaceNet、ResNet50和ResNet100在MS1MV2、Glint360k和Webface42M(Webface42M是原始Webface260M的清理版本,具有2M个ID和约42M张图像)上训练F2C。我们主要展示F2C在以下9个学术数据集中的性能:LFW [15],SLFW [15],CFP [29],CALFW[52],CPLFW [51],AGEDB [24],YTF [46],IJBC[23]和MegaFace[17]。LFW是从互联网收集的,包含13,233张图像和5,749个ID。SLFW与LFW类似,但规模较小。CFP收集了名人的图像,包括正面和侧面视图。CALFW是LFW的跨年龄版本。CPLFW与CALFW类似,但CPLFW包含更多姿态变化的图像。AGEDB包含带有准确到年份的无噪声标签的图像。YTF包括来自YouTube的3425个视频,涵盖1595个ID。IJBC是从IJBB更新的,包括3531个对象的21294张图像。MegaFace旨在评估百万级干扰因素下的人脸识别性能,包括一个大型画廊集和一个探测集。在这项工作中,我们使用Facescrub作为MegaFace的探测集。04.2. FC和F 2 C之间的性能比较0我们选择了3个不同的主干网络,并使用MS1MV2、Glint360k和Webface42M作为训练数据集,在9个学术基准测试之间评估了FC和F 2 C的性能。如表1所示,F 2C可以达到与FC相当的性能。我们还提供了这些数据集之间的平均性能,并在最后一列中展示。F 2C仅比FC低1%。请注意,DCP的大小仅为总人脸身份的10%。04.3. 消融研究0我们对F 2C的超参数和设置进行了消融研究。在这里,我们使用MobileFaceNet和ResNet50在MS1MV2上进行实验。单加载器还是双加载器?如方法部分所述,双加载器可以提高DCP的更新效率。为了评估加载器在F 2C中的影响,我们使用基于身份和基于实例的加载器的不同组合,并在表2中展示结果。小数据集代表LFW、SLFW、CFP、CALFW、CPLFW、AGEDB和YTF。我们展示了小数据集上的平均准确率。除非另有说明,IJBC使用TPR@FAR=1e-4指标,MegaFace使用FPR@FAR=1e-6指标。使用基于实例的加载器或基于身份的加载器可以获得可比较的结果。FC-Mobile99.0498.8096.9494.3788.3796.7397.0492.2990.6994.92F2C-Mobile98.9398.5797.1694.5387.8096.4797.2491.0689.3094.56FC-R5099.7899.5598.8095.7692.0198.1398.0395.7497.8297.29F2C-R5099.5099.4598.4695.5890.5897.8398.1694.9196.7496.80Training on Glint360kFC-R10099.8399.8199.3896.1194.9098.5898.5197.6898.5798.15F2C-R10099.8398.8099.3395.9294.8598.3398.2397.3198.5397.90Backbone Method Small Datasets IJBC MegaFaceID.L94.2082.3079.19MobileIns.L94.2489.3086.40Dua.L95.2991.0689.30ID.L96.7091.7593.65ResNet50Ins.L96.0892.0692.74Dua.L97.0794.9196.740196.7791.7593.651096.2392.0692.741197.0894.9196.742196.2994.2196.431295.4090.8090.5640890Table 1: 9个人脸识别基准测试的评估结果(%)。所有模型都是从头开始在MS1MV2、Glint360k和Webface42M上进行训练。IJBC使用TPR@FAR=1e-4指标。MegaFace使用TPR@FAR=1e-6指标。0Method LFW SLFW CFP CALFW CPLFW AGEDB YTF IJBC MegaFace Avg. 在MS1MV2上训练0FC-R50 99.83 99.71 99.07 95.71 93.48 98.25 97.92 96.48 98.64 97.67 F 2 C-R50 99.71 99.53 98.30 95.2391.60 97.88 97.76 94.75 96.73 96.83 在Webface42M上训练0Table 2:单一或双重数据加载器的评估结果。ID.L、Ins.L和Dua.L分别代表身份加载器、实例加载器和双加载器。0小数据集上的结果。基于实例的加载器在IJBC和MegaFace上的性能明显优于基于身份的加载器。这可以解释仅使用身份加载器不能确保所有图像都被采样。使用双数据加载器可以明显提高性能,这与我们的分析一致。请注意,为了进行公平比较,这些结果是在相同数量的样本输入模型的情况下获得的,而不是在相同数量的时期获得的。单一网络还是双网络?MoCo将同一图像的两个增强图像视为正样本,并在无监督学习中取得了令人印象深刻的性能。因此,具有相同ID的图片自然可以被视为正样本,因此像MoCo一样使用双主干网络生成身份中心并提取人脸特征是直观的。然而,我们打算进一步降低训练成本,因此我们在表3中比较了单一网络和双网络的性能。双网络在所有数据集上的表现都优于单一网络,这说明仅使用单一网络可能会陷入平凡解决方案,如《半孪生训练》[9]中所解释的那样。探索DCP中K的影响。K代表属于同一身份的特征数量。我们在表4中评估了K=1和K=2。由于特征在0表3:单网络或双网络的评估。0骨干网络 方法 小数据集 IJBC MegaFace0Mobile Single 93.90 88.07 82.69 Dual 95.2991.06 89.300ResNet50 Single 95.55 92.26 92.98 Dual 97.0794.91 96.740表4:K的评估。0骨干网络 K 小数据集 IJBC MegaFace0Mobile 1 95.19 90.75 88.31 2 95.29 91.0689.300ResNet50 1 96.58 94.38 96.49 2 97.0794.91 96.740表5:双数据加载器中的比例评估。这里使用ResNet50。0实例加载器 身份加载器 小数据集 IJBC MegaFace0DCP代表类别中心,直观上来说,较大的K可以提供更可靠的中心估计。实验结果也支持我们的直觉。然而,我们必须在性能和存储之间做出权衡。较大的K意味着更好的性能,但会增加GPU内存和服务器之间的通信成本。因此,默认情况下,在DCP中将K设置为2。双数据加载器中的比例。我们将基于实例和基于身份的加载器之间的大小比例默认设置为1:1。为了进一步探索双数据加载器中的比例对结果的影响,我们在表中展示了实验结果。051015202530358163264Memory on Per GPU (GB)Model Parallel+FP16Model ParallelData ParallelPartialFC+FP16FFC+FP16Face Identities (Million)Out of Memory010002000300040005000481632Throughput (Images/Sec.)FFC+FP16PartialFC+FP16Model Parallel+FP16Model ParallelData ParallelFace Identities (Million)FFC40900表6:与最先进方法的比较。为了进行公平比较,Partial-FC、VFC、DCQ和F2C只使用MS1M数据集的1%进行训练。Megaface指的是排名第一的识别率。IJBC是TPR@FAR=1e-4。下界结果摘自VFC论文。上界结果由我们复现。0方法 CALFW CPLFW SLFW YTF CFP IJBC MegaFace0下界 87.43 75.45 93.52 93.78 91.66 65.19 79.28 上界 95.75 90.85 99.55 97.76 98.3995.48 97.56 N-pair[31] 87.32 72.80 92.28 92.62 - 61.75 82.56 Multi-similarity[41]85.40 73.60 91.03 92.76 - 57.82 76.88 TCP[22] 88.05 76.00 93.23 93.92 93.27 43.5888.18 Partial-FC[1] 95.40 90.33 99.28 97.76 98.13 94.40 94.13 VFC[20] 91.93 79.0096.23 95.08 95.77 70.12 93.18 DCQ[19] 95.38 88.92 99.23 97.71 98.16 92.96 95.21F2C 95.25 89.38 99.23 97.76 98.25 92.31 94.250(b)吞吐量(图像/秒)的比较。图3:不同训练方法的硬件资源占用的可视化。0ble5.我们使用ResNet50作为骨干网络来训练MS1MV2数据集。我们发现在大多数数据集上,尤其是在具有挑战性的IJBC和MegaFace上,双数据加载器中默认的比例可以取得最高的结果。4.4.与SOTA方法的比较。我们将我们的F2C与其他6种最先进的方法进行比较,并在表6中展示结果。我们可以观察到F2C在大多数数据集上的表现明显优于lower-boundary、N-pair、Multi-similarity和TCP,尤其是在IJBC和MegaFace数据集上。正如VFC[20]中所述,上界代表使用100%的人脸身份进行正常FC训练。F2C的性能略低于上界。它也可以与Partial-FC达到可比较的结果,但Partial-FC需要硬件空间来存储全部身份的中心,而VFC则不需要。然而,与F2C相比,VFC的性能明显下降。资源成本和训练效率的可视化。GPU内存占用和吞吐量是评估分布式并行训练方法实用性的两个关键因素。为了更好地理解F2C的效率,图3可视化了F2C和其他训练方法在8个V100 32GGPU上的GPU内存占用和吞吐量。GPU内存占用在图3a中说明,当实例并行和模型并行时,数据并行和模型并行都会出现内存溢出(OOM)。0身份达到1600万。Partial-FC的内存随着身份数量的增长而增加,当身份达到3200万时也会发生内存溢出。此外,我们在图3b中展示了吞吐量的比较,只有F2C能够在不同数量的身份中保持高水平的吞吐量。因此,提出的F2C在超大规模人脸识别任务中是实用的。结论:本文提出了一种高效的超大规模人脸识别训练方法F2C,主要创新点是使用动态类别池(DCP)来存储和更新人脸身份特征,作为FC的替代品,并使用双加载器来帮助DCP高效更新。全面的实验和分析结果表明,我们的方法可以减少训练的硬件成本和时间,并获得与最先进的基于FC的方法相当的性能。更广泛的影响:该方法在人脸训练数据集上得到了验证,由于其广泛的适用性,该方案可以扩展到其他数据集和情境。然而,它不包含任何作者进行的涉及伦理或人权的研究。致谢:本研究得到新加坡国家研究基金会在其AI新加坡计划(AISG奖项编号:AISG2-PhD-2021-08-008)的支持。此工作得到阿里巴巴集团通过阿里巴巴研究国际计划的支持,以及中国国家自然科学基金项目62106264和62176165的支持。我们感谢Google TFRC支持我们获得CloudTPUs的访问权限,CSCS(瑞士国家超级计算中心)支持我们获得PizDaint超级计算机的访问权限,TACC(德克萨斯先进计算中心)支持我们获得Longhorn超级计算机和Frontera超级计算机的访问权限,以及LuxProvide(卢森堡国家超级计算机HPC组织)支持我们获得MeluXina超级计算机的访问权限。40910参考文献0[1] Xiang An,Xuhan Zhu,Yang Xiao,Lan Wu,MingZhang,Yuan Gao,Bin Qin,Debing Zhang和Ying Fu。Partialfc:在单台机器上训练1000万个身份。arXiv预印本arXiv:2010.05222,2020年。[2] Ankan Bansal,Anirudh Nanduri,Carlos DCastillo,Rajeev Ranjan和RamaChellappa。Umdfaces:用于训练深度网络的注释人脸数据集。在2017年IEEE国际联合生物识别会议(IJCB)上,第464-473页。IEEE,2017年。[3] Qiong Cao,Li Shen,Weidi Xie,Omkar M.Parkhi和AndrewZisserman。Vggface2:一个用于识别不同姿势和年龄的人脸数据集。在2018年第13届IEEE国际自动面部手势识别会议(FG2018)上,第67-74页,2018年。[4] Shiming Chen,ZimingHong,Yang Liu,Guo-Sen Xie,Baigui Sun,Hao Li,QinmuPeng,Ke Lu和XingeYou。Transzero:用于零样本学习的属性引导变压器。在第36届AAAI人工智能大会论文集上,2022年。[5] Sheng Chen,YangLiu,Xiang Gao和Zhen Han。Mobile-facenets:用于移动设备上准确实时人脸验证的高效卷积神经网络。在中国生物识别会议上,第428-438页。Springer,2018年。[6]Shiming Chen,Wenjie Wang,Beihao Xia,QinmuPeng,Xinge You,Feng Zheng和LingShao。Free:用于广义零样本学习的特征细化。在IEEE/CVF国际计算机视觉会议上,第122-131页,2021年。[7] ShimingChen,Guo-Sen Xie,Qinmu Peng,Yang Liu,BaiguiSun,Hao Li,Xinge You和LingShao。Hsva:用于零样本学习的分层语义-视觉自适应。在第35届神经信息处理系统会议上,2021年。[8] Jiankang Deng,Jia
下载后可阅读完整内容,剩余1页未读,立即下载
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![-](https://csdnimg.cn/download_wenku/file_type_lunwen.png)
![-](https://csdnimg.cn/download_wenku/file_type_lunwen.png)
![-](https://csdnimg.cn/download_wenku/file_type_lunwen.png)
![-](https://csdnimg.cn/download_wenku/file_type_lunwen.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://profile-avatar.csdnimg.cn/default.jpg!1)
cpongm
- 粉丝: 4
- 资源: 2万+
上传资源 快速赚钱
我的内容管理 收起
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![](https://csdnimg.cn/release/wenkucmsfe/public/img/voice.245cc511.png)
会员权益专享
最新资源
- 京瓷TASKalfa系列维修手册:安全与操作指南
- 小波变换在视频压缩中的应用
- Microsoft OfficeXP详解:WordXP、ExcelXP和PowerPointXP
- 雀巢在线媒介投放策划:门户网站与广告效果分析
- 用友NC-V56供应链功能升级详解(84页)
- 计算机病毒与防御策略探索
- 企业网NAT技术实践:2022年部署互联网出口策略
- 软件测试面试必备:概念、原则与常见问题解析
- 2022年Windows IIS服务器内外网配置详解与Serv-U FTP服务器安装
- 中国联通:企业级ICT转型与创新实践
- C#图形图像编程深入解析:GDI+与多媒体应用
- Xilinx AXI Interconnect v2.1用户指南
- DIY编程电缆全攻略:接口类型与自制指南
- 电脑维护与硬盘数据恢复指南
- 计算机网络技术专业剖析:人才培养与改革
- 量化多因子指数增强策略:微观视角的实证分析
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
![](https://img-home.csdnimg.cn/images/20220527035711.png)
![](https://img-home.csdnimg.cn/images/20220527035711.png)
![](https://img-home.csdnimg.cn/images/20220527035111.png)
安全验证
文档复制为VIP权益,开通VIP直接复制
![](https://csdnimg.cn/release/wenkucmsfe/public/img/green-success.6a4acb44.png)