今天给大家带来一篇来自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. 标准库Queue的实现

    跟上篇实现stack的思路一致,我增加了一些成员函数模板,支持不同类型的Queue之间的复制和赋值. 同时提供一个异常类. 代码如下: #ifndef QUEUE_HPP #define QUEUE_ ...

  2. [linux]free命令详解-显示内存的使用情况

    本文部分转载于https://blog.csdn.net/sunansheng/article/details/51942522 free命令可以显示当前系统未使用的和已使用的内存数目,还可以显示被内 ...

  3. apktool反编译时各种问题汇总

    问题1:apktool d -d 时出现错误Error occured while disassembling class办法:这不是你的错误,这是apktool本身的错误,目前正式release的1 ...

  4. Ubuntu下git使用

    sudo apt-get install git //安装git git config --global user.name "github 用户名" git config --g ...

  5. Android+git+hudson+gradle持续集成

    linux 主机   android sdk安装忽略 jdk安装忽略 hudson安装忽略 gradle安装 1:下载相应的gradle(这里是gradle-2.10-all.zip)  2 :  解 ...

  6. nginx uri和request_uri区别

    $request_uri This variable is equal to the *original* request URI as received from the client includ ...

  7. webuploader插件使用中的一点东西

    本人绝对菜鸟,高手勿喷 菜鸟开发中的解决方法,高手勿喷 1.针对同一应用中不同的类别,存放不同的路径 在页面中添加,hidden属性的标记,如:    type="hidden" ...

  8. linux epoll机制对TCP 客户端和服务端的监听C代码通用框架实现

    1 TCP简介 tcp是一种基于流的应用层协议,其“可靠的数据传输”实现的原理就是,“拥塞控制”的滑动窗口机制,该机制包含的算法主要有“慢启动”,“拥塞避免”,“快速重传”. 2 TCP socket ...

  9. Debian Epson L455 打印机

    要使用打印机必须要在本机(或局域网其他机器)上安装打印服务,L455是网络打印机,需要IPP协议,而mDNS-scan和avahi-utils是用来发现网络打印机的服务,由于我是摸索着安装的,没太研究 ...

  10. which 命令

    我们经常在linux要查找某个文件,但不知道放在哪里了,可以使用下面的一些命令来搜索:        which  查看可执行文件的位置.       whereis 查看文件的位置.         ...