多人姿态估计的局部-全局上下文自适应学习
cvpr2022
论文链接
代码暂未公开
摘要: 本文研究 bottom-up 姿态估计问题。通过观察到:理想情况下中心偏移(center-offset)构想的定位问题可以在 local-window search scheme 中得到解决,我们提出了一种学习人体姿态 LOcal-GlObal Contextual Adaptation 方法:LOGO-CAP。具体而言,先从小局部窗口中的局部关键点扩展图(local keypoints expansion maps:KEMs)中学习关键点吸引图(keypoint attraction maps: KAMs),随后将 KAMs 视为聚焦关键点的( keypoints-focused )全局热图的动态卷积核,用于上下文自适应,实现精确的多人姿态估计。我们的方法是端到端可训练的,在 single forward pass 中具有接近实时的推理速度,在COCO 自底向上的人体关键点检测上达到sota。通过COCO训练模型,我们的方法在 OCHuman数据集上也大大优于现有技术。
文章目录
1. Introduction
2D人体姿态估计是一个经典的计算机视觉问题,旨在从自然图像中解析人体部位的关节结构。通过丰富和长期的研究,我们见证了卷积神经网络在单人姿态估计上的巨大成功,因此,将姿态估计从单人推到多人非常有意义。
Top-down 多人姿态估计将问题转化为先使用现有的高精度人体检测器检测出单个人体再执行单人姿态估计。尽管 top-down 方法的性能很高,但由于其依赖人体边界框的检测,使其在效率和准确性方面仍存在一些问题。因此,本文研究不依赖先验边界框的 bottom-up 人体姿态估计。
Bottom-up姿态估计方法非常注重多人图像的估计姿态参数,而非使用裁剪的单人图像,这为准确识别学到的底层关键点并通过学习 part affinity fields、 part association fields 、associative embedding 分组关键点带来了挑战。这些分组方法是精确的,但它们需要 ad-hoc grouping/decoding schemes,因此变得复杂。最近,许多研究人员试图将简单高效的 center-offset 用于姿态估计,但由于人体姿态的结构变化较大,大多数 center-offset 方法的主要问题是定位不准确,致使其性能劣于分组方法。
本文基于简单高效的 center-offset 研究 bottom-up 姿态估计。我们直接解决了上述基于center-offset 多人姿态估计的主要挑战。通过分析 vanilla(原始的) center-offset 姿态估计网络的基本问题,我们方法的实验结果鼓舞人心。
A Surprisingly Strong Observation. 我们基于COCO - Val2017进行实验分析。vanilla center-offset 回归方法利用HRNet-W32作backbone 来直接预测关键点中心热图和偏移向量,如图 2 所示,其性能为 60.1 average precision (AP),不够好但也不算差,这也表明,姿态关键点中心和偏移向量能很好地被学习。我们疑惑:那中心偏移估计能有多差呢?我们想知道(i)一些糟糕的预测关键点是否真的远离GT,或者(ii)它们中的大多数是否已经接近GT?我们观察到后者是正确的。为了定量描述接近程度,我们不直接使用学习的偏移向量进行人体姿态估计,而是将其作为人体姿态关键点初始化,并进行局部窗口搜索以计算性能 上限。具体而言,基于初始预测的人体姿态,通过引入以每个检测的关键点为中心的局部窗口(如11×11),并通过计算单个关键点与GT关键点的相似性,获得了88.9AP的性能上限,这明显高于目前的sota,凸显了vanilla center-offset 回归方法的潜力。
A Direct Solution Leveraging the Observation. 上述观察结果的意义重大:它揭示了改进姿态估计 center-offset 法的关键是解决 local misplacement。 为此,一个简单的方法是根据所学的 center 和 off-set vector,为每个人体姿态关键点学习一个局部热图(例如,11×11),然后通过在局部热图中取 argmax 来计算细化的关键点。虽然这看似有效,但实际并不如人意,根本原因也很简单:如果这能奏效,那么原始偏移向量回归也应该先奏效,因为学习局部热图并不会引入额外的信息。
我们假设:
- 一方面,除局部热图外,需要考虑不同姿态关键点间的结构关系。
- 另一方面,需要解决局部热图中局部信息固有的不确定性。
前者是输出结构化预测问题的关键挑战,许多文献已经开发了消息传递算法。后者不能简单通过增大局部窗口来解决,它需要学习更强的local-global 信息交互和适应。
为验证这两个假设,LOGO-CAP通过中心偏移预测将初始关键点提升到 关键点扩展图(keypoint expansion maps:KEMs),以应对其在两个模块中定位精度的缺乏(第3节)。KEMs将中心偏移构思的星形结构表示扩展为图形结构表示。 如图1所示,LOGO-CAP中,一个模块计算局部 KEM 并学习解释人体姿态估计问题的结构化输出预测性质,从而生成 关键点吸引图(keypoint attraction maps:KAMs),即图1中的局部滤波器(local filters)。另一个模块计算全局KEMs,并学习通过集成KAMs来优化全局KEMs。
LOGO-CAP是一种完全端到端 bottom-up 人体姿态估计方法,具有接近实时的推理速度。它在COCO val-2017数据集的 fully-annotated subset 中获得70.0 AP,较 vanilla center-offset 提升了 9.9 AP。图2显示了LOGO-CAP与其他方法总体速度与精度的比较。同时,我们应该注意到,其与 empirical upper bound 仍有很大差距。
2. Related Works and Our Contributions
Top-Down Pose Estimation. 与 Top-down 法相比,LOGO-CAP 以自下而上的方式直接解决了多人姿态估计问题,而不在人体框上产生区域图像/特征上下文。LOGO-CAP在精度方面具有竞争力,达到了几乎实时的推理速度。
Limb-based Grouping Approaches. 基于肢干的分组法。 通常,需要复杂的设计才能实现良好的性能。例如,OpenPose中使用了二部图匹配。除了计算成本高之外,这些方法的另一个缺点是不能完全端到端训练。HGG 方法研究了可微性问题,该方法利用图卷积网络从关键点图重复描绘多个人的姿态参数。与Associative Embedding 相比,HGG提高了性能,但计算成本显著增加。与这些方法相比,LOGO-CAP是完全端到端可训练的,并且达到接近实时的推理速度。
Direct Regression based Approaches. 基于直接回归法。 该方法由于其概念简单而备受关注,其灵感来源于其在目标检测中的成功,如FCOS 和 CenterNets 。如上所述,一个主要挑战是精确回归偏移向量,特别是相对中心更远关键点,通常需要复杂的后处理来提高性能。例如,[Objects as points] 将直接回归的姿态 与 从全局关键点热图中提取的最近的关键点相匹配。虽然简单,但这一系列工作的性能通常不如基于肢干的方法。混合回归网络在一定程度上缓解了回归质量问题,但较基于分组的方法仍有很大的性能差距。最近,Geng等人提出了第一种竞争性直接方法DEKR,该方法具有一种新的基于特定姿态的非纠缠关键点回归神经网络结构。为了提高性能,DEKR方法利用轻量级重搜索网络重新校准基于关键点热图计算的姿态分数,因此不是完全端到端的。LOGO-CAP保留了vanilla center-offset 构思的简单性,并具有完全端到端的训练和快速推理速度。
Our Contributions. LOGO-CAP 对 bottom-up 姿态估计的贡献有三个:
- 我们解决了 vanilla center-offset 方法的缺点,同时保持了其效率。我们提出将关键点提升到关键点扩展图(KEMs)的关键思想,以应对缺乏定位精度的问题。
- 我们提出了一种新的 local-global 上下文适应方法,该方法阐述了人体姿态估计中结构化输出预测的性质,并利用 local-global 结构的信息集成。
- LOGO-CAP 在 COCO val-2017和test-2017数据集上达到了sota。本文还展式了其在 OCHuman 数据集上强大的泛化能力和性能。
3. The Proposed LOGO-CAP
图3为 LOGO-CAP的架构,它由三个主要部分构成:一个特征backbone、initial center-offset human pose estimation 和用于最终人体姿态估计的local-global contextual adaptation component 。
3.1. Learning Local and Global Context
Backbone Network and Pose Initialization. 主干网络与姿态初始化。 给定输入图像 I,特征主干输出一张特征图: F ∈ R C × h × w F∈ R^{C×h×w} F∈RC×h×w,其中C是特征主干中最后一个卷积层的特征尺度,空间大小 h×w 取决于特征主干中的stride。特征图 F 作为共享特征被两个不同的 head 分支使用,分支① 预测中心热图C,分支②预测偏移场O。然后,使用 top-N 局部最大位置和相应的偏移向量提取第 i 个人的初始姿态参数 P i ∈ R 17 × 2 P_i∈ R^{17×2} Pi∈R17×2。
Local Context. 局部上下文。 我们先介绍用于初始姿态参数的局部关键点扩展图( local keypoint expansion maps: KEMs)。具体而言,对于 j-type 关键点(例如,一个人的鼻子),我们遵循第1节中的观察结果,计算 11×11 窗口中的局部 KEMs,作为: M N × 17 × 11 × 11 × 2 M_{N×17×11×11×2} MN×17×11×11×2,如算法1所示。
然后,我们在 d-dim 潜在空间中对 KEMs 的几何网格
M
∈
R
N
×
17
×
11
×
11
×
2
M∈R^{N×17×11×11×2}
M∈RN×17×11×11×2进行编码(例如,在我们的实验中,d=64),基于特征主干输出计算。一个姿态实例由17个关键点连接表示。所有基于关键点的初始姿态都是几何式 “expanded / lifted” 且是特征激活的,从而生成初始局部上下文:
K
∈
R
N
×
(
17
×
d
)
×
11
×
11
K∈ R^{N×(17×d)×11×11}
K∈RN×(17×d)×11×11。
Local Context Convolutional Message Passing. 局部上下文卷积消息传递。 为了促进一个姿态实例的关键点的不同 latent codes 间的结构信息流,我们提出了一个简单的卷积消息传递(convolutional message passing:CMP)模块,它有三层 Conv+Norm+ReLU 操作,第二层使用 Attentive Norm。变换后的 latent code K ′ K' K′ 由1×1 Conv 解码。layer 作为局部关键点吸引力图(keypoints attraction maps : KAMs), K ∈ R N × 17 × 11 × 11 K∈ R^{N×17×11×11} K∈RN×17×11×11 来测量初始姿态的不确定性。
Local-Global Contextual Adaptation. 局部全局上下文适应。 通过 CMP,我们以对姿态实例敏感(instance-sensitive)的方式获得 17 个关键点的动态(也称为数据驱动 data-driven)kernels,这些 kernels 用于优化17个关键点的全局热图 H。具体而言,我们先为N个姿态实例的每个关键点计算另一个具有窗口 a×a(例如,a=97)的几何网格,整个网格用
M
G
∈
R
N
×
17
×
a
×
a
×
2
M_G∈ R^{N×17×a×a×2}
MG∈RN×17×a×a×2 表示。网格可以解释为全局KEMs。然后用从全局热图中提取的 appearance features 对其进行实例化,我们得到,
在对关键点热图的高斯先验进行编码的位置,生成的 pose-guided 热图 H 由高斯核
G
a
×
a
(
0
,
σ
=
a
−
1
2
×
3
G_{a×a}(0, σ = \frac{a-1}{2×3}
Ga×a(0,σ=2×3a−1 以 element-wise 方式 reweighed 。这样做意味着放大的网格遵循3σ原则(数值分布在(μ-σ,μ+σ)中的概率为0.6826;数值分布在(μ-2σ,μ+2σ)中的概率为0.9544;数值分布在(μ-3σ,μ+3σ)中的概率为0.9974)。
然后,我们将学习的关键点11×11 kernels
K
n
,
i
K_{n,i}
Kn,i 以 pose instance-sensitive 和 keypoint-specific 的方式卷积 reweighted 的 a×a 热图
H
^
n
,
i
\hat{H}_{n,i}
H^n,i,从而实现 LOcal-GlObal 上下文适应,
它代表了17个人体姿态关键点的精确热图。
The Pose Estimation Output. 姿态估计输出。 对于local-global contextually adpated 热图
H
^
N
×
17
×
a
×
a
\hat{H}_{N×17×a×a}
H^N×17×a×a,在a×a热图中为每个关键点保持 top-2 个位置,然后利用top-2 个位置的convex 平均值作为最终预测的偏移向量(即图3中的 (
∆
x
i
′
,
∆
y
i
′
∆x'_i, ∆y'_i
∆xi′,∆yi′),并将其confidence scores 作为 prediction score,其中 top-1 位置具有预定义的权重λ(在我们的实验中为0.75)。加上预测的关键点中心
C
N
×
3
C_{N×3}
CN×3,每个关键点的最终预测分数是 convex average confidence score 和 the center confidence score间的乘积。我们保留了最终分数大于0的关键点。我们有,
其中 N’ 是图像 I 中最终预测姿态实例的数量。
3.2. Loss Functions in Training
在完全端到端训练中,我们需要定义全局热图H、细化的局部热图
H
^
\hat{H}
H^、偏移场O和关键点 kernels 的损失函数。
The Heatmap Loss. 使用应用广泛的MSE。
H
18
×
h
×
w
G
T
H^{GT}_{18×h×w}
H18×h×wGT表示 GT 热图,其中每个关键点(包括中心)由2-D高斯建模,数据集提供均值和方差。设 p=(i, x) 为 18×h×w 维的 domain D的索引。对于预测的热图 H_{18×h×w},MSE损失定义为:,
w(x) 表示前景和背景像素的权重。前景的mask由 dataset annotation 提供。
在为改进的局部热图
H
^
\hat{H}
H^(Eqn. 2)定义损失函数
L
H
^
L_{\hat{H}}
LH^ 时,GT热图
H
^
G
T
\hat{H}^{GT}
H^GT 是根据网格
M
N
×
17
×
a
×
a
G
M^G_{N×17×a×a}
MN×17×a×aG(Eqn. 1)和 gt 关键点使用高斯模型动态生成的,高斯模型的平均值是当前预测关键点和 gt 关键点之间的位移,方差 σ 是 Eqn. 1中重 reweighing Gaussion prior 模型的标准差。
The Offset Field Loss. 采用应用广泛的 SmoothL1 loss,
O
G
T
∈
R
34
×
h
×
w
O^{GT}∈R^{34×h×w}
OGT∈R34×h×w 代表 GT offset field,
C
G
T
C^{GT}
CGT是 GT 关键点中心的非空集合。对于预测的 offset field O,我们有:
其中 A§ 是以像素 p 为中心的人的 area,β是 cutting-off threshold(在我们的实验中为1/9)。
The OKS Loss for the Keyoint Kernels. 考虑单个预测姿态实例,学习关键点kernels,
K
17
×
11
×
11
K^{17×11×11}
K17×11×11是促进 local-global contextual adaptation 的关键。 为此,KEMs
M
17
×
11
×
11
×
2
M_{17×11×11×2}
M17×11×11×2 需要直接反映任务损失,即OKS损失。对于图像中的
N
G
T
N^{GT}
NGT gt 姿态实例,我们可以计算 KEMs 中每个候选关键点的相似性分数,并获得 score tensor
S
17
×
11
×
11
×
N
G
T
=
m
a
x
(
S
17
×
11
×
11
×
N
G
T
,
0.5
)
S_{17×11×11×N^{GT}}= max(S_{17×11×11×N^{GT}} , 0.5)
S17×11×11×NGT=max(S17×11×11×NGT,0.5)。对 clamped score tensor 的前三个维度应用平均值缩减,以计算每个
N
G
T
N^{GT}
NGT 姿态实例的匹配分数。然后,根据匹配分数选择以 n* 为索引的最佳 gt 姿态实例,其匹配分数用
s
n
∗
s_{n*}
sn∗ 表示。.基于选定的 gt 姿态实例,我们顺手计算预测姿态实例的每个关键点相似性分数,用
s
k
(
k
∈
[
1
,
17
]
)
s_k(k ∈ [1, 17])
sk(k∈[1,17]) 表示。然后,关键点 kernels 的损失函数定义为,
The Total Loss. 总损失为 L = L H + L H ^ + λ ⋅ ( L O + L K ) L=L_H+L_{\hat{H}}+λ·(L_O+L_K) L=LH+LH^+λ⋅(LO+LK),其中权衡参数λ用于平衡不同的损失项(在我们的实验中λ=0.01)。
4. Experiments
4.1. Datasets and Evaluation Metrics
COCO 和 OCHuman
4.2. Results on the COCO Dataset
4.3. Results on the OCHuman Dataset
4.4. Inference Speed
4.5. Ablation Studies on COCO Validation
Designs for Contextual Adaptation.
Size of the Local KEMs and the Design of Convolutional Message Passing. 我们进行了一项消融研究,结果如表6所示,这证实了核尺寸为11×11时的性能最佳。一种可能的解释是:较小的核无法补偿初始关键点估计结果的不确定性,而较大的核可能会引入更多影响性能的干扰因素,例如来自同一个人或相邻不同人的不同关键点的不同局部KEM之间的“碰撞”。
Different Type of the Priors for Contextual Adaptation. 由于我们的上下文适应将全局KEM和KAMs 作为最终姿态预测的先决条件,因此我们定量地比较了上下文适应的可能设计。在表7中,我们通过使用全局 KEMs 或学习到的全局 KAMs,在COCO-val-2017 数据集上比较的性能。一方面,由于全局 KEMs 实际上是每个初始关键点周围的标准高斯分布,因此它无法提供更多信息以进行细化。另一方面,当我们强制使用局部 KAMs 来适应全局 KEMs 时,来自局部 KEMs 的不确定性将影响结果。这就是为什么只使用全局 KEMs 比使用全局 KAMs 更糟糕的原因。当同时使用 全局KEMs 和 KAMs 时,我们的方法可以获得最佳性能。
4.6. Potentials and Limitations
考虑到 center-offset formulation 对许多计算机视觉任务的通用适用性,我们假设 LOGO-CAP具有很大的潜力,可以弥补使用 vanilla center-offset 方法的模型缺乏足够精度的问题。我们还注意到,在实践中,对于不同的精度-速度权衡,可以稍微的放弃学习用于细化的上下文适应的最小简单设计。例如,卷积消息传递模块的另一种方法可以是Transformer模型,它可能会以牺牲推理速度为代价进一步提高性能。我们把这些留给未来的工作。
5. Conclusion
本文提出了一种自下而上学习 LOcal-GlObal 上下文适应的姿态估计方法:LOGO-CAP。LOGO-CAP建立在概念上简单的 center-offset 范例之上。LOG-CAP的关键思想是将中心偏移预测关键点提升到关键点扩展图(KEM),以解决初始关键点的不精确性。 介绍了两种 KEMs:① 局部 KEMs 通过卷积信息传递模块学习关键点吸引图(KAMs),该模块解释了人体姿态的结构信息。② 全局KEMs用于学习局部-全局上下文适应,该适应使用 KAMs 作为 kernel 卷积全局KEMs。 refined 全局 KEMs 用于计算最终的人体姿态估计。LOGO-CAP在 COCO2017 val set 和 test-dev set 中获得了自下而上姿态估计的sota。LOGO-CAP 在COCO训练的模型在OCHuman数据集中实现了sota 可转移性性能。