【Stacked Hourglass】《Stacked Hourglass Networks for Human Pose Estimation》

在这里插入图片描述
ECCV-2016

【Knee Landmark】《KNEEL:Knee Anatomical Landmark Localization Using Hourglass Networks》

【CornerNet】《CornerNet: Detecting Objects as Paired Keypoints》

之前看的这两篇论文中有涉及到 Hourglass 网络,今天来一睹芳容!



1 Background and Motivation

在这里插入图片描述
理解图片和视频中的人物的关键步骤在于精确的 pose estimation!而且,理解一个人的姿势和肢体的关节后,对于动作识别(action recognition)、人机交互(human computer interaction)、动画(animation)等更高层次的任务是有帮助的。

一个好的 pose estimation 系统,必须能有效的应对 occlusion 和 severe deformation 问题,能识别出花里胡哨的动作(rare and novel poses),无视 appearance 的变化(例如,lighting 或者 clothing 造成的)!

传统方法是基于 robust image features 和 sophisticated structured prediction 来做的,随着深度学习的爆发,基于 CNN 的 pose estimation 开始在各大 standard benchmarks 上屠榜了!

细节信息对识别 joints 很重要,最终的 pose estimation 则需要对整个身体有一个 coherent understanding(全局信息,例如,person’s orientation,the arrangement of their limbs,the relationships of adjacent joints). To capture information at every scale,作者设计提出了基于 CNN 的 “stacked hourglass" 网络

2 Advantages / Contributions

  • 提出了 Stacked Hourglass Networks 来进行 人体姿态评估
  • 在 FLIC 和 MPII Human Pose 数据集上实现了 SOTA

3 Method

在这里插入图片描述
Stacked Hourglass 网络由 repeated bottom-up, top-down (symmetric topology)沙漏结构配合 intermediate supervision 构成(作者堆叠了 8 个)

反复 bottom-up 和 top-down 可以 reevaluation of initial estimates and features across the whole image.(网络进行了反复的思考,maintain precise local information 的同时,还兼顾了特征的一致性——矛盾的特征会被化解,比如关节连起来后是 anatomic impossibility)

1)每个 hourglass 结构如下
在这里插入图片描述
每次下采样就一分为二,一个继续下采样,一个进行 skip connection(feature fusion)

combining features across different resolutions 达到 capture information across scales 的目的,上采样采用的是最近邻插值,

网络的输入是 256×256,步长为 2 的 7×7 conv 配合 maxpooling 会把分辨率降到64x64,因此 hourglass network 的最大分辨率是 64x64,网络最后的输出也是 64x64

2)每个 hourglass 结构中的 box 结构如下边左图所示

在这里插入图片描述
3)预测的热力图

堆叠完 Hourglass 后,配合 1×1 conv 输出一组热力图,热力图表示的是每个像素存在关节点的概率大小,如下图所示

在这里插入图片描述
4)Stacked Hourglass with Intermediate Supervision

在这里插入图片描述

如 fig.4 右边所示,类似于 GoogleNet 的 auxiliary classifiers 结构,参考(【Inception-v1】《Going Deeper with Convolutions》

Hourglass Network 与 Hourglass Network 之间新增的结构全部由 1×1 conv 构成,蓝色的部分是预测的热力图,配合 GT 可以计算 Loss,每个 Hourglass 网络都贡献一部分 Loss,热力图后,1×1 conv 会恢复成原来的 channels,element-wise addition 后,一切又归于原点,Hourglass again

在这里插入图片描述

4 Experiments

原始图片和 flipped version 生成的 heatmaps 平均一下,产生最终的 prediction

Loss 计算如下:

A Mean Squared Error (MSE) loss is applied comparing the predicted heatmap(会 resize 到原图大小) to a ground-truth heatmap consisting of a 2D gaussian (with standard deviation of 1 px) centered on the joint location.

我们可以模拟下 GT 的热力图,为了可视化方便,我们把二维高斯分布的方差设置为了 3,均值设置在了图片的中心位置

import numpy as np
import matplotlib.pyplot as plt 

mu = 125 # 均值
sigma = 5 # 方差

points = np.arange(0,250,1)
x,y = np.meshgrid(points,points)
z = 1/(2*np.pi*sigma**2)*np.e**(-((x-mu)**2+(y-mu)**2)/(2*sigma**2)) # 二维高斯分布

plt.imshow(z,cmap=plt.cm.jet) # 设置为热力图
plt.show()

在这里插入图片描述

4.1 Datasets

  • FLIC:5003 images (3987 training, 1016 testing)
    在这里插入图片描述
  • MPII Human Pose:25k images,40k annotated samples (28k training, 11k testing),由于 testing 没有开放标签,所以用的是 train sets 的子集训练,3000 个 samples 作为测试
    在这里插入图片描述

注意到有些图片中的人物并不是所有关键点都有(truncated or severely occluded),此时相应 joints 对应的 GT 为 0.

4.2 Evaluation

用的是标准的 Percentage of Correct Keypoints (PCK) 评价指标(reports the percentage of detections that fall within a normalized distance of the ground truth.)

FLIC 数据集由 torso size 来归一化,MPII 用的是 head size 归一化

1)在 FLIC 数据集上的结果
在这里插入图片描述
Fig. 6. PCK comparison on FLIC

