HRNet详解

1,078 阅读13分钟

HRNet:Deep High-Resolution Representation Learning for Human Pose Estimation[github](CVPR2019)这是一篇state-of-the-art级别的论文19.9.8 update 本文老板的HRNet项目主页,以及已经应用并取得好成绩的应用方向。

Pose estimationSemantic segmentationFace alignmentImage classificationObject detection
githubgithubgithubgithubgithub

本文也可以说是十分硬核的论文,应用在实际任务中效果也是十分给力。分类网络在视觉识别中占据主导地位,从图像级分类到区域级分类(目标检测)和像素级分类(语义分割、人体姿态估计和人脸地标检测)。我由高到低卷积串联而成的分类网络并不是区域级和像素级分类的好选择,因为它只会导致丰富的低分辨率表示或通过上采样过程得到的低分辨率表示。本文提出一种高分辨率网络(HRNet)。HRNet通过并行连接高分辨率到低分辨率卷积来保持高分辨率表示,并通过重复跨并行卷积执行多尺度融合来增强高分辨率表示。在像素级分类、区域级分类和图像级分类中,证明了这些方法的有效性。


(消息来源刷新三项COCO纪录!姿态估计模型HRNet开源了,中科大微软出品 | CVPR

中科大和微软亚洲研究院,发布了新的人体姿态估计模型,刷新了三项COCO纪录,还中选了CVPR 2019。

这个名叫HRNet的神经网络,拥有与众不同的并联结构,可以随时保持高分辨率表征,不只靠从低分辨率表征里,恢复高分辨率表征。如此一来,姿势识别的效果明显提升:

在COCO数据集的关键点检测、姿态估计、多人姿态估计这三项任务里,HRNet都超越了所有前辈。


一、Abstract摘要&Introduction介绍

Abstract

在这篇论文中,我们主要研究人的姿态问题(human pose estimation problem),着重于输出可靠的高分辨率表征(reliable highresolution representations)。现有的大多数方法都是从高分辨率到低分辨率网络(high-to-low resolution network)产生的低分辨率表征中恢复高分辨率表征。相反,我们提出的网络能在整个过程中都保持高分辨率的表征

我们从高分辨率子网络(high-resolution subnetwork)作为第一阶段开始,逐步增加高分辨率到低分辨率的子网,形成更多的阶段,并将多分辨率子网并行连接。我们进行了多次多尺度融合multi-scale fusions,使得每一个高分辨率到低分辨率的表征都从其他并行表示中反复接收信息,从而得到丰富的高分辨率表征。因此,预测的关键点热图可能更准确,在空间上也更精确。通过 COCO keypoint detection 数据集和 MPII Human Pose 数据集这两个基准数据集的pose estimation results,我们证明了网络的有效性。此外,我们还展示了网络在 Pose Track 数据集上的姿态跟踪的优越性。

Introduction

二维人体姿态估计 2D human pose 是计算机视觉中一个基本而又具有挑战性的问题。目标是定位人体的解剖关键点(如肘部、腕部等)或部位。它有很多应用,包括人体动作识别、人机交互、动画(human action recognition, human-computer interaction, animation)等。本文着力于研究single-person pose estimation,这是其他相关问题的基础,如multiperson pose estimation[6,27,33,39,47,57,41,46,17,71],video pose estimation and tracking[49,72]等。(引用的论文见博客最后,许多论文还是值得一读的)

最近的发展表明,深度卷积神经网络已经取得了最先进的性能。大多数现有的方法通过一个网络(通常由高分辨率到低分辨率的子网串联而成)传递输入,然后提高分辨率。例如,Hourglass[40]通过对称的低到高分辨率(symmetric low-to-high process)过程恢复高分辨率。SimpleBaseline[72]采用少量的转置卷积层(transposed convolution layers) 来生成高分辨率的表示。此外,dilated convolutions还被用于放大高分辨率到低分辨率网络(high-to-low resolution network)的后几层27,77

我们提出了一种新的架构,即高分辨率网络(HRNet),它能够在整个过程中维护高分辨率的表示。我们从高分辨率子网作为第一阶段始,逐步增加高分辨率到低分辨率的子网(gradually add high-to-low resolution subnetworks),形成更多的阶段,并将多分辨率子网并行连接。在整个过程中,我们通过在并行的多分辨率子网络上反复交换信息来进行多尺度的重复融合。我们通过网络输出的高分辨率表示来估计关键点。生成的网络如图所示。

与现有的广泛用于姿态估计(pose estimation)的网络[40,27,77,72]相比,我们的网络有两个好处。

  • (i)我们的方法是并行连接高分辨率到低分辨率的子网,而不是像大多数现有解决方案那样串行连接。因此,我们的方法能够保持高分辨率,而不是通过一个低到高的过程恢复分辨率,因此预测的热图可能在空间上更精确。parallel high-to-low resolution subnetworks
  • (ii)大多数现有的融合方案都将低层和高层的表示集合起来。相反,我们使用重复的多尺度融合,利用相同深度和相似级别的低分辨率表示来提高高分辨率表示,反之亦然,从而使得高分辨率表示对于姿态的估计也很充分。因此,我们预测的热图可能更准确。multi-resolution subnetworks (multi-scale fusion)

我们通过实验证明了在两个基准数据集(Benchmark): COCO关键点检测数据集 (keypoint detection) [36]和MPII人体姿态数据集(Human Pose dataset)[2]上优越的关键点检测性能。此外,我们还展示了我们的网络在PoseTrack数据集上视频姿态跟踪的优势[1]

二、相关研究

传统的单人体姿态估计大多采用概率图形模型或图形结构模型[79,50],近年来通过深度学习对一元能量和对态能量unary and pair-wise energies进行更好的建模[9,65,45]或模仿迭代推理过程[13],对该模型进行了改进。

目前,深度卷积神经网络提供了主流的解决方案[20,35,62,42,43,48,58,16]。主要有两种方法:回归关键点位置regressing the position of keypoints[66,7]和估算关键点热图estimating keypoint heatmaps[13,14,78],然后选择热值最高的位置作为关键点。

大多数卷积神经网络估计对于关键点的热图是由一个stem子网网络类似于分类网络,这降低了分辨率,把相同的分辨率作为输入的一个主要原因,后跟一个回归量估算的热图关键点位置估计,然后转变为完整的决议。主体主要采用高到低和低到高分辨率的框架,可能增加多尺度融合multi-scale fusion和深度监督学习 and intermediate (deep) supervision。

High-to-low and low-to-high

high-to-low process的目标是生成低分辨率和高分辨率的表示,low-to-high process的目标是生成高分辨率的表示[4,11,23,72,40,62]。这两个过程可能会重复多次,以提高性能[77,40,14]。

具有代表性的网络设计模式包括:

  1. Symmetric high-to-low and low-to-high processes。Hourglass及其后续论文[40,14,77,31]将low-to-high proces设计为high-to-low process的镜子。
  1. Heavy high-to-low and light low-to-high。high-to-low process是基于ImageNet分类网络,如[11,72]中使用的ResNet,low-to-high process是简单的几个双线性上采样[11]或转置卷积[72]层。
  1. Combination with dilated convolutions。在[27,51,35]中,ResNet或VGGNet在最后两个阶段都采用了扩张性卷积来消除空间分辨率的损失,然后采用由light lowto-high process来进一步提高分辨率,避免了仅使用dilated convolutions的昂贵的计算成本[11,27,51]。图2描述了四种具有代表性的姿态估计网络。

Multi-scale fusion.

最直接的方法是将多分辨率图像分别送入多个网络,并聚合输出响应映射[64]。Hourglass[40]及其扩展[77,31]通过跳过连接,将high-to-low process中的低级别特征逐步组合为low-to-high process中的相同分辨率的高级别特性。在cascaded pyramid network[11]中,globalnet将high-to-low process中的低到高级别特征low-to-high level feature逐步组合到low-to-high process中,refinenet将通过卷积处理的低到高特征进行组合。我们的方法重复多尺度融合,部分灵感来自深度融合及其扩展[67,73,59,80,82]。

Intermediate supervision.

图像分类早期开发的中间监督或深度监督[34,61],也用于帮助深度网络训练和提高热图估计质量,如[69,40,64,3,11]。Hourglass[40]和卷积人体姿态方法[69]将中间热图作为剩余子网络的输入或输入的一部分进行处理。

Our approach

我们的网络并行地连接高到低的子网。它保持了高分辨率的表示,通过整个过程的空间精确热图估计。它通过重复融合高到低子网产生的高分辨率表示来生成可靠的高分辨率表示。我们的方法不同于大多数现有的工作,它们需要一个独立的从低到高的上采样过程,并聚合低级和高级表示。该方法在不使用中间热图监控的情况下,具有较好的关键点检测精度和计算复杂度及参数效率。

有相关的多尺度网络进行分类和分割[5,8,74,81,30,76,55,56,24,83,55,52,18]。我们的工作在一定程度上受到了其中一些问题的启发[56,24,83,55],而且存在明显的差异,使得它们不适用于我们的问题。Convolutional neural fabrics[56]和interlinked CNN[83]由于缺乏对每个子网络(depth, batch)的合理设计和多尺度融合,分割结果的质量不高。grid network[18]是多个权重共享U-Nets组合,由两个多分辨率表示的独立融合过程组成;第一阶段,信息仅从高分辨率发送到低分辨率;在第二阶段,信息只从低分辨率发送到高分辨率,因此竞争力较低。Multi-scale densenets[24]没有目标,无法生成可靠的高分辨率表示

三、Approach

人体姿态估计(Human pose estimation),即关键点检测,旨在检测K个部分关键点的位置(例如,手肘、手腕等)从一个图像的大小W×H×3。stateof-the-art级别的方法是将这个问题转变为估计K热图的大小

,其中每个热图 Hk 表示第k个关键点的位置置信度。

我们遵循广泛适用的pipeline[40, 72, 11]使用卷积网络预测human keypoint,这是由stem组成的两个步长卷积网络降低分辨率,主体输出特性映射具有相同的分辨率作为它的输入特征图,和一个回归量估算的热图关键点位置选择和转换为完整的分辨率。我们主要关注主体的设计,并介绍我们的高分辨率网络(HRNet),如图1所示。

Sequential multi-resolution subnetworks

现有的姿态估计网络是将高分辨率到低分辨率的子网络串联起来,每个子网络形成一个阶段,由一系列卷积组成,相邻子网络之间存在一个下采样层,将分辨率减半。

Parallel multi-resolution subnetworks

我们以高分辨率子网为第一阶段,逐步增加高分辨率到低分辨率的子网,形成新的阶段,并将多分辨率子网并行连接。因此,后一阶段并行子网的分辨率由前一阶段的分辨率和下一阶段的分辨率组成。一个包含4个并行子网的网络结构示例如下:

Repeated multi-scale fusion

我们引入了跨并行子网的交换单元,使每个子网重复接收来自其他并行子网的信息。下面是一个展示信息交换方案的示例。我们将第三阶段划分为若干个交换块,每个块由3个并行卷积单元与1个交换单元跨并行单元进行卷积,得到:

我们将在图3中说明交换单元,并在下文中给出公式。为了便于讨论,我们去掉下标s和上标b。

Heatmap estimation

我们将热图简单地从上一个交换单元输出的高分辨率表示进行回归,这在经验上是很有效的。损失函数定义为均方误差,用于比较预测的热图和groundtruth heatmpas。groundtruth heatmpas是采用二维高斯分布,以每个关键点的grouptruth位置为中心,标准差为1像素生成的。

Network instantiation

根据ResNet的设计规则,我们实例化了用于关键点热图估计的网络,将深度分布到每个阶段,并将通道数分布到每个分辨率。

我们的HRNet包含四个阶段,主体为四个并行的子网,其分辨率逐渐降低到一半,相应的宽度(通道数)增加了一倍。第一阶段包含4个剩余单位,每个单位都和ResNet-50一样,是由一个宽度为64的bottleneck组成,紧随其后的是一个3x3卷积特征图的宽度减少到(C),第二,第三,第四阶段分别包含1、4、3个交换块。一个交换块包含4个剩余单元,其中每个单元在每个分辨率中包含2个3x3的卷积,以及一个分辨率的交换单元。综上所述,共有8个交换单元,即共进行8次多尺度融合。

在我们的实验中,我们研究了一个小网和一个大网:HRNet-W32和HRNet-W48,其中32和48分别代表最后三个阶段高分辨率子网的宽度(C)。其他三个并行子网的宽度为64,128,256的HRNet-W32,以及HRNet-W48:96,192,384。