Stacked Hourglass Networks for Human Pose Estimation

key words:
人体姿态估计 Human Pose Estimation 给定单张RGB图像,输出人体某些关键点的精确像素位置.
堆叠式沙漏网络 Stacked Hourglass Networks
多尺度特征  Features processed across all scales
特征用于捕捉人体的空间关系 Capture spatial relationships associated with body
中间监督 Intermediate supervision

图 - Stacked Hourglass Networks由多个 stacked hourglass 模块组成,通过重复进行bottom-up, top-down推断以估计人体姿态.

沙漏设计 Hourglass Design

动机:捕捉不同尺度下图片所包含的信息.
局部信息,对于比如脸部、手部等等特征很有必要,而最终的姿态估计需要对整体人体一致理解. 不同尺度下,可能包含了很多有用信息,比如人体的方位、肢体的动作、相邻关节点的关系等等.

Hourglass设计:

图 - 单个hourglass模块示例. 图中个方框分别对应一个residual模块. 整个hourglass中,特征数是一致的.

hourglass设置:
首先Conv层和Max Pooling层用于将特征缩放到很小的分辨率;
每一个Max Pooling(降采样)处,网络进行分叉,并对原来pre-pooled分辨率的特征进行卷积;
得到最低分辨率特征后,网络开始进行upsampling,并逐渐结合不同尺度的特征信息. 这里对较低分辨率采用的是最近邻上采样(nearest neighbor upsampling)方式,将两个不同的特征集进行逐元素相加.
整个hourglass是对称的,获取低分辨率特征过程中每有一个网络层,则在上采样的过程中相应低就会有一个对应网络层.

得到hourglass网络模块输出后,再采用两个连续的 1×1 Conv层进行处理,得到最终的网络输出.
Stacked Hourglass Networks输出heatmaps的集合,每一个heatmap表征了关节点在每个像素点存在的概率.
Residual模块提取了较高层次的特征(卷积路),同时保留了原有层次的信息(跳级路)。不改变数据尺寸,只改变数据深度。可以把它看做一个保尺寸的高级“卷积”层。

中间监督 Intermediate Supervision

Hourglass网络输出heatmaps集合(蓝色方框部分),与真值进行误差计算。 其中利用1×1的Conv层对heatmaps进行处理并将其添加回特征空间中,作为下一个hourglass model的输入特征。每一个Hourglass网络都添加Loss层.Intermediate Supervision的作用在[2]中提到:如果直接对整个网络进行梯度下降,输出层的误差经过多层反向传播会大幅减小,即发生vanishing gradients现象。 

为解决此问题,[2]在每个阶段的输出上都计算损失。这种方法称为intermediate supervision,可以保证底层参数正常更新。

堆栈沙漏与中级监督  Stack Hourglass with Intermediate Supervision

  正如本文开头所示,网络的核心结构为堆叠多个hourglass model,这为网络提供了重复自下而上,自上而下推理的机制,允许重新评估整个图像的初始估计和特征。实现这一过程的核心便是预测中级热度图并让中级热度图参与loss计算。

  如果对单一的Hourglass Model进行Intermediate Supervision,监督放在哪个位置比较合适呢?如果在网络进行上采样后提供监督,那么在更大的全球堆叠沙漏网络人类姿势估计上下文中,无法相对于彼此重新评估这些特征;如果在上采样之前监督,此时,给定像素处的特征是处理相对局部感受野的结果,因此不知道关键的全局线索。本文提供的解决方式是repeated bottom-up,top-down inference with Stacked hourglass(图解在本文文首),通过该方式, the network can maintain precise local information while considering and then reconsidering the overall coherence of the features。

Reference:

[1] https://blog.csdn.net/shenxiaolu1984/article/details/51094959

[2] Wei, S.E., Ramakrishna, V., Kanade, T., Sheikh, Y.: Convolutional pose machines. Computer Vision and Pattern Recognition (CVPR), 2016 IEEE Conference on (2016)

[3] https://blog.csdn.net/zziahgf/article/details/72732220

