当前位置: 首页 > news >正文

(论文阅读31/100)Stacked hourglass networks for human pose estimation

31.文献阅读笔记

简介

题目

Stacked hourglass networks for human pose estimation

作者

Alejandro Newell, Kaiyu Yang, and Jia Deng, ECCV, 2016.

原文链接

https://arxiv.org/pdf/1603.06937.pdf

关键词

Human Pose Estimation

研究问题

CNN运用于Human Pose Estimation,

重复自底向上、自顶向下推理。

早期的工作:使用稳健的图像特征(局部解释)和复杂的结构化预测(推断全局一致的姿态)来解决这些困难。

现在:普遍采用卷积神经网络作为其主要构建模块,很大程度上取代了手工制作的特征和图形模型。

任务:从RGB图像中对单个人的姿态进行关键点定位。

研究方法

“stacked hourglass” network:

该网络在图像的所有尺度上捕获和整合信息,基于可视化的池化和后续上采样的步骤来得到网络的最终输出。

不同于以前的设计,主要是在其更对称的拓扑结构。

连续地将多个沙漏模块端到端地放在一起,在单个沙漏上进行扩展。这允许跨尺度自下而上、自上而下的重复推断。结合中间监督的使用,重复的双向推理对网络的最终性能至关重要。

有些方法通过使用单独的管道来解决这个问题,即在多个分辨率下独立处理图像,然后在网络中合并特征。

作者选择使用skip layers的单一管道,以保留每个分辨率下的空间信息。

网络的输出是一组热图,对于给定的热图,网络会预测每个像素上出现关节的概率。

以 256x256 的全输入分辨率运行需要大量 GPU 内存,因此沙漏的最高分辨率(也就是最终输出分辨率)为 64x64。这并不影响网络生成精确联合预测的能力。整个网络从一个步长为 2 的 7x7 卷积层开始,然后是一个残差模块和一轮最大池化,将分辨率从 256 降到 64。

在图 3 所示的沙漏之前有两个残差模块。在整个沙漏过程中,所有残差模块都会输出 256 个特征。

使用 1x1 卷积来减少步骤是有价值的,使用连续的较小滤波器来捕捉更大的空间背景也是有好处的。例如,可以用两个独立的 3x3 滤波器代替 5x5 滤波器。

将一个沙漏的输出作为下一个沙漏的输入。

通过额外的 1x1 卷积将中间预测映射到更多通道,从而将中间预测重新整合到特征空间中。这些特征与前一个沙漏阶段输出的特征一起被添加回沙漏的中间特征中(如图 4 所示)。由此产生的输出可直接作为下一个沙漏模块的输入,从而生成另一组预测结果。在最终的网络设计中,使用了八个沙漏。值得注意的是,沙漏模块之间并不共享权重,而且所有沙漏的预测结果都使用相同的ground truth,因此会产生损失。

网络在确定哪个人值得注释时,无法获得足够的信息。为此,我们对网络进行了训练,使其只对位于正中心的人进行注释。

研究结论

在MPII上,所有关节的平均精度都有超过2 %的提高,对于更困难的关节,如膝盖和脚踝,平均精度提高了4 - 5 %

创新不足

当图像中有多个人物时,一致性问题就变得尤为重要。网络必须决定对谁进行注释,唯一信号就是目标人物的居中和缩放,相信输入会足够清晰,便于解析。遗憾的是,当人物距离很近甚至重叠时,这偶尔会导致模糊不清的情况,

额外知识

图像处理:

自下而上:高分辨率到低分辨率

自上而下:低分辨率到高分辨率

上:低分辨率 提供更多语义信息,具有更大的视野

下:高分辨率 有更多像素,提供更多细节信息

全卷积网络和整体嵌套架构,自下而上处理能力都很强(即提取语义信息),但是自上而下处理能力都很弱,只能对多尺度预测进行合并。

相关文章:

  • VBA技术资料MF83:将Word文档批量另存为PDF文件
  • SQL注入学习--GTFHub(布尔盲注+时间盲注+MySQL结构)
  • 微服务实战系列之Token
  • cocos3.4.2 2d射线检测 和 animation动画
  • Unity 预制体放在场景中可见,通过代码复制出来不可见的处理
  • CSS相关
  • 2D 3D 工业组态技术 meta2d JavaScript
  • Page分页records有数据,但是total=0,解决办法
  • NET8 ORM 使用AOT SqlSugar
  • 设计模式解码:软件工程架构的航标
  • 线性表的概念
  • 基于模拟退火算法优化概率神经网络PNN的分类预测 - 附代码
  • 如何把小米路由器刷入OpenWRT系统并通过内网穿透工具实现公网远程访问
  • 移动硬盘打不开?正确操作方法分享!
  • 有什么好用的后勤管理软件?学校后勤服务要怎么提升满意度?
  • Dubbo 整合 Pinpoint 做分布式服务请求跟踪
  • extjs4学习之配置
  • iOS动画编程-View动画[ 1 ] 基础View动画
  • JavaScript工作原理(五):深入了解WebSockets,HTTP/2和SSE,以及如何选择
  • Java深入 - 深入理解Java集合
  • Linux中的硬链接与软链接
  • log4j2输出到kafka
  • mac修复ab及siege安装
  • Object.assign方法不能实现深复制
  • SAP云平台里Global Account和Sub Account的关系
  • Spring Cloud(3) - 服务治理: Spring Cloud Eureka
  • Spring核心 Bean的高级装配
  • UMLCHINA 首席专家潘加宇鼎力推荐
  • 编写符合Python风格的对象
  • 第13期 DApp 榜单 :来,吃我这波安利
  • 如何打造100亿SDK累计覆盖量的大数据系统
  • 一个完整Java Web项目背后的密码
  • 移动端唤起键盘时取消position:fixed定位
  • 阿里云ACE认证学习知识点梳理
  • #14vue3生成表单并跳转到外部地址的方式
  • #我与Java虚拟机的故事#连载07:我放弃了对JVM的进一步学习
  • #我与Java虚拟机的故事#连载08:书读百遍其义自见
  • #我与Java虚拟机的故事#连载12:一本书带我深入Java领域
  • (c语言版)滑动窗口 给定一个字符串,只包含字母和数字,按要求找出字符串中的最长(连续)子串的长度
  • (层次遍历)104. 二叉树的最大深度
  • (非本人原创)史记·柴静列传(r4笔记第65天)
  • (附源码)spring boot建达集团公司平台 毕业设计 141538
  • (简单) HDU 2612 Find a way,BFS。
  • (译) 理解 Elixir 中的宏 Macro, 第四部分:深入化
  • (转)Android中使用ormlite实现持久化(一)--HelloOrmLite
  • (转)程序员技术练级攻略
  • (转载)(官方)UE4--图像编程----着色器开发
  • .Net CF下精确的计时器
  • .NET Core MongoDB数据仓储和工作单元模式封装
  • .NET Core实战项目之CMS 第十二章 开发篇-Dapper封装CURD及仓储代码生成器实现
  • .NET DataGridView数据绑定说明
  • .NET 中使用 Mutex 进行跨越进程边界的同步
  • .net分布式压力测试工具(Beetle.DT)
  • .NET与 java通用的3DES加密解密方法
  • ??在JSP中,java和JavaScript如何交互?