Cross View fusion for 3D Human Pose Estimation 论文解读

傷城~ 2022-12-25 05:51 189阅读 0赞

paper title: Cross View fusion for 3D Human Pose Estimation
paper link:https://arxiv.org/abs/1909.01203
oral or demo video:https://www.youtube.com/watch?v=CbTUC7kOk9o
project: -
github:https://github.com/microsoft/multiview-human-pose-estimation-pytorch
conf & anthor:ICCV 19, Haibo Qiu(USTC,MSRA) et al;
arXiv submit v1:2019.09

主要内容

这篇文章主要提出一种多视图融合的3D姿态估计方法,主要分为三部分:(1)是使用2D关键点检测网络分别对各个视图做关键点检测,(2)是对不同视图的结果进行融合,(2)是用递归的图结构模型估计3D人体姿态。

方法流程

多视图融合
由于3D姿态估计的准确性严重依赖于2D关键点检测的准确性,但是目前的2D姿态估计由于遮挡、相机视角等原因,检测结果并不能做到很准确。所以这篇文章想通过不用视角下的heatmap进行融合,以提高2D关键点的准确性。
总体的流程如下,首先多个视图得到的图片分别独立经过2D检测网络输出得到heatmap,然后将不同视图的heatmap进行融合。2D检测和融合是用一个CNN实现的,可以实现端到端的训练。
pipeline
对于两个相机视图 C u , C v C_{u},C_{v} Cu​,Cv​,视图融合可以由以下的公式表示:
x i u ← x i u + ∑ j = 1 ∣ Z v ∣ w j , i x j v , ∀ i ∈ Z u x^{u}_{i} \leftarrow x^{u}_{i} + \sum^{|Z^{v}|}_{j=1} w_{j,i}x^{v}_{j}, \forall i \in Z^{u} xiu​←xiu​+j=1∑∣Zv∣​wj,i​xjv​,∀i∈Zu
其中:

  • Z u , Z v Z^{u},Z^{v} Zu,Zv分别表示视图 C u , C v C_{u},C_{v} Cu​,Cv​输出的heatmap上的元素集合;
  • x i u , x j v x^{u}_{i},x^{v}_{j} xiu​,xjv​分别是示视图 C u , C v C_{u},C_{v} Cu​,Cv​上的第i和j个位置处的heatmap的值;
  • w j , i w_{j,i} wj,i​表示 C u C_{u} Cu​上第i个位置对于与 C v C_{v} Cv​上第j个位置的关联权重;

这个权重 w j , i w_{j,i} wj,i​是通过一个全连接网络学习到的。

如下图所示,3D空间中的一个点,会在两个相机视图上成像(都能看到这个点的情况下),也就是说 C u C_{u} Cu​上的一个点会和 C v C_{v} Cv​上的点有关联,由于没有深度,那么根据对极线原理, C u C_{u} Cu​上的一个点对应到 C v C_{v} Cv​上是一条对极线。
epipolar\_geometry
文章中提出两种方法来学习权重,一是只学习这条对极线上的权重,其他点的权重在当前样本学习的时候置为0;二是不做限制,让网络自己去学习权重;文章实验发现这两种方法的结果差不多,最后用的后一种更简单的方法。
那在训练的过程中,网络已经学习到了相机之间的位置关系。对于这个问题,文章也提出了一种解决方案使当前模型适应于新的环境。

RPSM(递归图结构模型)
文章采用图结构表示人体: S = J 1 , J 1 , . . . , J M S={J_{1},J_{1},…,J_{M}} S=J1​,J1​,…,JM​,其中 J i = [ x i , y i , z i ] J_{i}=[x_{i},y_{i},z_{i}] Ji​=[xi​,yi​,zi​]。给定一个3D姿态 S S S和2D的heatmap F F F,那么后验为:

