版权:本文版权归作者和博客园共有 
转载:欢迎转载,但未经作者同意,必须保留此段声明;必须在文章中给出原文连接;否则必究法律责任
 

这是一篇关于人脸特征点定位(人脸关键点检测)的论文,题目:A Convolution Tree with Deconvolution Branches: Exploiting Geometric Relationships for Single Shot Keypoint Detection(具有反卷积分支的卷积树:利用单个关键点检测的几何关系)

Abstract

最近,深度卷积神经网络被应用到了人脸对齐任务中,而且表现出了学习改进特征表示的潜力。尽管更深层可以捕捉类似姿态的抽象概念,但是很难在DCNNs中捕捉关键点之间的几何关系。本文提出卷积-反卷积网络用于人脸关键点检测,我们的模型预测关键点的2D位置,每个点的可见性以及3D头部姿态,同时利用不同关键点间的空间关系。与已有的对关系建模的方法不同,我们提出可学习的变换函数(transform function),捕捉特征级别的关键点的关系。然而,由于,姿态变化具有多样性,不能一次得到所有的关系,因此,提出了基于姿态的寻径函数(routing function),隐式地对主动关系建模。转换函数和寻径函数通过多任务框架中的卷积实现。我们的方法是一个单独关键点检测方法,与已有的基于级联回归的方法不同。实验表明,学习这些关系可以显著提升关键点检测的准确性,尤其是那些来自挑战数据集如AFW和AFLW中的人脸图像。

3. Convolution Tree with Deconvolution Branches具有反卷积分支的卷积树

人脸关键点检测任务是给一张人脸图像,估计L个关键点的2D坐标。深度网络在各种各样的视觉任务中很有效,我们将定位任务用端到端的可学习深度神经网络来表示。图2是我们方法的概述图,本文中用f*表示多层非线性函数,网络的输入是RGB图像w*h*3,标签图w*h*(L+1),标签图中每个1*1*(L+1)区域是向量标签{0,…,L+1},其中L是关键点数量,额外加一个通道是背景。

函数fconv表示一系列卷积、pooling操作、残差想家和非线性转换,用于抽取图像更低维度的特征表示,得到的特征可以作为图2中图像编码Cx,网络的参数用thetaconv表示:

同样地,函数fdeconv表示一系列滑动的卷积、非线性操作和batch normalization得到每个关键点的响应图。

Ri和thetadeconv是第i点的响应图和反卷积参数,theta_mi,j是从第i点到第j点流过信息的参数。

具有反卷积分支的卷积树在关键点检测中很重要,首先,它形成了输入图像的低维表示,生成和图像同样大小但有不同通道channels数目的输出,这样可以把回归部分放到反卷积输出后,得到更好的定位。接下来,输入图像的低维表示使得姿态部分隐式地控制不同卷积分支间的信息流。由于反卷积后的输出图和输入大小一样,输出响应图的上采样没有信息损失。

3.1.1 Message Passing and Routing Function

不同点得到的特征图中的空间分布和语义信息是相关的,因此一个点的信息可以流到相邻点,有效地提高每个点的特征表示的质量。我们用卷积实现信息流通,如图4。给定一幅图像a,鼻尖的特征图是b,嘴巴中心的三个候选响应图是c,根据学习到的转换函数fpi,pj,在候选嘴巴中心响应上加上鼻尖卷积后的响应图,得到图d所示的嘴巴中心的最可能更新。

我们希望能从所有其他关键点得到信息来优化某一个关键点的特征,但是有2个缺点:1.对相距很远的点的信息建模,例如眼角和下巴,转换函数需要更大,这会导致参数增多。2.某些点的关系是不稳定的,例如左眼角和右眼角,在侧脸图像中可能有一个点不可见,在这两个点之间传递信息会得到错误结果。因此,我们提出关键点的树结构,如图5,相距很近的关键点有稳定的关系,被连在一起,图5也表示了在假设鼻尖是根节点时的信息流。

这种树结构也用在人的姿态估计任务中,但是没有考虑不是所有的点同时对其他点有影响,比如遮挡,这在具有挑战情况下的人脸图像是很明显的。信息流高度依赖于人脸的3D姿态。由于深度卷积网络的分层性质,更深层具有更抽象的信息,比如,姿态、属性和目标类别。因此,我们在RGB图像上并行地做序列卷积、非线性、pooling和batch normalization,预测3D头部姿态。对这个并行网络的更深层的信息做pooling,把它加到卷积树的特征表示中,网络就能通过反卷积分支隐式地控制信息流。

