高分辨率姿态估计与追踪 HRNet: Deep High-Resolution Representation Learning for Human Pose Estimation

idea很不错,直接保持高分辨率直到最终,而不是缩小后再想办法恢复。在姿态估计、语义分割这样的任务里,分辨率非常关键。

HRNet: Deep High-Resolution Representation Learning for Human Pose Estimation

Ke Sun
University of Science and Technology of China, Microsoft Research Asia, 2018


1. Introduction

2D人体姿态估计的目标是定位人体解剖学上的关键点(如肘部、腕部等)或部位。其应用广泛:人体动作识别,人机交互,动画制作等。本论文关注单人姿态估计。

近期的发展,深度学习获得了SOTA的性能。大部分现有方法都是把输入通过顺序相连的分辨率从高到低,再提升分辨率的网络。如Hourglass[40]通过一个对称的从低到高的网络恢复高分辨率。SimpleBaseline[70](我的上一篇博客)使用一些转置卷积(逆卷积Deconvolution)来生成高分辨率的表达。此外,膨胀(dilated)卷积也可用于此目的(如VGG或ResNet)。

图1

我们提出了一种新的架构,High-Resolution Net(HRNet),它能在整个处理过程中保持高分辨率表达。在第一阶段,我们从一个高分辨率的子网开始,随着每个阶段,逐渐附加分辨率从高到低的子网络,并将各个子网并行连接起来。我们通过在整个过程中在并行的多分辨率子网间反复交互信息,实现了反复的多尺度的融合。我们通过高分辨率的输出估计关键点。网络结构见图1.

我们的方法与现存广泛应用的用于姿态估计的网络[40, 27, 77, 72]相比,有两个优势:

  1. 我们的方法把从高到低分辨率的子网络并联,而不是像大多方法一样串联。因此我们能保留高分辨率信息而不需要再从低分辨率向高分辨率恢复,从而预测出的热图在空间上可能更精确。
  2. 许多现有的融合方案直接聚合低级和高级表达。而我们进行了反复的多尺度融合以在同样深度和等级的低分辨率表达的帮助下加速高分辨率表达,反过来也是一样,从而让高分辨率的表达也足以预测姿态。

我们在COCO keypoint数据集和MPII人体姿态数据集上,以及视频姿态追踪的PoseTrack数据集上,验证了HRNet的优秀性能。

大部分传统单人姿态估计方案都采用了概率图(probabilistic graphical)模型或绘画结构(pictorially structure)模型[79, 50],近期受益于深度学习,能更好的建模一元的(unary)和pair-wise energies[9, 65, 45],或模仿(imitating)推理过程[13]。到了今天,DCNN已占据大部分解决方案[20, 35, 62, 42, 43, 48, 58, 16]。目前有两种主流方法:关键点的坐标回归[66, 7]和估计关键点的热图[13, 14, 78],选取最高热值的位置作为关键点。

大部分用于姿态估计的卷积网络都有包含一个类似分类网络的主干stem网,降低分辨率,一个产生与输入分辨率相同的表达的主体,一个regressor估计热图。主体基本采用了高到低和低到高的架构,可能会通过多尺度融合进行增广,以及中间的监督。

High-to-low and low-to-high. 高到低处理的目标是生成低分辨率但抽象的表达,低到高处理的目标是生成高分辨率的表达。两个流程都可能重复多次以提升性能。

典型的网络设计模式包括:

  1. 对称的高到低和低到高过程。Hourglass及其后续[40, 14, 77, 31]设计了与高到低对称的低到高流程。
  2. 较重的高到低和较轻的低到高,高到低流程基于ImageNet分类网络(如ResNet),而低到高仅仅是少数bilinear双线性上采样或转置卷积层。
  3. 与dilated卷积组合。[27, 51, 35]中,膨胀卷积用于ResNet或VGG后两阶段来消除空间分辨率的损失,后跟一个轻量的低到高流程来进一步增加分辨率,避免了仅使用膨胀卷积的昂贵计算消耗。图2描述了4种网络结构。

图2

Multi-scale fusion. 最直接的方法是把不同分辨率的图片分别送入不同网络并直接聚合它们的特征图[64]。Hourglass及其改进型把高到低流程中的低维特征通过skip connection与低到高流程中有对应分辨率的高维特征结合。在级联金字塔网络[11]中,一个globalnet逐渐把高到低流程中的低到高维的特征合并到低到高流程中,接下来一个refinet合并被卷积过的特征。我们的方法重复进行多尺度融合,部分启示来自于deep fusion及其后续[67, 73, 59, 80, 82]。

Intermediate supervision. 中间监督或深度监督,最初开发用于图片分类,也用于帮助深度网络训练和提升热图估计质量,如[69, 40, 64, 3, 11]。Hourglass[40]和convolutional pose machine方法[69],处理了中间热图作为后续子网的输入或一部分输入。

