Deep High-Resolution Representation Learning for Human Pose Estimation 用于人体姿态估计的深度高分辨率表征学习
摘要: 本文通过学习可靠的高分辨率表示来关注人体姿态估计问题。大多方法从一个 high-to-low 分辨率网络生成的低分辨率表示中恢复高分辨率表示。但是,我们的网络模型在整个过程中都保持高分辨率表示。
我们以一个高分辨率的子网络作为 first stage 开始,逐个添加 high-to-low 分辨率子网,形成更多的 stage,并将多分辨率子网并行连接。我们进行重复的多尺度融合,使得每个 high-to-low 分辨率的表示反复接收来自其他并行表示的信息,从而得到丰富的高分辨率表示。因此,预测的关键点热图更准确,关键点位置在空间上也更精确。COCO 和 MPII 数据集上优越的姿态估计结果证明了我们网络的有效性。此外,我们还展示了我们的网络在PoseTrack 数据集上进行姿态跟踪的优越性。
文章目录
1. Introduction
2D人体姿态估计一直是计算机视觉领域一个基本且富有挑战性的问题,其目标是定位人体关键点(如肘部、手腕等)或部位。姿态估计在人体动作识别、人机交互、动画等领域应用广泛。本文主要针对单人姿势估计,单人姿态估计是其他相关问题,例如多人姿态估计、视频姿态估计和跟踪等的基础。
深卷积神经网络已经取得了 sota 性能。大多数现有网络通常由串联的 high-to-low 分辨率子网组成,然后恢复高分辨率。例如,沙漏 Hourglass 通过一个对称的 low-to-high 过程恢复高分辨率。SimpleBaseline 采用了几个转置卷积层(反卷积)来生成高分辨率表示。此外,扩张卷积(空洞卷积)也被用于扩张 high-to-low 分辨率网络(例如 VGGNet 或 ResNet)的后续层。
我们提出了一种新的体系结构——高分辨率网络(HRNet),它在整个过程中保持高分辨率的表示。HRNet 以一个高分辨率的子网作为第一 stage 开始,逐个添加并行连接的 high-to-low 分辨率子网,形成更多的 stage。在并行多分辨率子网之间反复交换信息来进行重复的多尺度融合。我们通过网络的高分辨率来估计输出点。网络结构如图1所示。
图1. HRNet架构。 HRNet 由并行的 high-to-low 分辨率子网组成,并在多分辨率子网之间重复交换信息(多尺度融合)。水平方向和垂直方向分别对应于网络的深度和特征图的比例。
对比现有的姿态估计网络,HRNet 有两个优点:
- HRNet 并行连接 high-to-low 分辨率子网,而不像大多数现有解决方案那样串联。HRNet 能够保持高分辨率,而非通过 low-to-high 的过程恢复分辨率,因此 HRNet 预测的热图在空间上更精确。
- 大多现有的融合方案聚合了 low-level 和 high-level 表示。相反,我们通过重复的多尺度融合,在相同深度和相似 level 的低分辨率表示的帮助下提高高分辨率表示,反之亦然,从而使高分辨率表示也有丰富的姿态估计。因此,HRNet 预测的热图可能更准确。
COCO 和 MPII数据集上优越的姿态估计实验结果证明了我们网络的有效性。此外,我们还展示了我们的网络在PoseTrack数据集上进行姿态跟踪的优越性。
2. Related Work
传统的单人姿态估计解决方案是采用概率图模型或图形结构模型,最近通过利用深度学习更好地建模 unary 和 pair-wise energies 或模仿迭代推理过程对传统方法进行了改进。现在基于深度学习的解决方案是主流的方法。单人姿态估计有两种主流方法:(i) 回归关键点的位置 (ii) 估计关键点热图,然后选择热值最高的位置作为关键点。
大多数用于估计关键点热图的卷积神经网络由以下几个部分组成:
- 一个类似于分类网络的 ,用于降低分辨率的 stem 子网。
- 一个生成与其输入具有相同分辨率表示的 main body 。
- main body 后接一个用于估计关键点位置热图的回归器,关键点位置被估计后的热图以全分辨率转换。
main body 主要采用 high-to-low、low-to-high 的框架,这些框架可能会增加多尺度融合和 intermediate (deep) 监督。
High-to-low and low-to-high. high-to-low 的过程旨在生成低分辨率和高级别的表示,而 low-to-high 过程旨在生成高分辨率的表示。为了提高性能,这两个过程可能重复多次。
典型的网络设计模式包括:(i) 对称的 high-to-low 和 low-to-high 过程。Hourglass 沙漏模型及其后续的改进模型将 low-to-high 的过程设计为 high-to-low 过程的镜像。(ii) 重量级的 high-to-low 和轻量级的 low-to-high。high-to-low 过程基于 ImageNet 分类网络,low-to-high 过程类似于双线性插值上采样或者转置卷积层。(iii) 结合扩张(空洞)卷积。一些模型在 ResNet 或VGGNet 的最后两个阶段中采用了扩张卷积,以消除空间分辨率损失,然后进行 low-to-high 的轻量级处理以进一步提高分辨率,避免了仅使用扩张卷积昂贵的计算成本。图2描述了四个具有代表性的姿态估计网络。
图2. 典型 high-to-low 和 low-to-high 姿态估计网络的图示。 (a) Hourglass 沙漏模型。(b) Cascaded pyramid networks 级联金字塔网络。(c)SimpleBaseline:用于 low-to-high 处理的转置卷积。(d) 结合扩张卷积。
右下角图例:reg. = regular convolution 常规卷积,dilated = dilated convolution 扩张卷积,trans. = transposed convolution 转置卷积,strided = strided convolution 步幅卷积, concat. = concatenation。
在 (a) 中,high-to-low 和 low-to-high 的过程是对称的。在 (b),(c) 和 (d) 中,high-to-low 过程作为分类网络 (ResNet or VGGNet) 的一部分是重的,而 low-to-high 过程是轻的。在 (a) 和 (b) 中,high-to-low 和 low-to-high 过程中,相同分辨率之间的 skip 连接(虚线)主要用于融合低级别和高级别特征。在 (b) 中,右边部分的 refinenet 结合了通过卷积处理的低级和高级特征。
Multi-scale fusion 多尺度融合. 进行多尺度融合的简单方法是将多分辨率图像分别送入多个网络,并聚合输出图。Hourglass 沙漏模型及其扩展通过 skip 连接,将 high-to-low 过程中的低级特征逐渐组合为 low-to-high 过程中相同分辨率的高级特征。在级联金字塔网络中, globalnet 将 high-to-low 过程中的 low-to-high level 的特征逐步组合到 low-to-high 过程中,然后 refinenet 将卷积处理后的 low-to-high level 的特征组合在一起。HRNet 受深度融合的启发,重复多尺度融合。
Intermediate supervision 中继监督优化 早期为图像分类开发的中继监督优化或深度监督优化,也被用于帮助深度网络训练以及提高热图估计质量。hourglass 沙漏方法和卷积姿态机制方法将中间热图作为剩余子网的输入或部分输入进行处理。
Our approach. 我们的网络并行连接 high-to-low 子网。它在整个过程中保持高分辨率表示,用于精确的空间热图估计。它通过反复融合由 high-to-low 子网生成的表示,生成可靠的高分辨率表示。我们的方法不同于大多数现有的方法,这些方法需要单独的 low-to-high 的上采样过程并且需要聚合低级别和高级别的表示。我们的方法在不使用中间热图监督的情况下,在关键点检测精度和计算复杂度及参数方面具有优越性。
有相关的多尺度网络用于分类和分割。我们的工作部分受到了其中一些网络的启发,这些网络之间存在明显的差异,因此不适用于我们的问题。Convolutional neural fabrics 和 interlinked CNN 由于每个子网(depth, batch normalization)和多尺度融合缺乏适当的设计,所以无法产生高质量的分割结果。多个共享权重的 U-Nets 组合而成的 grid network ,由两个跨多分辨率表示的独立融合过程组成:(1) 在第一阶段,信息只从高分辨率发送到低分辨率;(2) 在第二阶段,信息只从低分辨率发送到高分辨率,因此性能竞争力较低。Multi-scale densenets 不针对目标,也无法生成可靠的高分辨率表示。
3. Approach
人体姿态估计,又称关键点检测,旨在从大小为
W
×
H
×
3
W×H×3
W×H×3 的图像中检测关键点(如肘部、手腕等部位)的位置。sota 方法将这个问题转化为估计大小为
W
′
×
H
′
,
{
H
1
,
H
2
,
…
,
H
K
}
W' ×H',\{H_1, H_2, …, H_K\}
W′×H′,{H1,H2,…,HK} 的 k 张热图,其中每张热图
H
k
H_k
Hk 表示第 k 个关键点位置的置信度。
我们遵循应用广泛的pipeline,使用一个卷积网络预测人体关键点,该网络以下几个部分组成:
- 一个由两个用于降低分辨率的 stride 卷积组成的 stem。
- 一个 main body 用于输出与其输入图分辨率相同的输出图。
- 一个估计热图的回归器,热图用于估计关键点位置,之后转换为全分辨率。
我们主要关注 main body 的设计,并介绍图1所示的高分辨率网络(HRNet)。
Sequential multi-resolution subnetworks 顺序多分辨率子网。 现有的姿态估计网络通过串联高分辨率和低分辨率子网而建立,每个子网由一系列卷积组成,形成一个 stage,相邻子网之间有一个下采样层将分辨率减半。
设
N
s
r
N_{sr}
Nsr为第 s stage 的子网,r 为分辨率指数(
N
s
r
N_{sr}
Nsr 的分辨率为第一个子网分辨率的
1
2
r
−
1
\frac{1}{2^{r-1}}
2r−11)。那么具有S(例如,S=4)个 stages 的 high-to-low 网络可以表示为:
Parallel multi-resolution subnetworks 并行多分辨率子网。 我们以一个高分辨率的子网作为第一 stage 开始,逐个添加 high-to-low 分辨率子网,形成新的 stage,并行连接多分辨率子网。因此,下一 stage 并行子网的分辨率由前一 stage 的分辨率和一个较低的分辨率组成。包含4个平行子网的网络结构示例如下:
Repeated multi-scale fusion 重复多尺度融合。 我们在并行子网中引入交换单元,以便每个子网重复接收来自其他并行子网的信息。下面是一个信息交换方案的示例。我们将第三 stage 划分为几个(例如,3个)交换块,每个交换块由3个并行卷积单元组成,每个交换快之间有一个交换单元,如下所示:
其中
C
s
r
b
C_{sr}^b
Csrb代表第 s stage 中第 b 块的第 r 分辨率中的卷积单元,
ε
b
s
\varepsilon^s_b
εbs 是相应的交换单元。交换单元如图3所示。
图3. 从左到右依次为交换单元如何聚合高分辨率、中分辨率和低分辨率信息。 右图例:strided 3×3 = strided 3×3 卷积, up samp.1×1= 1×1卷积后的最近邻上采样。
下面的公式也阐述了交换单元,为了便于讨论,去掉了下标 s 和上标 b。输入是 s 个特征图:
{
X
1
,
X
2
,
…
,
X
s
}
\{X_1, X_2, …,X_s\}
{X1,X2,…,Xs}。输出 s 个与输入分辨率和宽度相同的特征图:
{
Y
1
,
Y
2
,
…
,
Y
s
}
\{Y_1, Y_2, …,Y_s\}
{Y1,Y2,…,Ys}。每个输出都是输入 maps 的聚合,
Y
k
=
∑
i
=
1
s
a
(
X
i
,
k
)
Y_k=\sum_{i=1}^sa(X_i,k)
Yk=∑i=1sa(Xi,k) ,跨 stage 的交换单元有一个额外的输出 map:
Y
s
−
1
:
a
(
Y
s
,
s
+
1
)
Y_{s-1}: a(Y_s, s+1)
Ys−1:a(Ys,s+1) 。
函数
a
(
X
i
,
k
)
a(X_i,k)
a(Xi,k) 是将
X
i
X_i
Xi 从分辨率 i 上采样或下采样到分辨率 k 。下采样采用 3×3 strided 卷积,例如,一个 stride=2 的 3×3 卷积用于 2 倍下采样,两次连续的 stride=2 的 3×3 卷积用于 4倍下采样。上采样中,采用1×1卷积后 + 简单最近邻采样来对齐通道数,如果
i
=
k
,
a
(
⋅
,
⋅
)
i=k,a(·,·)
i=k,a(⋅,⋅)只是一个标识连接:
a
(
X
i
,
k
)
=
X
i
a(X_i,k) =X_i
a(Xi,k)=Xi。
Heatmap estimation 热图估计 简单地从最后一个交换单元输出的高分辨率表示中回归热图。均方误差损失函数用于比较预测热图和 GT 热图。GT热图是通过应用 2D 高斯分布生成的,标准偏差为1个像素,以每个关键点的组真值位置为中心。
Network instantiation 网络实例化。我们遵循 ResNet 的设计规则给每个stage分配深度,给每个分辨率分配通道数,从而实例化关键点热图估计网络。
Main body ,即HRNet,包含四个 stage (四个平行的子网),子网分辨率逐渐降低到一半,因此宽度(通道数)增加到两倍。第一 stage 包含4个残差单元,其中每个残差单元(与 ResNet-50 相同)由一个宽度(通道数)为64的 bottleneck 形成,然后跟一个 3×3 的卷积将特征图的通道数减少到C。第二、第三、第四 stage 分别包含 1、4、3 个交换块。每个交换块包含 4 个残差单元,其中每个残差单元在每个分辨率中包含两个 3×3 卷积,在跨分辨率中包含一个交换单元。总之,共有8个交换单元,即进行了 8 次多尺度融合。
我们研究了一个小网络和一个大网络:HRNet-W32 和 HRNet-W48,32和48分别代表最后三个 stage 的高分辨率子网的宽度(通道数)。其他三个平行子网的宽度分别为:HRNet-W32为64,128,256,HRNet-W48为96,192,384。
4. Experiments
4.1. COCO Keypoint Detection
评估标准:OKS,AP,AR。
表1. COCO validation set 的比较结果。 Pretrain=在ImageNet分类任务上预训练 backbone。OHKM=online hard keypoints mining
表2. COCO test-dev 集的比较结果 #Params 和FLOPs 为在姿态估计网络计算所得,不包括用于人体检测和关键点分组的参数和计算量。
4.2. MPII Human Pose Estimation
评估指标: P C K h PCKh PCKh(正确关键点的头部标准化概率),如果关节位于GT位置的 α l αl αl 像素范围内,则该关节是正确的,其中 α α α 是一个常数, l l l 是头部大小,对应于GT 头部边界框对角线长度的60%。 P C K h @ 0.5 ( α = 0.5 ) PCKh@0.5(α= 0.5) PCKh@0.5(α=0.5)
图4. MPII(顶部)和COCO(底部)数据集中一些示例图像的定性结果:包含视点和外观变化、遮挡、多人和常见的成像伪影
4.3. Application to Pose Tracking
数据集:PoseTrack。
评估指标:姿势估计通过平均精度(mAP)进行评估。多人姿态跟踪由多目标跟踪精度(MOTA)评估。
4.4. Ablation Study
5. Conclusion and Future Works
在本文中,我们提出了一种用于人体姿态估计的高分辨率网络 HRNet 生成准确且空间精确的关键点热图。HRNet的成功来自两个方面:(i)在整个过程中保持高分辨率,而无需恢复高分辨率;(ii)反复融合多分辨率表示,呈现可靠的高分辨率表示。
未来的工作包括在其他密集预测任务中的应用,例如语义分割、目标检测、人脸对齐、图像翻译,以及以 less light 方式聚合多分辨率表示的研究。