论文阅读 Human Pose Estimation using Deep Consensus Voting

Introduction

文章的主要目的是为了利用人体全部的你的信息来获得reliable的结果

概率图中的二元项在之前都是image independent的,而本文的二元项是image depenent的,也即依赖于输入的图像本身信息,而不是之前整体数据的统计信息

方法是:
在每一张图像中的每一个位置的地方预测每一个keypoint点和该位置之间的偏差,作者这样做的目的是利用多个投票者的投票结果来决定最终的结果。通过投票者之间的一致性,来获得二元项。其中这里所说的投票者也即voter就是每一个像素点位置。如果判定第一个投票者认为第i个关节点在location_i的位置相应最高,其他的投票者也认为在location_i的位置最高,那么就认为第i个关节点在location_i的位置是响应最高的。如果只是部分投票者认为第i个关节点在location_i的位置响应比较高,最后的第i个关节点在location_i的地方不一定响应是最高的哈!同样对于二元项,也只有大部分投票者认为两个关节点确实在location_i和location_y的位置响应是最高的,才认为i,j关键点在location_i和location_y的位置处。这样的话二元项来自于本张图像的voter的投票结果,也即image-dependent

Keypoint Voting

给定一个voter y,将会计算每一个关节点相对于这个y的偏差,也即
K1y,K2y,...,KMy
但是如果直接进行上面的监督的话,作者认为很难收敛的,那么作者怎么做的呢?
作者在每一个投票者y的周围划分了log-polar binning,一共48个,加上一个中心点和一个背景点,一共50个类。
论文阅读 Human Pose Estimation using Deep Consensus Voting
在中心点处预测每一个关键点在中心点的什么方位和具体位置,关节点落入到哪一个格子里,就认为关节点在那个格子里面。因为要训练背景类,就需要没有人的图片,作者从PASCAL里面选择图片来进行相关的训练。

Net Architecture

论文阅读 Human Pose Estimation using Deep Consensus Voting
作者用的VGG网络,那么怎么来设计的呢?
label的大小为102x102x50x30,输入的图像大小为504x504x3,为什么label的大小是102x102x50x30的呢?
以一个关节点为例,第一个关机点在102x102的每一个位置都要预测该关节点落在了该中心点的那个方位,也即50个类中的哪一个,一个位置预测一个50维的向量,这个50的向量便会和gt进行softmax操作计算损失的,每一个关键点一定是落在了特定的某个格子里,也即50个中的一个,背景类也是50中的一个。这样就可以理解作者设计网络的缘由了,一个很类似于检测中的anchor的设计思路,无非anchor是每个位置预测9个anchor罢了,这里是每一个位置预测一个向量,表明对应的关节点落在了哪个方位里面。一个关机点就是102x102x50x1,30个就是102x102x50x30。因为每一个扇形对应的面积不一样,在计算softmax损失的时候,也要按照权重来进行相关的计算,不同的方位的权重是不同的。

The Voting Scheme

如何将预测出来的102x102x50x30的结果映射到map上呢?作者用一个65x65x50的反卷积核将102x102x50x30的结果映射到map上,具体公式如下
论文阅读 Human Pose Estimation using Deep Consensus Voting

映射之后,map图如图所示,有图代表的是反卷积核的表示
论文阅读 Human Pose Estimation using Deep Consensus Voting

论文阅读 Human Pose Estimation using Deep Consensus Voting

Consensus Voting

接下来要进行Consensus Voting了,也即pair wise的关系的建立了。一般的用来进行进一步修饰结果的方法是最小化一个能量函数的
论文阅读 Human Pose Estimation using Deep Consensus Voting

那这里的二元对是怎么表示的呢?
论文阅读 Human Pose Estimation using Deep Consensus Voting
和博客一开始的描述是一致的,只有当大部分投票者都认为Xixi,Yiyi,这样才能确定好这两个关节点的位置的。最后的结果依赖于所有的投票者,也就依赖于图像了。

论文阅读 Human Pose Estimation using Deep Consensus Voting

二元投票的结果如上图。
ϕi(xi)=log(P(Ki=xi)), ϕ(i,j)(xi,xj)=log(P(Ki=xi),P(Kj=xj)),二元项不仅仅包含这个投票结果,他是这个投票结果和常用的统计二元项的加权求和的结果。对于传统的从图像中统计出来的二元项是有参数可学习的,学习用的是TRW-S算法
其中二元项的超参是在validation集上用TRW-S算法调节的。

Pose Prediction

作者做了两个trick

  1. 为了让人工合成的点表明是人工合成的点,也即两个原来标注的关节点的中心点,作者做了一个约束。
    论文阅读 Human Pose Estimation using Deep Consensus Voting

  2. 预测的时候从简单的关节点开始预测

实验