人脸验证(一)--Deepface
转自:blog.csdn.net/stdcoutzyx/article/details/46776415
DeepFace基本框架
人脸识别的基本流程是:
detect -> aligh -> represent -> classify
人脸对齐流程
分为如下几步:
a. 人脸检测,使用6个基点
b. 二维剪切,将人脸部分裁剪出来
c. 67个基点,然后Delaunay三角化,在轮廓处添加三角形来避免不连续
d. 将三角化后的人脸转换成3D形状
e. 三角化后的人脸变为有深度的3D三角网
f. 将三角网做偏转,使人脸的正面朝前。
g. 最后放正的人脸
h. 一个新角度的人脸(在论文中没有用到)
总体上说,这一步的作用就是使用3D模型来将人脸对齐,从而使CNN发挥最大的效果。
人脸表示
经过3D对齐以后,形成的图像都是152×152的图像,输入到上述网络结构中,该结构的参数如下:
- Conv:32个11×11×3的卷积核
- max-pooling: 3×3, stride=2
- Conv: 16个9×9的卷积核
- Local-Conv: 16个9×9的卷积核,Local的意思是卷积核的参数不共享
- Local-Conv: 16个7×7的卷积核,参数不共享
- Local-Conv: 16个5×5的卷积核,参数不共享
- Fully-connected: 4096维
- Softmax: 4030维
前三层的目的在于提取低层次的特征,比如简单的边和纹理。其中Max-pooling层使得卷积的输出对微小的偏移情况更加鲁棒。但没有用太多的Max-pooling层,因为太多的Max-pooling层会使得网络损失图像信息。
后面三层都是使用参数不共享的卷积核,之所以使用参数不共享,有如下原因:
- 对齐的人脸图片中,不同的区域会有不同的统计特征,卷积的局部稳定性假设并不存在,所以使用相同的卷积核会导致信息的丢失
- 不共享的卷积核并不增加抽取特征时的计算量,而会增加训练时的计算量
- 使用不共享的卷积核,需要训练的参数量大大增加,因而需要很大的数据量,然而这个条件本文刚好满足。
全连接层将上一层的每个单元和本层的所有单元相连,用来捕捉人脸图像不同位置的特征之间的相关性。其中,第7层(4096-d)被用来表示人脸。
全连接层的输出可以用于Softmax的输入,Softmax层用于分类。
人脸表示归一化
对于输出的4096-d向量:
- 先每一维进行归一化,即对于结果向量中的每一维,都要除以该维度在整个训练集上的最大值。
- 每个向量进行L2归一化
分类
得到表示后,使用了多种方法进行分类:
- 直接算内积
- 加权的卡方距离
- 使用Siamese网络结构
加权卡方距离计算公式如下:
其中,加权参数由线性SVM计算得到。
Siamese网络结构是成对进行训练,得到的特征表示再使用如下公式进行计算距离:
其中,参数alpha是训练得到。Siamese网络与FaceNet就很像了。
实验评估
数据集
- Social Face Classification Dataset(SFC): 4.4M张人脸/4030人
- LFW: 13323张人脸/5749人
- restricted: 只有是/不是的标记
- unrestricted:其他的训练对也可以拿到
- unsupervised:不在LFW上训练
- Youtube Face(YTF): 3425videos/1595人
Training on SFC
- 训练使用的人数不同(1.5K/3.3K/4.4K)
- 训练使用的照片数目不同(10%/20%/50%)
- 使用的网络不同(去掉第三层/去掉第4、5层/去掉第3、4、5层)
Results on LFW
Results on YTF
总结
DeepFace与之后的方法的最大的不同点在于,DeepFace在训练神经网络前,使用了对齐方法。论文认为神经网络能够work的原因在于一旦人脸经过对齐后,人脸区域的特征就固定在某些像素上了,此时,可以用卷积神经网络来学习特征。
针对同样的问题,DeepID和FaceNet并没有对齐,DeepID的解决方案是将一个人脸切成很多部分,每个部分都训练一个模型,然后模型聚合。FaceNet则是没有考虑这一点,直接以数据量大和特殊的目标函数取胜。
在DeepFace论文中,只使用CNN提取到的特征,这点倒是开后面之先河,后面的DeepID、FaceNet全都是使用CNN提取特征了,再也不谈LBP了。
参考文献
[1]. Taigman Y, Yang M, Ranzato M A, et al. Deepface: Closing the gap to human-level performance in face verification[C]//Computer Vision and Pattern Recognition (CVPR), 2014 IEEE Conference on. IEEE, 2014: 1701-1708.
人脸验证(一)--Deepface相关推荐
- 4.5 人脸验证与二分类-深度学习第四课《卷积神经网络》-Stanford吴恩达教授
←上一篇 ↓↑ 下一篇→ 4.4 Triplet 损失 回到目录 4.6 什么是神经风格转换? 人脸验证与二分类 (Face Verification and Binary Classificatio ...
- 人脸验证(三)--FaceNet
转自:blog.csdn.net/stdcoutzyx/article/details/46687471 引入 随着深度学习的出现,CV领域突破很多,甚至掀起了一股CV界的创业浪潮,当次风口浪尖之时, ...
- 人脸验证与二分类(Face verification and binary classification)
来源:Coursera吴恩达深度学习课程 听着五月天的<仓颉>,五月的每一天都是五月天. 三元组损失(Triplet loss)是一个学习人脸识别卷积网络参数的好方法,还有其他学习参数的方 ...
- 深度学习笔记(45) 人脸验证与二分类
深度学习笔记(45) 人脸验证与二分类 1. 二分类问题 2. 逻辑回归单元的处理 3. 计算技巧 1. 二分类问题 深度学习笔记(44) Triplet 损失 的Triplet loss是一个学习人 ...
- 快速人脸验证--MobileFaceNets: Efficient CNNs for Accurate Real-time Face Verification on Mobile Devices
MobileFaceNets: Efficient CNNs for Accurate Real-time Face Verification on Mobile Devices Face Verif ...
- 人脸验证 DeepID 算法实践
人脸验证 DeepID 算法实践 4,610 次阅读 - 文章 作者:雨石 出处:雨石的博客 目前人脸验证算法可以说是DeepID最强,本文使用theano对DeepID进行实现.关于deepid的 ...
- CV《物体识别与检测4 - 人脸验证》
本文是根据Andrew Ng的深度学习视频学习,自己总结的.这一系列先只学习关键技术和设计,具体的实例等下一期进行. 一:人脸验证 人脸识别包括人脸验证了人脸检测,人脸检测也属于物体检测范围,所以就不 ...
- 人脸验证(四)--CenterLoss
有点纠结,实质上本文只是在深度学习框架下人脸识别损失函数的改进.但我还是把它归类到端到端了.出于个人原因. 转自:http://blog.csdn.net/yang_502/article/detai ...
- 人脸验证(图片/视频) tensorflow、pytorch框架、dlib库(face_recognition)和opencv库————附带详细步骤和代码,可实际运行
文章目录 0 背景与结果 1 准备知识 2 tensorflow进行人脸识别(AlexNet.视频/图像) 3 pytorch进行人脸识别(fasterrcnn,图片) 4 dlib库(face_re ...
- 人脸验证(二)--DeepID
转自:http://blog.csdn.net/stdcoutzyx/article/details/42091205 1. 问题引入及算法流程 DeepID所应用的领域是人脸识别的子领域--人脸验证 ...
最新文章
- 图论之拓扑排序 poj 2367 Genealogical tree
- 【剑指offer-Java版】45圆圈中最后剩下的数字
- oracle preparedstatement,【JDBC】java PreparedStatement操作oracle数据库
- 笔记本高分屏字体模糊_高色域+高分辨率轻薄本推荐,你需要2K屏笔记本电脑么?...
- C++构造函数/析构函数 设置成private的原因
- PHP数据库调用类调用实例
- 给图片添加水印效果图的函数(可以在图片上添加自己的版权和LOGO图片的水印) 【转载】...
- The run destination 设备名称 is not valid for Running the scheme '项目名称'.
- c语言计算器程序代码有优先级,C语言计算器小程序(源代码+实习报告).doc
- 冒险岛2计算机内存不足建议使用,冒险岛2游戏设置详解 低配电脑如何流畅运行冒险岛2...
- c++中文件打开失败
- 链路捆绑(名词注解)
- Windows7:修改系统注册表工具
- 【干货】Dialog的高冷用法
- 【PPT】2010/2013/2016实现在演示过程中拖拽图片/形状
- 正则表达式常用语法速查+一个简单使用案例
- 失业的程序员(七):梦想和胸襟
- Python深度学习与机器视觉(一)
- 三大统计软件:SAS、Stata与SPSS比较
- 了解.net框架 MonoRail