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 ...
随机推荐
- How to use filters in a GridPanel
You can just link statically required files in your index.html <link rel="stylesheet" t ...
- vue学习1
1.<div id="app">{{message}}<input v-model="message"></div>new ...
- YTU 1007: Redraiment猜想
1007: Redraiment猜想 时间限制: 1000 Sec 内存限制: 10 MB 提交: 83 解决: 23 题目描述 redraiment在家极度无聊,于是找了张纸开始统计素数的个数. ...
- android NDK 使用(多个)静态库生成动态库
android NDK 使用(多个)静态库生成动态库. 1.编写Android.mk文件:如下两种方式都可以,用于NDK编译工具生成的两个.a文件来生成最终的libtwolib-second.so动态 ...
- BZOJ_2844_albus就是要第一个出场_线性基
BZOJ_2844_albus就是要第一个出场_线性基 Description 已知一个长度为n的正整数序列A(下标从1开始), 令 S = { x | 1 <= x <= n }, S ...
- 【转】python字符串/元组/列表/字典互转
#-*-coding:utf-8-*- #1.字典 dict = {'name': 'Zara', 'age': 7, 'class': 'First'} #字典转为字符串,返回:<type ' ...
- UNIX 环境模拟工具Cygwin安装及使用图文教程
对于 UNIX 本身,也有各种称呼.IBM® 大型机用户说各种带字母 "z" 的行话,比如 IBM z/OS® 和 System z9 Virtual Machine (z/VM) ...
- Ubuntu 12.04下安装配置体验GNOME 3(转载)
转自:http://www.tuicool.com/articles/zIbeIj 自己并不是一个思想前卫的人,穿衣审美也都是大众眼光.但是唯独喜欢在计算机方便尝试最新,心肝情愿的做小白鼠.近日,按耐 ...
- P3158 [CQOI2011]放棋子
传送门 题解(因为公式太多懒得自己抄写一遍了--) //minamoto #include<bits/stdc++.h> #define ll long long #define R re ...
- qr.update导致的java.lang.NullPointerException空指针异常
debug以后代码走到了qr.update这一步,再向下走一步就会报错了,内容是java.lang.NullPointerException 最后再三检查发现是SQL语句写错了!,我写的是插入语句是I ...