姿态估计 | 基于CenterNet究竟还可以做多少事情?AdaptivePose便是经典!(一)

简介: 姿态估计 | 基于CenterNet究竟还可以做多少事情?AdaptivePose便是经典!(一)

多人姿态估计方法通常遵循Top-DownBottom-up的模式,这两种方法都可以看作是两阶段的方法,因此计算成本高,效率低。

为了实现一个紧凑高效的多人姿态估计任务流水线,本文提出将人体部位表示为点,并提出一种新的人体表示方法,该方法利用一个自适应点集,包括人体中心和7个人体部位相关点,以更细粒度的方式表示人体实例。这种新的表示法更能捕捉各种姿势变形,并自适应分解长距离中心到关节的位移,从而提供一个单阶段可微网络,以更精确地回归多人姿势,称为 AdaptivePose。为了进行推理,本文提出的网络消除了分组和细化,只需单步解码即可形成多人姿势。

COCO测试开发数据集上,在没有任何提示的情况下,DLA-34HRNet-W48分别实现了67.4%AP/29.4 fps和71.3%AP/9.1 fps的最佳速度精度权衡。


1、简介


随着深度学习技术的普及,姿态估计在计算机视觉领域受到了广泛关注。对于许多高级视觉任务,如活动理解、姿态跟踪等,这是必不可少的一步。

大多数现有的多人姿态估计方法可以归纳为两种方法,包括Top-Down方法和Bottom-up方法。

Top-Down方法首先裁剪和调整检测到人的区域,然后在每个裁剪区域中定位关键点。这些方法可能有以下缺点:

  1. 关节检测的性能与人体边界框的质量密切相关。
  2. 检测优先模式导致内存成本高、效率低,不适用于应用程序。

Bottom-up方法首先为所有人同时定位关键点,然后为每个人分组。尽管Bottom-up方法通常比Top-Down方法运行得更快,但分组过程在计算上仍很复杂且冗余,并且总是涉及许多技巧来优化最终结果。

image.png

上述两阶段方法通常使用通过绝对关键点位置建模人体姿势的传统表示法,如图1(a)所示,这将人体实例和关键点之间的关联分开,因此需要额外的阶段来建模关系。

最近的研究工作初步探索了在遇到一些障碍而导致性能受限的情况下,建模人的实例与相应关键点之间关系的表示方法。例如,如图1(b)所示,CenterNet通过中心点表示人体实例,并利用中心到关节的偏移来形成人体姿势,但由于各种姿势变形和中心具有固定的感受野,因此很难处理长距离的中心到关节偏移,因此实现了折衷的性能。如图1(c)所示,SPM 还通过根关节表示实例,并进一步表示固定的层次树结构,并基于铰接运动学将根关节和关键点分为4个层次。它将长期偏移量分解为累积的短期偏移量,同时面临累积误差沿骨架传播的困境。

为了解决上述问题,在这项工作中将人体部位表示为自适应点,并使用包含人体中心和7个人体部位相关点的自适应点集来适应不同的人体实例。人体姿势以身体(中心)到部位(自适应点)到关节的方式形成,如图1(d)所示。

与以往的表示相比,我们的表示优势主要体现在两个方面:

  1. 与中心表示相比,这种细粒度的点集表示更能捕捉人体的各种变形程度;
  2. 它自适应地将长距离位移分解为短距离位移,同时避免了沿着骨骼传播的累积误差,因为自适应人体部位相关点是由神经网络自动学习的。

基于自适应点集表示提出了一种高效的端到端可微网络,称为 AdaptivePose,它主要由3个新组件组成。

  • 首先,提出了一个部件感知模块,通过动态预测每个人体实例的7个自适应人体部件相关点来感知人体部件。
  • 其次,与使用具有固定感受野的特征来预测不同身体的中心不同,引入了增强型中心感知分支,通过聚集自适应人体部位相关点的特征来进行感受野自适应,捕获不同姿势的变形,从而更精确地感知中心;
  • 最后,提出了一个Two-hop回归分支,其中自适应人体部位相关点作为一跳节点,动态分解远程中心到关节偏移。在推理过程中,只需要一个单步解码过程,通过组合中心位置和中心到关节的偏移来形成人体姿势,而无需任何优化和技巧。

