ArcFace 论文大颗粒粗读笔记(三)

续二,这节内容主要讲实验部分,对应论文的第三章,没什么好讲的,证明他前面说过的话而已。

数据集

如表1所示,我们分别采用CASIA [43],VGGFace2 [6],MS1MV2和DeepGlint-Face(包括MS1M-DeepGlint和Asian-DeepGlint)[2]作为我们的训练数据,以便与其他方法进行公平比较。 。请注意,建议的MS1MV2是MS-Celeb-1M数据集的半自动改进版本[​​10]。据我们所知,我们是第一个使用种族特定注释器进行大规模面部图像注释的人,因为如果注释器对身份不熟悉,边界情况(例如硬样本和嘈杂样本)将很难区分。在训练过程中,我们探索有效的面部验证数据集(例如LFW [13],CFP-FP [30],AgeDB-30 [22]),以检查不同设置下的改进。除了使用最广泛的LFW [13]和YTF [40]数据集,我们还报告了ArcFace在最近的大姿态和大年龄数据集(例如CPLFW [48]和CALFW [49])上的性能。我们还对大型图像数据集(例如MegaFace [15],IJB-B [39],IJB-C [21]和Trillion-Pairs [2])和视频数据集(iQIYI-VID [20]进行了广泛的测试])。

实验设置:

对于数据的预处理,根据最近文献【18,37】通过使用五个面部座标点的形式生成标准化的人脸裁切图像。对于嵌入网络使用了resnet50和resnet100【12,11】,在最后一个卷积层之后使用BN+Dropout+FC+BN的结构以获得最终的512维度的嵌入特征。在本文中,我们使用([训练数据集,网络结构,损失])来促进对实验设置的理解。我们按照[37]的方法将特征比例s设置为64,并将ArcFace的角裕度m选择为0.5。本文所有实验均由MXNet实施[8]。我们将批量大小设置为512,并在四个NVIDIA Tesla P40(24GB)GPU上训练模型。在CASIA上,学习率从0.1开始,以20K,28K迭代除以10。训练过程以32K迭代完成。在MS1MV2上,我们将学习率划分为100K,160K迭代,并以180K迭代完成。我们将动量设置为0.9,权重衰减设置为5e4。在测试期间,我们仅保留特征嵌入网络而没有完全连接的层(ResNet50为160MB,ResNet100为250MB),并提取512-D特征(ResNet50为8.9 ms / face)以及每个标准化面孔的15.4 ms / face(对于ResNet100)。要获取模板(例如IJB-B和IJB-C)或视频(例如YTF和iQIYI-VID)的嵌入功能,我们只需计算模板中所有图像或视频中所有帧的特征中心。请注意,训练集和测试集之间的重叠身份被删除以进行严格评估,并且我们仅对所有测试使用单个作物。

损失函数的消融研究:

在表2中,我们首先使用ResNet50在CASIA数据集上探索ArcFace的角裕度设置。在我们的实验中观察到的最佳裕度为0.5。在等式中使用建议的合并裕度框架,如公式4所示。相比之下设置SphereFace和CosFace的边距会更加容易,我们发现分别设置为1.35和0.35时具有最佳性能。我们对SphereFace和CosFace的实现都可以带来出色的性能,而不会出现任何收敛困难。提出的ArcFace在所有三个测试集上都实现了最高的验证精度。此外,我们根据图4中的目标logit曲线对组合裕度框架(在CM1(1、0.3、0.2)和CM2(0.9、0.4、0.15)观察到一些最佳性能)进行了广泛的实验。)。合并的margin框架带来的性能要比单个SphereFace和CosFace更好,但在ArcFace的性能上却更高。
除了与基于边距的方法进行比较之外,我们还在ArcFace和其他损失之间进行了进一步的比较,这些损失旨在加强类内部的紧密度(等式5)和类间的差异(等式6)。作为基线,我们选择了softmax损失,并观察到重量和特征归一化后CFP-FP和AgeDB-30的性能下降。通过将softmax与类内损失结合在一起,可以提高CFP-FP和AgeDB-30的性能。但是,将softmax与类间损失结合使用只会稍微提高精度。 Triplet损失优于Norm-Softmax损失的事实表明,裕度在改善性能方面的重要性。但是,在三元组内采用裕度惩罚,与在ArcFace中在示例和中心之间插入边距相比,示例的效果不佳。最后,我们将损失内,损失间和三重损失合并到ArcFace中,但是没有观察到任何改进,这使我们相信ArcFace已经在强制执行类内紧凑性,类间差异和分类余量。

 

