AdaptivePose++: A Powerful Single-Stage Network for Multi-Person Pose Regression 阅读笔记

AdaptivePose++:一个强大的多人姿态回归单阶段网络

论文链接
代码链接

摘要:多人姿态估计常遵循 top-down 或 bottom-up范式,两者都需要额外阶段(例如,top-down 中的人体检测或bottom-up 中的分组)来构建人体实例与相应关键点间的关系,因而产生高计算成本和冗余的 two-stage pipeline 。为解决上述问题,本文将人体部位表示为自适应点,并引入细粒度(fine-grained)的身体表示方法,这种身体表示法能充分编码不同的姿态信息,并在一次正向传递中有效建模人体实例和相应关键点间的关系,利用该身体表示法,本文进一步提出了一个紧凑的 one-satge 多人姿态回归网络:AdaptivePose。AdaptivePose 在推理过程中只需一步解码生成多人姿态,而无需复杂的后处理和细化。本文将AdaptivePose用于2D/3D多人姿态估计任务,以验证Adaptive pose的有效性,在没有任何奇技淫巧,大力调参的情况下,AdaptivePose在MS COCO和CrowdPose上实现了具有竞争力的精度和速度,此外,MuCo-3DHP和MuPoTS-3D上出色的性能进一步证明了本方法在3D场景的有效性和通用性。



I. INTRODUCTION

top-down 方法它性能优越,但由于其需要额外的人体检测器,因此计算成本高,效率低。bottom-up法比top-down法效率更高,但启发式分组计算复杂且涉及额外手工设计的规则。
如图2(a)所示,传统的 top-down 和 bottom-up 法通常使用关键点热图表示,通过绝对关键点位置建模人体姿态,这分离了人类实例位置与相应关键点间的关系,因此,需要一个额外的 stage 来建立连接。最近一些试图在single-forward 过程种建立人体与相应关键点连接的的研究工作遇到一些障碍,导致性能下降。如图2(b)所示,CenterNet 将人体实例表示为中心点,并通过中心点到关节的 offset 编码实例及其关键点间的关系,但由于有限的中心特征不能有效编码各种姿态,因此它的性能较差。如图2(c)所示,SPM也试图通过有限的根关节特征表示人体实例并进一步使用固定的层次结构沿skeleton path来构建人体实例和关键点间的关系,由于中间节点是预定义的,且监督仅作用于相邻关节间的offset,因此固定的 hierarchical path 会导致沿着 hierarchical path 的 accumulated errors。
为了解决上述问题,本项工作提出了一种新的身体表示,它能充分编码各种人体姿态,并在single-forward pass 中有效建立人体实例和关键点间的关系。具体而言,人体被分成几个部位,每个人体部位被表示为 adaptive part related point(自适应部位相关点),以这种方式,利用人体中心特征和一些人体部位相关点特征来表示不同的人体姿态。 如图2(d)所示,可以通过中心到自适应点,然后到 keypoints path 来建立连接。 这种表示方法有两方面优势:1)点集表示在 adaptive part related point 处引入了额外的特征,相比于有限的中心表示,这些特征能够为灵活的姿态编码更多的信息特征。2) adaptive part related point 作为 relay nodes 可以更有效地在single-forward pass 中建模人体实例和相应关键点间的关联。

在这里插入图片描述

图2.(a)top-down 法(如Rmpe)以及 bottom-up 法(如CMU-pose)的传统身体表示。(b) CenterNet提出的 Center-to-joint body表示法。(c) SPM引入的分层体表示。(d) 本文提出的自适应点集表示。与仅使用中心或根特征的(b)和(c)不同,引入自适应点的特征来编码每个部位中的关键点信息。

