HumanNeRF(CVPR2022 oral)-人体重建论文阅读


论文: 《HumanNeRF: Free-viewpoint Rendering of Moving People from Monocular Video》
github: https://github.com/chungyiweng/humannerf

解决问题

作者提出HumanNeRF,给出复杂动作人体单视角视频,暂停任一帧渲染出任意视角下该人体,甚至360度视角下该人体;
HumanNeRF优化了人在标准T姿势下的表征,与运动场相一致,该运动场通过向后扭曲将估计的规范表征映射到视频的每一帧;运动场解耦为骨骼刚性及非刚性运动;

算法

人体表征为神经场

HumanNeRF框架如图2,
在这里插入图片描述
作者扭曲标准空间 F c F_c Fc至可见空间 F o F_o Fo,如式1,
在这里插入图片描述
F c F_c Fc映射标准空间位置x至颜色c及密度σ, T T T表示运动场将可见点映射至标准空间,其中位置 p = ( J , Ω ) p=(J, Ω) p=(J,),J包括K个标准3D关键点位置, Ω = { ω i } Ω = \{ωi\} ={ ωi}为局部关键点角向量;
为了处理复杂人体运动,作者将运动场 T T T解耦为骨骼驱动变形 T s k e l T_{skel} Tskel及位置偏移 T N R T_{NR} TNR,如式2,
在这里插入图片描述
根据 T s k e l T_{skel} Tskel结果生成偏移,用于补充非刚性变形,比如衣服变形;由于现成的3D姿态估计不够准确,作者通过姿态纠正函数Ppose解决;将式2中 T s k e l ( x , p ) T_{skel}(x, p) Tskel(x,p) 替换为 T s k e l ( x , P p o s e ( p ) ) T_{skel}(x, P_{pose}(p)) Tskel(x,Ppose(p))

Canonical volume

F c F_c Fc表示一个连续场,根据任一点x可输出颜色c及密度σ,如式3,其中γ表示正弦位置编码;
在这里插入图片描述

Skeletal motion

T s k e l T_{skel} Tskel为blend skin将可见空间中的点映射至标准空间,如式4,
在这里插入图片描述
其中 w o i w^i_o woi表示第i个关节蒙皮权重,计算公式如式5, R i R_i Ri t i t_i ti分别表示可见空间到标准空间关键旋转及平移量,其可依据p进行计算;在标准空间求解蒙皮权重而不是在N张图可见空间求解,可避免过拟合;
在这里插入图片描述
作者没有使用MLP进行编码 W c ( x ) = { w c i ( x ) } W_c(x)=\{w^i_c(x)\} Wc(x)={ wci(x)},而是使用显示表示,一方面由于需要K个MLP,优化不灵活;另一方面,对于小分辨率通过三线性插值提供平滑度,便于后续优化;作者利用随机编码z,通过CNN生成 W c W_c Wc,如式6
在这里插入图片描述

Non-rigid motion

T N R T_{NR} TNR生成位置偏移, ∆ x ( x , p ) = T N R ( T s k e l ( x , p ) , p ) ) ∆x(x, p) = T_{NR}(T_{skel}(x, p), p)) x(x,p)=TNR(Tskel(x,p),p)),为捕获更多细节,作者使用MLP表示 T N R T_{NR} TNR,如式7,
在这里插入图片描述

Pose correction

根据图片进行人体姿势估计通常不准确,因此姿态纠正模块通过固定关键点学习偏移角,姿态估计如式8,
在这里插入图片描述
姿态偏移如式9所示,作者通过MLP模块实现,
在这里插入图片描述
因此可见空间到标准空间由式2重构为式10
在这里插入图片描述

HumanNeRF优化

优化函数如式11
在这里插入图片描述

体渲染

颜色渲染如式12,作者没有使用NeRF中分层级采样,而是在目标框内进行采样
在这里插入图片描述
当前景概率f(x)比较低时,进一步定义αi如式13,
在这里插入图片描述

非刚性运动场延迟优化

由于骨架驱动与非刚性运动未解耦,目标骨骼运动一部分由非刚性运动建模所得,而非刚性运动过拟合到输入图片,因此渲染不可见区域时质量不高;
为解决此问题,作者对非刚性运动MLP θNR,将截断的Hann window应用于位置编码频率带,防止数据过拟合,作者定于位置编码频率带j的权重如式14,
在这里插入图片描述
τ 定义如式15,通过设置τ = 0可关闭非刚性场优化;
在这里插入图片描述

损失函数及ray sampling Loss

作者使用MSE进行像素级匹配,感知损失LPIPS改进细节一致性,对轻微错位及阴影变换比较鲁棒;
在这里插入图片描述
作者采样G个patch,每个patch为HH,训练时每个batch渲染GH*H个射线,渲染结果与输入图相同位置进行比较;

实验

对于无标注视频,作者使用SPIN获取近似相机参数、人体姿态,自动分割目标前景,并手动矫正分割结果;
与其他方法比较如表2,
在这里插入图片描述
量化结果如表1,HumanNeRF超越Neural Body
在这里插入图片描述
图3展示可视化结果,HumanNeRF优于Neural Body,即使未见过视角,也可生成与真值相似结果;
在这里插入图片描述
图5展示在YouTube视频上高质量结果;
在这里插入图片描述

消融实验

表3展示增加非刚性变形,带来进一步收益;
在这里插入图片描述
图6展示非刚性场及姿态纠正对不可见视角渲染重要性
在这里插入图片描述

讨论

当视频中身体一部分不可见时,仍会产生噪点;姿态就剩改进图像对齐,但若开始姿态估计不准确就剩模块将失效;作者假设非刚性场时姿态相关的,但是并不总是正确,比如风将衣服移动;对于公开视频数据需要人工矫正分割结果;

结论

HumanNeRF从单目视频中移动人体自由视角渲染取得SOTA结果;作者通过仔细建模人体姿态、人体运动及正则项优化实现。

猜你喜欢

转载自blog.csdn.net/qq_41994006/article/details/128888342