FaceNet: A Unified Embedding for Face Recognition and Clustering - 人脸识别 -- Triplet Loss

Paper name

FaceNet: A Unified Embedding for Face Recognition and Clustering

Paper Reading Note

URL: https://arxiv.org/pdf/1503.03832.pdf

TL;DR

该文章出自google公司,其提出了一种直接将人脸嵌入到欧式空间中的特征来进行人脸验证、人脸检索、人脸聚类的方法。该方法的主要创新点在Triple Loss的提出和Triplet难样本挖掘实现。


Introduction

不同于当时已有的分类人脸的处理方式,如通过神经网络得到人脸的高维特征,然后通过PCA进行降维操作得到人脸的特征表达,最后通过softmax来对人脸特征进行分类。这样学习到的特征在后续用于人脸验证,即基于联合贝叶斯等方法对两个人脸的特征进行匹配。这个过程很不直接,因为训练集和最后测试集并不同源,在训练集中需要尽量使用更多的softmax输出、更多的训练数据以及更高维的人脸特征才能有效将网络提取到的特征泛化到在测试集上work。
这篇文章希望直接将人脸图片映射到欧式空间的特征表达,通过计算不同人脸在特征空间上的距离来进行人脸验证、搜索、聚类等任务。如下图所示,相同id的人脸在特征空间中的距离明显低于不同id的人脸,即便不同id的人脸是处于相同的光照以及姿态下。
FaceNet: A Unified Embedding for Face Recognition and Clustering - 人脸识别 -- Triplet Loss


Dataset/Algorithm/Model/Experiment Detail

数据集

文章中使用了四个数据集

  • 与训练集同源的测试集,包含1000k的图片,分成了5个200k图片的子评测集,在最后评测时计算五个评测数据集上的均值
  • 个人照片集,与训练集图片分布类似,包含大概12k图片
  • LFW,经典人脸识别公开数据集
  • Youtube Faces DB,经典公开数据集

评估标准

主要包含两个指标: 验证率与误识率

  • 首先定义了true accept(正确识别)的样本为一对属于同一id的图片的距离小于阈值d,false accept(错误识别)的样本为一对不属于同一id的图片的距离小于阈值d
    FaceNet: A Unified Embedding for Face Recognition and Clustering - 人脸识别 -- Triplet Loss
  • 如果所有的测试样本对中属于同一id的样本数为Psame,而不属于同一id的样本数为Pdiff,那么验证率(VAL)和误识率(FAR)定义如下:

FaceNet: A Unified Embedding for Face Recognition and Clustering - 人脸识别 -- Triplet Loss

实现方式

  • 实现方式在特征提取方面很简单直接,即将人脸成batch输入深度卷积神经网络得到人脸的特征表达,通过L2Norm将提取的人脸feature控制在d维的超平面上,也就是满足feature的二范数等于1,这才使得后续的不同图片的距离计算能够在同一尺度下进行。

FaceNet: A Unified Embedding for Face Recognition and Clustering - 人脸识别 -- Triplet Loss

  • 通过上述得到的人脸特征需要使用Triplet Loss对网络进行训练, Triplet Loss的思想就是相同id的两个图片在特征空间上的距离小于不同id的两个图片在特征空间上的距离,并且约束要小于一个margin以上,loss的示意图与具体公式表达如下:

FaceNet: A Unified Embedding for Face Recognition and Clustering - 人脸识别 -- Triplet Loss

FaceNet: A Unified Embedding for Face Recognition and Clustering - 人脸识别 -- Triplet Loss

  • Triplet训练样本选取。在训练过程中需要选择较难的样本来加快模型的收敛,及不满足上述公式(1)的样本对。但是也不能全部选取最难的样本来进行训练,这很容易造成模式崩塌现象,即模型为了让学出来的样本对中相同id的特征距离尽量小,学出来的特征f(x)都等于0。作者实验中发现semi-hard样本训练效果最好,及样本对中相同id的特征距离小于不同id的特征距离,而小于的程度还没有到达所设定的margin。

FaceNet: A Unified Embedding for Face Recognition and Clustering - 人脸识别 -- Triplet Loss

实验结果

  • 作者尝试了不同参数量和计算量的多个模型,可以看到基本上随着模型的计算量的增加,模型的精度得到提升,但是该幅图中没有表现出模型的计算量,其实NN1和NN2两个模型虽然计算量基本一致,但是NN2比NN1的参数量小20倍左右,并且还取得了更高的精度
    FaceNet: A Unified Embedding for Face Recognition and Clustering - 人脸识别 -- Triplet Loss

FaceNet: A Unified Embedding for Face Recognition and Clustering - 人脸识别 -- Triplet Loss

  • 在这个图中可以看到在FAR小于1E-6时VAL有骤降的情况,作者认为这是由于测试集中的误标注样本导致的,因为在FAR特别小时,一个误标注样本就能极大降低VAL值 FaceNet: A Unified Embedding for Face Recognition and Clustering - 人脸识别 -- Triplet Loss

  • 作者可视化LFW数据中被错误标注的样本,在false reject的13个样本中,有5个都是误标注导致的

FaceNet: A Unified Embedding for Face Recognition and Clustering - 人脸识别 -- Triplet Loss

  • 聚类效果展示,可以看到不同光照、不同姿态、甚至不同年龄阶段的同一id的人都被良好聚类在一起

FaceNet: A Unified Embedding for Face Recognition and Clustering - 人脸识别 -- Triplet Loss

Thoughts

这篇文章一改以往通过分类的方式来进行人脸验证网络训练的过程,通过学习将人脸映射到欧式特征空间来进行距离匹配的方法取得了当时SOTA的效果。这种方法的应用方便,很容易应用在人脸验证、检索、聚类等任务中,Triplet Loss的思想在后续的多个工作中也都被沿用。