Pose Anything正式开源 | 单模型实现任意目标类别的关键点定位,通用才是硬道理!

665次阅读
没有评论

点击下方卡片,关注「集智书童」公众号

点击加入👉「集智书童」交流群

Pose Anything正式开源 | 单模型实现任意目标类别的关键点定位,通用才是硬道理!

传统2D姿态估计模型受到其特定类别设计的限制,仅适用于预定义的对象类别。在处理新对象时,由于缺乏相关的训练数据,这一限制变得尤为困难。

为了解决这个限制,引入了一种面向对象的通用姿态估计(CAPE)方法。CAPE旨在使用单个模型实现任意对象类别的关键点定位,只需要最小数量带有注释关键点的支持图像。这种方法不仅实现了基于任意关键点定义的对象姿态生成,还显著降低了相关的成本,为各种适应性强的姿态估计应用铺平了道路。

作者提出了一种新的CAPE方法,该方法利用通过新设计的图Transformer解码器利用关键点之间的固有几何关系。通过捕获并整合这种关键的结构信息,作者的方法增强了关键点定位的准确性,这标志着与传统CAPE技术相比,作者不再将关键点视为独立的实体。

作者在MP-100数据集上验证了本文的方法,该数据集包括超过20,000张图像,涵盖100多个类别。本文的方法在1-shot和5-shot设置下分别取得了显著的改进,分别提高了2.16%和1.82%。此外,本文的方法的全端训练演示了与之前CAPE方法相比的伸缩性和效率。

代码:https://orhir.github.io/pose-anything/

1 Introduction

二维姿态估计,也称为关键点定位,近年来在计算机视觉研究中取得了显著的进展,在学术和工业领域都找到了多种应用。这项任务涉及在图像中预测物体特定语义部分的位置。值得注意的是,它在视频理解、虚拟现实等领域的人体姿态估计、动物姿态估计(动物学)、以及自动驾驶车辆的车辆姿态估计(自动驾驶)等方面起着至关重要的作用。

然而,传统姿态估计模型的一个基本限制是其固有的类别特定性。这些模型通常仅在预定义的对象类别内工作,限制了它们的用途仅限于它们进行训练的领域。因此,由于缺乏相关的训练数据,这些模型在涉及新对象的现实生活中应用时,由于缺乏相关数据而受到限制。

Pose Anything正式开源 | 单模型实现任意目标类别的关键点定位,通用才是硬道理!

为了应对这个挑战,提出了面向对象的通用姿态估计(CAPE)方法。CAPE旨在使用单个模型为任意对象类别执行关键点定位,通过使用一个或几个带有关键点注释的支持图像。这种方法使得基于任意关键点定义的对象姿态生成成为可能。显著的是,它大大降低了与每个新类别相关的数据收集、模型训练和参数调优的开销。这为姿态估计领域中的更灵活和可适应的应用铺平了道路。图1展示了作者工作的部分结果。

当前的CAPE方法将支持关键点与Query图像中的相应关键点进行匹配。匹配是在潜在空间中进行的,以方便关键点的定位。与以前的CAPE方法相比,一个显著的区别在于它们将关键点视为单个、不连通的点。与这些方法不同,作者认为对象的底层几何结构具有重要意义。这个结构作为一个强大的先验,可以显著提高关键点定位的准确性。在这个认识的基础上,作者引入了一种新的图Transformer解码器,专门设计用于捕获和整合这种关键的结构信息。通过这样做,作者旨在利用关键点之间固有的关系和依赖性。

作者在面向对象的通用姿态估计基准数据集MP-100上评估作者的方法。这个数据集包含超过20,000张来自100多个类别的图像,包括动物、车辆、家具和服装等。它由现有的类别特定姿态估计数据集中的样本组成。由于一些骨骼数据缺失,作者从原始数据集中收集了骨骼注释,并为缺失骨骼定义的几个类别进行了注释。

