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 ...
随机推荐
- command 'gcc' failed with exit status 1
https://stackoverflow.com/questions/11094718/error-command-gcc-failed-with-exit-status-1-while-insta ...
- ABAP 创建和调用WebService
1.创建WebService ① SE37创建RFC函数 ② SE80创建企业服务-service provider-existing ABAP object 或SE37-实用程序-创建Web服务 ③ ...
- js控制页面显示
两个菜单切换显示页面内容: js控制代码, /** JS初始化 **/ $(document).ready(function() { $('#email_btn').click(function(){ ...
- Android NDK生成及连接静态库与动态库
对于Android应用开发,大部分情况下我们使用Java就能完整地实现一个应用.但是在某些情况下,我们需要借助C/C++来写JNI本地代码.比如,在使用跨平台的第三方库的时候:为了提升密集计算性能的时 ...
- Atom vim mode
/******************************************************************** * Atom vim mode * 说明: * 想找一个具有 ...
- Linux中的工作队列
工作队列(work queue)是Linux kernel中将工作推后执行的一种机制.这种机制和BH或Tasklets不同之处在于工作队列是把推后的工作交由一个内核线程去执行,因此工作队列的优势就在于 ...
- EF include 预先加载
在asp.net mvc 中,常在控制器中预先加载导航属性,以便在视图中能够显示起关联的数据. 如果不预先加载,View中就会无法呈现外键的 关联数据. 会提示EF 错误发生. 一. 模型: publ ...
- 关于jenkins的安装及自动部署
1. 安装Jenkins 1.1 准备Linux服务器, 关闭防火墙禁止开机启动 systemctl stop firewalld.service #停止firewall systemctl disa ...
- bzoj 1912: [Apio2010]patrol 巡逻【不是dp是枚举+堆】
我是智障系列.用了及其麻烦的方法= =其实树形sp就能解决 设直径长度+1为len(环长) 首先k=1,直接连直径两端就好,答案是2*n-len 然后对于k=2,正常人的做法是树形dp:先求直径,然后 ...
- [App Store Connect帮助]七、在 App Store 上发行(2.3)设定价格与销售范围:为您的 App 选择地区
您可以选择希望您的 App 在 App Store 上可用的地区.默认情况下,所有地区都被选中,但您可以取消选中您不想销售您 App 的地区.新地区或已更改地区的 App Store 会在 24 小时 ...