主要贡献概括如下:

  • 将人体部位表示为点,并进一步利用自适应点集来表示人体实例。这是第一个提出精细获得和自适应身体表示的人,它更能捕获各种姿势变形,并自适应分解长距离中心到关节偏移。
  • 基于新的表示提出了一个紧凑的单阶段可微网络,称为AdaptivePose。具体来说,引入了一个新的部件感知模块,通过回归7个与人体部件相关的点来感知人体部件。通过使用人体部位相关点进一步提出了增强的中心感知分支,以更精确地感知人体中心,以及Two-hop回归分支,以有效分解长距离中心到关节偏移。
  • 本文的方法大大简化了多人姿势估计的流水线,在COCO测试开发集上实现了最佳速度精度权衡,即67.4%AP/29.4 fps、68.2%AP/22.2 fps(DLA-34)和71.3%AP/9.1 fps(HRNet-W48),无需任何改进和后期处理。

2、相关方法


2.1、Top-Down方法

给定任意RGB图像,Top-Down方法首先检测人体实例的位置,然后分别定位其关键点。具体来说,每个人体的区域都会被裁剪并调整到统一的大小,以使其具有优越的性能。Top-Down方法主要关注网络的设计,以提取更好的特征表示。

HRNet维护高分辨率表示,并在整个过程中反复融合多分辨率表示,以生成可靠的高分辨率表示。然而,由于检测优先范式导致的效率低下,Top-Down的方法对于具有严格延迟限制的实时系统通常是不可行的。

2.2、Bottom-up方法

Top-Down的方法相比,Bottom-up的方法首先用不同的尺度定位所有实例的关键点,然后将它们分组给相应的人。Bottom-up的方法主要集中于有效的分组过程。

例如,CMU-pose提出了一种名为Part Affinity FieldsPAF)的非参数表示法,该表示法对肢体的位置和方向进行编码,以将关键点分组到图像中的各个个体。

AE同时输出每个身体关节的关键点热图和标签热图,然后将具有类似标签的关键点分配给个人。

然而,值得注意的一种情况是,分组过程作为后处理过程仍然计算复杂且冗余。

2.3、Point-based表征

基于关键点的方法通过中心或成对角表示实例,并已应用于许多任务中。由于它们总是比基于Anchor的表示更简单、更高效,因此受到了广泛关注。

CenterNet建议使用关键点估计来查找中心,然后回归其他目标属性,例如大小,以预测边界框。

SPM通过根关节表示人,并进一步表示固定层次的身体表示来估计人体姿势。

Point-Set Anchors建议利用一组预定义的点作为姿势Anchor,为回归提供更多信息。

DEKR利用该中心对人类实例进行建模,并使用多分支结构,该结构采用自适应卷积集中于每个关键点区域,以进行单独的关键点回归。

与以前使用中心或预定义姿势Anchor来建模人体实例的方法不同,本文建议通过一个自适应点集来表示人体实例,包括中心和7个人体部位相关点,如图2(a)所示。这种新的表示方法能够捕捉人体的各种变形,并自适应分解长距离位移。


3、本文方法


3.1、Body表征

与以前的Body表示方法不同,本文提出了一种自适应点集表示法,它使用中心点和7个与人体部位相关的点以细粒度的方式表示人体实例。该表示引入了自适应人体部位相关点,用于细粒度捕捉具有各种变形的结构化人体姿势,并自适应地将长距离中心到关节的偏移分解为较短的偏移,同时避免沿着固定关节骨骼传播的累积误差。

特别是,根据人体的固有结构,手动将人体分为7个部分(即面部、肩部、左臂、右臂、臀部、左腿和右腿),如图2(b)所示。每个分割的人体部位都由一个自适应人体部位相关点表示,该点从人体中心动态回归。该过程可以表述为:

image.png

其中,表示实例中心,其他表示7个自适应人体部位相关点,分别对应于面部、肩部、左臂、右臂、臀部、左腿和右腿。人类实例inst由点集精细表示。为了方便起见,用于指示7个与人体部位相关的点。然后,利用人体部位相关点来定位属于相应部位的关键点,如下所示:

image.png

新的表示方法从实例(身体中心)开始,到部分(自适应人体部位相关点),再到关节(身体关键点),形成人体姿势。

这种细粒度表示提供了一个单阶段的解决方案,因此提出构建一个单阶段可微回归网络来估计多人姿势,其中部件感知模块被提议用于预测7个与人体部件相关的点。通过使用自适应人体部位相关点,引入增强中心感知分支来感知具有不同姿势变形和比例的人体中心。同时,提出了Two-hop回归分支,通过中心到零件到关节的方式回归关键点。