在这里插入图片描述
归一化后的距离小于 0.2 就 ok,相当于躯干长度的 1/5

2)在 MPII 数据集上的结果
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.3 Ablation Experiments

下图探讨了不同的 stacked 方式,不同的 Intermediate Supervision 的结果
在这里插入图片描述
可以看出,多次堆叠,每次堆叠结束后,配合 Intermediate Supervision 效果最好!

在这里插入图片描述
图 9 左边展示的是第二个 Hourglass 的 Intermediate Supervision 结果和最后一个 Hourglass 的 Intermediate Supervision 结果,可以看出网络随着 Hourglass 不断堆叠,还是在进行不断的自我反思与调整的,哈哈哈哈

中间的例子厉害了,挡住了也能预测出来,最后一个例子,对于左右的划分还是有点模糊,拿捏的不死
在这里插入图片描述
图 9 右边是 Intermediate Supervision 数量不同时的精度差异!可以注意到,8-stack 的网络中 half 时的输出(4th-stack)比 2-stack 网络中 half 时的输出(first-stack)要好,离最终的结果差距更小!
在这里插入图片描述

4.4 Further Analysis

4.4.1 Multiple People

作者的方法只是用来预测一个人的,所以,当照片中有很多人的时候,网络应该标记哪个人显得很重要!

MPII 数据集中,作者通过 scale 和裁剪,使得需要标记的人移动到图片的正中心(For MPII, it is standard to utilize the scale and center annotations provided with all images. For each sample, these values are used to crop the image around the target person.)
在这里插入图片描述
The center annotations for the two dancers are off by just 26 pixels in a 720x1280 image.(我先还纳闷了,数据集中人数大于图片数,而作者设计的网路只能预测一个人,原来作者通过中心化处理了,来聚焦要关注的人)

对于 FLIC 数据集,作者让 torsobox annotation 位于 x 轴的正中间(This is done in FLIC by centering along the x-axis according to the torsobox annotation)

4.4.2 Occlusion

在 MPII 数据集中,遮挡情况分为两种,一种虽然 joints 看不见,但根据上下文可以推理出来在哪,这种情况是有对应的 GT的,还有一种是 joints 既看不见,也没有上下文可以推断出来(比如只有上半身,所以没有腿相关的信息)!这种情况下,是没有 GT 的!
在这里插入图片描述
作者把看得见的和看不见的点分开了,和 baseline(合在一起的结果)一起比较

有时候网络预测出来的遮挡结果和 GT 标注的结果都比较合理,这时候由于图片被遮挡,如法判断出谁更合理的

右边的两个 P-R 曲线,是通过阈值筛选,来剔除掉一些不太合理的预测点(遮挡点)

5 Conclusion(own)

  • Toshev, A., Szegedy, C.: Deeppose: Human pose estimation via deep neural networks. In: Computer Vision and Pattern Recognition (CVPR), 2014 IEEE Con-
    ference on, IEEE (2014) 1653-1660. 这个是用深度学习方法来做人体姿态检测的鼻祖
  • bottom-up processing (from high resolutions to low resolutions),top-down processing(from low resolutions to high resolutions)
  • 反复 bottom-up 和 top-down 可以 reevaluation of initial estimates and features across the whole image.
  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值