论文笔记 Stacked Hourglass Networks for Human Pose Estimation的更多相关文章

  1. 论文阅读理解 - Stacked Hourglass Networks for Human Pose Estimation

    http://blog.csdn.net/zziahgf/article/details/72732220 keywords 人体姿态估计 Human Pose Estimation 给定单张RGB图 ...

  2. 【语义分割】Stacked Hourglass Networks 以及 PyTorch 实现

    Stacked Hourglass Networks(级联漏斗网络) 姿态估计(Pose Estimation)是 CV 领域一个非常重要的方向,而级联漏斗网络的提出就是为了提升姿态估计的效果,但是其 ...

  3. (转)Awesome Human Pose Estimation

    Awesome Human Pose Estimation 2018-10-08 11:02:35 Copied from: https://github.com/cbsudux/awesome-hu ...

  4. 论文笔记 《Maxout Networks》 && 《Network In Network》

    论文笔记 <Maxout Networks> && <Network In Network> 发表于 2014-09-22   |   1条评论 出处 maxo ...

  5. Deep High-Resolution Representation Learning for Human Pose Estimation

    Deep High-Resolution Representation Learning for Human Pose Estimation 2019-08-30 22:05:59 Paper: CV ...

  6. Learning Feature Pyramids for Human Pose Estimation(理解)

    0 - 背景 人体姿态识别是计算机视觉的基础的具有挑战性的任务,其中对于身体部位的尺度变化性是存在的一个显著挑战.虽然金字塔方法广泛应用于解决此类问题,但该方法还是没有很好的被探索,我们设计了一个Py ...

  7. human pose estimation

    2D Pose estimation主要面临的困难:遮挡.复杂背景.光照.真实世界的复杂姿态.人的尺度不一.拍摄角度不固定等. 单人姿态估计 传统方法:基于Pictorial Structures, ...

  8. 论文解读:3D Hand Shape and Pose Estimation from a Singl RGB Image

    本文链接:https://blog.csdn.net/williamyi96/article/details/89207640由于最近做到了一些 3D Hand Pose Estimation 相关的 ...

  9. DensePose: Dense Human Pose Estimation In The Wild(理解)

    0 - 背景 Facebook AI Research(FAIR)开源了一项将2D的RGB图像的所有人体像素实时映射到3D模型的技术(DensePose).支持户外和穿着宽松衣服的对象识别,支持多人同 ...

随机推荐

  1. 【随笔】CLR:向头对象(Object Header)迈进一大步!!!

    前言 在我之前一篇随笔里(戳我),我们知道,一个引用类型的对象,包含了2个额外的开销,一个是头对象(object header),一个是MT.我们接下来看看头对象到底有多神秘... Object He ...

  2. JavaScript初探 四 (程序结构)

    JavaScript 结构 JavaScript 程序结构 JavaScript支持几乎和C语言一样的程序结构 分支结构 循环结构 分支结构 条件分支 if-else if语句:判断条件为true则执 ...

  3. curl smtp libcurl 邮件功能使用

    /* * For an SMTP example using the multi interface please see smtp-multi.c. */ /* The libcurl option ...

  4. rocksdb和leveldb的bloom filter比较

    memtable中的bloom filter rocksdb在memtable中添加了prefix bloom filter,就是对key取prefix,然后把这个prefix加入到bloom fil ...

  5. mac odoo 12 虚拟环境搭建及 依赖安装

    经过这几天的折腾,odoo 12 的虚拟环境总算搭建成了.网站有很多虚拟环境相关的搭建,但是都是写文章的自己清楚,但是文章里却描述不清楚. odoo 虚拟环境 这次搭建环境使用 odoo 12.0. ...

  6. Jinkins自动构建

    Jinkins自动构建 1.项目添加 点击左侧操作栏“新建”,填写项目基础信息,如下图: 2. General配置 2.1 丢弃旧的构建 注:此处勾选丢弃旧的构建,默认天数为1,最大个数建议填写3-5 ...

  7. RSTP基本配置

    1.用四台S3700交换机,2台PC机,一台HUB,组建网络拓扑 2.测试主机间的连通性 3.配置rstp基本功能 (1)把交换机stp模式由默认的mstp变为rstp.在华为交换机上默认开启了mst ...

  8. day79_10_28git使用基础

    一.git与svn比较. git就是版本控制器,控制的对象是开发的项目代码. 可以根具时间轴进行回滚代码,改变代码版本. svn的特点就是服务版与用户版分离,当开发这需要进行开发时,需要先在代码仓库中 ...

  9. VMWare虚拟机提示:另一个程序已锁定文件的一部分,打不开磁盘...模块"Disk"启动失败的解决办法

    重启了电脑之后,打开VMware就发现出现了“锁定文件失败,打不开磁盘......模块"Disk"启动失败.”这些文字 为什么会出现这种问题: 这是因为虚拟机在运行的时候,会锁定文 ...

  10. 2019 SDN上机第一次作业

    2019 SDN上机第一次作业 1. 安装轻量级网络仿真工具Mininet 安装Mininet的步骤 - git clone git://github.com/mininet/mininet - cd ...