为了更好地了解ArcFace的优越性,我们在表3中给出了不同损失下训练数据(CASIA)和测试数据(LFW)的详细角度统计。我们发现(1)Wj与ArcFace的嵌入特征中心几乎同步(14.29◦),但是Wj与Norm-Softmax的嵌入特征中心之间存在明显的偏差(44.26◦)。因此,Wj之间的角度不能绝对代表训练数据上的类间差异。或者,由训练网络计算出的嵌入特征中心更具代表性。 (2)inter-loss可以有效地压缩类内变化,但也会减小类间角度。 (3)Intra-loss可以略微增加W(直接)和嵌入网络(间接)上的类间差异,但也会增加类内角度。 (4)ArcFace已经具有非常好的类内紧凑性和类间差异。 (5)与ArcFace相比,Triple-Loss具有相似的类内紧凑性,但类间差异较小。此外,如图6所示,ArcFace在测试集上具有比Triplet-Loss更明显的裕度。

表注:不同损耗([CASIA,ResNet50,损耗*])下的角度统计。 每一列表示一个特定的损失。 “ W-EC”是指Wj与相应的嵌入特征中心之间的夹角的平均值。 “ W-Inter”是指Wj之间的最小角度的平均值。 “ Intra1”和“ Intra2”分别是指xi和CASIA和LFW上的嵌入特征中心之间的夹角的平均值。 “ Inter1”和“ Inter2”分别是指CASIA和LFW上的嵌入特征中心之间的最小角度的平均值。

图6. LFW的所有正对和随机负对(〜0.5M)的角度分布。 红色区域表示正对,而蓝色表示负对。 所有角度均以度表示。 ([CASIA,ResNet50,损失*])。

评价结果:

LFW,YTF,CALFW和CPLFW的结果。 LFW [13]和YTF [40]数据集是用于图像和视频无约束面部验证的最广泛使用的基准。在本文中,我们遵循带有标签的外部数据协议的无限制条件来报告性能。如表4所示,在使用ResNet100的MS1MV2上训练的ArcFace在LFW和YTF上均以相当大的幅度超出了基线(例如SphereFace [18]和CosFace [37]),这表明加法角余量罚分可以显着提高判别力深度学习功能的强大功能,证明了ArcFace的有效性。除了在LFW和YTF数据集上,我们还报告了ArcFace在最近引入的数据集(例如CPLFW [48]和CALFW [49])上的性能,这些数据在LFW具有相同标识的情况下显示出更高的姿态和年龄变化。


在所有开源的人脸识别模型中,如表5所示,ArcFace模型被评估为排名最高的人脸识别模型,其表现明显优于同行。在图7中,我们说明了LFW,CFP-FP,AgeDB-30,YTF,CPLFW和CALFW上正负对的角度分布(由使用ResNet100在MS1MV2上用ArcFace模型训练的ArcFace模型预测)。我们可以清楚地发现,由于姿势和年龄差距而引起的内部方差会显着增加正对之间的角度,从而使人脸验证的最佳阈值增加,并在直方图上产生更多的混淆区域。

MegaFace上的结果

MegaFace数据集[15]包括690万个不同个体的1M图像作为画廊集,以及FaceScrub [23]的530个独特个体的100K照片作为探针集。在MegaFace上,在两种协议(大型或小型训练集)下有两种测试场景(识别和验证)。如果训练集包含超过0.5M图像,则定义为大。为了公平起见,我们分别在小协议和大协议下在CAISA和MS1MV2上训练ArcFace。


在表6中,接受过CASIA培训的ArcFace获得了最佳的单模型识别和验证性能,不仅超过了强大的基准(例如SphereFace [18]和CosFace [37]),而且也超过了其他已发布的方法[38,17]。当我们观察到识别和验证之间存在明显的性能差距时,我们对整个MegaFace数据集进行了全面的手动检查,发现许多带有错误标签的人脸图像,从而严重影响了性能。因此,我们手动完善了整个MegaFace数据集,并报告了ArcFace在MegaFace上的正确性能。在精制的MegaFace上,ArcFace仍然明显优于CosFace,并且在验证和识别方面均达到最佳性能。


