Convolutional Pose Machines

2023-05-16

本论文将深度学习应用于人体姿态分析,同时用卷积图层表达纹理信息和空间信息。目前在2016年的MPII竞赛中名列前茅。作者在github提供了训练和测试源码。 

convolutional pose machines, CVPR 2016.

论文:http://arxiv.org/abs/1602.00134

project:https://github.com/shihenw/convolutional-pose-machines-release

网络结构

framework


整个framework还是比较清晰的,从构建多个FCN网络来预测part/joint的heat maps,多个FCN就构成了convolutional pose machines(CPM)。

自然而然地满足了CPM得multi-loss的joint training,而且stage越往前的objective还起到解决梯度弥漫的作用,以及自然而然地提高CPM的感受野。

网络输入彩色图像。每个阶段都能输出各个部件的响应图,使用时以最后一个阶段的响应图输出为准。 

center map是一个提前生成的高斯函数模板,用来把响应归拢到图像中心。 


第一阶段对应论文3.2.1

第一阶段是一个基本的卷积网络 ,从彩色图像直接预测每个部件的响应。


第二阶段对应论文3.2.1

第二阶段也是从彩色图像预测各部件响应,但是在卷积层中段多了一个串联层。共三个数据
-纹理特征 ---- 阶段性的卷积结果 ;     
- 空间约束----前一阶段各部件响应;
- 中心约束;
串联后的结果尺寸不变;

第三阶段

第三阶段不再使用原始图像为输入,而是从第二阶段的中途取出一个 深度为X的特征图 (feature image)作为输入。同样使用串联层综合三种因素:纹理特征+空间特征+中心约束。 

第四阶段以后


第四阶段结构和第三阶段完全相同。在设计更复杂的网络时(例如全身模型),只需调整部件数量,并重复第三阶段结构即可。 

训练

数据扩展

为了丰富训练样本,对原始图片进行随机旋转缩放镜像。

标定

姿态数据集中标定的是各个部件的位置,可以通过在每个关键点的真实位置上放置一个高斯响应,来构造响应图的真值。

中继监督优化

如果直接对整个网络进行梯度下降,输出层的误差经过多层反向传播会大幅减小,即发生vanishing gradients现象。

为解决此问题,本文 在每个阶段的输出上都计算损失 。这种方法称为 intermediate supervision ,可以保证底层参数正常更新。
训练时,初始化参数随机设定。

中继监督的效果


上图示出有中继监督(黑色)和无中继监督(红色)情况下,各层梯度的分布情况。 在无中继监督时,顶层梯度分布较均匀,而底层梯度都集中0附近,几乎无法更新网络。 有中继监督时,各层梯度分布情况良好,网络能够随着训练正常更新。

实验效果




结果可视化



本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Convolutional Pose Machines 的相关文章

