SphereFace: Deep Hypersphere Embedding for Face Recognition CVPR2017 https://github.com/wy1iu/sphereface pytorch: https://github.com/clcarwin/sphereface_pytorch
针对人脸识别问题,当前的损失函数基本都基于 Euclidean margin ,这里我们提出基于 angular margin 的 angular softmax (A-Softmax) loss 。 思路简单,效果也好!
本文的主要内容: 1)人脸识别的一些背景知识和 主要几种损失函数 2)从基于 Euclidean margin softmax loss 到 基于 angular modified softmax loss 3)引入 Angular Margin 到 Softmax Loss 得到 A-Softmax Loss 4)A-Softmax Loss 的 Hypersphere Interpretation 5)Properties of A-Softmax Loss 6)Discussions 和 Experiments
face recognition 包括两类: face identification : classifies a face to a specific identity 根据人脸指出其是谁,这是谁的人脸图像 face verification : determines whether a pair of faces belongs to the same identity 这个两个人脸是不是同一个人
首先说一下人脸识别的 open-set and closed-set ,这是基于 testing protocol 来分的
最大的区别在于: closed-set : Identities appear in training set open-set : Identities DO NOT appear in training set
对于 closed-set protocol,所有的参与测试的人都在训练集中,很自然就是将测试中人脸分类到训练集中的某一个人。 在这个场景,face identification 和 verification 是等价的。所以 在 closed-set FR 中 人脸识别是 一个分类问题。
对于 open-set protocol, 测试的人不在训练集中,Open-set FR 本质上是一个 metric learning 问题, 关键是学习到一个 discriminative large-margin features
对于 open-set FR , 理想的特征是满足 在一定的度量空间中最大类类间距 小于 最小类内间距 the maximal intra-class distance is smaller than the minimal inter-class distance under a certain metric space
但是很少有 CNN 提取的特征能够满足这个条件,本文基于 angular margin 的 angular softmax (A-Softmax) loss CNN 提取的特征可以满足该条件
3 Deep Hypersphere Embedding 3.1. Revisiting the Softmax Loss
对于二分类问题,基于 softmax loss 的 posterior probabilities 如下:
对应的损失函数是
损失函数的图示:
这里我们将
改写为
用角度表示的损失函数如下:
3.2. Introducing Angular Margin to Softmax Loss 这里的定义很简单啊!
集中损失函数的2D,3D 几何图示
训练和提取特征
不同 m 的性能指标
不同 m 的效果, 这个图很形象啊!
LFW and YTF dataset 性能
不同卷积层数目的性能对比
MegaFace challenge