NUS联合Sea AI Lab 发表 Multi-view Pose Transformer,完全端到端学习,超强可扩展性

作者 | 小马
编辑 | CV君
报道 | 我爱计算机视觉(微信id:aicvml)

✎ 编 者 言

从多视角估计多人三维人体姿态是一个比较challenge的研究方向,目前的方法都采用了多阶段的模式,整个框架比较复杂。最近NUS联合Sea AI Lab在NeurIPS-2021上发表了一篇论文『Direct Multi-view Multi-person 3D Human Pose Estimation』,提出了一个简单的方法Multi-view Pose Transformer,直接从多视角图片回归多人三维姿态结果,在CMU panoptic数据集上达到15.8mm的MPJPE,简单高效,且良好的可扩展性。

详细信息如下:

01 摘要

多人3D姿态估计要求准确地估计场景中的每个人的三维关节点位置,具有广泛的应用场景,包括行为识别和监测、姿态跟踪、虚拟现实等等。

从多视角估计3D姿态可以有效克服普通单视角设定中的固有问题(自遮挡,他遮挡,深度模糊性、不适定性),从而实现更加准确的姿态估计。

目前基于多视角的多人三维姿态估计方法都是多阶段的,主要有两类方法。一类首先独立地对每个视角进行多人姿态检测,接着依靠一些几何约束进行多视角匹配,最后再将每个人的多视角姿态结果进行融合恢复成3D姿态。另一类首先对每个视角估计关节点heatmap,然后通过投影获得一个对应整体空间的关节点heat-cube,基于此搭建一个类似两阶段物体检测的框架,进行多人的空间位置proposal和对每个人的姿态预测。

这些方法都是首先基于单目进行2D预测,然后再进行跨视角融合,这样都会受到单视角遮挡的影响,可能导致error accumulation,而且框架更加复杂,不利于实用和拓展。那么,是否可以直接从多视角图片回归多人的3D姿态呢?这个想法很简单,但要同时完成多视角信息融合,多人姿态检测很困难。

来自新加坡国立大学(NUS)和新加坡Sea AI Lab的研究人员设计了一个基于transformer的模型,有效直接地融合多视角信息,同时进行多人3D关键点回归。

02 方法

这里作者受transformer启发,将每个关节点用一个可学习的input embedding建模,输入特别设计decoder结构直接回归3D关键点位置。这些embedding被称为joint query,他们可以从数据中学习从而capture到一些关键点的先验信息(prior)。作者在设计decoder时引入新的projective attention机制来进行多视角信息融合,以及特殊的group-wise matched training来学习多人关键点预测,下面详细讲解模型设计。

Joint query embedding

首先,为了表示多人关键点,需要有一定数量的joint query。比如场景中最多有10个人,每个人有15个关节点,那么一共需要150个joint query。

最直接简单的做法就是直接采用每个joint一个单独的joint query,但是这样相同类别的joint 不能互相关联,导致人体姿态信息不能有效地在不同人之间share,因而泛化性不会很好。实际实验也发现结果确实不好。

为了解决这个问题,作者引入了层级设计:Hierarchical Joint Query Embedding。不同人之间share一组joint-level query(比如15个关节点就是15个),为了区分不同人,又引入了一组person-level query(比如最多10个人就是10个),这两组之间采用层级组合获得整个set的joint query。

 

在此基础上,为了让joint query更好适应到测试数据,获得更好的泛化性能,作者引入了dynamic query adaptation的设计。这里的motivation是原来的joint query 是从数据中学习但是input-independent的,因而不能capture到input sample的特征。所以这里将image feature进行pooling获得整体feature,再融合到层级query中。这个模块可以见图示。

Projective attention

想要在估计多人关键点的同时又融合多视角信息是这个框架必须解决的,为了达到这个目的,这里作者设计了projective attention来融合多视角信息并用于增强joint feature。不同于常规的dot product attention,这是一种更加有效的geometric-guided attention。

