Adversarial PoseNet: A Structure-aware Convolutional Network for Human Pose Estimation

1、Introduction

作者设计了一个网络,运用GAN来预测遮挡的人体部位

G:生成pose热度图和occlusion热度图

P:pose discriminator 和 confidence discriminator{ P, C }

2、网络结构

Adversarial PoseNet: A Structure-aware Convolutional Network for Human Pose Estimation_第1张图片

2.1 多任务的生成式网络

利用生成式网络生成y,z,y是pose heatmap,z是occlusion heatmap。作者的为了增大感受野运用了encoder-decoder模型,为了获得local信息,采用了skip的链接方式,具体网络可以参考沙漏模型Adversarial PoseNet: A Structure-aware Convolutional Network for Human Pose Estimation_第2张图片

本文的图也说明了这个结构


stacked起来的网络可以用


来表示,第一阶段是图片作为输入,往后的每一个阶段都是输入和上一阶段的预测一起作为输入的

2.2 Pose 判别器和confidence判别器

2.2.1 P

从真的pose里面区别出赝品。当有一些部位被遮挡的时候,其实网络是很难判断出来的,但是人们可以使用先验知识来判断它在哪里,但是网络不可以,所以设计判别器达到这个目的。判别器设计类似生成器,也是沙漏的结构。

P网络的输入是整张图片,y,z三部分一起作为输入,只有这样才能做出更好的推理,来判断一个姿势是否合理,作者使用的是

Adversarial PoseNet: A Structure-aware Convolutional Network for Human Pose Estimation_第3张图片

训练的时候怎样利用P网络将几何信息嵌入进去呢?

对于preal的标签是一个16x1的单元,标签就是16个部位是不是有标签,产生的pfake也是16x1的单元,如果产生的部位的location和gt的location相距很远,设置为0,否则设置为1,和下面的cfake的区别在于pfake算的是部位位置之间的偏差,着重于判断部位是否合理,cfake侧重于置信度的偏差,侧重于将遮挡的部位预测出来

注:real fake网络分开训练,标签不同,输入也不同,real的输入是gt,fake的输入是G(x),也即生成器的输出

2.2.2 C

实际预测的往往不是高斯分布,作者设计了一个辅助判别器C,用来将低的置信度预测和高的分的置信度预测分开,此处仅仅采用y,z作为网络的输入


如果部位存在遮挡,置信度图分数会的很低,如果G产生了低的置信度图,C会将它设置为赝品,那么将会逼迫G在此处产生更高的置信度图,从而实现对遮挡部分的准确定位,在训练C的时候,输入是y,z,其中y,z是gt map, creal标签是一个16x1的数组,来表示是否是真的部位,cfake也是16x1,如果预测出来的置信度图和gt的置信度图差别小设置为1,否则设置为0

最后加上生成器损失



2.3训练流程

Adversarial PoseNet: A Structure-aware Convolutional Network for Human Pose Estimation_第4张图片

2.4 实验

平台torch7,预处理方式采用hourglass的方式。

你可能感兴趣的:(Adversarial PoseNet: A Structure-aware Convolutional Network for Human Pose Estimation)