在1-shot和5-shot设置下,作者的方法分别比CapeFormer的先前最佳方法提高了2.16%和1.82%。作者的方法是端到端训练的,并显示出与以前的方法相比的伸缩性和效率。

总之,作者提出了三个主要贡献:

  1. 提出了一种新的方法,利用关键点之间的几何关系,通过一种新型的图Transformer解码器来实现。

  2. 提供了带有所有类别骨骼注释的MP-100数据集的更新版本。

  3. 在MP-100基准测试上的最先进性能。

2 Related Works

Detection Transformer

DETection Transformer(DETR)在简单性和概念上非常直观,并且具有广泛适用性,只需要极少的专业领域知识,同时避免了定制标签分配或非极大值抑制的需要。

然而,原始的DETR设计存在诸如收敛速度慢和检测精度降低等挑战。为了解决这些问题,出现了许多后续研究,这些研究改进了DETR范式。这些工作为开发顶级目标检测器铺平了道路,利用了重新引入多尺度特征和局部交叉注意力计算等创新。

检测问题和姿态估计之间的联系日益突出,前者主要关注边界框估计和定位,后者则聚焦于关键点定位。认识到这一点,作者将DETR模型的多项改进纳入最新的面向对象的通用姿态估计方法中,从而提高了其性能。

Category-Agnostic Pose Estimation

姿态估计的主要目标是准确地定位对象或实例的语义关键点。传统上,姿态估计方法主要针对特定类别,如人类,动物或车辆。现有研究主要集中在设计强大的卷积神经网络或基于Transformer的架构。然而,这些方法仅适用于在训练过程中遇到的物体类别。

一个相对未探索的方面是面向对象的通用姿态估计,由POMNet提出,其中重点转向构建通用表示和相似度度量。这种方法通过在嵌入空间中将支持关键点与Query图像进行比较来预测关键点,解决了在训练过程中未遇到的物体类别的问题。

POMNet 采用了一个Transformer来编码Query图像和支持关键点,并通过将支持关键点与Query图像特征的拼接直接预测相似度。CapeFormer 将匹配范式扩展到两阶段框架,通过校正不可靠的匹配结果来提高预测精度。作者遵循CapeFormer的方法,用更可靠的Baseline增强他们的方法。此外,作者关注几何结构的重要性,并将其无缝集成到作者的架构框架中。

Graph Neural Network

最初设计用于类似于社交网络、引用网络和生物化学图等图形数据,GCNs在计算机视觉任务中逐渐获得关注。它们找到了各种应用,如场景图生成、点云分类和动作识别。场景图生成涉及将图像解析为表示对象及其关系的图形,通常与目标检测相结合。从激光雷达扫描中得到的点云可以使用GCNs进行有效地分类和分割。此外,GCNs还被用于处理人类关节自然构建的图,以进行人类活动识别。最近的工作甚至建议将GNNs用作视觉任务的基础特征提取器,将图像表示为图形结构。

与GCNs不同,Graph Attention Networks(GAT)引入了自注意力的概念。GAT通过掩码注意力的方式将图形结构集成到注意力机制中。类似地,aGCN依靠自注意力来确定相邻关节的权重,其差异在于它们选择的激活函数和转换矩阵。虽然GAT和aGCN在聚合相邻关节方面取得了进步,但受限的感知域仍然存在挑战。Zhao等人通过引入可学习的权重矩阵到邻接矩阵来解决这个问题,使得学习2D关节之间的语义关系成为可能。同样,林等人通过调整编码器层维度的方式利用标准Transformer编码器。

然而,这些方法,如前所述,未能充分利用固有的图形结构。为了解决这个挑战,Graformer提出了一种涉及随后采用可学习邻接矩阵的卷积层注意力的解决方案。然而,他们的方法主要针对特定领域的应用,因此对作者这种面向对象的通用姿态估计任务不太适合。

作者的面向对象的通用姿态估计方法通过将自注意力和图卷积网络集成到解码器架构中来解决这个问题。自注意力促进关键点之间的可学习连接,而图卷积网络则利用骨骼图的输入,帮助模型在语义相关的关键点之间共享信息。