3.2、Single-stage Network

1、Overall Architecture

image.png

如图3所示,给定一个输入图像,首先通过主干提取一般语义特征,然后通过3个精心设计的组件来预测特定信息。利用部件感知模块从每个人体实例的假设中心回归7个自适应人体部件相关点。然后,通过聚集自适应点的特征来预测中心热图,从而在增强中心感知分支中进行感受野自适应。此外,Two-hop回归分支采用自适应人体部位相关点作为one-hop节点,间接回归中心到每个关键点的偏移量。

2、Part Perception Module

image.png

在这种新的表示方法的基础上,根据人体的固有结构,将每个人体实例人工划分为7个细粒度部分(即面部、肩部、左臂、右臂、臀部、左腿、右腿)。

部件感知模块通过预测7个自适应人体部件相关点来感知人体部件。对于每个部分,自动回归一个自适应点来表示它,而无需任何明确的监督。

如图4所示,将特征馈送至3×3卷积层,以将中心的14个通道偏移回归到7个自适应人体部位相关点。这些自适应点充当中间节点,用于后续预测。

3、Enhanced Center-aware Branch

在以往的工作中,通过每个位置具有固定感受野的特征来预测不同尺度和姿势的人体实例的中心。作者提出了一种新的增强中心感知分支,用于聚合7个自适应人体部位相关点的特征,以进行精确的中心估计。它可以被视为感受野适应过程,也可以捕捉姿势变形和尺度的变化。

如图4所示,使用3×3 conv+relu的结构来生成特定于分支的特征。在增强的中心感知分支中,是分支特有的特征,每个位置都有固定的感受野。

首先进行线性变换,压缩特征以获得压缩特征,然后在上通过双线性插值提取自适应点的特征向量,可以认为是图3中提到的一种扭曲操作。将提取的特征命名为,对应于7个手动分割的人体部位(即面部、肩部、左臂、右臂、臀部、左腿、右腿),并将它们与连接以生成特征。

由于位于7个分割部分上的预测自适应点相对均匀地分布在人体区域,因此上述过程可以视为根据人体尺度的感受野自适应以及细粒度捕捉各种身体变形。最后,使用具有自适应感受野的预测中心定位的单通道概率图。

使用平均值和自适应方差的高斯分布来生成GT中心热图。对于增强的中心感知分支的损失函数,以减少损失的方式采用 pixel-wise focal loss 如下所示:

其中N表示正样本的数量,和表示预测的置信分数和相应的GT。和是超参数,设置为2和4。

4、Two-hop Regression Branch

利用Two-hop回归方法预测位移,而不是直接回归中心到关节偏移。通过这种方式,部件感知模块预测的自适应人体部件相关点充当One-hop节点,将远程中心到关节偏移自适应分解为中心到部件和部件到关节偏移。

与增强的中心感知分支类似,首先利用3×3 conv+relu的结构来生成分支特定的特征,在Two-hop回归分支中称为Fr。然后,将Fr输入到单独的可变形卷积中,为每个人体部位生成单独的特征Fip。然后,通过对相应特征Fip的扭曲操作,在自适应点提取特征向量。

为了方便起见,将提取的特征表示,对应于7个分割部分(即面部、肩部、左臂、右臂、臀部、左腿和右腿)。提取的特征负责通过单独的1×1卷积层定位属于相应部分的关键点。例如,用于定位眼睛、耳朵和鼻子,用于定位左腕和左肘,用于定位左膝和左踝。

Two-hop回归分支输出一个34通道张量,对应于从中心偏移到17个关键点的x-y偏移,通过Two-hop方式进行回归,如下所示:

image.png

其中,和分别表示从中心到自适应人体部位相关点的偏移(图4中提到的One-hop偏移)和从人体部位相关点到特定关键点的偏移量(图4提到的第二跳偏移)。预测的偏移量由L1 Loss监控,且监控仅作用于正关键点位置,其他负位置被忽略。损失函数公式如下:

image.png

其中,是从中心到每个关节的GT偏移。K是正关键点位置的数量。

5、训练和推理细节

在训练过程中,使用一个辅助训练目标来学习关键点热图表示,这使得特征能够维护更多的人体结构几何信息。特别是,添加了一个并行分支来输出对应于17个关键点的17通道热图,并应用具有自适应方差的高斯核来生成GT关键点热图。

