FaceNet论文笔记

背景

  1. 论文: FaceNet: A Unified Embedding for Face Recognition and Clustering
  2. 代码地址: Github

概况

  1. 论文提出了名为FaceNet的框架,该框架学习的是从脸图到欧式距离的映射,这样就可以同图片之间的距离来衡量相似度。相比之前直接用softmax更加高效。
  2. 端到端,框架的输出是一个多维度的embedding向量
  3. 损失函数采用的是三联子损失(triplet loss)
  4. 文章采用的deepCNN的结构为:1)Zeiler&Fergus加上额外的1x1xN的卷积层,2)inception model
  5. 该算法在LFW数据集上实现了99.63%的精确度,在YouTube脸库数据集上实现了95.12%的精确度,准确度比以往算法提升了30%

方法

  • 模型结构
    mark

  • triplet损失函数(三联子)






- triplet选择
- 计算argmax和argmin




- 方案一:每n步产生triplets,使用数据的子集计算argmax, argmin;方案二(论文中采取的方案):在线生成triplets, 在mini-batch中计算argmax和argmin,论文中一个mini-batch每个人选了40张脸图,并且额外增加了随机的负样本脸图
- 选择hardest的负样本在实际中会导致训练时候在早起就陷入局部最优,所以论文中采用semi-hard的策略
mark

- 评估标准
- true accept
mark
- false accept
mark
- validation rate && false accept rate
mark

## 实验结果
- 不同模型对比



- 不同图片质量对比



- 不同embedding维度对比



- 不同训练集数量对比