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 ...
随机推荐
- 高负载linux调优
调整Linux内核参数: # vi /etc/sysctl.conf# tells the Kernel it's ok if services bind to non-existant IP ADD ...
- tcp与socket关系
套接字(socket)是通信的基石,是支持TCP/IP协议的网络通信的基本操作单元.
- YTU 2596: 编程题B-日期格式
2596: 编程题B-日期格式 时间限制: 1 Sec 内存限制: 128 MB 提交: 981 解决: 74 题目描述 注:本题只需要提交编写的函数部分的代码即可. 将输入的日期格式 月/日/年 ...
- jsp实现翻页功能
jsp实现翻页功能 要实现翻页功能,只需要设置一个pageIndex即可,然后每次加载页面时通过pageIndex去加载数据就行. 那么我们可以设置一个隐藏的input框,用于传递pageIndex给 ...
- sphinx 针对tedfield搜索
query = "(user can be admin)" -> check all fields for the given words. If all words ar ...
- 思维导图js
http://baike.baidu.com/view/1469162.htm?fromenter=Mind+Maps
- Git 仓库结构 (一)***
Git 仓库 1.1Git 基本概念 在Git中,我们将需要进行版本控制的文件目录叫做一个仓库(repository),每个仓库可以简单理解成一个目录,这个目录里面的所有文件都通过Gi ...
- hdu3555(数位DP dfs/递推)
Bomb Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/65536 K (Java/Others)Total Submi ...
- bzoj2502【有上下界的最大流】
2502: 清理雪道 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 834 Solved: 442[Submit][Status][Discuss] ...
- 在linq语言中,不能准确按拼音排序(转)
在项目中,利用OrderBy/OrderByDescending, ThenBy/ThenByDescending这4个方法排序时,发现了这样的问题:在本机测试,能正确按拼音排序:但是放上服务器是,就 ...