利用自适应点集表示,本文提出了一种有效的单阶段可微回归网络:AdaptivePose,它主要由三个组成部分构成:

  1. Part Perception Module 用于回归7个 adaptive human-part related points,以感知相应的7个人体部位。
  2. Enhanced Center-aware Branch :与使用具有固定感受野的有限特征来预测人体中心方法相比,Enhanced Center-aware Branch 通过聚集adaptive human-part related points 的特征来进行感受野的自适应,以更精确的感知各种姿态的中心。
  3. Two-hop Regression Branch && Skeleton-Aware Regression Loss:具有Skeleton-Aware Regression Loss 的 two-hop Regression Branch 用于回归关键点。adaptive human-part related points 作为 one-hop nodes 来动态分解 center-to-joint offsets。

本文主要贡献如下:

  • 本文提出将人体部位表示为点,从而可以通过自适应点集来表示人体,该自适应点集包括中心和几个人体部位相关点。据我们所知,本文第一个提出精细且自适应的身体表示,以充分编码姿态信息,并在单次前向传递中有效建立人体实例和关键点间的关系。
  • 基于该身体表示,本文开发了一个紧密的的单阶段可微网络:AdaptivePose。具体而言:引入一个新的 Part Perception Module,通过回归7个人体部位相关点来感知人体部分;通过操纵人体部位相关点,本文进一步提出了 Enhanced Centeraware Branch,以更精确地感知人体中心;Two-hop Regression Branch together with the Skeleton-Aware Regression Loss 用于精确回归关键点。
  • 我们的方法大大简化了现有的多人姿态估计pipeline。在2D和3D姿态估计基准上证明了本文方法的有效性,在没有复杂的细化和后期处理的情况下,实现了最佳的速度精度trade-off。此外,在CrowdPose和MuPoTS-3D上的扩展实验验证了其在拥挤场景和3D场景上的通用性。

II. RELATED WORK

top-down、bottom-up相关工作略。

基于点的方法。 在深度学习时代之前,与大多使用图形结构模型进行姿态估计的方法相反,RoDG利用预定义的依赖图表示相邻身体关节间关系以进行姿态估计,这些相邻点的位置从根节点开始沿着依赖路径(骨架路径)顺序估计。在深度学习时代,基于点的方法通过 grid 点表示实例,并已应用于许多任务中,由于它们比 基于anchor 的表示更简单、更高效,因此受到了广泛关注。CenterNet利用边界框中心编码对象信息,并在预测边界框时并行回归对象属性(如大小)。SPM通过根关节表示人,并进一步呈现固定的分层身体表示来估计人体姿态。Point-Set Anchors 利用一组预定义点作为pose anchor,为回归提供更多信息特征。相比于先前使用中心或预定义的 pose anchor 来建模人体实例,本文通过包含中心和七个人体部位相关点的自适应点集来表示人体实例,如图3(a)所示。

在这里插入图片描述

图3.(a)自适应点集的可视化。白色点表示人体中心,其他点表示 part related points。利用基于每个人体实例的自适应点集,以细粒度的方式表示人体姿态。(b) 根据固有的身体结构划分人体部分。(c) 黑色虚线箭头表示交叉部位的骨架连接,实线表示部位内部的骨骼。

III. METHODOLOGY

A. Body Representation

