
摘要
通过使用百万级真实场景数据集(in-the-wild)并结合基于边距的Softmax损失函数来学习具有判别性的深度特征嵌入,已成为当前人脸识别领域的最先进方法。然而,全连接(Fully Connected, FC)层的内存开销和计算成本会随着训练集中身份数量的增加而线性增长。此外,大规模训练数据不可避免地存在类间冲突(inter-class conflict)以及长尾分布(long-tailed distribution)问题。本文提出了一种FC层的稀疏更新变体,命名为部分全连接(Partial FC, PFC)。在每次迭代中,仅选择正类中心以及负类中心的一个随机子集,用于计算基于边距的Softmax损失。在整个训练过程中,所有类中心仍被完整保留,但每次迭代仅对其中一部分中心进行更新。该方法显著降低了计算需求,减少了类间冲突的发生概率,并有效缓解了尾部类别中心被频繁被动更新的问题。在多种训练数据集和网络架构(如CNN与ViT)上的大量实验验证了所提PFC方法在有效性、鲁棒性和效率方面的优越性能。相关源代码已开源,地址为:\https://github.com/deepinsight/insightface/tree/master/recognition。
代码仓库
deepinsight/insightface
官方
pytorch
GitHub 中提及
pedrobvidal/insightface
pytorch
GitHub 中提及
yangyucheng000/-insightface
pytorch
GitHub 中提及
bovifocr/insightface
pytorch
GitHub 中提及
基准测试
| 基准 | 方法 | 指标 |
|---|---|---|
| face-recognition-on-mfr | Partial FC | African: 98.07 Caucasian: 98.81 East Asian: 89.97 MFR-ALL: 97.85 MFR-MASK: 90.88 South Asian: 98.66 |
| face-verification-on-agedb-30 | PartialFC(R200) | Accuracy: 0.9870 |
| face-verification-on-cfp-fp | PartialFC (R200) | Accuracy: 0.9951 |
| face-verification-on-ijb-b | PartialFC(WebFace42M) | TAR@FAR=0.0001: 96.71 |
| face-verification-on-ijb-c | PartialFC | TAR @ FAR=1e-4: 97.97% TAR @ FAR=1e-5: 96.93% model: R200 training dataset: WebFace42M |
| face-verification-on-ijb-c | Partial FC | TAR @ FAR=1e-4: 98.00% TAR @ FAR=1e-5: 97.23% model: ViT-L training dataset: WebFace42M |