https://arxiv.org/abs/1704.08063
SphereFace(超球面)是佐治亚理工学院Weiyang Liu等在CVPR2017.04发表,提出了将Softmax loss从欧几里得距离转换到角度间隔,增加决策余量m,限制||W||=1和b=0,SphereFace: Deep Hypersphere Embedding for Face Recognition
主要思想
- 开集人脸识别:测试图像没有在训练集中出现过,是度量学习问题,学习有判别力的大间隔特征。
- A-Softmax loss(Angular Softmax loss):使CNN能够学习角度识别特征,引人了角度间隔m,以使人脸特征的最大类内距离要小于最小类间距离,使学习的特征将更具有判别力。
- L-Softmax loss、A-Softmax loss、CosFace、ArcFace、COCO loss、Angular Triplet Loss等都是angular margin learning系列
- 预处理(人脸对齐):人脸关键点由MTCNN检测,再通过相似变换得到了被裁剪的对齐人脸。
- 训练(人脸分类器):CNN + A-Softmax Loss,CNN使用使用ResNet中的残差单元
- 测试:从人脸分类器FC1层的输出中提取表示特征SphereFace,拼接了原始人脸特征和其水平翻转特征获得测试人脸的最终表示;对输入的两个特征计算余弦距离,得到角度度量。
- 人脸验证:用阈值判断余弦距离。
- 人脸识别:最近邻分类器。
- LFW上99.42%,YTF上95.0%,训练集使用CASIA-WebFace。2017年在MegaFace上识别率在排名第一。
SphereFace学习和推理
- 预处理(人脸对齐):人脸关键点由MTCNN检测,再通过相似变换得到了被裁剪的面。RGB图像中的每个像素([0,255])通过减去127.5然后除以128进行标准化。
- 训练:CNN + A-Softmax Loss
- CNN框架与传统的方法相同,因此它可与任何先进的网络架构兼容(如VGG/ GoogLeNet/ResNet等),这里使用ResNet中的残差单元,如表2用不同深度(4、10、20、36、64)的CNN来评估
- 使用了Angular Softmax loss,使学习的特征将更具有判别力,使m=4。
- 测试:
- 从FC1层的输出中提取深层特征人脸表示(SphereFace)。在所有实验中,测试人脸图像的最终表示是通过连接其原始脸部特征和水平翻转特征来获得的。
- 对两个特征计算余弦距离(Cosine Similarity),得到角度度量(Angular Metric)。
- 人脸验证:用阈值判断上面算的余弦距离。
- 人脸识别:最近邻分类器。
开集人脸识别(Open-set face recognition)
- 通常,人脸识别可分为人脸识别和人脸验证。前者将一个人脸分类为一个特定的标识,而后者确定一对图片是否属于同一人。
- 闭集(open-set)是测试图像在训练集中可能出现过;开集(close-set)是测试图像没有在训练集中出现过。开集人脸识别比闭集人脸识别需要更强的泛化能力。过拟合会降低性能。
- 闭集的人脸识别:相当于分类问题,学习可分离的特征就可以了,人脸验证或识别时提取出标签。所有测试标识都在训练集中预先定义。很自然地将测试人脸图像分类为给定的身份。在这种情况下,人脸验证相当于分别对一对人脸图像进行识别。
- 开集的人脸识别:测试集通常与训练集分离,因为不可能将所有人脸图像归纳在一个训练集中,我们需要将人脸映射到一个可辨别的本地特征空间。在这种情况下,人脸识别被视为在输入人脸图片和数据库中的每个身份之间执行人脸验证。它是度量学习问题,关键是学习有判别力的大间隔特征(discriminative large-margin features),人脸验证或识别时都要比较特征间的距离。
- Open-set FR对特征要求的准则:在特定的度量空间内, 需要类内的最大距离小于类间的最小距离。
度量学习
- 度量学习(metric learning):旨在学习一个相似的(距离)函数。传统的度量学习常常会学习一个距离度量矩阵A ,在给定的特征x1,x