将此训练目标表示为,类似于等式3。唯一的区别是N表示正关键点的数量。辅助分支仅用于训练过程,在推理过程中被删除。针对多任务训练的总目标函数为:

image.png

在推断过程中,增强型中心感知分支输出指示位置是否为中心的中心热图。Two-hop回归分支输出从中心到每个关节的偏移。首先在中心热图上使用5×5最大池化核来选取人体中心,以保持20个候选点,然后检索相应的偏移量,形成人体姿势,无需任何后处理和额外细化。具体来说,将预测中心表示为。上述解码过程如下:

image.png

其中是第i个关键点的坐标。与DEKR不同,DEKR通过双线性插值使用每个回归关键点的热值平均值,AdaptivePose只利用中心热值作为快速推断的姿势分数。

相关文章
|
7月前
|
机器学习/深度学习 监控 算法
yolov8+多算法多目标追踪+实例分割+目标检测+姿态估计(代码+教程)
yolov8+多算法多目标追踪+实例分割+目标检测+姿态估计(代码+教程)
|
6月前
|
机器学习/深度学习 算法 数据可视化
【从零开始学习深度学习】46. 目标检测中锚框的概念、计算方法、样本锚框标注方式及如何选取预测边界框
【从零开始学习深度学习】46. 目标检测中锚框的概念、计算方法、样本锚框标注方式及如何选取预测边界框
|
7月前
|
机器学习/深度学习 编解码 人工智能
论文介绍:HigherHRNet——用于自下而上人体姿态估计的尺度感知表示学习
【5月更文挑战第22天】HigherHRNet是针对自下而上人体姿态估计的尺度感知方法,通过构建高分辨率特征金字塔,改善多尺度人体姿态估计的准确性。该论文提出的新架构在COCO测试集上提高了2.5%的中号人物平均精度,达到70.5%的AP,且在CrowdPose上超越所有自上而下方法,实现67.6%的AP。作者通过消融实验验证了各个组件的重要性,并指出未来可优化模型以适应更复杂场景。论文链接:[https://arxiv.org/abs/1908.10357](https://arxiv.org/abs/1908.10357)
54 1
|
机器学习/深度学习 传感器 编解码
2023最新 | 单目深度估计网络结构的通用性研究
单目深度估计已经被广泛研究,最近已经报道了许多在性能上显著改进的方法。然而,大多数先前的工作都是在一些基准数据集(如KITTI数据集)上进行评估的,并且没有一项工作对单目深度估计的泛化性能进行深入分析。本文深入研究了各种骨干网络(例如CNN和Transformer模型),以推广单目深度估计。首先,评估了分布内和分布外数据集上的SOTA模型,这在网络训练期间从未见过。然后,使用合成纹理移位数据集研究了基于CNN和Transformer的模型中间层表示的内部属性。通过大量实验,观察到transformer呈现出强烈的形状偏差,而CNN具有强烈纹理偏差。
2023最新 | 单目深度估计网络结构的通用性研究
|
7月前
|
编解码 算法 自动驾驶
【计算机视觉】基于光流特征的目标跟踪算法LK光流法的讲解(图文解释 超详细)
【计算机视觉】基于光流特征的目标跟踪算法LK光流法的讲解(图文解释 超详细)
490 0
|
数据采集 监控 算法
【分布鲁棒、状态估计】分布式鲁棒优化电力系统状态估计研究[几种算法进行比较](Matlab代码实现)
【分布鲁棒、状态估计】分布式鲁棒优化电力系统状态估计研究[几种算法进行比较](Matlab代码实现)
104 0
|
算法 数据挖掘 计算机视觉
基于自动模糊聚类的图像分割研究(Matlab代码实现)
基于自动模糊聚类的图像分割研究(Matlab代码实现)
110 0
|
机器学习/深度学习 传感器 分布式计算
基于模糊RBF神经网络轨迹跟踪研究(Matlab代码实现)
基于模糊RBF神经网络轨迹跟踪研究(Matlab代码实现)
107 0
|
数据挖掘
【鲁棒】使用概率轨迹的鲁棒集成聚类研究(Matlab代码实现)
【鲁棒】使用概率轨迹的鲁棒集成聚类研究(Matlab代码实现)
|
机器学习/深度学习 固态存储
姿态估计 | 基于CenterNet究竟还可以做多少事情?AdaptivePose便是经典!(二)
姿态估计 | 基于CenterNet究竟还可以做多少事情?AdaptivePose便是经典!(二)
89 0
下一篇
DataWorks