《PifPaf: Composite Fields for Human Pose Estimation》
代码:https://github.com/vita-epfl/openpifpaf

摘要

这篇文章要解决的问题是2D人体关键点检测,提出的解决方案是一个自底向上的方法,和当前火热的openpose是一个同类的方法,先回归所有关键点,最后采用group的方式来进行对关键点划分。采用了一个Part Intensity Field (PIF) 去定位关键点和一个Part Association Field (PAF)来将同一个人的关节点连接在一起。
这个方法在低像素和拥挤、杂乱和闭塞的场景超过了之前的一些方法,主要是因为:

  • 新的组合区域PAF编码细粒度信息
  • 选择Laplace loss,这个损失包含不确定性概念 。

前言

作者这里是以自动驾驶的背景来说实际场景下的挑战,自动驾驶的时候提取关节点可以用来判定行人是否有趋势过马路。如下图所示,作者要解决的挑战是:(1)宽视角,对人的分辨率有限(高度30-90像素);(2)高密度人群,行人相互遮挡
图片说明

相关工作

在CNN之前,传统的姿态估计方法大多是基于图形结构和可变形部件模型。基于深度学习的方法起始于DeepPose。多人姿态估计的方法大多可以归为两类:自顶向下、自底向上。
自顶向下: PoseNet, RMPE, CFN, Mask R-CNN and more recently CPN and MSRA ,这些方法的优势是优秀的人体检测器和大量的标注的人体包围框。
自底向上: DeepCut, Part Affinity Fields, Associative Embedding and PersonLab , MultiPoseNet

提出的方法

本文的需要面对的是一些密集的图片的人体姿态估计,所要面对的挑战主要是低像素和部分的被遮挡的行人。
图片说明
上面这个图就是这篇文章所提出的整个模型架构。基于一个共享权重的ResNet,接上两个head网络:一个预测信心图,准确的定位和关节的个数,叫做PIF;另外一个预测关节之间的联系,叫做PAF。
说明一下这个模型,输入是一张3通道的(HxW)的图片。作者把产生信心图和关系图的过程叫做encoder,整个的下采样倍数为32倍,PAF的输出通道个数为19x7,而PIF的输出通道个数为17x5,作者把后处理的过程叫做decoder,它的任务就是根据encoder的输出得到每一个人的关节点坐标。

Part Intensity Fields

PIF是一个复合的结构:

  • 信心的一个标量
  • 一个向量,指向特定的最近关节点
  • 又一个标量,表示这个关节的大小
    公式上来说,对于每一个位置,PIF会预测出一个信心值,一个带有传播量的向量,还有一个比例值,所以可以表示为
    图片说明
    上面这张图说明了PIF所做的事情,(a)图表示粗糙的信心图,而(b)图表示向量场,同时引入信心,向量,比例,可以获得高像素的信心图(c)。
    产生这个最终的结果信心图有如下过程,通过一个非归一化高斯核的卷积N,它的宽度是,作用在回归的信心图上面,同时根据信心值加入权值。如下所示:
    图片说明

    Part Association Fields

    因为在拥挤场景,人与人之前存在着部分的遮挡,自顶向下的方法是通过检测器得到单人的部分进行预测,所以会切割掉被遮挡的部分,但是在自底向上的方法中是不存在这个问题的。
    为了能够找到每个人关节之间的联系,作者提出了Part Association Fields。
    PAF的组成:
  • 一个信心值
  • 两个向量指向要连接的两个关节点,同时这个两个向量还有两个宽度值b
    表示为:
    可视化左肩膀到左臀部的结果如下图所示,
    图片说明
    (a)是原始简单的关系值,(b)是引入了向量得到的关系图
    一共有19个连接,在特定特征图位置构造PAF组件的算法包括两个步骤:首先,找到这两种类型中最近的关节,它决定了一个向量分量;然后,真实真值姿态决定了表示关联的其他向量分量来表示联系。

    Adaptive Regression Loss

    因为图上的人存在着大小的差异,所以需要针对于loss函数进行特别的设定。作者采用了L1 loss来监督学习这个回归的输出,同时引入了一个比例值来平衡人体尺度大小的影响。总共应用了两个loss函数:the SmoothL1 or Laplace loss 。
    SmoothL1 :主要是设定半径值r,,这里代表人体包围框的面积,表示关节点的大小;
    Laplace loss : ,这个只用来训练所有的向量组成部分,和无关。

    Greedy Decoding

    快速贪心解码:
  1. 选取PIF中的最大值,作为seed
  2. 从根据这个seed开始连接其他关节点
    关节之间的关系值采用如下的公式计算:
    图片说明

    实验结果

    量化结果:
    图片说明
    可视化结果:
    图片说明