3.1.2 Constrained Shape Prediction受限的形状预测

一旦有干扰,比如检测框中有另外一个局部的脸,响应图会有false positives,尽管通过信息传递层隐式地强加形状约束,这个问题大大减少了,但仍然会降低困难场景下的性能。因此,我们加了一个受限形状回归网络,输入是响应图,用来预测关键点的精确位置。这个回归网络保留形状约束的同时预测所有点的坐标。

ffid输出关键点坐标y(2L*1),不可见点的梯度不反向传播。所有坐标关于训练图像的平均形状做归一化。

3.1.3 Loss Functions

分类损失

坐标回归损失

姿态预测

可见性

4. Network Architecture and Implementation Details
4.1. fconv and fdeconv

A Convolution Tree with Deconvolution Branches: Exploiting Geometric Relationships for Single Shot Keypoint Detection的更多相关文章

  1. URAL 1018 Binary Apple Tree(树DP)

    Let's imagine how apple tree looks in binary computer world. You're right, it looks just like a bina ...

  2. tree .git

    $ tree .git .git ├── branches ├── config ├── description ├── FETCH_HEAD ├── gitk.cache ├── HEAD ├── ...

  3. BNUOJ 13358 Binary Apple Tree

    Binary Apple Tree Time Limit: 1000ms Memory Limit: 16384KB This problem will be judged on Ural. Orig ...

  4. timus 1018. Binary Apple Tree

    1018. Binary Apple Tree Time limit: 1.0 secondMemory limit: 64 MB Let's imagine how apple tree looks ...

  5. Expression Tree Basics 表达式树原理

    variable point to code variable expression tree data structure lamda expression anonymous function 原 ...

  6. HDU 1710 Binary Tree Traversals(二叉树遍历)

    传送门 Description A binary tree is a finite set of vertices that is either empty or consists of a root ...

  7. ZOJ 3201 Tree of Tree

    树形DP.... Tree of Tree Time Limit: 1 Second      Memory Limit: 32768 KB You're given a tree with weig ...

  8. hdu1710 Binary Tree Traversals(二叉树的遍历)

    A binary tree is a finite set of vertices that is either empty or consists of a root r and two disjo ...

  9. HDU 1710 二叉树的遍历 Binary Tree Traversals

    Binary Tree Traversals Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/O ...

随机推荐

  1. Posting array of JSON objects to MVC3 action method via jQuery ajax

    Does the model binder not suport arrays of JSON objects? The code below works when sending a single ...

  2. 安装tensorflow的最简单方法(Ubuntu 16.04 && CentOS)

    先说点题外话:在用anaconda安装很多次tensorflow失败之后,我放弃了,如果你遇到这样的问题:Traceback (most recent call last)-如果不是因为pip版本,就 ...

  3. Oracle11g for CentOS6-*

    lsnrctl startsqlplus /nologstartup

  4. Properties 文件的简单操作

    properties 文件里面主要 存 一个Key对应一个Value  一般用来存放账户密码资料 方法有:Properties p=new  Properties(); p.setproperty(& ...

  5. Gym 100531G Grave(水题)

    题意:给定一个大矩形,再给定在一个小矩形,然后给定一个新矩形的长和高,问你能不能把这个新矩形放到大矩形里,并且不与小矩形相交. 析:直接判定小矩形的上下左右四个方向,能不能即可. 代码如下: #pra ...

  6. J20170520-ts

    手取り   净收入,实收额;用手抓住,到手

  7. 51nod 1190 最小公倍数之和 V2【莫比乌斯反演】

    参考:http://blog.csdn.net/u014610830/article/details/49493279 这道题做起来感觉非常奇怪啊--头一次见把mu推出来再推没了的-- \[ \sum ...

  8. 洛谷P4114 Qtree1(树链剖分+线段树)

    传送门 LCT秒天秒地用什么树剖 这题可以算是树剖的比较裸的题目了 把每一条边的权值下放到他两边的点中深度较深的那个 然后直接用树剖+线段树带进去乱搞就可以了 //minamoto #include& ...

  9. Spring AOP 面向切面编程入门

    什么是AOP AOP(Aspect Oriented Programming),即面向切面编程.众所周知,OOP(面向对象编程)通过的是继承.封装和多态等概念来建立一种对象层次结构,用于模拟公共行为的 ...

  10. Elementui实战知识点随记

    1. Elementui实战知识点随记 1.1. 表单验证 对于复杂数据,类似于对象里面包含数组,每个数组又包含多个对象,表单验证我查看了网上很多资料都说Elementui不支持,实际上,经过我官网的 ...