LSTM Pose Machines论文总结

概述

本文是在CPM的基础上做了一些改进,克服了CPM用于视频pose estimation时计算代价昂贵及帧之间缺乏几何连续性的缺点。阅读论文前需要先理解CPM。

原理与结构

  1. CPM
    在这里插入图片描述
    式(1)为CPM:
    s为结构的级数,共S级;
    X为原始图像,被送到每一级,其尺寸为 W × H × C W\times H\times C W×H×C,即宽、高、通道数;
    F s ( ⋅ ) F_{s}(\cdot ) Fs()为s级的特征提取网络,是ConvNet;
    g s ( ⋅ ) g_{s}(\cdot ) gs()为s级的预测网络,也是ConvNet;
    b s b_{s} bs表示s级预测出的结果–belief map,其尺寸为 W × H × ( P + 1 ) W\times H\times (P+1) W×H×(P+1),P表示关节点总数(+1表示背景),所以 b s b_{s} bs能够表示出第s级每个关节点分布在每个坐标点的置信值;
    ⨁ \bigoplus 符号表示concatenate操作,就是直接堆叠起来。
    总结起来,这个公式的意思就是:在第一级,将图像输入预测网络,预测出第一级的belief map,之后的所有级,将原图像经过特征提取网络先提取特征,再将结果和前一级的belief map进行concatenate操作,再输入预测网络,得到每一级的belief map。

  2. RPM(CPM+RNN→Recurrent Pose Machine)
    在这里插入图片描述
    要应用到视频,一帧一帧处理,自然用到RNN。
    t t t表示帧数,也表示级数, T T T为总级数,故: 1 ≤ t ≤ T 1\leq t\leq T 1tT;
    X t X_{t} Xt表示视频中的第t帧图像,即连续帧输入连续级;
    b t b_{t} bt表示第t帧图像的belief map;
    g 0 g_{0} g0相当与第一级的特征提取器和预测器的综合;
    g ( ⋅ ) g( \cdot) g()表示第二级及以后级的预测器,它们共享结构和权值;
    F ( ⋅ ) F(\cdot) F()特征提取函数也是共享的,节约了不少参数。

  3. LSTM PM(LSTM+CPM→LSTM Pose Machine)
    在这里插入图片描述
    L ~ ( ⋅ ) \widetilde{L}(\cdot) L ()表示LSTM模块,起到遗忘过去接收当前信息的作用,同时也起到了特征提取的作用,所以此处的 g ( ⋅ ) g( \cdot) g()就表示所有级的预测器,它们共享参数;
    F ′ ( ⋅ ) F^{'}(\cdot) F()表示第一级的特征提取器,比起其他级要深一些,也可以表示为: F 0 ( X t ) ⨁ F ( X t ) F_{0}(X_{t})\bigoplus F(X_{t}) F0(Xt)F(Xt),所以其实就是在其他级的特征提取器网络之前再放一个Conv网络。

  4. LSTM PM的结构
    在这里插入图片描述
    ConvNet1即 F 0 F_{0} F0,ConvNet2即 F F F,frame经特征提取网络后与上级的belief map(即灰色的方块)及Gaussian map concatenate在一起,经预测网络得到本级belief map。
    此处的LSTM为卷积LSTM:公式(4)
    g t = φ ( W x g ∗ X t + W h g ∗ h t − 1 + ϵ g ) g_{t}=\varphi (W_{xg}*X_{t}+W_{hg}*h_{t-1}+\epsilon _{g}) gt=φ(WxgXt+Whght1+ϵg),
    i t = σ ( W x i ∗ X t + W h i ∗ h t − 1 + ϵ i ) i_{t}=\sigma (W_{xi}*X_{t}+W_{hi}*h_{t-1}+\epsilon _{i}) it=σ(WxiXt+Whiht1+ϵi),
    f t = σ ( W x f ∗ X t + W h f ∗ h t − 1 + ϵ f ) f_{t}=\sigma (W_{xf}*X_{t}+W_{hf}*h_{t-1}+\epsilon _{f}) ft=σ(WxfXt+Whfht1+ϵf),
    o t = σ ( W x o ∗ X t + W h o ∗ h t − 1 + ϵ o ) o_{t}=\sigma (W_{xo}*X_{t}+W_{ho}*h_{t-1}+\epsilon _{o}) ot=σ(WxoXt+Whoht1+ϵo),
    C t = f t ⨀ C t − 1 + i t ⨀ g t C_{t}=f_{t}\bigodot C_{t-1}+i_{t}\bigodot g_{t} Ct=ftCt1+itgt,
    h t = o t ⨀ φ ( C t ) h_{t}=o_{t}\bigodot \varphi (C_{t}) ht=otφ(Ct)
    " ∗ * "操作为卷积,卷积核为 3 × 3 3\times 3 3×3
    + + +”为对应元素相加;
    此处的输入 X t X_{t} Xt为上一级的输出belief map;
    对于第一级: C 1 = i 1 ⨀ g t C_{1}=i_{1}\bigodot g_{t} C1=i1gt

  5. loss function
    首先在每个关节的正确位置放置高斯峰,从而生成真值heat maps(ground truth belief map);
    计算每一级每一个关节预测belief map与groud truth belief map的L2距离:
    F = ∑ t = 1 T ∑ p = 1 P ∥ b t ( p ) − g . t . t ( p ) ∥ F=\sum_{t=1}^{T}\sum_{p=1}^{P}\left \| b_{t}(p)-g.t._{t}(p) \right \| F=t=1Tp=1Pbt(p)g.t.t(p)

其他细节

  1. 数据增强
    在每个patch上进行缩放、旋转、镜像、裁剪
  2. 参数设置
    基于CPM的预训练模型,选用它前两级的参数;
    用此文中提出的结构,但每级都输入同样的图片,设置级数为6,参数设置为CPM模型中选出的参数;
    在LSP和MPII数据集上进行fine-tune。
    还有一些其他训练参数的设置,如级数、学习率等等。
  3. 测试
    测试时也将数据进行缩放,缩放的范围必须在训练时缩放的参数范围之内;
    计算结果时将这几种尺度的结果求和或平均,得出预测结果。
    判断是否预测正确的标准是PCK方法。
    测试需要bounding box,如果想测试自己的数据的话需要先标注好bbox(与CPM不同)。
    论文给出的代码只是测单人的,如果想要测多人视频的话,标好并组织好bbox数据再加个循环,比用CPM测多人视频时使用高斯响应测人的位置快得多。
  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值