2D/3D姿态估计整理

2D

主要参考:
https://www.jianshu.com/p/39fe654ed410
https://blog.csdn.net/sinat_26917383/article/details/79704097

2个思路:

1)Top-Down(自上而下)方法:将人体检测和关键点检测分离,在图像上首先进行人体检测,找到所有的人体框,对每个人体框图再使用关键点检测,这类方法往往比较慢,但姿态估计准确度较高。目前的主流是CPM,Hourglass,CPM,Alpha Pose等。

2)Bottom-Up(自下而上)方法:先检测图像中人体部件,然后将图像中多人人体的部件分别组合成人体,因此这类方法在测试推断的时候往往更快速,准确度稍低。典型就是COCO2016年人体关键点检测冠军Open Pose。

经典模型

CPM

论文:https://arxiv.org/abs/1602.00134
代码:https://github.com/shihenw/convolutional-pose-machines-release
解析:https://blog.csdn.net/u010579901/article/details/79606257
主要思想:
论文设计的网络分为多个阶段(stage):前面阶段使用原始图片作为输入,后面阶段使用之前阶段生成的特征图作为输入,这样做主要是为了融合空间信息,纹理信息。
  论文中,为了进一步提升精度,采用加大网络的感受野的方式来学习各个部件 parts 之间的空间几何约束关系, 保证精度的同时考虑各个部件的远距离关系.
  同时,网络采用全卷机网络(FCN), 可以 end-to-end joint training, 同时为了防止梯度消失, 在各个阶段中添加监督信息, 避免网络过深难以优化的问题.
在这里插入图片描述
Stage 1 input是原始图像,经过全卷机网络,输出是一个P+1层的2Dmap。其中,全卷积网络中有7个卷积层,3个池化层,原始输入图片是 368368 ,经过3次池化后得到 4646 大小。又因为这里使用的数据库是半身结构,只有9个关节点,因此加上背景,输出的响应图大小应该是 464610。
  Stage 2 input是 Stage1 的 Output 响应谱,并且加上原始图像通过几层网络后的特征谱 feature map。输出是一个P+1层的2Dmap。其中,stage 2 融合了三部分的信息–一是stage1的响应图,二是原始图像的图像特征,三是高斯模版生成的中心约束。图像深度变为10+32+1 = 43。
  Stage 3 及其后面各个阶段的网络结构和 Stage 2 相似
  为了防止训练时出现梯度消失的问题:论文采用了中层监督(加入中层loss),加强反向传播。

注: 在cpm网络结构中,网络有一个格外的输入: center map,center map为一个高斯响应。因为cpm处理的是单人pose的问题,如果图片中有多人,那么center map可以告诉网络,目前要处理的那个人的位置。因为这样的设置,cpm也可以自底向上地处理多人pose的问题。
  
随着stage的增长,CPM会学习到parts之间的空间几何约束关系来纠正容易出错的情况.在这里插入图片描述

CMU OpenPose

论文:https://arxiv.org/abs/1812.08008
升级版论文:https://arxiv.org/abs/1909.13423
github:https://github.com/CMU-Perceptual-Computing-Lab/openpose
论文解析:https://blog.csdn.net/wwwhp/article/details/88782851
https://blog.csdn.net/weixin_41665360/article/details/90905476
核心思想:
文章的核心是提出一种利用Part Affinity Fields(PAFs)的自下而上的人体姿态估计算法。研究自下而上算法(得到关键点位置再获得骨架)而不是自上而下算法(先检测人,再回归关键点),是因为后者运算时间会随着图像中人的个数而显著增加,而自下而上所需计算时间基本不变。
在这里插入图片描述
首先是输入一张原始图片,经过基础网络VGG进行简单的特征提取,得到一个Feature map,然后在stage1,经过两个分支分别预测。第一个分支为关键点的分支,这个分支也为CPM的经典方法,此外在这个分支的基础之上增加了PAF骨骼点走向的分支。之后的阶段与上面的类似,最终得到网络的输出S,L。
损失函数的计算,两种loss求和。
在这里插入图片描述

