【single stage 多人姿态估计】Associative Embedding: End-to-End Learning for Joint Detection and Grouping

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/github_36923418/article/details/85051750

出处:NIPS2017

核心内容:Single Stage 多人姿态估计

文章摘要:这篇文章,提出了一个与之前所有方法都不一样的新的姿态估计方法,也可以用于instance 分割,目标检测等。这个方法是自下而上的,在此之前比较有名的自下而上的姿态估计领域的文章,是“OpenPose”-CMU。

核心思想:先检测全图所有的关键点,如果是COCO数据集那么Heatmaps就有17+1个,如果是MPII那么又16+1个Heatmaps。本文在这些预测heatmaps额外还有个map 我们成为tag map,相当于是原图的每一个pixel对应到最后输出的 result maps,首先根据pixel的位置查询heatmaps输出哪一类,然后再根据tag map上的标志,得到属于哪一个人。

文章主要方法

1、模型结构

         模型结构非常简单,几次基础卷积和降采样后,连接着4个hourgalss模型。蓝色和绿色的圈表示 深度监督 loss。

2、网络预测出heatmaps同时给出tag maps,作者尝试过tag的维度,从结果上来说,tag只需要1维就够了,更高的维度并没有带来更有效的提升。

Stacked Hourglass Architecture

     作者没有直接使用原始的hourglass,主要对hourglass的内部结构中不同层的channel数量做了改变

                   

3、Multiperson Pose Estimation

       首先,heatmap一如既往采用2D高斯,多人,就变成多高斯,这部分loss一如既往采用欧式loss,MSELoss。tag这部分将每个检测到的合格的joint,也就是heatmap上对应pixel的值最高的那个类别joint,进行分组成group,每个group代表一个人。这里的tag没有具体的标签值,而且再计算group loss的时候,tag采用的是groundtruth所对应的pixel位置的tag。

      group loss最基本的思想就是,同一个group 内的所有tag 要一样,不同group 之间的tag要不同。但是,从现实上来说,一样是不会的,只能是相近,相近的概念通过欧式距离来实现。tag map也相当于是一个embedding。;

                                    

      上面这个公式用于生成,每个人(group)的tag标签,n表示第n个人,k表示第k个关节,x表示真是关节所在pixel location,hk表示“预测到的tag值”。通过这种方式,我们得到了每个人的tag标签,无所谓具体的值是多少,只要统一每一个关键点的tag值就行了。

                        

      因此,也就得到了这个loss,一个典型的基于欧式距离的loss。

    上图中,右侧可以清晰的看到,每一个人的不同关键点的tag值被规范到了一定范围内。从头和躯干,一个一个的连接,每个人的关键点,利用非极大值抑制。最终得到每一个人。

    这种方式,也可以很好的引用到instance 的分割中。

猜你喜欢

转载自blog.csdn.net/github_36923418/article/details/85051750