人脸识别——Arcface论文详解

原文转载链接: https://blog.csdn.net/shentanyue/article/details/82109580

写的很详细易懂。

目录

前言

人脸识别流程

数据

VGG2

MS-Celeb-1M

MegaFace

LFW

CPF

AgeDB

损失层

Softmax Loss

Center Loss

A-Softmax Loss(SphereFace)

Cosine Margin Loss

Angular Margin Loss

Loss对比分析

网络

评估


前言

近年来随着硬件计算能力的大爆发,在高性能计算的支持下深度学习有了革命性的进步,在互联网大数据的保证下深度学习有了源源不断的动力,优秀的网络结构被不断提出,深度学习技术已被推向 时代浪潮。在深度学习的分支领域,计算机视觉领域当中,人脸识别技术的发展依然是工业界、学术界重点关注的对象。在ResNet在2015年被提出后,越来越多优秀的网络基于ResNet进行优化更新也已取得卓越的成就,而在网络结构进一步升级优化有困难的情况下,研究者逐步将目光转向损失函数这一指挥棒上。

文章[ArcFace:Additive Angular Margin Loss for Deep Face Recognition]的作者提出的Angular Margin Loss在继SoftmaxLoss、Center Loss、A-Softmax Loss、Cosine Margin Loss之后有更加卓越的表现,同时作者也对这一“卓越表现”予以了论证。

论文地址:https://arxiv.org/abs/1801.07698

Code:https://github.com/deepinsight/insightface

人脸识别流程

人脸识别分为四个过程:人脸检测、人脸对齐、特征提取、特征匹配。其中,特征提取作为人脸识别最关键的步骤,提取到的特征更偏向于该人脸“独有”的特征,对于特征匹配起到举足轻重的作用,而我们的网络和模型承担着提取特征的重任,优秀的网络和训练策略使得模型更加健壮。

但在Resnet网络表现力十分优秀的情况下,要提高人脸识别模型的性能,除了优化网络结构,修改损失函数是另一种选择,优化损失函数可以使模型从现有数据中学习到更多有价值的信息。

而在我们以往接触的分类问题有很大一部分使用了Softmax loss来作为网络的损失层,实验表明Softmax loss考虑到样本是否能正确分类,而在扩大异类样本间的类间距离和缩小同类样本间的类内距离的问题上有很大的优化空间,因而作者在Arcface文章中讨论了Softmax到Arcface的变化过程,同时作者还指出了数据清洗的重要性,改善了Resnet网络结构使其“更适合”学习人脸的特征。

如下是ArcFace的输入到输出流程:

上图的处理流程是这样子的,这里假设我们的样本类别数为nn,我们的输入数据x的维度为dd,模型权重ww的维度为d⋅nd⋅n,我们首先对我们的样本xx和权重ww进行归一化,归一化之后样本经过网络最后得到1⋅n1⋅n维的全连接输出,输出后计算得到Target Logit再乘以归一化参数ss再经过Softmax计算得到Prob。

数据

在训练过程中,神经网络都是基于我们的训练数据学习特征的,既然是从训练数据学习特征,最终的方向自然是逼近最终数据的最真实的特征,也就是说,我们数据最原始是什么样子,我们的网络的极限就是什么样子,它不能超越数据本身,而研究者在做的事情,也就是使得网络最后能更加逼近“极限”。所以数据在深度学习中扮演着极其重要的角色,所以文章中强调了干净的数据(数据清洗)的重要性。

这里列举一些文章中提到的开源数据集:

VGG2

VGG2Face人脸数据集包含有训练集8631个人的脸(总量有3141890张人脸),测试集包含有500个人的脸(总量有169396张人脸),属于高质量数据集。

MS-Celeb-1M

MS1M数据集包含有大约10万个人的脸(大约有1千万张人脸),但是数据集中包含有很多的“噪声”,所以作者对MS1M做了数据清洗,最终作者清洗得到的干净的数据包含有8.5万个人的脸(包含有380万张人脸)。

MegaFace

MegaFace数据集包含有69万个人的脸(包含大约有100万张人脸),所有数据由华盛顿大学从Flickr上组织收集。MegaFace是第一个在百万规模级别的面部识别算法的测试基准,这个项目旨在研究当数据库规模提升数个量级时,现有的脸部识别系统能否维持可靠的准确率。MegaFace是目前最为权威、最热门的评价人脸识别性能,特别是海量人脸识别检索性能的基准参照之一。

LFW

LFW(Labeled Faces in the Wild)数据集包含了从网络收集的13000张人脸图像,每张图像都以被拍摄的人名命名。其中,有1680个人有两个或两个以上不同的照片。LFW主要侧重于对比两张人脸照片是否具有相同身份不同。

CPF

CFP(Celebrities in Frontal Profile )数据集是美国名人的人脸数据集,其中包含有500个人物对象,有他们的10张正面照以及4张形象照,因此在作为人物比对验证的时候,作者选用了最有挑战的正面照与形象照作为验证集(CFP,Frontal-Profile,CFP-FP )。

AgeDB

AgeDB(Age Database )数据集包含有440个人的脸(包含有12240张人脸),但其中包含有不同人的不同年龄阶段的照片,最小从3岁到最大101岁时期的照片,每个对象的平均年龄范围为49年。作者采用和LFW一样的对比验证方式。

最后,作者在网络训练过程中采用了VGG2以及MS1M作为训练集,选用了LFW、CPF以及AgeDB作为验证集,最终使用MegaFace作为评测标准。

损失层

关于Loss对于网络的影响,最直观的就是通过计算Loss反传梯度来实现对模型参数的更新,不同的Loss可以使模型更加侧重于学习到数据某一方面的特性,并在之后能够更好地提取到这一“独有”的特征,因此Loss对于网络优化有导向性的作用。

而在近年来人脸识别领域,优化Loss对于最终结果的提高有很大的帮助,从Center Loss的提出,到SphereFace,CosineFace,InsightFace等都有在损失函数这一环节提出新的解决方案,它们的出现对于人脸识别的发展做出了不可磨灭的贡献。

无论是SphereFace、CosineFace还是ArcFace的损失函数,都是基于传统的softmax loss进行修改得到的,所以想要理解ArcFace,需要对之前的损失函数有一定理解。

具体信息:查看https://blog.csdn.net/shentanyue/article/details/82109580

 

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值