本文提出了一种自适应点集表示,使用中心点和几个与人体部位相关的点来表示人体实例,这种表示引入了自适应人体部位相关点,其特征用于编码每个部位的信息,从而充分捕获结构姿态信息,同时,它们作为中间节点,能有效建模人体实例和关键点间的关系。不同于SPM中的固定分层表示,自适应部位相关点由中心特征动态预测,而非预先定义其位置,从而避免了沿固定分层路径传播的累积误差,此外,不仅使用根特征来编码整个姿态信息(全局),还利用自适应点的特征来更充分地编码不同部位的关键点信息(局部)。
该身体表示建立在 pixel-wise 关键点回归框架上,该框架在每个像素中估计候选姿态。如图3(b)所示,根据人体的固有结构将人体手动分为7个部分(即头部、肩部、左臂、右臂、臀部、左腿和右腿),每个人体部位都是一个刚性结构,通过自适应人体部位相关点来表示,该点从人体中心动态回归。该过程可表述为:
在这里插入图片描述
通过引入自适应人体部位相关点,不同关键点的语义位置信息可以由特定人体部位相关的点的特征来编码,而不是仅使用有限的中心特征来编码所有关键点的信息(centernet,SPM) 方便起见,Ppart表示7个人体部位相关点:Phead、Psho、Pla、Pra、Phip、Pll、Prl。然后,每个人体部位相关点的特征负责回归属于相应部位的关键点,如下所示:
在这里插入图片描述
这种表示从人体中心 —> 自适应人体部位相关点 —> 身体关键点,以在 single-forward pass 建立实例位置相应关键点位置间的连接,端到端可微。基于这种表示,本文提出一个单阶段可微方法来估计多人姿态,具体而言,Part Perception Module 预测7个人体部位相关点;通过使用自适应人体部位相关点,Enhanced Center-aware Branch 感知具有不同形变和尺度的人体中心,同时,Two-hop Regression Branch 通过自适应部位相关点来回归关键点。(局部—>全局—>局部

B. Single-Stage Network

总体架构。 如图4所示,给定输入图像,backbone先提取语义特征,然后使用三个组件预测特定信息:Part Perception Module 从每个人体实例的假定中心回归7个自适应人体部位相关点;然后,通过聚集自适应点的特征来预测中心热图(局部—>全局),在 Enhanced Center-aware Branch中进行感受野自适应;此外,Two-hop Regression Branch 将自适应人体部位相关点作为one-hop,间接回归从中心到每个关键点的偏移。AdaptivePose遵循 pixel-wise 关键点回归范式,通过预测从center pixel 到K个关键点的2K维偏移向量,估计每个像素(称为 center pixel)的候选姿态。这里仅以像素位置为例来描述单级网络。

在这里插入图片描述

图4. Overview of AdaptivePose. (a) Part Perception Module的结构。(b) Enhanced Center-aware Branch的结构, RP Adaptation 表示感受野自适应 receptive field adaptation. (c) Two-hop Regression Branch 范式。(d) 红色箭头是动态定位自适应人体部位相关点的 one-hop offsets 。 (e) 蓝色箭头表示用于定位关键点的 second-hop offsets。

Part Perception Module. 利用所提出的身体表示,根据人体的固有结构,将每个人体实例手工划分为7个局部部位(即头部、肩部、左臂、右臂、臀部、左腿、右腿)。Part Perception Module 通过预测7个自适应人体部分相关点来感知人体部位,对于每个部分,自动从 center pixel: c 回归自适应点,而无需明确监督每个自适应部位相关点编码属于该部位的关键点的信息特征。如图5所示,将回归分支特定特征Fr送到3×3卷积层中,在每个像素中,回归出从像素中心 c 到 7 个自适应人体部位相关点的 14-channel x-y offsets: o f f ˉ 1 \bar{off}_1 offˉ1。这些自适应点充当中间节点(one-hop,作为第一跳),用于后续的中心定位和关键点回归。

在这里插入图片描述

图5。Part Perception Module, Enhanced Center-aware Branch 和 Two-hop Regression Branch的详细结构。Concat表示沿通道维度的 feature concatenation 。红色箭头指示应用损失的位置。

Enhanced Center-aware Branch。 先前的工作,每个位置通过具有固定感受野的特征来预测不同尺度和形变的人体实例中心,但与预测较小人体中心的像素位置相比,预测较大人体中心的像素位置应具有更大的感受野。 因此,本文提出了一种新的 Center-aware Branch,该分支包括一个感受野自适应过程,以 extract 并 aggregate七个自适应人体部位相关点的特征,从而精确定位中心。
如图5所示,3×3 conv-relu 结构生成 branch-specific 特征。在 Enhanced Centeraware Branch 中,Fc 是每个像素位置具有固定感受野的 branch-specific 特征,先使用 1*1 卷积将 256 channel 特征 Fc 压缩为 64-channel 特征 Fc0,然后在Fc0上使用双线性插值(图中的Warp)提取自适应点的特征向量,以头部为例,双线性插值可以公式化为: F c h e a d = F c 0 ( c + o f f ˉ 1 h e a d ) F_c^{head}=F_{c0}(c+\bar{off}_1^{head}) Fchead=Fc0(c+offˉ1head),c 表示center pixel, o f f ˉ 1 h e a d \bar{off}_1^{head} offˉ1head 是从中心到头部自适应点的offset,提取的特征: { F c h e a d , F c s h o , F c l a , F c r a , F c h i p , F c l l , F c r l } \{F^{head}_c , F^{sho}_c , F^{la}_c , F^{ra}_c , F^{hip}_c , F^{ll}_c , F^{rl}_c \} {Fchead,Fcsho,Fcla,Fcra,Fchip,Fcll,Fcrl} 对应于7个人体部位: head, shoulder, left arm, right arm, hip, left leg, right leg,将它们与Fc沿着通道维度 concatenate 来生成特征 F c a d a p t F^{adapt}_c Fcadapt由于位于七个部位上的预测自适应点在人体区域的分布相对均匀,因此上述过程可以被视为根据人体尺度的感受野自适应,并充分捕捉各种姿态信息。 最后使用具有自适应感受野的 F c a d a p t F^{adapt}_c Fcadapt 来预测中心定位的 1-channel probability map。

在这里插入图片描述
(上图引用的[19]是centernet),确保 radius 内的一对点生成的 bbox 与 gt box 的IoU>=0.7,通过对象的大小来计算Gaussian kernel radius(具体算法详见CenterNet),自适应方差是1/3 radius。Enhanced Center-aware Branch的损失函数采用 penalty-reduced 的 pixel-wise focal loss:
在这里插入图片描述

Two-hop Regression Branch. 利用两跳回归方法来预测 offset 代替直接回归 center-to-joint offsets。以这种方式,Part Perception Module 预测的自适应人体部位相关点作为 one-hop nodes 来更有效的建立人体实例与关键点间的连接。
在Two-hop Regression Branch中,先使用 3×3 conv-relu 生成 branch-specific feature:Fr,然后将 256-channel 的 Fr 喂给 deformable convolutional layer 生成 64-channel 的特征 Fp,然后在Fp上使用双线性插值(图5中的Warp)提取自适应相关点的特征,以进行相应的关键点回归,提取的特征表示为: { F p h e a d , F p s h o , F p l a , F p r a , F p h i p , F p l l , F p r l } \{F^{head}_p , F^{sho}_p , F^{la}_p , F^{ra}_p, F^{hip}_p , F^{ll}_p , F^{rl}_p \} {Fphead,Fpsho,Fpla,Fpra,Fphip,Fpll,Fprl} 对应于7个人体部位: head, shoulder, left arm, right arm, hip, left leg, right leg。以提取的特征 F p h e a d F_p^{head} Fphead 而言,上述操作可以阐述为: F p h e a d = F p ( c + o f f ˉ 1 h e a d ) F_p^{head}=F_{p}(c+\bar{off}_1^{head}) Fphead=Fp(c+offˉ1head)。这些特征分别编码不同人体部位的关键点信息,而不是仅使用中心特征来编码所有关键点的信息。之后,提取的特征通过不同的1×1卷积层回归从自适应部位相关点到特定关键点的offset o f f ˉ 2 \bar{off}_2 offˉ2 来负责定位属于相应部位的关键点,例如 F p h e a d F_p{head} Fphead负责定位眼睛、耳朵、鼻子; F p l a F_p{la} Fpla 用于定位左手腕和左肘; F p l l F_p{ll} Fpll 用于定位左膝和左脚踝。
Two-hop Regression Branch 输出一个34-channel tensor,对应于从中心到17个关键点的x-y offset,该张量由两跳方式如下预测:
在这里插入图片描述
其中, o f f ˉ 1 \bar{off}_1 offˉ1 o f f ˉ 2 \bar{off}_2 offˉ2 分别表示从中心到自适应人体部位相关点的偏移(图5中提到的One-hop offset)和从人体部位相关点到特定关键点的偏移(图5所提到的 second-hop offset)。预测的偏移 o f f ˉ \bar{off} offˉ 由 vanilla L1 loss 监督,监督仅作用于positive keypoint 位置,忽略其他背景位置。 此外,添加了一个额外的loss:SkeletonAware Regression Loss 来学习相邻关键点间的刚性骨骼连接,如图3(c)所示,一个a bone connection set表示为 B = { B i } i = 1 I \mathcal{B}=\{B_i\}^I_{i=1} B={Bi}i=1I,I 是预定义set B \mathcal{B} B 中的骨连接数量,每根骨头 B = P a d j a c e n t ( j o i n t ) − P j o i n t B = P_{adjacent(joint)} − P_{joint} B=Padjacent(joint)Pjoint,P是关节位置,函数adjacent(∗) 返回输入关节的相邻关节。整体回归loss如下:
在这里插入图片描述

C. Training and Inference Details

训练期间,使用一个 auxiliary training objective来学习关键点热图表示,使该特征保持更多的人体几何结构信息,特别地,添加了一个并行分支输出对应于17个关键点的17-channel 热图,并应用具有自适应方差的高斯核来生成 GT 关键点热图,将此 training objective 表示为 l o s s h m loss_{hm} losshm,类似于等式3,唯一的区别是N表示 positive keypoints 的数量。auxiliary branch仅在训练过程使用,在推理过程中移除。
在这里插入图片描述
推理过程中,Enhanced Center-aware Branch 输出指示像素位置是否为中心的中心热图;Two-hop Regression Branch 输出从center到每个关键点的offset。先通过在中心热图上使用5×5 max-pooling kernel 来 pick 人体中心,以保持20个candidates,然后检索相应的偏移: ( δ x i , δ y i ) (δ^i_x, δ^i_y) (δxi,δyi) 以形成人体姿态。预测中心表示为 ( C x , C y ) (C_x, C_y) (Cx,Cy)。上述解码过程如下:
在这里插入图片描述
DEKR 进一步使用在每个回归关键点处提取的 heat values 的平均值来调节 center heat-values ,与此相反,本文仅利用 center heat-values 作为最终姿态得分。

IV. EXPERIMENTS AND ANALYSIS

B. Ablation Experiments

Analysis of Part Perception Module. 图6所示为不同尺度和姿态的人体实例上的预测人体中心和七个自适应人体部位相关点。
在这里插入图片描述

图6.(a)预测自适应点集的可视化,COCO数据集上每个人体实例的中心和七个人体部位相关点。放大后查看效果最佳。接下来的实验选择vanilla 3×3 convolution。


如表I所示,使用不同的设计来研究 Part Perception Module 的结构。
在这里插入图片描述

表I:Part Perception Module 消融实验。

Analysis of Enhanced Center-aware Branch、Analysis of auxiliary loss.、Analysis of Overall Architecture。表Ⅱ所示:

在这里插入图片描述

表II消融研究。PPM表示Part Perception Module,RFA表示在Enhanced Center-aware Branch中的Receptive Field Adaptation,TR表示Two-hop regression branch中的 two-hop regression策略,AL表示使用Auxiliary loss losshm来学习关键点热图表示。

Analysis of Two-hop Regression Branch。通过coco分析工具分析了direct center-to-joint regression、SPM中的hierarchical regression和本文的adaptive two-hop regression(adaptive two-hop regression应用于上述三种回归方案)的定位误差,定位错误包括四种错误类型:(1)Jitter是小的定位误差;(2) Miss指定位误差大;(3) Inversion表示同一人体实例中关键点间的混淆;(4) Swap表示不同人体关键点间的混淆。

在这里插入图片描述

表III:CenterNet中的direct center-to-joint regression(DR)、SPM中的hierarchical regression(HR)和本文的Two-hop regression(TR)在精度和四种定位误差方面的比较。

Analysis of Heatmap Refinement。如表IV所示,Ours-reg 性能略优于Ours-heat(64.6%AP vs 64.4%AP),证明了我们的回归方法具有更好的定位能力。

在这里插入图片描述

表IV消融实验:探索热图细化对two-hop regression结果的影响。

C. Results on MS COCO Dataset

在这里插入图片描述

表V:COCO mini-val set上与 bottom-up 法的比较。注意,所有结果均为无水平翻转的single-scale teating。+指更大的输入分辨率。所有推理时间都在2080TI GPU上用MINI-BATCH 1计算。

在这里插入图片描述

图7.COCO mini-val数据集上的预测骨架示例。挑战包括各种人体尺度、姿态变形以及遮挡场景。

在这里插入图片描述

表VI:COCO test-dev set上与sota方法的比较。∗ 表示使用额外的test-time refinements。†指mutil-scale testing。DLA-34+表示输入分辨率为640像素的DLA-34

D. Results on CrowdPose Dataset

通常,top-down先裁剪出单个人体再进行姿态估计,因而 top-down 性能总是优于bottom-up,但我们的单阶段方法在CrowdPose上的性能优于大多top-down方法,这是因为top-down方法中检测的单人区域会不可避免的包含其他人的身体,导致人体严重重叠。
在这里插入图片描述

表VII:CrowdPose test set 上与sota方法的比较。†表示mutil-scale testing。

在这里插入图片描述

图8.CrowdPose数据集上多人姿态估计的可视化。图中包含许多重叠和遮挡的多人场景。放大后查看效果最佳。

E. AdaptivePose for 3D Pose Estimation

为简单演示本文提出的身体表示和 single-stage network 在3D场景中的有效性,使用pixel-wise depth map来预测所有人体的深度信息。在2D AdaptivePose网络基础上进一步添加了两个并行分支:一个用于在相机中心坐标系中估计一个1-channel root absolute-depth map,对于目标,以 radius=4 的根关节为中心的区域的 map values 等于其 absolute depth;另一个分支输出其他关键点的14-channel relative depth map(MuCo-3DHP和MuPoTS-3D提供15个关键点注释),对于其目标,以 radius=4 的根关节为中心的区域的 map values 等于其相对于根节点的 relative depths。由于物体尺度和深度的视觉感知取决于视野(field of view:FoV)的大小,通过所有训练样本的FoV大小对深度进行归一化:Z=Z*w/f,Z是归一化深度,z是原始深度,f 和 w 是焦距和图像宽度。
推理过程中,先形成第III-C小节中描述的2D人体姿态,再在每个 pose candidates 的根位置通过双线性插值提取其他关键点的 absolute root depth 和 corresponding relative depth。预测的深度值可以在推理期间转换回度量值,最后,根据2D关键点坐标和相应的深度,通过透视相机模型重建3D姿态:
在这里插入图片描述

在这里插入图片描述

表VIII:MUPOTS-3D 数据集上的比较。报告的所有结果是对20个测试序列取平均;*表示对所有带标注的人进行评估。

V. CONCLUSION

本文介绍了一种将人体部位表示为自适应点的细粒度身体表示,这种新的表示可以充分编码各种姿态信息,并有效建模人体实例和关键点间的关系。基于该身体表示,本文构建了紧凑的 single-stage 网络:AdaptivePose,并在推理阶段摒弃启发式分组和细化过程,一步解码来形成多人姿态。AdaptivePose 超越了所有现有的 bottom-up 和 single-stage 方法,尤其在没有 flip 和 multiscale testing 情况下,并在MS COCO上实现了最佳的速度精度权衡。综合实验证明了其在拥挤人群和3D场景中的通用性。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值