读paper:Deep Convolutional Neural Network using Triplets of Faces, Deep Ensemble, andScore-level Fusion for Face Recognition
今天给大家带来一篇来自CVPR 2017关于人脸识别的文章。
文章题目:Deep Convolutional Neural Network using Triplets of Faces, Deep Ensemble, and
摘要:
文章动机:人脸识别在一个没有约束的环境下,在计算机视觉中是一个非常有挑战性的问题。同一个身份的人脸当呈现不同的装饰,不同的姿势和不同的表情都可以使人脸看起来完全不同。这种相同身份的变化可以压倒不同身份的变化,这样给人脸识别带来更大的挑战,特别是在没有约束的环境下。这些例子包括特征人脸分析,独立主成分分析以及他们的拓展版本。这些方法都是假定人脸图像都是对齐好的另外人脸图像有相似的姿势。但是,在一些自然环境中和实际应用中,这种假设是不存在的。因此减少个人内在的变化,同时扩大人与人之间的不同在人脸识别中是一个重要的课题,特别是在人脸验证中。(关于人脸识别和人脸认证,我将在后面进行补充)
人脸验证只对两张人脸进行分类,要么是一样的要么不是,这个过程要求减少个人内在的变化,同时加大人与人之间的变化,为了完成这个,子空间的认证方法例如:LDA,贝叶斯脸,同一标准的子空间,被提出来。例如LDA通过两个线性空间去逼近个人和人与人之间的人脸变换,同过找到两个线性投影去最大化它们的比值。但是这些方法都有它们的缺点,因为它们的线性和浅层结构,但是个人变化和人与人之间的变化是复杂的,非线性的,同时在一个高维的图像空间被观察,而不是花时间手动的试图去寻找新的图片描述。我们代替的提出了一个方法通过深度神经网络进行监督的特征学习自动地去得到新的表示,和一个新的训练数据类型。
提出的方法:
人脸的预处理:
训练一个深度学习模型需要大量的人脸数据库,因为有成千上万的参数需要训练。他们用爬虫在网上趴下很多的人脸图像,还有一些公开的数据集CASIA webface. 收集好之后,要把原始图像转成标准的图像,主要分为四个步骤:
- 首先用一个人脸检测器去寻找给出的图片的人脸部分。
- 第二步,用人脸特征探测器去寻找被检测人脸区域的基准点。
- 第三步,把对齐的人脸图片装入一个预先定义好的95x95的像素区域,将他们规范成标准人脸照片。
- 最后,用下采样建立一个图像金字塔,且每一个人脸的像素为:95X95, 67X67,47X47.
说一下图像金字塔:

图像:

多尺度的卷积层块(MCLBS):
示意图如下:

一些说明:1X1的卷积核主要是用来降维,降维之后可以加快网络的训练。这一部分在我的上一篇博客中有说过,这里就暂且不说了。这四个小网络连接成一个输出向量。文章说可以提高特征的层次性。

关于作用:知乎上说的很好。
人脸的三元组

是标准脸,
是此人的另外一张脸,
不是这个人的人脸图像。整个网络选择了四百万个这种三元组作为训练样本去得到参数。
损失函数的设置:
损失函数:

Triplet Loss:

是
经过DCNN映射之后的输出,同理
是
经过DCNN映射之后的输出,
是
经过DCNN 映射之后的输出。
是标准脸与负样本脸的距离,
是标准脸,与本人的其他脸图片的距离。M是一个边缘限制了不是一个人与是一个人在欧几里得空间的比例。其实在这一段,我都是把他当成LDA来理解,类间越大越好,类内越小越好,也就是求他们的比例。
文章指出如果仅仅用这个作为训练目标,在成对图片之间(就是一个人的两张照片,不成对就是不同的两个人的照片)得到了一个不平衡的距离范围,这就意味着虽然两者的比例固定在一个确定的值上,但是成对图片之间的绝对距离的范围却不是的,因此,文章也考虑了成对之间的不同之处。
Pairwise Loss:

其实就是成对之间的距离之和。

这就是损失函数的目标,很朴素,但是很有效果。一直感觉LDA的思想真是好用。

