0 - 背景

  人体姿态识别存在遮挡以及关键点不清晰等主要挑战,然而,人体的关键点之间由于人体结构而具有相互关系,利用容易识别的关键点来指导难以识别关键点的检测,是提高关键点检测的一个思路。本文通过提出序列化结构模型,来提高人体姿态识别任务的效果。

1 - 贡献

  • 使用一个序列卷积结构模型学习表达空间信息
  • 采用系统的方法来设计和训练模型,以学习图像特征和依赖图像空间模型进行结构化预测的任务
  • 在MPII/LSP/FLIC等数据集上实现了最好的性能
  • 分析了联合训练一个多阶段、中间重复监督的架构的效果

2 - 整体思路

2.1 - CPM(Convolutional Pose Machines)

  Convolutional Pose Machines(CPM)算法思想来自于Pose Machine,其网络结果如下图:

  图中(a)和(b)是pose machine中的结构,(c)和(d)是其对应的卷积网络结构,(e)展示了图片在网络中传输的不同阶段的感受野。

  • Stage 1:对输入图片做处理,其中$X$代表经典的VGG结构,并且最后采用$1 \times 1$卷积输出belief map,如果人体有$k$个关键带来,则$belief map$的通道数为$k$
  • Stage T:对于Stage 2以后的Stage,其结构都统称为Stage T,其输入为上一个Stage的输出以及对原始图片的特征提取的联合,输出于Stage 1一致

2.2 - 损失函数

  损失函数公式如下:

$$f_t=\sum_{p=1}^{P+1}\sum_{z\in Z}\begin{Vmatrix}b_t^p(z)-b_*^p(z)\end{Vmatrix}^2_2$$

3 - 实验

3.1 - intermediate supervision

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

    

  本文为了解决这个问题,提出了中间监督方法,从而保证底层参数的正常更新。

    

  效果如下图,可以看到,加入中间监督之后,在靠近输入的stage,其梯度比没有中间监督大很多,从而保证学习的效果。

3.2 - 感受野

  CPM采用大卷积核获得大感受野,对于被遮挡的关键点检测很有效果。并且本文通过实验表明了随着感受野的增大,预测的准确率上升,如下图:

    

  文中提出增大感受野有如下几种方式:

  • 增大pool,但会损失较多信息从而减小了精度
  • 增大卷积核,同时会增加参数量
  • 增加卷积层,层数过多容易产生梯度消失等问题

4 - 参考资料

https://arxiv.org/abs/1602.00134

https://blog.csdn.net/cherry_yu08/article/details/80846146

https://blog.csdn.net/shenxiaolu1984/article/details/51094959

https://www.cnblogs.com/JillBlogs/p/9098989.html

Convolutional Pose Machines(理解)的更多相关文章

  1. Convolutional Pose Machines

    Convolutional Pose Machines 2018-12-10 18:17:20 Paper:https://www.cv-foundation.org/openaccess/conte ...

  2. 人体姿势识别,Convolutional pose machines文献阅读笔记。

    开源实现 https://github.com/shihenw/convolutional-pose-machines-release(caffe版本) https://github.com/psyc ...

  3. SPM:Single-stage Multi-person Pose Machines

    figure1图b figure1 -a   figure3-a 图一-a

  4. learning to Estimate 3D Hand Pose from Single RGB Images论文理解

    持续更新...... 概括:以往很多论文借助深度信息将2D上升到3D,这篇论文则是想要用网络训练代替深度数据(设备成本比较高),提高他的泛性,诠释了只要合成数据集足够大和网络足够强,我就可以不用深度信 ...

  5. 论文笔记 Stacked Hourglass Networks for Human Pose Estimation

     Stacked Hourglass Networks for Human Pose Estimation key words:人体姿态估计 Human Pose Estimation 给定单张RGB ...

  6. (转)Awesome Human Pose Estimation

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

  7. 从DeepNet到HRNet,这有一份深度学习“人体姿势估计”全指南

    从DeepNet到HRNet,这有一份深度学习"人体姿势估计"全指南 几十年来,人体姿态估计(Human Pose estimation)在计算机视觉界备受关注.它是理解图像和视频 ...

  8. 2016CVPR论文集

    http://www.cv-foundation.org/openaccess/CVPR2016.py ORAL SESSION Image Captioning and Question Answe ...

  9. PyTorch深度学习计算机视觉框架

    Taylor Guo @ Shanghai - 2018.10.22 - 星期一 PyTorch 资源链接 图像分类 VGG ResNet DenseNet MobileNetV2 ResNeXt S ...

随机推荐

  1. completable 用法

    CompletableFuture 前面我们使用过jdk5 提出future的用法,但是在获取结果上并不是那么友好 在Java8中,CompletableFuture提供了非常强大的Future的扩展 ...

  2. django.db.utils.ProgrammingError: (1146, "Table 'db_gold.user_ip_info' doesn't exist") RuntimeError: Model class scanhosts.models.HostLoginInfo doesn't declare an explicit app_label and isn't in an a

    Error Msg 创建了一个apps的目录将所有app放入apps文件中, 将apps路径加入sys.path中:sys.insert(0, os.path.join(BASE_DIR, " ...

  3. zcu102 hdmi example(二)

    1.概述 上篇说到,调用跑HDMI IP核自带的design example,跑出来的结果是显示屏显示彩条,并伴有嘀,嘀,嘀...的声音.因为在实际项目中,我们只需要图像,不需要声音的,所以我要把声音 ...

  4. Recovering Low-Rank Matrices From Few Coefficients In Any Basis

    目录 引 主要结果 定理2,3 定理4 直观解释 Recovering Low-Rank Matrices From Few Coefficients In Any Basis-David Gross ...

  5. Asp.Net Core Options模式的知识总结

    Options模式是Asp.Net Core中用于配置的一种模式,它利用了系统的依赖注入,并且还可以利用配置系统.它使我们可以采用依赖注入的方法直接使用绑定的一个POCO对象,这个POCO对象就叫做O ...

  6. P2023 [AHOI2009]维护序列

    震惊,双倍经验,依旧是线段树的乘法修改 #include<bits/stdc++.h> using namespace std; ; struct sege_tree { int l; i ...

  7. CMakeList.txt设置OpenCv路径

    源文件imageBasics.cpp #include <iostream> #include <chrono> using namespace std; #include & ...

  8. odoo Model字段的参数

    odoo Model字段的参数 class Field(object): """ The field descriptor contains the field defi ...

  9. Go语言中的make和new

    相同点: make和new都是用来创建分配类型内存的. 不同点: 先看下面的代码 package main import "fmt" func main(){ var i *int ...

  10. List根据对象的两个字段进行排序,并且有一个倒序

    用java8 的lambda 表达式 list.sort(Comparator.comparing(Live::getId) .thenComparing(Live::getAppId, Compar ...