通过协作学习和多视图模型拟合的三维人体姿态和形状估计
主要调研多视图下的人体重建和姿态估计(WACV 2021)
Abstract
之前的许多基于深度学习的方法试图仅依靠单视图RGB进行网络训练,本文提出新方法(MV-SMPLify):
1.用CNN从多视角的图像中归回SMPL模型的β和θ
2.用回归后的β和θ进行初始化,提出了在SMPLify上基于多视图优化的MV-SMPLify方法
3.利用优化后个参数去监督CNN模型训练,整体形成一个自监督框架,将CNN和基于优化的方案结合起来
Introduction
一般有两种方法估计三维人体pose 和 shape:
1.基于优化的方法(类似于smplify)
2.基于回归的方法(利用CNN)
Kolotouros等人[18]将一种基于优化的方法放入了基于回归的框架的循环中(优化和CNN相结合),并取得了良好的性能。SPIN代码: Learning to Reconstruct 3D Human Pose and Shape via Model-fitting in the Loop
笔记参考
但是他们在训练过程中只使用了一张单视图,本文在此基础上使用多视图
流程:
1.CNN从多视图中回归θreg
2.以θreg作为初始化θ在多视图上利用SMPLify,对θ进行优化,得到θopt。
3.使用θopt监督CNN训练
代码地址
Related work
多视角和CNN相关论文
End-to-end Recovery of Human Shape and Pose(HMR)
Learning to Estimate 3D Human Pose and Shape From a Single Color Image(SPIN)
Method
基于SPIN的网络结构,提出将多视图图像组成小批量输入网络训练,网络将每个单视图图像编码为包含SMPL模型的位姿θ 24*3,形状β 10,相机π 3 的85 维向量。这里的相机π=(s,tx,ty)采用的弱透视模型,s代表尺度参数,可以转换为相机的平移(这个忘记在哪篇论文提到了,后面看到再来补充)
The architecture of our regression CNN
对二维关节点的损失函数是,i代表输入的多视角的第i个视角的图像,
J
g
t
J_{gt}
Jgt代表2d关节点的真实值,
代表3D关节点到2D关节点的映射,利用的相机模型是π,也就是弱透视投影模型,
,10+72 维向量,
,代表3D关节点的位置,通过大θ算出来
损失函数
L
2
D
L_{2D}
L2D
Multi-view SMPLify
能量函数,在论文[22]中 还没看什么意思。
损失函数
L
大
θ
L_{大θ}
L大θ , 大θ
o
p
t
_{opt}
opt是通过上面能量函数优化出来的
损失函数
L
M
L_M
LM ,优化前的M - 优化后的M,mesh代表3d顶点,在SMPL中定义
损失函数
L
3
D
L_{3D}
L3D , 同M
总的损失函数L ,w代表权重
实验详情
训练过程:使用4个视图,batch = 16, w1,w2,w3,w4 = 5.0,5.0,1.0,0.001 ,图片尺寸224*224,Adam优化器、学习率l=3 * 10
−
5
^{-5}
−5、epoch=20, 迭代次数2441次,应该是用了16 * 2441张图。
训练集:Human3.6M , MPI-INF-3DHP
测试集:3DPW、Human3.6M , MPI-INF-3DHP
评估
评估标准:
the reconstruction error(重建错误) ,
Mean Per Joint Position Error (MPJPE)越小越好,
Percentage of Correct Keypoints with threshold 150 mm (PCK@150 mm)
和Area Under Curve(AUC) of 3D joint points越大越好
对比单视图方法在不同数据集上的评估
多视图方法上的评估
用了SMPL的估计和没用的情况下进行对比