这是整个网络的结构,其中加上auxiliary classifier loss的目的是防止梯度消失。那么整个网络通过这样训练得到的参数就可以抽取网络的深度的特征。然后代入连续贝叶斯学习中就可以了。
基于本文提到的人脸识别主要包含两个意思:
一种是分类:就比如现在屋子里十个人,是有记录的,现在新来的一个人就可以判定他是具体哪一个,他是一个多分类问题。
第二种是人脸验证问题:就是本文提到的问题,比如支付宝首先采集你的人脸,然后又用一个人脸去判定是不是同一个人,如果是的话,那么就可以登录系统,如果不是的话就不可以登录系统,这是一个典型的二分类问题。
好了这篇文章讲到这里,也没什么好说的了,大家下次再见。
读paper:Deep Convolutional Neural Network using Triplets of Faces, Deep Ensemble, andScore-level Fusion for Face Recognition的更多相关文章
- ASPLOS'17论文导读——SC-DCNN: Highly-Scalable Deep Convolutional Neural Network using Stochastic Computing
今年去参加了ASPLOS 2017大会,这个会议总体来说我感觉偏系统和偏软一点,涉及硬件的相对少一些,对我这个喜欢算法以及硬件架构的菜鸟来说并不算非常契合.中间记录了几篇相对比较有趣的paper,今天 ...
- ISSCC 2017论文导读 Session 14 Deep Learning Processors,A 2.9TOPS/W Deep Convolutional Neural Network
最近ISSCC2017大会刚刚举行,看了关于Deep Learning处理器的Session 14,有一些不错的东西,在这里记录一下. A 2.9TOPS/W Deep Convolutional N ...
- ISSCC 2017论文导读 Session 14 Deep Learning Processors,A 2.9TOPS/W Deep Convolutional Neural Network SOC
最近ISSCC2017大会刚刚举行,看了关于Deep Learning处理器的Session 14,有一些不错的东西,在这里记录一下. A 2.9TOPS/W Deep Convolutional N ...
- 1 - ImageNet Classification with Deep Convolutional Neural Network (阅读翻译)
ImageNet Classification with Deep Convolutional Neural Network 利用深度卷积神经网络进行ImageNet分类 Abstract We tr ...
- HYPERSPECTRAL IMAGE CLASSIFICATION USING TWOCHANNEL DEEP CONVOLUTIONAL NEURAL NETWORK阅读笔记
HYPERSPECTRAL IMAGE CLASSIFICATION USING TWOCHANNEL DEEP CONVOLUTIONAL NEURAL NETWORK 论文地址:https:/ ...
- 树卷积神经网络Tree-CNN: A Deep Convolutional Neural Network for Lifelong Learning
树卷积神经网络Tree-CNN: A Deep Convolutional Neural Network for Lifelong Learning 2018-04-17 08:32:39 看_这是一 ...
- Paper: ImageNet Classification with Deep Convolutional Neural Network
本文介绍了Alex net 在imageNet Classification 中的惊人表现,获得了ImagaNet LSVRC2012第一的好成绩,开启了卷积神经网络在cv领域的广泛应用. 1.数据集 ...
- 论文笔记《ImageNet Classification with Deep Convolutional Neural Network》
一.摘要 了解CNN必读的一篇论文,有些东西还是可以了解的. 二.结构 1. Relu的好处: 1.在训练时间上,比tanh和sigmod快,而且BP的时候求导也很容易 2.因为是非饱和函数,所以基本 ...
- 【转载】论文笔记系列-Tree-CNN: A Deep Convolutional Neural Network for Lifelong Learning
一. 引出主题¶ 深度学习领域一直存在一个比较严重的问题——“灾难性遗忘”,即一旦使用新的数据集去训练已有的模型,该模型将会失去对原数据集识别的能力.为解决这一问题,本文提出了树卷积神经网络,通过先将 ...
随机推荐
- ionic准备之angular基础——模板引入(7)
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- lodash 数组裁剪 drop
_.drop(array, [n=1]) 裁剪数组中的前 N 个数组,返回剩余的部分. <!DOCTYPE html> <html lang="zh"> & ...
- xpinyin-函数返回多个值-lambda匿名函数-列表生成式-三元表达式
import xpinyinp=xpinyin.Pinyin() #实例化print(p.get_pinyin('小白','')) 函数返回多个值:1.函数如果返回多个值的话,它会把这几个值放到一个元 ...
- 真正的Java学习从入门到精通
http://www.it.com.cn/f/edu/059/6/169189.htm 一. 工具篇JDK (Java Development Kit) JDK是整个Java的核心,包括了Java运行 ...
- ubuntu下设置静态ip
直接修改系统配置文件ubuntu的网络配置文件是:/etc/network/interfacesubuntu命令行修改网络配置方法前面auto eth?,让网卡开机自动挂载. 为网卡配置静态IP地址 ...
- svn上传代码时出现:Authorization failed
出现该问题基本都是三个配置文件的问题,下面把这个文件列出来 svnserve.conf:[general]anon-access = readauth-access = writepassword-d ...
- 教你如何把php项目打包成EXE文件发布
家经常会接到一些编程的活,例如设计企业网站,做做财务,统计系统什么的.或许是因为朋友的需求,或许图个零花.不管什么原因吧.等程序做好了,给对方展示.安装,就成了问题.企业网站好说,至少需要个虚拟主机什 ...
- IOS与安卓的远程调试
本地调试H5页面方案总结 http://www.jianshu.com/p/a43417b28280 Fiddler 手机抓包 http://blog.csdn.net/gld824125233/ar ...
- Unity2D实现人物三连击
之前写过一个系列<HTML5 2D平台游戏开发>,在此过程中发现有很多知识点没有掌握,而且用纯JavaScript来开发一个游戏效率极低,因为调试与地图编辑都没有可视化的工具,开发起来费时 ...
- Google Code Jam 2014 Round 1 A:Problem A Charging Chaos
Problem Shota the farmer has a problem. He has just moved into his newly built farmhouse, but it tur ...