文章地址:arxiv.org/pdf/2002.12625.pdf
1.文章简介
这篇文章提出了一种利用多视点视频输入的实时多人运动捕捉算法,提出了4D关联图,并且提出了启发式搜索的4D肢体束解析思想,最后提出束Kruskal算法进行肢体束组装。
2.文章框架
a.采用bottom-up的Openpose对每一个视角进行初步提取特征,获取2Dheatmap和PAF(连接的置信度)
b.通过将前一帧中的身体部位和三维关节视为图节点,我们在节点之间构造具有显著语义的边,存在三种边缘:每个图像视图中连接相邻身体部位的逐视图解析边缘、跨视图连接同一身体部位的跨视图匹配边缘以及连接历史3D节点和2D候选的时间跟踪边缘
b.1 Parsing Edges and Matching Edges
在不考虑由先前重建的3D骨架引入的时间跟踪边缘的情况下,解析边缘和匹配边缘形成3D关联图G3D,图G3D直接扩展了具有跨视图几何匹配约束的原始逐视图多人解析问题,需满足以下条件
对于每视图解析边缘EP,直接将输入边缘权重定义为其PAF分数
对于交叉视图匹配边缘EV,权重是基于极线距离定义的,在3D空间中写为线到线距离
b.2 Tracking Edges
为了提高骨架重建的鲁棒性,利用时间先验,即前一帧的重建骨架来正则化关联问题,这形成了4D关联图G4D,将跟踪边缘连接概率定义为
需要满足两个条件:
b.3 Object function
c. 4D Limb Bundle Parsing
每一个关节束会有两个关节点团(clique)
clique可能会有很多种组合
找到真正的肢体束,但是直接最大化目标函数会鼓励这个肢体团选择尽可能多的边,甚至是假边。因此,为解决上述问题,需要对目标函数进行改进
d. 4D Skeleton Assembling-Kruskal algorithm
首先根据分数对所有4D肢体束进行排序,并建立一个优先级队列来存储它们,在每一次迭代中,从队列中取出一个具有最大数值的4D肢体束,并将其合并到4D骨架中。
在该合并过程中,所有2D关节(属于该束,来自不同视图)都应该具有相同的标记人物ID。然而,由于新添加的肢体束可能与已经分配的一些肢体束共享相同的4D关节,因此当这些2D关节在前一迭代中已经在不同视图上用不同的人物ID标记时,会出现冲突,见图5(a)。
为了消除这种冲突,我们提出了一种简单而有效的方法,根据关节所属的人,将新添加的肢体束拆分为小肢体束(图第5(b)段)。然后,我们重新计算每个小丛的目标函数,并推回到先前的队列进行进一步的组装。如果没有冲突,我们将束合并到骨架中,并标记2D关节。我们迭代弹出和合并,直到队列为空(图5(c))。
3.实验数据
4.可视化