Our approach. 我们的网络并行地连接了高到低的子网。它为了空间上精确的热图估计,在整个过程中保留了高分辨率的表达。通过反复的对从高到低的子网络产生的表达融合,生成了可靠的高分辨率的表达。我们的方式与许多现有工作不同,它们需要单独的低到高上采样流程并聚合高低级的表达。我们的方法不需要中间热图监督,有更高的关键点检测准确率,更高效的计算复杂度和参数。

有不少相关的用于分类和分割的多尺度网络[5, 8, 74, 81, 30, 76, 55, 56, 24, 83, 55, 52, 18]。我们的工作的一部分启发来自[56, 24, 83, 55],而他们的区别如此之大,以至于无法应用于我们的问题。由于每个子网络缺少合适的设计(深度,BN)和多尺度融合,卷积神经结构fabrics[56]和互联的interlinked CNN[83]难以生成高质量的分割结果。GridNetwork[18]由多个共享权重的U-Net组成,有两个独立的跨越多个分辨率的表达的融合过程:在第一阶段,信息仅从高分辨率向低分辨率传输,第二阶段则相反,从而缺少竞争力。Multi-scale densenet[24]的目标不是,也不能生产可靠的高分辨率表达。

3. Approach

人体姿态估计,即关键点检测,目标是从尺寸为$W \times H \times 3$的图片I中检测出K个关键点或部位的坐标。SOTA的方法将问题转换为预测K张尺寸为$W ‘ \times H’$的热图$\{ \mathbf H_1, \mathbf H_2, … , \mathbf H_K \}$,每个热图$ \mathbf H_k$只是了第k个关键点的位置信心。

我们按照被广泛采用的流程[40, 72, 11],使用卷积网络预测人体关键点。包含一个有两个带步长的卷积降低分辨率的主干stem,一个主体main body,输出与输入分辨率相等的特征图,一个regressor输出关键点的热图。我们主要关注主体的设计,并介绍如图1的HRNet。

Sequential multi-resolution subnetworks. 现有用于姿态估计的网络通过串行连接。

设$\mathcal {N_{sr}}$为第s阶段的子网,r为分辨率坐标(其分辨率为第一个子网的$\frac {1} {2^{r-1}}$)。有着S步(如4)的从高到低的网络可以记做:

Parallel multi-resolution subnetworks. 我们从第一步的一个高分辨率子网开始,逐渐增加从高到低的分辨率子网,形成新的阶段,并连接这些并行的多分辨率子网。因此,后续阶段的并行子网分辨率由上一阶段和额外的更低分辨率的一个所组成。

一个包含了4个并行子网的样例结构如下
Alt text

Repeated multi-scale fusion. 我们提出了并行子网络中的exchange units, 使得每个子网络能反复从其他并行子网络中收到信息。这里是一个信息交换方案的样例。我们把第3阶段分为多个交换块exchange blocks(如,3个),每个block由3个并行的卷积单元和一个跨并行单元的exchange unit,如下:

Alt text

其中$\mathcal {C^b_{sr}}$代表第s阶段的第b块的第r个分辨率的卷积单元,$\varepsilon ^b_s$是对应的exchange unit。

图3

我们在图3中说明了exchange unit,下面是公式。出于方便考虑,我们移除了上下标s和b。输入为s个response maps:$\{ \mathbf X_1, \mathbf X_2, …, \mathbf X_s \}$。输出为s个response maps:$\{ \mathbf Y_1, \mathbf Y_2, …, \mathbf Y_s \}$,其分辨率与厚度(width)与输入一致。每个输出都是对输入map的聚集,$\mathbf Y_k = \sum^s_{i=1} a(\mathbf X_i, k)$。跨越stage的exchange unit有一个额外的输出map $\mathbf Y_{s+1}:\mathbf Y_{s+1}=a(\mathbf Y_s, s+1)$.

函数$a(\mathbf X_i, k)$由把$\mathbf X_i$从分辨率i上或下采样到k。我们使用了$3\times3$卷积进行下采样。一个步长为2的$3\times3$卷积进行2x的下采样,两个连续的步长为2的$3\times3$卷积进行4x的下采样。上采样我们采用nearest neighbor,后跟一个$1\times1$卷积对齐通道数。如果i=k,则a是一致连接。

Heatmap estimation. 仅使用了最后一个exchange unit的高分辨率表达,就获得了非常好的结果。使用均方差作为预测和gt的loss。gt热图是通过应用标准差为1像素的,中心为关键点坐标的2D高斯分布而得到的(本人另一篇博文介绍了2D高斯分布的计算)。

Network instantiation. 我们按照ResNet的设计原则,将深度分布到每个stage,通道数分布到每个分辨率。

HRNet包含4个有并行子网的stage,各子网分辨率逐渐减半,通道数逐渐加倍。第一个stage包含4个残差unit,类似ResNet-50,由一个width为64的bottleneck,后跟一个$3\times3$卷积将width降低为C。第2、3、4个stage分别包含1、4、3个exchange block。一个exchange block包含4个残差unit,每个unit在每个分辨率包含两个$3\times3$的卷积,和一个跨越所有分辨率的exchange unit。总的来说共8个exchange unit。