p ( S ∣ F ) = 1 / Z ( F ) ∏ i = 1 M ϕ i c o n f ( J i , F ) ∏ ( m , n ) ∈ ε ψ l i m b ( J m , J n ) p(S|F) = 1/Z(F) \prod^{M}_{i=1}\phi^{conf}_{i}(J_{i},F) \prod_{(m,n) \in \varepsilon}\psi^{limb}(J_{m},J_{n}) p(S∣F)=1/Z(F)i=1∏M​ϕiconf​(Ji​,F)(m,n)∈ε∏​ψlimb(Jm​,Jn​)
其中:

  • F F F是2D的多个视图的heatmap;
  • Z ( F ) Z(F) Z(F)是配分函数;
  • ε \varepsilon ε是人体关节点连接起来的边的集合;
  • ϕ i c o n f ( J i , F ) \phi^{conf}_{i}(J_{i},F) ϕiconf​(Ji​,F)是基于多视图的2D heatmap的一元势函数;
  • ψ l i m b ( J m , J n ) \psi^{limb}(J_{m},J_{n}) ψlimb(Jm​,Jn​)是点对势函数,编码了肢体长度约束;

人体的图模型结构如下图所示,含有17个关节点和16个边:
human\_graph\_model

(1)状态空间离散化
首先根据所有视图下的人体根关节的2D位置,通过三角计算的方式计算出跟关节的3D位置。然后以此为中心设定一个边长为2000毫米的立方体,并将其划分为 N x N x N NxNxN NxNxN个小立方体网格 G G G;

(2)一元势函数
每一个人体关节点假设是网格 G G G中的一个小格子,具体由其世界坐标位置确定;使用各个相机的参数将3D关节点的位置投影到heatmap F F F上,并得到对应的confidence值,然后将所有的confidence计算均值作为一元势函数;

(3)点对势函数
离线处理时,对人体图模型的边集合 ε \varepsilon ε中的一对关节点 ( J m , J n ) (J_{m},J_{n}) (Jm​,Jn​)计算训练集中的平均长度 l m , n ∗ l^{*}_{m,n} lm,n∗​肢体长度的先验;在预测时,点对势函数定义为:

ψ l i m b ( J m , J n ) = { 1 , i f l m , n ∈ [ l m , n ∗ − ϵ , l m , n ∗ + ϵ ] 0 , otherwise \psi^{limb}(J_{m},J_{n}) = \begin{cases} 1,if \ l_{m,n} \in [l^{*}_{m,n}-\epsilon,l^{*}_{m,n}+\epsilon] \\ 0, \text{otherwise} \end{cases} ψlimb(Jm​,Jn​)={ 1,if lm,n​∈[lm,n∗​−ϵ,lm,n∗​+ϵ]0,otherwise​
其中, l m , n l_{m,n} lm,n​是关节点 J m , J n J_{m},J_{n} Jm​,Jn​之间的距离, ϵ \epsilon ϵ设置为150毫米。点对势函数这一项会使学习的3D姿态有合理的肢体长度。

最后就是要最大化后验 p ( S ∣ F ) p(S|F) p(S∣F),可以通过动态规划求解,计算复杂度是 O ( N 6 ) O(N^{6}) O(N6)。

递归图结构模型(Recursive Pictorial Structure Model)
PSM模型的精度受网格离散化的网格数目影响较大,提高网格数目能够提高精度,但是会增加计算量。文章提出一种递归调优的方法优化关节点的3D位置,将求解过程分为多个阶段,在初始阶段设置一个较小的网格划分数目(N=16),得到一个粗略的结果,然后在下一阶段,以上一步的结果位置的立方体再细化为更小的立方体,再次求解。如下。
RPSM

实验结果

文章做了一些对比试验,得到一些结论:

  • 在2D点准确度较差时,RPSM比Triangulation方法显著好;在2D结果比较准确的时候,效果相当;
  • RPSM比PSM,可以逐步减小误差,达到收敛;
  • 使用多视图特征融合,可以显著降低误差;
  • 与其他方法的结果比较上,体现出更小的平均误差(31.17mm);

泛化性:
(1) 对于新数据集 TotalCapture: 结果相比其他论文更好,视图融合比使用单视图能有效提高准确性;
(2) 对于新的相机摆放设置:在一个新的相机布置环境上,使用伪随机的label进行训练,就可以达到较好的效果(43mm),并不一定需要当前的相机布置下的标注数据进行训练;

发表评论

表情:
评论列表 (有 0 条评论,189人围观)

还没有评论,来说两句吧...

相关阅读