人脸对齐--Unconstrained Face Alignment without Face Detection

Unconstrained Face Alignment without Face Detection CVPRW2017

以前人脸对齐主要存在的问题:1)人脸对齐严重依赖于人脸检测来初始化,2)任意姿态的人脸对齐效果不是很好(例如大于45度的 yaw angle) 本文提出一种不需要人脸检测的人脸对齐方法。分两个步骤:1)Basic Landmark Prediction Stage,人脸特征点检测;2)Whole Landmark Regression Stage 基于人脸特征点位置,我们使用一个 Pose Splitting Layer 可以生成人脸的姿态

framework:

2 Our Method 2.1. Basic Landmark Prediction Stage 这里我们首先对图像中每个人脸的5个基础特征点进行检测: two centers of pupils, nose tip, two mouth corners (对照图示) 基础特征点检测方式参考文献【3】中的 a sub-network of landmark heatmap and affinity field prediction

2.1.1 Landmark Heatmap 这一步主要是对单个特征点的预测,基于真值特征点的预测

2.1.2 Landmark Affinity Field 这一步主要是将特征点关联起来用于去除一些噪声

2.1.3 Sub-network Learning

这里我们采用类似VGG网络结构的一个 CNN网络来 jointly learning heatmaps H and affinity fields L of landmarks

2.2. Whole Landmark Regression Stage 2.2.1 Pose Splitting Layer 这里我们将人脸姿态分为三类:left profile, right profile and semi-frontal 这三类姿态划分我们一般使用 Algorithm 1

对于 Menpo Benchmark 只需要分为 left profile and right profile 使用 Algorithm 2

人脸姿态分类完之后,我们对每个姿态的人脸进行姿态归一化

2.2.2 Shape Regression Sub-network 有了姿态归一化之后的人脸,我们进行人脸形状特征点密集提取

300-W dataset

Menpo Benchmark

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏xingoo, 一个梦想做发明家的程序员

20120918-向量实现《数据结构与算法分析》

#include <iostream> #include <list> #include <string> #include <vector> #include...

1896
来自专栏拭心的安卓进阶之路

Java 集合深入理解(6):AbstractList

今天心情比天蓝,来学学 AbstractList 吧! ? 什么是 AbstractList ? AbstractList 继承自 AbstractCollec...

20910
来自专栏学海无涯

Android开发之奇怪的Fragment

说起Android中的Fragment,在使用的时候稍加注意,就会发现存在以下两种: v4包中的兼容Fragment,android.support.v4.ap...

3225
来自专栏xingoo, 一个梦想做发明家的程序员

AOE关键路径

这个算法来求关键路径,其实就是利用拓扑排序,首先求出,每个节点最晚开始时间,再倒退求每个最早开始的时间。 从而算出活动最早开始的时间和最晚开始的时间,如果这两个...

2647
来自专栏项勇

笔记68 | 切换fragmengt的replace和add方法笔记

1544
来自专栏Phoenix的Android之旅

Java 集合 Vector

List有三种实现,ArrayList, LinkedList, Vector, 它们的区别在于, ArrayList是非线程安全的, Vector则是线程安全...

692
来自专栏开发与安全

算法:AOV网(Activity on Vextex Network)与拓扑排序

在一个表示工程的有向图中,用顶点表示活动,用弧表示活动之间的优先关系,这样的有向图为顶点表示活动的网,我们称之为AOV网(Activity on Vextex ...

4057
来自专栏计算机视觉与深度学习基础

Leetcode 114 Flatten Binary Tree to Linked List

Given a binary tree, flatten it to a linked list in-place. For example, Given...

2108
来自专栏Java Edge

AbstractList源码解析1 实现的方法2 两种内部迭代器3 两种内部类3 SubList 源码分析4 RandomAccessSubList 源码:AbstractList 作为 Lis

它实现了 List 的一些位置相关操作(比如 get,set,add,remove),是第一个实现随机访问方法的集合类,但不支持添加和替换

622
来自专栏java闲聊

JDK1.8 ArrayList 源码解析

当运行 ArrayList<Integer> list = new ArrayList<>() ; ,因为它没有指定初始容量,所以它调用的是它的无参构造

1242

扫码关注云+社区