3 Method

作者首先介绍了一个基于CapeFormer的增强Baseline。然后,作者描述了一种基于图的方法,该方法利用数据中可用的强大图结构。作者的方法的全架构如图2所示。

Pose Anything正式开源 | 单模型实现任意目标类别的关键点定位,通用才是硬道理!

An Enhanced Baseline

作者对CapeFormer架构做了两个更改。首先,作者用一个可比较大小且更强的基于Transformer的SwinV2-T[22]backbone替换了其Resnet-50[14]backbone。作者还删除了位置编码,因为作者发现它引入了关键点顺序的不可取依赖性。使用这些更改,作者创建了一个增强的Baseline,其基本架构与CapeFormer相同。作者在实验部分详细阐述了这些更改的影响。

为了完整性,作者简要介绍一下CapeFormer的设计,其设计类似于DETR架构,由4个子网络组成:

共享backbone:使用预训练的ResNet-50提取输入支持图像和Query图像的特征。为了获取支持关键点的特征,作者对支持图像特征图和关键点掩码进行逐元素乘法。这些掩码是通过在支持关键点位置为中心放置高斯核创建的。在涉及多个支持图像的场景中,如5-shot设置,作者计算来自不同图像的支持关键点特征的平均(在特征空间中)值。这导致Query特征图和 Support Keypoint特征

Transformer编码器:使用Transformer编码器将支持关键点特征和Querypatch特征的信息进行融合。编码器由三个Transformer块组成,每个块都包含一个自注意力层。在进入自注意力层之前,输入的支持关键点和Query特征被拼接,然后再次分离。输出是精炼的Query特征图和精炼的支持关键点特征

相似度感知提议生成器:提议生成器将支持关键点特征与Query特征对齐,从而生成相似度图。从这些图中,作者选择峰作为相似度感知的提议。为了在效率和灵活性之间取得平衡,采用了一种可训练的内积机制[31]来明确表示相似度。

Transformer解码器:为了从Query特征图中解码关键点位置,利用了一个Transformer解码器网络。Transformer解码器由三个层组成,每个层都包含自注意、交叉注意力和前馈块。应用了类似于先前工作的迭代精炼策略,以使每个解码器层能够预测前一个坐标预测的坐标偏移量。此外,类似于Conditional DETR的方法,解码器利用预测的坐标来提供增强的参考点以从图像特征图中池化特征。

A Graph-Based Approach

作者工作的核心思想是利用姿态图中所编码的几何结构。作者的方法基于增强的Baseline,用作者的新图Transformer解码器模块替换了Transformer解码器模块。现在作者来讨论作者的新图Transformer解码器以及相关的损失函数。

Graph Transformer解码器(GTD)

作者引入了一个名为图Transformer解码器(GTD)的解码器,该解码器直接在图结构上工作。如图3所示,GTD在Transformer解码层中使用了新的前馈网络,其中包括一个图卷积网络层(GCN)。

Pose Anything正式开源 | 单模型实现任意目标类别的关键点定位,通用才是硬道理!

作者认识到,有助于模型关注相关信息的自注意力机制可以被视为具有可学习邻接矩阵的图卷积网络(GCN)。当作者处理单一类别的姿态估计时,这种机制足够学习关键点之间的关系并将学习到的结构集成到模型中。然而,对于面向对象的通用姿态估计(CAPE)任务,其中模型需要与各种对象类别进行工作,明确考虑关键点之间的语义连接是有益的。这有助于模型打破对称性,保持一致的结构,并通过邻居关键点之间的信息共享来处理噪声关键点。

作者将这个先验引入到Transformer解码器中。具体来说,GTD基于原始的CapeFormer解码器,将前馈网络从简单的MLP更改为GCN网络。为了解决深度GCNs中通常观察到的过度平滑问题,这可能导致节点特征的独特性降低,从而降低性能,作者在每个节点之后引入了一个线性层。图4说明了在交叉注意力层中实现图先验的威力。如图所示,早期层关注一个关键点,而后期层则考虑相邻的关键点(根据图结构)。

