原论文
如下图所示,给出运动人体的单目视频,抽取任意帧(下图中的红色框),本文的方法可以渲染出自由视角下的该姿态人体。难点在于需要合成在输入视频中可能不存在的相机角度下观察到的人体,并且保证真实感和细节(布料折叠和面部外观等)。
本文提出通过学习视频中任意姿态的人体图像,优化一个标准T形姿态下的人体表征(下图最右侧的MLP,类似于NeRF,是隐式并且连续的)。其中,需要借助运动场(motion field)将人体信息从观察空间映射到标准空间中。
-
本文采用了关节点的空间位置 J J J 和局部关节旋转 Ω \Omega Ω 来描述人体的姿态 p \mathbf{p} p,即 p = ( J , Ω ) \mathbf{p}=(J, \Omega) p=(J,Ω)。 通过现成技术得到的姿态不够准确,本文引入了 pose correction(下图中蓝色部分),固定空间位置不变,对 Ω \Omega Ω 进行矫正。
-
将运动场分解(图中黄色部分)为骨架刚性运动和非刚性运动(由MLP拟合连续场),是一个由粗到精的过程。
-
其中绿色部分采用了逆向的线性蒙皮技术(LBS)。首先说明,线性蒙皮是由一系列骨骼驱动的,每个顶点会根据顶点权重图和相应的骨骼关联。根据姿态 p \mathbf{p} p 可以计算骨骼在当前位置相对于标准位置的旋转 R i R_{i} Ri 平移 t i t_{i} ti 矩阵,以及此顶点相对于该骨骼的权重 ω i \omega_i ωi,可以计算出该顶点在该骨骼影响下的位置。所有骨骼的作用叠加后,就可以计算出最终的位置。ref
T ( x , p ) = ∑ i = 1 K w i ( x ) ( R i x + t i ) T(\mathbf{x}, \mathbf{p})=\sum_{i=1}^{K} w_{i}(\mathbf{x})\left(R_{i} \mathbf{x}+t_{i}\right) T(x,p)=∑i=1Kwi(x)(Rix+ti)
上面提到的是正向过程,由标准姿态变换到任意姿态。而本文采用的方法就恰恰相反,将从视频中截取的任意姿态的人体变换到标准姿态,这样能更加方便的构建3D人体。这种方法将3D的先验知识融入到2D图像的合成过程中,能够更好的满足一致性。ref
-
经过刚性运动的扭曲变形之后,是比较粗略的,为了得到更好的结果,还需要一个非刚性的变形,即下图中红色部分,采用MLP来拟合一个连续场,输出每个点的偏移量。
-
-
基于以上的变换,观察空间中的任意点就可以映射到标准空间,经过MLP来预测该点的颜色 c c c 和不透明度 σ \sigma σ。和常规的NeRF相比,不再需要二维的视角参数,这是因为在 motion field 中已经将视角标准化。
-
在训练时,截取视频中的任意帧,获得3D姿态和2D人体图像作为 groundtruth。通过整个 pipeline 预测观察空间中的3D人体,然后进行体渲染得到合成的2D人体图像,和输入图像计算损失,来优化整个网络。
-
在推理时,只需要输入目标姿态,预测观察空间中的人体,经过渲染就可以得到该姿态下的自由视角人体图像。