CFAN:Coarse-to-Fine Auto-Encoder Networks (CFAN) for Real-Time Face Alignment
版权:本文版权归作者和博客园共有
转载:欢迎转载,但未经作者同意,必须保留此段声明;必须在文章中给出原文连接;否则必究法律责任 |
原始论文链接:http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.702.1120&rep=rep1&type=pdf
框架:
CFAN是将深度网络(自编码网络)作为回归器,利用级联回归coarse-to-fine的框架,实现人脸特征点定位的方法。
它是一种用深度网络做人脸特征点定位的方法,采用的结构是级联栈式自编码(Stacked Auto-encoder Networks,SANs),级联过程由四个栈式自编码网络(SAN)完成。每个SAN根据前一个SAN的形状估计,在不同尺度图像下,学习人脸图像到人脸形状的映射。
第一个SAN(global SAN)的目标是尽力找到关键点的大致位置,所以检测好人脸的低分辨率图像作为输入,定位结果不够准确,但实现快速。输入的是全局图像特征,不是给定初始形状(一般是平均形状)的局部形状索引特征,优点是,避免了不准确的平均形状对后续refine过程的影响。无需给定初始形状,也是用自编码网络做定位的优点是,它会快速地从图像中自学习,得到一个更接近真实形状的初始形状S0。
后续级联三个SANs(local SANs)的目标是逐步精调(refine)前一个网络得到的形状估计,每个SAN的输入是前一个网络得到的形状(称为当前形状)在更高分辨率图像上的局部特征(形状索引特征),学习特征和形状差异delta_S(当前形状和真实形状的差)之间的关系,用来更新形状。将所有点的形状索引特征连接起来,一起更新所有特征点,有种增加形状约束的意思。
Global SAN
输入:人脸图像 x
标签:p个特征点的真实位置(真实形状) Sg
目标:学习图像x到人脸形状的映射F: x->S
网络结构:通常情况下,F是复杂的非线性的,为了达到目标,将k-1个单独的隐藏层自编码堆叠起来,作为深度神经网络,将图像映射到对应的形状上。那么人脸对齐任务就可以公式化为最小化下面的目标:
F={f1,f2,…fk},fi 是深度网络中第i层的映射函数。激活函数(sigma):sigmoid,激活函数的输出范围【0,1】对应于位置的范围。最后加一层线性回归(第k层)
输出:形状估计S0
【F有很多参数,容易陷入局部极小】
1.以堆栈方式,采用无监督的预训练来初始化前k-1层,随机初始化最后一层第k层
2.以有监督的方法finetuning整个网络
Local SANs
输入:当前形状下每个点的局部特征连接起来
标签:当前形状Sj-1和真实形状Sg的差delta_Sj
目标:前面得到的S0很接近真实形状,后面几个SANs的目标就是根据连接的局部形状索引特征(例如SIFT),迭代地预测delta_Sj
网络结构:与Global的相似,也是栈式深度自编码网络,只是输入是前一个网络预测形状在更高分辨率图像下的局部形状索引特征。
实验细节(68点,特征用的是sift特征)
global:50*50--1600--900--400--136(68*2)
local:sift特征--1296--784--400--136
由于68点的sift特征维数太大,为68*136=8704,需要用PCA降维再输入到网络中,所以三个local网络的结构为
local_1:降至1695维后的sift特征--1296--784--400--136
local_2:降至2418维后的sift特征--1296--784--400--136
local_3:降至2440维后的sift特征--1296--784--400--136
CFAN:Coarse-to-Fine Auto-Encoder Networks (CFAN) for Real-Time Face Alignment的更多相关文章
- Auto Encoder用于异常检测
对基于深度神经网络的Auto Encoder用于异常检测的一些思考 from:https://my.oschina.net/u/1778239/blog/1861724 一.前言 现实中,大部分数据都 ...
- div高度自适应(总结:min-height:100px; height:auto;的用法)
对于div高度自适应问题,我总是用一句话:height:auto来解决. 但是很多时候我们需要的是当div内部有内容时,高度会随着内容的增加和增加,当div中没有内容时,div能够保持一个固定的高度. ...
- 论文笔记之:Visual Tracking with Fully Convolutional Networks
论文笔记之:Visual Tracking with Fully Convolutional Networks ICCV 2015 CUHK 本文利用 FCN 来做跟踪问题,但开篇就提到并非将其看做 ...
- 吴恩达《深度学习》-第一门课 (Neural Networks and Deep Learning)-第三周:浅层神经网络(Shallow neural networks) -课程笔记
第三周:浅层神经网络(Shallow neural networks) 3.1 神经网络概述(Neural Network Overview) 使用符号$ ^{[
- NHibernate系列文章二十八:NHibernate Mapping之Auto Mapping(附程序下载)
摘要 上一篇文章介绍了Fluent NHibernate基础知识.但是,Fluent NHibernate提供了一种更方便的Mapping方法称为Auto Mapping.只需在代码中定义一些Conv ...
- Deep Learning 8_深度学习UFLDL教程:Stacked Autocoders and Implement deep networks for digit classification_Exercise(斯坦福大学深度学习教程)
前言 1.理论知识:UFLDL教程.Deep learning:十六(deep networks) 2.实验环境:win7, matlab2015b,16G内存,2T硬盘 3.实验内容:Exercis ...
- 论文笔记之:Semi-Supervised Learning with Generative Adversarial Networks
Semi-Supervised Learning with Generative Adversarial Networks 引言:本文将产生式对抗网络(GAN)拓展到半监督学习,通过强制判别器来输出类 ...
- 论文笔记之:Spatially Supervised Recurrent Convolutional Neural Networks for Visual Object Tracking
Spatially Supervised Recurrent Convolutional Neural Networks for Visual Object Tracking arXiv Paper ...
- 类型推导:函数模板与auto
1.从函数模板谈起 函数模板的类型推导机制是在c++98时代就有的,auto的类型推导机制与其基本一致,所以先理解函数模板类型推导. 函数模板可以用如下代码框架表示: #template<typ ...
随机推荐
- What Is the Linux Lokkit Utility? https://www.lifewire.com/what-is-lokkit-2192255
lokkit: The Lokkit utility attempts to provide firewalling for the average Linux end user. Instead o ...
- B2C
B2C是Business-to-Customer的缩写,而其中文简称为"商对客"."商对客"是电子商务的一种模式,也就是通常说的直接面向消费者销售产品和服务商业 ...
- POJ1984 Navigation Nightmare —— 种类并查集
题目链接:http://poj.org/problem?id=1984 Navigation Nightmare Time Limit: 2000MS Memory Limit: 30000K T ...
- CodeForces-204E:Little Elephant and Strings (广义后缀自动机求出现次数)
The Little Elephant loves strings very much. He has an array a from n strings, consisting of lowerca ...
- 转载:百为STM32开发板教程之十二——NAND FLASH
http://bbs.21ic.com/icview-586200-1-1.html 百为STM32开发板教程之十二——NAND FLASH 参考资料:百为stm32开发板光盘V3\百为stm32开发 ...
- linux上部署javaWeb项目
将web项目打成war包,上传到Linux操作系统tomcat安装目录下的webapps下即可!
- asp.net调用oracle存储过程
oracle内的存储过程是通过游标返回结果集的 DataTable dt = new DataTable(); OracleParameter[] paras = ]; paras[] = new O ...
- tools:context=".MainActivity的作用 (转载)
转自:http://blog.csdn.net/caiwenfeng_for_23/article/details/8373569 <TextView android:layout_width= ...
- CI框架中一个类中调用另一个类中已经加载对象测试
controller.php <?php class CI_Controller { private static $instance; public function __construct( ...
- bzoj 1084: [SCOI2005]最大子矩阵【dp】
分情况讨论,m=1的时候比较简单,设f[i][j]为到i选了j个矩形,前缀和转移一下就行了 m=2,设f[i][j][k]为1行前i个,2行前j个,一共选了k个,i!=j的时候各自转移同m=1,否则转 ...