常规的dot product attention也可以用来在这里做多视角feature融合,但是由于要densely地计算attention来融合多视角feature,加上用于人体姿态估计的feature 本身resolution比较大的原因,会导致非常巨大的计算量。作者通过视角投影将3D关键点投影到每个视角,然后只融合投影点附近的信息,这样就解决了这个问题,实现了有效的多视角信息融合。

为了有效融合每个视角local 区域信息,这里受到deformable conv启发引入了deformable的机制,这个机制在2D检测比如deformable DETR中也有用到。

 

数学 formulation 如下(具体可以参考原文):

 

另一方面,transformer中position encoding能够引入位置信息,被证明对性能有极大帮助,比如2D 检测中的DETR。这里作者对于这个多视角的问题,借助camera ray来为模型引入多视角位置信息,从而有效的提升模型预测关键点的准确性。

具体来说,在projective attention的基础上,作者将每个视角的camera ray信息concatenate 每个视角上然后进行convolution把多视角位置信息融合进入多视角feature map:

 

作者将这个opertaion命名为RayConv。用RayConv引入了多视角位置信息的feature来计算projective attention可以有效增强后者融合得到的多视角joint feature,从而更准确的回归关键点位置。

 

03 整体框架和运作机制

整个框架由多层decoder构成,基于一开始输入的joint query,每层decoder 借助projective attention来fuse多视角信息,借助self-attention来交互不同joint之间的信息,这样增强joint feature。基于增强的joint feature,可以预测offset来refine 3D 关键点位置。refine 后3d 位置又用于更准确地fuse多视角信息。这样多层的decoder就可以实现直接的关键点regression了。

这个图表示了一层decoder的结构:

 

为了训练这个框架进行多人预测,作者受2D transformer检测(DETR)的启发,设计了匈牙利算法来匹配ground truth和prediction。Matching cost定义为人体的置信度(平均所有关节点)和精确度:

 

然后用匈牙利算法求取最有匹配:

 

基于最有匹配,就可以计算训练loss:

 

整体loss是由多层decoder求和得到:

04 实验

实验使用了三个数据集:CMU Panoptic, Shelf, Campus。其中Panoptic 为主要数据集,ablation实验和分析都在Panoptic上进行,其他两个为小数据集,标注不完全,数据量小,主要是验证结果。

Panoptic 上采用了VoxelPose的AP metric,在最严苛的AP25 metric下相比VoxelPose提升了超过8个点,同时MPJPE低了2mm,可以看出模型更加准确地估计关键点位置。inference 时间减少近一半,效率也提升了。

 

在shelf和campus上也达到了超过SOTA或者差不多的结果。

 

作者分析了模型inference效率相对于VoxelPose的优势,可以看出MvP对于不同人数inference时间是固定的,即使是到100个人,inference时间也比10个人的模型只多一点。而VoxelPose则基本处于线性增加的趋势,不利于scale到大的场景。

 

以下是qualitative可视化的结果,文章还进行了扩展,基于MvP学到的joint feature预测parametric 3D表示,从而实现body mesh的预测。

 

作者还对模型学到的projective attention和self-attention进行了可视化,projective attention可以有效找到并fuse每个视角关键点信息,self-attention则可以交互不同joint feature之间信息。作者发现对于一个关键点,self-attention主要关注同一个人的其他关键点,这也是合理的,因为人体有很强的先验和限制,比如人体姿态,骨架长度等等。

 

作者也进行了充分的ablation来验证模型的各种设计和超参数设定,包括RayConv的有效性,不同joint query设计的效果,inference 置信度阈值的影响,decoder 层数,视角数目,deformable sample的点数。具体分析可见原论文。

05 总结

Multi-view pose transformer(MvP)一个非常简单直接的框架,整个模型没有中间任务,没有像多视角2D pose匹配那样noisy的操作,也没有volumetric表征那样高计算量和容易出现quantization error的过程,完全end-to-end学习。有利于扩展到其他task,比如pose tracking,也有利于从更大规模的 pose 数据中学到更有用的信息从而实现更加准确泛化性更强的模型。

转载请注明:《NUS联合Sea AI Lab 发表 Multi-view Pose Transformer,完全端到端学习,超强可扩展性