Pose Anything正式开源 | 单模型实现任意目标类别的关键点定位,通用才是硬道理!

原始解码器有三个主要组成部分:自注意力、交叉注意力和前馈网络。自注意力允许支持关键点之间进行自适应交互,将输入特征转换为。交叉注意力通过从Query特征块中提取局部定位信息,增强在建议位置上的注意力。这涉及将关键点定位嵌入与关键点特征拼接。交叉注意力的输入是(带定位嵌入)作为Query,块特征(带位置编码)作为Key,作为Value,结果是转换后的特征

最后,作者采用一种新的前馈网络来处理输出的关键点特征。为了引入先验几何知识,作者引入了一个图神经网络(GCN)层。这个GCN层进一步浓缩了关键点特征,有助于已知关键点之间的信息交换。

对于输入的输出值可以表示为:

其中是一个可学习的参数矩阵,是一个激活函数(ReLU),是对称归一化的邻接矩阵的形式,定义为表示节点与节点相连,其他地方为0。

输出特征用于从更新到的关键点位置。作者遵循[32],并使用以下更新函数:

其中分别是 sigmoid 和其逆函数。最后一个解码器层中的关键点位置被用作最终的 keypoints 预测。

训练损失遵循CapeFormer,作者使用两个监督信号:一个热力图损失和一个偏移量损失。热力图损失监督相似度度量和初始坐标建议,而偏移量损失监督本地化输出:

其中表示提议生成器输出的相似度热力图,是 sigmoid 函数,是GT热力图,是每个层输出的位置,是GT位置。总损失项为:

4 Experiments

作者使用MP-100数据集作为作者的训练和评估数据集,该数据集包含来自现有类别特定姿态估计数据集的样本。MP-100数据集包括超过20,000张图像,跨越100个不同的类别,不同类别中的关键点数量在68个之间变化。为了方便模型训练和评估,样本被分为五个不同的分割。值得注意的是,每个分割都确保训练、验证和测试类别相互独立,这意味着用于评估的类别在训练过程中是未见过的。

该数据集包括各种格式的部分骨骼注释,包括关键点索引的不同(有些从零开始,而另一些从一开始)。为了标准化和增强数据集,作者采用了一个统一的格式,其中包含了所有类别全面的骨骼定义。这个过程涉及交叉引用原始数据集,并在必要时进行手动注释以确保完整性和一致性。

为了量化作者的模型的性能,作者采用了概率正确关键点(PCK)指标,并按照POMNet和CapeFormer确立的标准,将PCK阈值设置为0.2。

Pose Anything正式开源 | 单模型实现任意目标类别的关键点定位,通用才是硬道理!

作者在图5中展示了作者的方法与先前的CAPE方法CapeFormer和POMNet1的定性比较。最后一列表示作者的完整方法,基于作者的增强Baseline,用作者的新GTD模块替换了先前的解码器。如可见,增强Baseline在关键点定位方面比先前的最先进技术更好。

此外,作者的方法中包含的结构信息作为关键点定位的强大先验,有助于打破对称性和在关键点之间创建结构一致性。图5的第一行和第三行分别显示了先验方法可能会混淆但不会混淆作者的例子,以及作者在关键点之间保持结构一致性的优越性。图5的补充部分有更多信息。

Implementation Details

为了公平比较,网络参数、训练参数和数据增强和预处理与CapeFormer保持一致:编码器和解码器都有三层,并且设置为2.0。模型基于MMPose框架构建,使用Adam优化器训练200个周期,批量大小为16,学习率设置为,并在第160和180个周期衰减10倍。更多的设计选择和评估可以在补充材料中找到。

增强 Backbone 。作者使用了一个更强的基于Transformer的SwinV2-T  Backbone ,而不是原始的ResNet-50 Backbone ,它也可以提供多尺度特征图。在尝试各种配置,包括多尺度和单尺度特征图后,作者发现将最终特征层的简单双线性上采样应用于直方图相似的结果,同时保留了简单性。

