基于Triplet loss函数训练人脸识别深度网络(Open Face)
来源:互联网 发布:小罗伯特唐尼知乎 编辑:程序博客网 时间:2024/06/05 21:10
官方下载地址Git: http://cmusatyalab.github.io/openface/
FaceNet’s innovation comes from four distinct factors: (a) thetriplet loss, (b) their triplet selection procedure, (c) training with 100 million to 200 million labeled images, and (d) (not discussed here) large-scale experimentation to find an network architecture.
首先resize为如下尺寸: 96*96
输入Image(需要100M-200M张图片)
Face detection(检测人脸)、Preprocessing(尺度归一、灰度校正、每一张脸都进行一次仿射变换)
输入神经网络(进行特征提取)最终实现面部表示
再进行分类sklearn’s SVM(python中的一个库)
Triplet loss结构:一组三个图像:一个标准图像,一个正样本(与标准同一人),一个负样本(不同的人)
通过损失公式来调节整个网络,公式如下,思想将在文末介绍:
Resize(96*96)预处理采用简单2D仿射变换可规格化脸部、训练神经网络-低维面部表示(神经网络提取特征)
OpenFaceis trained with 500k images from combining the two largest labeled face recognition datasets forresearch.
e network provides an embedding on the unit
hypersphere and Euclidean distance represents similarity.
网络提供了一种嵌入式的超平面和欧氏距离来表示相似性。
逻辑流:
最后神经网络提取特征形成初始模型面部表示。如下图所示:
误差函数Triplet loss
最后,说一说基于度量学习的误差函数Triplet loss,其思想来源如下:
其中xai表示参考样本,xpi表示同类样本,xni表示异类样本,threshold表示特定阈值。该不等式可表示成下列形式:
该不等式本质上定义了同类样本和异类样本之间的距离关系,即:所有同类样本之间的距离+阈值threshold,要小于异类样本之间的距离。当距离关系不满足上述不等式时,我们可通过求解下列误差函数,通过反向传播算法来调节整个网络:
只有括号内公式的值大于0时,才计算误差。利用该公式可分别计算出xai,xpi和xni的梯度方向,并根据反向传播算法调节前面的网络。
在FaceNet中,作者利用该方法与Zeiler&Fergus以及GoogLeNet中提出的网络结构相结合,实现人脸识别,达到了很高的精度。
为了验证TripletLoss的有效性,我们在WebFace数据库上利用TripletLoss训练了另一种深度卷积网来实现人脸验证,WebFace中有该网络的结构描述。与FaceNet不同,我们并没有采用作者使用的semi-hard样本选取策略,而是直接扩大batch中样本的数量。得益于双Titan X显卡,BatchSize达到了540,较大的BatchSize能够保证求得的梯度方向与semi-hard策略所求得的梯度方向相类似。
在得到TripletLoss训练好的网络后,我们利用Joint-Bayesian方法对网络最后一层提取的特征进行学习,得到相似度估计模型。最终模型与DeepID在LFW测试集上的对比ROC曲线如下图所示:
- 基于Triplet loss函数训练人脸识别深度网络(Open Face)
- 基于Triplet loss 函数训练人脸识别深度网络
- 基于Triplet loss 函数训练人脸识别深度网络
- 深度学习triplet loss 做人再识别(person-reid)
- 损失函数 center_loss triplet loss
- triplet loss (原理 + 实现)
- Triplet Loss
- face++人脸识别
- face++ 人脸识别
- Face++人脸识别
- Face++人脸识别
- 基于VGG-Face的人脸识别测试
- Deep Learning学习 - VGG-Face网络人脸识别
- 人脸识别(face recognition)
- 人脸识别(Face Recognition)相关
- 人脸识别(face recognition)
- 深度学习与人脸识别系列(4)__利用caffe训练深度学习模型
- 深度学习与人脸识别系列(4)__利用caffe训练深度学习模型
- CentOS 7下 yum方式安装Nginx
- Hogan模板引擎
- isisday01
- excel中删除重复数据
- 深入python3学习-我的第一个python程序
- 基于Triplet loss函数训练人脸识别深度网络(Open Face)
- Spring 使用笔记
- 从string引起的串扰bug说起
- vue小结笔记(1)之指令篇
- 机器学习基石-04-4-Connection to Real Learning
- 23种设计模式
- JavaScript基础 语句
- K近邻算法
- UDP全面分析