随机推荐

  • Faster RCNN算法解析(附源代码,可以直接运行)

    一 前言知识 1 基于Region Proposal xff08 候选区域 xff09 的深度学习目标检测算法 Region Proposal xff08 候选区域 xff09 xff0c 就是预先找出图中目标可能出现的位置 xff0c 通
  • CycleGAN算法原理(附源代码,可直接运行)

    前言 CycleGAN是在今年三月底放在arxiv xff08 论文地址CycleGAN xff09 的一篇文章 xff0c 文章名为Learning to Discover Cross Domain Relations with Gene
  • mask rcnn训练自己的数据集

    前言 最近迷上了mask rcnn xff0c 也是由于自己工作需要吧 xff0c 特意研究了其源代码 xff0c 并基于自己的数据进行训练 本博客参考https blog csdn net disiwei1012 article deta
  • 深度学习实现工业零件的缺陷检测

    介绍 工业零件在制造完成的时候 xff0c 往往需要去检测其完整性和功能性 如下图所示 xff0c 从左上到右下 xff0c 分别是擦花 漏底 碰凹 凸粉 本篇博文主要讲解如何去识别这四类图像 xff0c 所用框架为keras 2 1 6
  • 给定一个无序数组,包含正数、负数和0,要求从中找出3个数的乘积,使得乘积最大

    题目描述 给定一个无序数组 xff0c 包含正数 负数和0 xff0c 要求从中找出3个数的乘积 xff0c 使得乘积最大 xff0c 要求时间复杂度 xff1a O n xff0c 空间复杂度 xff1a O 1 输入描述 无序整数数组A
  • 使用国内源来安装pytorch(速度很快)

    一 找到合适的安装方式 pytorch官网 xff1a https pytorch org 二 安装命令 pip3 install torch torchvision i https pypi mirrors ustc edu cn sim
  • 游戏中的寻路算法--Dijkstra算法和AStar(A*)算法

    前言 如今游戏中最最常用的两种寻路算法为Dijkstra算法和A 算法 xff0c 虽然现代引擎中的Al寻路算法看似很复杂 其实大部分是Dijkstra算法或者A 算法的变种 导航网格 图数据 无论是2D游戏的导航网格或者3D游戏导航网格
  • 【ROS】功能包创建

    本文记录创建ROS功能包的过程 xff0c 但是在创建功能包之前需要先创建ROS工作空间 xff0c 如果不知道如何创建工作空间可以参看链接 创建过程 1 打开终端 xff0c 进入自己的工作空间的src目录 xff0c 输入以下命令 xf
  • Vue实现进度条

    本篇文章用Vue简单实现进度条的变化 先上一波效果图 xff1a 点击减后 xff0c 每次减百分之十 减到百分之0后 xff0c 减操作按钮隐藏 然后点击重头开始 xff0c 恢复到初始状态 二话不说 xff0c 上代码 lt DOCTY
  • C++中vector容器的使用方式和函数调用

    include lt vector gt vector是一种顺序容器 xff0c 和数组差不多但是比数组更优越 xff0c 数组不支持动态扩展但vector容器支持动态拓展因此vector不存在浪费内存 和越界的问题 xff0c 随机访问比
  • Jetson tx2(JetPack 4.4)配置pytorch环境

    下载pytorch 下载pytorch1 7 xff1a 我的系统是JetPack4 4 xff0c 要求pytorch gt 61 1 7 安装pytorch span class token function sudo span spa
  • Zynq Cache问题的解决方法

    在进行PS PL之间的DMA传输时 xff0c 不可避免会遇到Cache问题 今天在这里讲一下Cache的解决方法 其中参考了forums xilinx com的处理方法 首先解释为什么DMA会引入Cache问题 xff08 专业名称为Ca
  • Python网络爬虫之-HTTP协议原理

    Python网络爬虫之 HTTP协议原理 1 爬虫之http基本原理2 浏览器解析概述Cookie技术 1 爬虫之http基本原理 URI 统一资源表示符 中包含 URL lt 统一资源定位符 gt URN lt 统一资源名称 gt HTT
  • Java的大端小端字节序

    在计算机中 xff0c 内存地址通常是按照地址递增的方式分配的 xff0c 也就是说 xff0c 低地址是指内存的起始位置 xff0c 高地址是指内存的末尾位置 在大多数体系结构中 xff0c 数据存储在内存中是以字节为单位进行的 例如 x
  • DSP28335 printf重定向问题调试记录

    最近几天在玩DSP28335板子 xff0c 在实现printf重定向功能时 xff0c 遇到很多问题 xff0c 最终结合网上一些人的经验和个人实践 xff0c 最终解决了问题 本文做一个简单的总结 xff0c 以便后续查阅 同时也是希望
  • C++ 绝对路径与相对路径

    对于一些第三方的SDK xff0c 一般会包含头文件 h xff0c 静态库文件 lib 和动态库文件 dll 文件位置 xff1a 为了提高程序的可移植性 xff0c 将第三库放在解决方案 sln 或者工程 vcxproj 文件所在的文件
  • C/C++ 函数与指针取地址符

    int f1 float int f2 char int f3 float int f4 float int pf float 则以下不合法的是 int p float 61 amp f1 pf 61 amp f4 pf 61 amp f2
  • C/C++编程异常处理中try和throw以及catch语句的用法

    这篇文章主要介绍了C 43 43 编程异常处理中try和throw以及catch语句的用法 包括对Catch块的计算方式的介绍 若要在 C 43 43 中实现异常处理 xff0c 你可以使用 try throw 和 catch 表达式 首先
  • c/c++中的string常用函数用法总结

    标准c 43 43 中string类函数介绍 注意不是CString 之所以抛弃char 的字符串而选用C 43 43 标准程序库中的string类 xff0c 是因为他和前者比较起来 xff0c 不必 担心内存是否足够 字符串长度等等 x
  • Convolutional Pose Machines

    本论文将 深度学习 应用于人体姿态分析 xff0c 同时用卷积图层表达纹理信息和空间信息 目前在2016年的 MPII竞赛中名列前茅 作者在github提供了 训练和测试源码 convolutional pose machines CVPR