此外,作者通过使用具有较低方差的Gaussian内核掩码提取支持关键点特征,利用新 Backbone 的增强特征质量,对提取支持关键点特征进行了优化。这些简单的调整导致提高了3.2%。

禁用支持关键点标识符。CapeFormer引入了一个称为“支持关键点标识符”的关键点位置编码。这种编码是通过关键点的顺序进行正弦编码生成的。这种编码在显著提高了3%的PCK的同时,引入了对关键点顺序的依赖性。尽管数据集包含多种对象类别,但其中一些类别共享相同的关键点顺序。

这在作者将使用这种位置编码训练的模型评估为关键点顺序相反的数据时变得明显。结果是PCK大约下降了30%,表明模型已经变得非常专业化,针对特定的关键点格式。如果没有使用位置编码,这种急剧的下降是不存在的。作者认为,面向对象的通用姿态估计(CAPE)不应依赖这样的假设,而应容纳没有特定顺序的支持关键点。因此,作者从作者的Baseline中删除了这个编码。

Benchmark Results

作者将作者的方法与先前的CAPE方法CapeFormer和POMNet以及三个Baseline进行了比较:ProtoNet,MAML和Fine-tuned。有关这些模型评估的更多详细信息可以在[42]中找到。

Pose Anything正式开源 | 单模型实现任意目标类别的关键点定位,通用才是硬道理!

作者在MP-100数据集的1-shot和5-shot设置下报告了结果。如表1所示,增强Baseline模型在相对于CapeFormer对关键点顺序无偏见的设置下,优于先前的方法,并将平均PCK在1-shot设置下提高了0.94%,在5-shot设置下提高了1.60%。作者的基于图的方法进一步提高了性能,在1-shot设置下将增强Baseline提高了1.22%,在5-shot设置下提高了0.22%,实现了两种设置下的新状态最先进结果。

作者的设计也展示了可伸缩性。与基于DETR的模型相似,使用更大的 Backbone 可以提高性能。作者表明,作者的图解码器设计也增强了更大增强Baseline的性能,在1-shot和5-shot设置下分别将结果提高了1.02%和0.34%。

Pose Anything正式开源 | 单模型实现任意目标类别的关键点定位,通用才是硬道理!

为了评估作者模型的鲁棒性,作者使用来自不同域的图像来评估较小版本的作者的网络。结果如图6所示。作者的模型仅在真实图像上进行训练,展示了其在不同数据源(如卡通和虚构动物,由扩散模型创建)之间的适应性和有效性。此外,作者的模型在支持图像和Query图像来自不同域时,也展示了令人满意的表现。

Ablation Study

作者在MP-100数据集上进行了一系列的消融实验。首先,作者使用不同的 Backbone 评估作者的方法,展示了Swin Transformer架构在局部化任务上的优势。然后,作者通过评估使用错误的骨骼关系,展示了几何结构先验的贡献。最后,作者进一步通过评估使用掩码输入,展示了图结构的强大力量。作者将在MP-100的测试集的1-shot设置下,按照[32, 42]在MP-100的测试集的分割上进行所有消融实验。

不同的 Backbone 。作者用各种预训练 Backbone 评估作者的模型性能,包括基于CNN的 Backbone (ResNet-50)和两种不同的预训练Transformer Backbone ,即Dino和Swin V2。Dino和DinoV2是通过对自监督视觉Transformer进行自蒸馏训练的,从而获得鲁棒且精细的语义特征。

此外,这些编码的语义表示是相关但不同的物体类别之间的共享。Swin Transformer通过窗口机制重构自注意力,在视觉任务上实现了效率和性能的平衡。这种层次结构具有在不同尺度上建模的灵活性,并且与图像大小的线性计算复杂度相比较。如表2所示,SwinV2在保持效率与基于CNN的 Backbone 相当的同时,优于其他选项,提供了优越的结果。此外,使用更大的 Backbone 可以提高性能,但代价是效率和大小。

