今天给大家带来一篇来自CVPR 2017关于人脸识别的文章。

文章题目:Deep Convolutional Neural Network using Triplets of Faces, Deep Ensemble, and

摘要:
文章动机:人脸识别在一个没有约束的环境下,在计算机视觉中是一个非常有挑战性的问题。同一个身份的人脸当呈现不同的装饰,不同的姿势和不同的表情都可以使人脸看起来完全不同。这种相同身份的变化可以压倒不同身份的变化,这样给人脸识别带来更大的挑战,特别是在没有约束的环境下。这些例子包括特征人脸分析,独立主成分分析以及他们的拓展版本。这些方法都是假定人脸图像都是对齐好的另外人脸图像有相似的姿势。但是,在一些自然环境中和实际应用中,这种假设是不存在的。因此减少个人内在的变化,同时扩大人与人之间的不同在人脸识别中是一个重要的课题,特别是在人脸验证中。(关于人脸识别和人脸认证,我将在后面进行补充)

人脸验证只对两张人脸进行分类,要么是一样的要么不是,这个过程要求减少个人内在的变化,同时加大人与人之间的变化,为了完成这个,子空间的认证方法例如:LDA,贝叶斯脸,同一标准的子空间,被提出来。例如LDA通过两个线性空间去逼近个人和人与人之间的人脸变换,同过找到两个线性投影去最大化它们的比值。但是这些方法都有它们的缺点,因为它们的线性和浅层结构,但是个人变化和人与人之间的变化是复杂的,非线性的,同时在一个高维的图像空间被观察,而不是花时间手动的试图去寻找新的图片描述。我们代替的提出了一个方法通过深度神经网络进行监督的特征学习自动地去得到新的表示,和一个新的训练数据类型。

提出的方法:

人脸的预处理:

训练一个深度学习模型需要大量的人脸数据库,因为有成千上万的参数需要训练。他们用爬虫在网上趴下很多的人脸图像,还有一些公开的数据集CASIA webface. 收集好之后,要把原始图像转成标准的图像,主要分为四个步骤:

  • 首先用一个人脸检测器去寻找给出的图片的人脸部分。
  • 第二步,用人脸特征探测器去寻找被检测人脸区域的基准点。
  • 第三步,把对齐的人脸图片装入一个预先定义好的95x95的像素区域,将他们规范成标准人脸照片。
  • 最后,用下采样建立一个图像金字塔,且每一个人脸的像素为:95X95, 67X67,47X47.

说一下图像金字塔:

 

 

图像:

 

 

多尺度的卷积层块(MCLBS):

示意图如下:

 

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

BN是指Batch Normalization.

关于作用:知乎上说的很好。

人脸的三元组

 

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

 

损失函数的设置:

损失函数:

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的更多相关文章

  1. ASPLOS'17论文导读——SC-DCNN: Highly-Scalable Deep Convolutional Neural Network using Stochastic Computing

    今年去参加了ASPLOS 2017大会,这个会议总体来说我感觉偏系统和偏软一点,涉及硬件的相对少一些,对我这个喜欢算法以及硬件架构的菜鸟来说并不算非常契合.中间记录了几篇相对比较有趣的paper,今天 ...

  2. 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 ...

  3. 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 ...

  4. 1 - ImageNet Classification with Deep Convolutional Neural Network (阅读翻译)

    ImageNet Classification with Deep Convolutional Neural Network 利用深度卷积神经网络进行ImageNet分类 Abstract We tr ...

  5. HYPERSPECTRAL IMAGE CLASSIFICATION USING TWOCHANNEL DEEP CONVOLUTIONAL NEURAL NETWORK阅读笔记

    HYPERSPECTRAL IMAGE CLASSIFICATION USING TWOCHANNEL  DEEP  CONVOLUTIONAL NEURAL NETWORK 论文地址:https:/ ...

  6. 树卷积神经网络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 看_这是一 ...

  7. Paper: ImageNet Classification with Deep Convolutional Neural Network

    本文介绍了Alex net 在imageNet Classification 中的惊人表现,获得了ImagaNet LSVRC2012第一的好成绩,开启了卷积神经网络在cv领域的广泛应用. 1.数据集 ...

  8. 论文笔记《ImageNet Classification with Deep Convolutional Neural Network》

    一.摘要 了解CNN必读的一篇论文,有些东西还是可以了解的. 二.结构 1. Relu的好处: 1.在训练时间上,比tanh和sigmod快,而且BP的时候求导也很容易 2.因为是非饱和函数,所以基本 ...

  9. 【转载】论文笔记系列-Tree-CNN: A Deep Convolutional Neural Network for Lifelong Learning

    一. 引出主题¶ 深度学习领域一直存在一个比较严重的问题——“灾难性遗忘”,即一旦使用新的数据集去训练已有的模型,该模型将会失去对原数据集识别的能力.为解决这一问题,本文提出了树卷积神经网络,通过先将 ...

随机推荐

  1. GROUP BY和HAVING 以及mysql中常用的日期函数

    一.mysql中的GROUP BY和HAVINGGROUP BY常见的是和聚合函数(SUM,MIN,MAX,COUNT)搭配使用. 比如:SELECT category,SUM(money) AS ` ...

  2. 使用RTTI为继承体系编写”==”运算符

    转载请注明出处:http://www.cnblogs.com/inevermore/p/4012079.html   RTTI,指的是运行时类型识别技术.   先看一个貌似无关的问题:   为继承体系 ...

  3. Java List具体解释

    List接口是Collection的子接口,用于定义线性表结构,当中ArrayList能够理解为一个动态数组,而LinkedList能够理解为一个链表 经常使用操作: 插入和删除操作: void ad ...

  4. Spring使用经验之StandardServletMultipartResolver实现文件上传的基本配置

    Note:Spring使用版本是4.1.6.RELEASE 1. 在实现了AbstractAnnotationConfigDispatcherServletInitializer的类中重载custom ...

  5. inotify+rsync

    backup_to_rsync.sh #!/bin/bash #source function library . /etc/init.d/functions rsync_host=rsync.eti ...

  6. java基础之概谈xml文件解析

    XML已经成为一种非常通用的数据交换格式,它的平台无关性,语言无关性,系统无关性,给数据集成与交互带来了极大的方便. 诸多web应用框架,其可配置的编程方式,给我们的开发带来了非常大程度的便捷,但细细 ...

  7. nginx反向代理做cache配置

    前序:请耐性子看完,前面的这个配置可以达到按后缀名进行缓存,但无法被purge.后面的配置可以被purge.具体实施方案按个人情况而定. 需要第三方的ngx_cache_purge模块:wget ht ...

  8. Arbitrage - poj 2240 (Bellman-ford)

      Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 17374   Accepted: 7312 Description Ar ...

  9. php 模拟get和post提交方法[解决ajax跨域问题]

    get: $url = "http://www.111cn.net /index.php?a=b&c=d&e=f&g=" . urlencode('王璐个人 ...

  10. .Net中多线程类的使用和总结

    lock, Monitor, Thread, Join, BackGroundWorker.   消费者和生产者.Async 委托Invoke TypeHandle中BlockIndex. http: ...