整理的人脸系列学习经验:包括人脸检测、人脸关键点检测、人脸优选、人脸对齐、人脸特征提取五个过程总结,有需要的可以参考,仅供学习,请勿盗用。https://blog.csdn.net/TheDayIn_CSDN/article/details/93199307
SphereFace解读
论文地址:SphereFace: Deep Hypersphere Embedding for Face Recognition
代码地址:https://github.com/wy1iu/sphereface
论文题目:SphereFace: Deep Hypersphere Embedding for Face Recognition
一、Abstract 摘要
论文主要讲解了在开集上的人脸识别问题,最好的特征提取模型是在特定的度量空间中,满足同一类的最大类内距离小于不同类的最小类间距离,作者提出了一种基于角度的loss函数angular softmax (A-Softmax) loss,这种loss函数可以学习角度判别特征。A-Softmax可以在超球面上施加角度判别约束,角边的大小可以通过参数m调整,m越大特征越可分,而且A-softmax也通过LFW、YTF、MegaFace Challenge进行了测试,在人脸识别任务上表现优秀。
二、Introduction简介
主要问题如上所示:人脸识别可以分为人脸验证(1:1)和人脸识别(1:N)问题;如上左侧红色框所示,人脸验证是一个分类问题,是指待测试人脸和对比人脸是不是同一个人(ID),常用于机场高铁进站台口的人证核验场景;人脸识别是一个距离度量问题,是比较待测试的人脸和测试库中哪些人最相似,是不是同一个人,常用与人脸检索等场景。
测试协议可以分为closed-set 和 open-set 两种
close-set,是所有的测试集都在训练集中出现过。所以预测结果是图片的ID,如果想要测试两张图片是否是同一个,那么就看这两张图片的预测ID是否一样,这是一个分类问题,只要求特征可分。
open-set,是测试的图片并没有在训练集中出现过,那么每张测试图片的预测结果是特征向量,如果想要比较两张图片的人脸是否属于同一个人,需要测试图像特征向量的距离。这里的人脸识别也可以看做是在探测集和画廊集之间的人脸验证,基本原理是距离度量问题,最关键的是学习有辨别力的大边特征。
解决Open-set上的人脸识别问题
理想的Open-set人脸识别学习到的特征应当在特定的度量空间中,满足同一类的最大类内距离小于不同类的最小类间距离,然而使用此标准学习特性通常比较困难,因为类内变异大,类间相似度高。
前人有用softmax loss学习人脸特征,然而softmax loss仅仅能够使得特征可分,还不能够使得特征具有可判别性。尽管有一些方法通过结合softmax loss和 contrastive loss、center loss去提高特征的可判别性,但是contrastive loss和center loss需要精心地构建图像对和三元组,不仅耗时而且构建的训练对会对识别性能影响很大。因此,作者提出了angular softmax(A-Softmax)loss。
对于一个二分类的softmax的决策边界是 ,如果限制而且,那么边界决策函数就就可以变形为
, ,那么这个边界决策函数仅仅x由w和所决定,因此损失函数关注的是特征的角度可分性。在此基础上,作者又引进了一个整数变量m(m>=1),m控制着角度间隔,类别1和类别2最终形式:
对类别1:
对类别2:
这就是二分类的A-Softmax loss。如下是softmax Loss ,modified softmax loss和A-softmax loss 在二分类的情况下的边界决策函数的形式,
下图则是效果展示。虽然是二分类形式,但是也可以一般化成多类别的分类。
三、Deep Hypersphere Embedding 深度嵌入超球面原理
相关博客:
https://blog.csdn.net/cdknight_happy/article/details/79268613
https://blog.csdn.net/qianqing13579/article/details/78288780
https://blog.csdn.net/weixin_42111770/article/details/80665419