Pose Anything正式开源 | 单模型实现任意目标类别的关键点定位,通用才是硬道理!

评估图结构先验的贡献。为了评估图结构先验的贡献,作者使用随机图输入来评估作者的方法,每个实例的边连接都随机选择。这导致性能下降了9.57%,验证了图解码器和利用结构知识的贡献。

为了强调图信息的力量,作者在执行算法之前对支持/Query图像进行了部分遮挡。需要注意的是,Baseline模型和作者之间的区别在于新图基于前馈网络。图6(a)中的定量分析显示作者的方法始终优于Baseline模型。虚线水平表示基础操作,输出支持关键点的位置,保留结构。值得注意的是,作者的模型在支持图像的大部分被遮挡时仍能预测关键点。这表明模型已经学会了每个类别哪些关键点是相关的,并基于结构将它们匹配到支持特征。

Pose Anything正式开源 | 单模型实现任意目标类别的关键点定位,通用才是硬道理!

例如,在图7(b)(顶部),模型准确地预测了沙发结构的绝大部分关键点。然而,当Query图像的大部分被遮挡时,模型的性能迅速下降,尽管它保留了结构,如图7(b)(底部)所示。更多示例和附加的消融研究,请参阅补充材料。

5 Conclusion

作者提出了一种新颖的方法,用于面向对象的通用姿态估计(CAPE),通过认识到物体内部固有的几何结构的重要性。作者引入了一种强大的图Transformer解码器,通过捕获并整合结构信息,显著提高了关键点定位的准确性,从而利用关键点之间的关系和依赖性。此外,作者提供了一个更新的MP-100数据集版本,现在包括所有类别的骨骼注释,进一步推动了CAPE的研究。

作者的实验结果表明,与先前的最先进方法CapeFormer相比,作者的方法在很大程度上具有优势。在1-shot和5-shot设置下都有改进,作者的方法展示了其可伸缩性和效率,为计算机视觉领域中更灵活和可适应的应用开启了大门。

参考

[1]. Pose Anything: A Graph-Based Approach for Category-Agnostic Pose Estimation.

Pose Anything正式开源 | 单模型实现任意目标类别的关键点定位,通用才是硬道理!

扫码加入👉「集智书童」交流群

(备注:方向+学校/公司+昵称

Pose Anything正式开源 | 单模型实现任意目标类别的关键点定位,通用才是硬道理!

Pose Anything正式开源 | 单模型实现任意目标类别的关键点定位,通用才是硬道理!Pose Anything正式开源 | 单模型实现任意目标类别的关键点定位,通用才是硬道理!

Pose Anything正式开源 | 单模型实现任意目标类别的关键点定位,通用才是硬道理!

Pose Anything正式开源 | 单模型实现任意目标类别的关键点定位,通用才是硬道理!Pose Anything正式开源 | 单模型实现任意目标类别的关键点定位,通用才是硬道理!想要了解更多:

前沿AI视觉感知全栈知识👉「分类、检测、分割、关键点、车道线检测、3D视觉(分割、检测)、多模态、目标跟踪、NerF

行业技术方案👉AI安防、AI医疗、AI自动驾驶AI模型部署落地实战👉CUDA、TensorRT、NCNN、OpenVINO、MNN、ONNXRuntime以及地平线框架」

欢迎扫描上方二维码,加入集智书童-知识星球,日常分享论文、学习笔记、问题解决方案、部署方案以及全栈式答疑,期待交流!

免责声明凡本公众号注明“来源:XXX(非集智书童)”的作品,均转载自其它媒体,版权归原作者所有,如有侵权请联系我们删除,谢谢。
点击下方“阅读原文”,了解更多AI学习路上的「武功秘籍」

 

Read More 

正文完
可以使用微信扫码关注公众号(ID:xzluomor)
post-qrcode
 
评论(没有评论)
Generated by Feedzy