Deep Face Recognition读书笔记

来源:互联网 发布:阿里云 aws对比 编辑:程序博客网 时间:2024/06/14 03:27

Abstract

  1. 生成人脸数据集
  2. 提出一个网络,在LFW和YTF数据集上达到很好的结果

1 Introduction

学术圈没有巨头公司那么大的数据集,所以本文

  1. 提出一种创建合理的数据集的方法,只需要少量人力注释。
  2. 研究各种CNN结构并进行评价,找出关键因素,得到一个更加简洁且高效的神经网络结构,对所有图像和视频中的人脸识别问题都能得到很好的效果。
  • DeepFace:a CNN use siamese network architecture.

Siamese网络是一种相似性度量方法,当类别数多,但每个类别的样本数量少的情况下可用于类别的识别、分类等。主要思想是通过一个函数将输入映射到目标空间,在目标空间使用简单的距离(欧式距离等)进行对比相似度。在训练阶段去最小化来自相同类别的一对样本的损失函数值,最大化来自不同类别的一堆样本的损失函数值。针对成对样本输入,这里两个相同的函数G,拥有一份相同的参数W,即这个结构是对称的。
这里写图片描述

  • triplet loss:三元组损失

triplet是一个三元组,这个三元组是这样构成的:从训练数据集中随机选一个样本,该样本称为Anchor,然后再随机选取一个 跟Anchor
(记为x_a)属于同一类的样本 和一个不同类的样本,这两个样本对应的称为Positive (记为x_p)和Negative
(记为x_n),由此构成一个(Anchor,Positive,Negative)三元组。如下图所示:
这里写图片描述

triplet loss的目的就是通过学习,让x_a和x_p特征表达之间的距离尽可能小,而x_a和x_n的特征表达之间的距离尽可能大,并且要让x_a与x_n之间的距离和x_a与x_p之间的距离之间有一个最小的间隔
这里写图片描述

3 Dataset Collection

Stage 1.Bootstrapping and filtering a list of candidate identity names.

bootstrapping:自举,利用有限的样本资料经由多次“重复抽样”,重新建立起足以代表母体样本分布之新样本。程序语言编译器用自身的语言及其特性来编译自己。

Stage 2. Collecting more images for each identity.

Stage 3. Improving purity with an automatic filter.

A one-vs-rest linear SVM is trained for each identity using the Fisher Vector Faces descriptor.

One-vs-Rest算法介绍:

OneVsRest将一个给定的二分类算法有效地扩展到多分类问题应用中,也叫做“One-vs-All.”算法。OneVsRest是一个Estimator。它采用一个基础的Classifier然后对于k个类别分别创建二分类问题。类别i的二分类分类器用来预测类别为i还是不为i,即将i类和其他类别区分开来。最后,通过依次对k个二分类分类器进行评估,取置信最高的分类器的标签作为i类别的标签。

linear SVM算法介绍:

支持向量机(SVM)是一种二分类模型,其基本模型定义为特征空间上的间隔最大的线性分类器,即支持向量机的学习策略便是间隔最大化,最终可转化为一个二次规划问题的求解。

线性SVM不直接依赖于数据分布,分类平面不受一类点影响,只有少数几个代表支持向量的样本参与了计算,也就是只有少数几个样本需要参与核计算(即kernal
machine解的系数是稀疏的)
这里写图片描述

Stage 4. Near duplicate removal.

This is done by computing the VLAD descriptor [2, 9] for each image, clustering such descriptors within the 1,000 images for each identity using a very tight threshold, and retaining a single element per cluster.

VLAD:http://blog.csdn.net/l740450789/article/details/45723209

Stage 5. Final manual filtering.

a multi-way CNN is trained to discriminate between the 2,622

face identities using the AlexNet architecture of [10]; then the softmax scores are used to

rank images within each identity set by decreasing likelihood of being an inlier.

Alexnet共8层(有训练参数的层),5个卷积层,3个全连接层,首先使用了收敛速度更快的激活函数ReLU,为防止过拟合使用LRN和dropout。

     size/stride    output      padding value

Input 2272273
conv 11*11/4 55*55 *96 VALID
relu
lrn
pool 3*3/2 27*27 *96 VALID
conv 5*5/1 27*27 *256 SAME
relu
lrn
pool 3*3/2 13*13 *256
conv 3*3/1 13*13 *384 SAME
relu
conv 3*3/1 13*13 *384 SAME
relu
conv 3*3/1 13*13 *256 SAME
relu
pool 3*3/2 6*6 *256
reshape
fc 1*1 *4096
relu
dropout 0.5
fc 1*1 *4096
relu
dropout 0.5
fc 1*1 *1000

4 Network architecture and training

  • softmax输出置信度作为分类依据。
  • 把输出进行l2-normalised 并采用triplet loss策略训练分类器来提升效果

这里写图片描述

  • dropout :指在深度学习网络的训练过程中,对于神经网络单元,按照一定的概率将其暂时从网络中丢弃。注意是暂时,对于随机梯度下降来说,由于是随机丢弃,故而每一个mini-batch都在训练不同的网络。dropout是CNN中防止过拟合提高效果的一个大杀器
    http://blog.csdn.net/stdcoutzyx/article/details/49022443
阅读全文
0 0