在大型协议下,与CosFace [37]相比,ArcFace明显超过FaceNet [29],并且在识别方面获得了可比的结果,并且在验证方面获得了更好的结果。由于CosFace使用私人培训数据,因此我们使用ResNet100在我们的MS1MV2数据集上对CosFace进行了再培训。经过公平比较,ArcFace显示了优于CosFace的优势,并且在识别和验证场景下都构成了CosFace的上限,如图8所示。

IJB-B和IJB-C上的结果

IJB-B数据集[39]包含1,845个主题,包含21.8K静态图像和来自7,011个视频的55K帧。总共有12,115个模板,其中包含10、270个真正匹配项和8M冒名顶替者匹配项。 IJB-C数据集[39]是IJB-B的进一步扩展,具有3,531个带有31.3K静态图像和11,779个视频的117.5K帧的对象。总共有23,124个模板,其中19,557个真正的比赛和15,639K个冒名顶替者比赛。在IJB-B和IJB-C数据集上,我们使用VGG2数据集作为训练数据,并使用ResNet50作为嵌入网络来训练ArcFace,以便与最新方法进行公平比较[6,42,41]。

在表7中,我们将ArcFace的TAR(@ FAR = 1e-4)与以前的最新模型进行了比较[6,42,41]。 ArcFace可以明显提高IJB-B和IJB-C的性能(大约3到5%,这是误差的显着降低)。依靠更多训练数据(MS1MV2)和更深层的神经网络(ResNet100)的支持,ArcFace可以进一步将IJB-B和IJBC的TAR(@ FAR = 1e-4)分别提高到94.2%和95.6%。

在图9中,我们在IJB-B和IJB-C2上显示了拟议ArcFace的完整ROC曲线,并且即使在FAR = 1e-6设置新基准时,ArcFace仍可实现令人印象深刻的性能。

Trillion-Pairs的结果

Trillion-Pairs数据集[2]提供来自Flickr的1.58M图像作为画廊集,并提供来自5.7k LFW [13]身份的274K图像作为探测器集。画廊和探针集之间的每一对都用于评估(总共0.4万亿对)。

在表8中,我们比较了在不同数据集上训练的ArcFace的性能。与CASIA相比,建议的MS1MV2数据集明显提高了性能,甚至略胜于具有双重标识号的DeepGlint-Face数据集。当结合MS1MV2的所有身份信息和DeepGlint的亚洲名人的身份时,与排行榜上的最新提交(CIGIT IRSEC)相比,ArcFace可获得最佳的识别性能84.840%(@ FPR = 1e-3)和可比的验证性能。

iQIYI-VID的结果

iQIYI-VID挑战[20]包含来自iQIYI综艺节目,电影和电视剧的4934个身份的565,372个视频剪辑(训练集219,677,验证集172,860和测试集172,835)。每个视频的长度范围是1到30秒。该数据集提供多模式提示,包括脸部,衣服,语音,步态和字幕,以进行字符识别。

iQIYI-VID数据集采用MAP @ 100作为评估指标。 MAP(平均平均精度)是指总体平均准确率,它是针对训练集中每个人ID(作为查询)在测试集中检索到的人ID对应视频的平均准确率的平均值。如表9所示,在结合ResNet100的MS1MV2和Asian数据集上训练的ArcFace设置了较高的基线(MAP =(79.80%))。基于每个训练视频的嵌入特征,我们训练了另一个具有分类损失的三层全连接网络,以在iQIYI-VID数据集上获得自定义特征描述符。通过iQIYI-VID训练集学习到的MLP将MAP显着提高了6.60%。从模型集成和上下文特征(现成的对象和场景分类器[1])获得支持,我们的最终结果明显超过了第二名(0.99%)。

结论

在本文中,我们提出了一个加法角余量损失函数,该函数可以有效地增强通过DCNNs学习的特征嵌入对人脸识别的判别能力。 在文献中报告的最全面的实验中,我们证明了我们的方法始终优于最新技术。 代码和详细信息已根据MIT许可发布。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章