A Convolution Tree with Deconvolution Branches: Exploiting Geometric Relationships for Single Shot Keypoint Detection
转载:欢迎转载,但未经作者同意,必须保留此段声明;必须在文章中给出原文连接;否则必究法律责任
这是一篇关于人脸特征点定位(人脸关键点检测)的论文,题目: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的更多相关文章
- 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 ...
- tree .git
$ tree .git .git ├── branches ├── config ├── description ├── FETCH_HEAD ├── gitk.cache ├── HEAD ├── ...
- BNUOJ 13358 Binary Apple Tree
Binary Apple Tree Time Limit: 1000ms Memory Limit: 16384KB This problem will be judged on Ural. Orig ...
- timus 1018. Binary Apple Tree
1018. Binary Apple Tree Time limit: 1.0 secondMemory limit: 64 MB Let's imagine how apple tree looks ...
- Expression Tree Basics 表达式树原理
variable point to code variable expression tree data structure lamda expression anonymous function 原 ...
- HDU 1710 Binary Tree Traversals(二叉树遍历)
传送门 Description A binary tree is a finite set of vertices that is either empty or consists of a root ...
- ZOJ 3201 Tree of Tree
树形DP.... Tree of Tree Time Limit: 1 Second Memory Limit: 32768 KB You're given a tree with weig ...
- 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 ...
- HDU 1710 二叉树的遍历 Binary Tree Traversals
Binary Tree Traversals Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/O ...
随机推荐
- 搭建nodejs服务,访问本地站点文件
搭建nodejs服务器步骤: 1.安装nodejs服务(从官网下载安装) 2.在自己定义的目录下新建服务器文件如 server.js 例如,我在E:\PhpProject\html5\websocke ...
- c# 字节高低位
byte n = br.ReadByte(); ; // 高位 var l = n & 0x0f; // 低位
- facebook Presto SQL分析引擎——本质上和spark无异,分解stage,task,MR计算
Presto 是由 Facebook 开源的大数据分布式 SQL 查询引擎,适用于交互式分析查询,可支持众多的数据源,包括 HDFS,RDBMS,KAFKA 等,而且提供了非常友好的接口开发数据源连接 ...
- android 改变状态栏(StatusBar)颜色
public static void changeColor(Activity paramActivity, int paramInt1) { if (Build.VERSION.SDK_INT &g ...
- bzoj4033 [HAOI2015]树上染色——树形DP
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=4033 树形DP,状态中加入 x 与父亲之间的边的贡献: 边权竟然是long long... ...
- ubuntu搭建开发环境踩坑实录
谨以此文,记录和ubuntu系统不死不休的搏斗过程,后续待补. 1.双系统安装,windows采用uefi模式安装(优启通可制作uefi的win10安装盘),ubuntu不要划分boot区,而应该划分 ...
- 状压dp之二之三 炮兵阵地/玉米田 By cellur925
一.简单的状压dp 玉米田 题目描述 Farmer John has purchased a lush new rectangular pasture composed of M by N (1 ≤ ...
- pytest特色与实用插件
pytest特色 1.fixture的特点 fixture是pytest特有的功能,其特点如下: 必须用pytest.fixture装饰器装饰:fixture有明确的名字,在其他函数(function ...
- _bzoj1051 [HAOI2006]受欢迎的牛【强联通】
传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=1051 保存tarjan模版. 求强联通分量,缩点. #include <cstdio& ...
- 题解报告:hdu 2069 Coin Change(暴力orDP)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2069 Problem Description Suppose there are 5 types of ...