DeeperCut

论文:https://arxiv.org/abs/1605.03170
github:https://github.com/eldar/pose-tensorflowhttps://github.com/mattzheng/pose-tensorflow-detailed
论文解读:https://blog.csdn.net/qq_36165459/article/details/78321696https://blog.csdn.net/qq_36165459/article/details/78321696
思路:首先使用CNN提取body part candidates,每一个候选区域对应的是一个关节点, 每一个关节点作为图中的一个节点,所有的这些候选关节点组成代表的节点组成一副完整的图,正如上图dense graph所示。节点之间的关联性作为图中的节点之间的权重。这时,可以将其看作是一个优化问题,将属于同一个人的关节点(图中的节点)归为一类,每一个人作为一个单独的类。同时,另一条分支,需要对检测出来的节点进行标记,确定他们属于人体的哪一个部分。最后,使用分类的人结合标记的部分构成最终的每个人的姿态估计。

在这里插入图片描述

Hourglass

论文:https://arxiv.org/abs/1603.06937
github:https://github.com/princeton-vl/pose-hg-train
论文解读:https://blog.csdn.net/jerryzhang__/article/details/98308729
https://blog.csdn.net/zziahgf/article/details/72732220
主要网络结构:
(1)"hourglass"模块的基本结构
"hourglass"模块的基本结构如下图所示,图中的每一个方块都表示一个残差模块。
hourglass module
根据论文的代码,残差模块的具体形式如下:
residual block in hourglass network
(2)"stacked hourglass network"的整体结构
"hourglass network"的整体结构如下图所示,输入的图像首先经过卷积和pooling操作后,尺寸缩小四倍(256x256->64x64),然后接多个"hourglass"模块。在中间的每一个"hourglass"模块后都会输出一个中间结果heatmaps,参与损失函数计算,并会将这个heatmaps通过1x1的卷积“remap”回去,与原来的feature map相加到一起。具体详细的结构可以参见下图。
stacked hourglass network

CPN(Cascaded Pyramid Network)

论文:https://arxiv.org/abs/1711.07319
github:https://github.com/chenyilun95/tf-cpn
论文解读:https://blog.csdn.net/yangzhengzheng95/article/details/85288347
https://blog.csdn.net/weixin_41665360/article/details/90780857

AlphaPose

论文:https://arxiv.org/abs/1612.00137v3
github:https://github.com/MVIG-SJTU/AlphaPosehttps://github.com/MVIG-SJTU/AlphaPose/tree/pytorch
论文解读:https://www.cnblogs.com/taoshiqian/p/9593901.htmlhttps://blog.csdn.net/TwT520Ly/article/details/79258594

CrowdPose(AlphaPose v2)

论文:https://arxiv.org/abs/1812.00324
github:https://github.com/MVIG-SJTU/AlphaPosehttps://github.com/MVIG-SJTU/AlphaPose/tree/pytorch
论文解读:https://blog.csdn.net/Gavinmiaoc/article/details/89876752https://blog.csdn.net/Murdock_C/article/details/84886471

HRnet

论文:https://arxiv.org/abs/1904.04514
github:https://github.com/leoxiaobin/deep-high-resolution-net.pytorch
论文解读:

HigherHRNet

论文:https://arxiv.org/abs/1908.10357
github:
论文解读:

3D

DensePose

论文:https://arxiv.org/abs/1802.00434
github:https://github.com/facebookresearch/Densepose
配置:https://blog.csdn.net/FatMigo/article/details/88246815
论文解读:https://blog.csdn.net/Julia_deeplearning/article/details/83011798

VideoPose3D

论文:https://arxiv.org/abs/1811.11742
github:https://github.com/facebookresearch/VideoPose3Dhttps://github.com/tobiascz/VideoPose3D
论文解读:https://blog.csdn.net/chizhaoyi1901/article/details/89136182

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章