摘要。利用自由视图控制来动画化虚拟化身对于诸如虚拟现实和数字娱乐之类的各种应用来说是至关重要的。已有的研究试图利用神经辐射场(NeRF)的表征能力从单目视频中重建人体。最近的工作提出将变形网络移植到NeRF中,以进一步模拟人类神经场的动力学,从而动画化逼真的人类运动。然而,这种流水线要么依赖于姿态相关的表示,要么由于帧无关的优化而缺乏运动一致性,使得难以实际地推广到看不见的姿态序列。为此,本文提出了一种新的MonoHuman框架。该框架能够在任意新姿态下鲁棒地绘制视点一致的、高保真的虚拟化身。我们的主要观点是用双向约束对变形场进行建模,并明确利用现成的关键帧信息来推理特征相关性以获得一致的结果。具体而言,我们首先提出了共享双向变形模块,该模块通过将向后和向前变形对应分解为共享骨架运动权重和单独的非刚性运动来创建姿势无关的可泛化变形场。在此基础上,设计了一个前向对应搜索模块,通过查询关键帧的对应特征来指导绘制网络的运行工作,因此即使在具有挑战性的新颖姿势设置下,渲染结果也是与高保真度一致的多视图。大量的实验结果表明,本文提出的MonoHuman算法的优越性优于现有的算法。
1 介绍
渲染具有显式姿态控制的数字化身的自由视点照片逼真视图合成是一项重要任务,将为AR/VR应用,虚拟试穿,电影制作,远程呈现等带来好处。然而,以前的方法[34,35,60]通常需要仔细收集具有复杂系统和受控工作室的多视图视频,这限制了在一般和个性化场景应用中的使用。因此,尽管具有挑战性,但从单目视频中直接恢复和动画化数字化身具有重要的应用价值。
以前的渲染方法[35]可以合成逼真的人体新视图图像,但很难以看不见的姿势动画化身。为了解决这个问题,最近的一些方法使神经辐射场(NeRF [28])[34,51]变形,以根据姿势或单个帧索引来学习参数模型的向后蒙皮权重。他们可以用新的姿势对训练集进行小的变化来动画恢复的人类。但随着混合权重是姿势相关的,这些方法通常过度拟合训练数据的可见姿势,因此,缺乏可推广性[51]。值得注意的是,一类方法[5,22]通过在规范空间中学习与姿态无关的前向混合权重并使用寻根算法来搜索后向对应来解决这个问题。然而,寻根算法很耗时。[4]提出增加一个前向映射网络来帮助后向映射的学习,尽管有一致的约束,但它们的后向扭曲权重仍然是帧相关的。其他一些作品[17,34,44]利用模板模型(如SMPL [26])的混合权重。其变形精度主要取决于模板模型,而在布料类零件中,由于SMPL没有对布料类零件进行建模,变形精度往往很低,如何学习出一个精确的、可推广的变形场仍然是一个有待解决的问题。
为了重建和动画化一个照片真实感的化身,使其能够从单目视频中泛化到看不见的姿态,我们从最近的研究中总结出三个关键的观察结果来实现泛化:1)变形权值场应该在正则空间中定义,并且尽可能地与姿态无关[5,50,51]; 2)理想的变形场应统一前后变形,以减少新姿态的模糊对应; 3)来自输入观察的直接外观参考有助于提高渲染的保真度。
我们提出MonoHuman,一个新的框架,享有上述优势,从只有单眼视频重建一个动画数字化身。具体地说,我们展示了如何从有限的视频数据中学习更正确和更普遍的变形,以及如何从规范空间中的变形点绘制真实感的结果。我们首先引入一个新颖的共享双向变形模块来移植到神经辐射场中,它将向后和向前变形分解为一个共享的骨架运动和两个独立的剩余非刚性运动。共享的运动基础鼓励网络学习更一般的刚性变换权重。分离的残余非刚性运动保证了姿态相关变形的精确恢复的表达性。
在此基础上,进一步建立了由稀疏关键帧信息组成的观测数据库,并提出了一个前向对应搜索模块,用于从观测数据库中搜索观测对应关系,从而生成逼真、自然的人体外观,尤其是当前帧中不可见的部分。通过以上的设计,我们的框架可以合成一个人在任何视点和任何姿势,具有自然的形状和外观。
总之,我们的主要贡献有三个方面:
我们提出了一种新的方法MonoHuman,可以合成自由的观点和新颖的姿态序列的表演者与明确的姿态控制,只需要一个单目视频作为监督。
我们提出了共享双向变形模块,以实现可推广的一致的向前和向后变形,和向前搜索对应模块查询对应的外观特征,以指导渲染步骤。
大量的实验证明,MonoHuman框架能够提供高逼真度的结果,同时与现有的方法相比,本文的算法具有更高的识别率.
2 相关工作
人因绩效捕获。先前的工作从多视图视频[9,42,53]或深度相机[29,41,55,58]和表面网格的Mendo图[12,13]重建人体几何结构。最近的作品将人体几何模型化为辐射场[6,17,20,32-35,51,60]或距离函数[47,54]。NeuralBody [34]使用SMPL [26]生成的结构化姿态特征来调节辐射场,使其能够恢复人类表演者并从稀疏多视图视频中生成自由视点图像。研究人员在相同的设置下进一步提高泛化能力[6,20,60]或重建质量[54]。虽然他们已经很好地提高了渲染质量,但这些方法的应用场景主要限于具有精确相机校准和有限捕获体积的室内多相机设置。
从单目视频的人类渲染。为了消除多视点约束,许多方法探索从单个图像或单目视频重建数字人。[38 39,52]通过学习精确的表面重建从单个图像恢复静态的穿着衣服的3D人体。为了对人体动力学进行建模,一些作品[14,56]学习从单目视频中变形预扫描的人体模型。[1]通过优化SMPL模型的位移,从自旋转单目视频中重建完整的人体。最近,SelfRecon [16]通过将身体运动表示为可学习的非刚性运动沿着预定义的SMPL蒙皮来提高重建质量。其他作品[32,33,37]通过具有变形或混合网络的可变形NeRF对动态人类进行建模,该变形或混合网络将来自当前运动空间的光线混合到规范空间。然而,单目视频的深度模糊性和不充分的姿势观察可能会导致变形场过拟合训练数据,这进一步导致新视图中的浮动伪影。为了解决这些问题,一些作品[17,50,51]引入运动先验来正则化变形。NeuMan [17]通过扩展SMPL网格中最接近对应的变形权重并在训练期间对其进行优化来学习混合场。HumanNeRF [51]将变形场分为骨架运动场和非刚性运动场。这些方法的目标在于渲染自由视点的人类图像,以获得子弹时间效果,而我们的方法的重点在于将重构的化身动画化为分布外的姿态,甚至是挑战由文本提示生成的姿态。
人类动画。Neural Actor [24]提出了来自UV空间的可变形NeRF,并使用预测的纹理图来细化细节。[34]通过用姿势相关的潜在代码调节NeRF来创建动画模型。[30 43]通过将点变换为局部骨骼坐标来驱动规范模型。Moco-Flow [4]使用具有循环一致性损失的补充时间条件正向变形网络来正则化变形场。这些方法通常是通过记忆观察到的姿势来学习的,很难推广到新的姿势。最近的工作[5,40]通过将前向变形网络与求根算法相结合来学习变形场,从而解决了该问题。然而,他们使用的根查找算法非常耗时。
基于图像的渲染。为了在不恢复详细的3D几何形状的情况下合成新的视图图像,先前的工作[8,10]通过内插光场来获得新的视图图像。虽然取得了逼真的效果,但它们所能合成的视图范围有限。为了解决这个问题,一些工作[2,36]通过以下方式寻求代理几何的帮助推断深度图。尽管它们扩展了可渲染视图范围,但其生成的结果对代理几何体的精度很敏感。随着深度学习技术的发展,许多作品[7,15,18,21,25,46,48]将可学习组件引入到基于图像的渲染方法中,并提高了鲁棒性。具体来说,IBRNet [48]从附近视图的稀疏集合中学习图像特征的混合权重。NeuRay [25]进一步预测了3D点在其表示中对输入视图的可见性。这些作品显示了强大的效果,图像特征从不同的角度渲染。
3 我们的方法
我们提出MonoHuman,它从单眼视频中重建可动画化数字化身。生成的虚拟形象可以自由视点和任意新颖姿态进行控制。管道如图2所示。具体地说,我们首先在第二节中阐明这个问题。3.1,然后在第3.2节中详细阐述了在观测空间和规范空间之间变形点的共享双向变形模块。3.2.秒3.3引入了前向对应搜索模块来提取关键帧中的对应特征。最后,培养目标和体绘制过程在第3.4节中描述。
图2.单一人的框架。在共享双向变形模块中,通过向后变形Db,不同观测空间中的点将变形为同一规范空间中的
。通过对称的正向变形
,
可以变形回到观测空间中的点
。使用一致性损失
来规则化运动权重。在前向对应搜索模块中,将
在两个对应空间中变形为
和
,得到特征
,
和颜色
,
。通过生成的权重混合MLP将这些特征混合到特征F。F用于最终引导绘制网络。
3.1.准备和问题设置
给定一个人的图像序列和相应的姿势,分割掩模以及相机的内部和外部参数,下面[34,51]我们使用神经场来表示一个规范空间中的观察空间中的人。具体地,观察空间中的点x0的颜色和密度被建模为:
其中D是后向变形映射,其将身体姿势p和观察空间中的点作为输入,输出规范空间
中的点。
是一个映射网络,它以标准空间
中的点作为输入,并输出其颜色值c和密度σ。通过这种表示,使用体绘制[27,28]的最终绘制步骤在一个规范空间中完成。
3.2 共享双向变形模块
为了避免第二节中提到的过拟合问题。1,我们定义了正则空间中的变形场,遵循HumanNeRF [51]。然而,所提出的单一向后变形仅受图像重建损失的约束,这是欠约束的,并且当它遇到不可见的姿势时会获得更多的变形误差。我们在现象中显示了这一点。4.直觉上,仅在变形场中定义的损失将有助于正则化变形场。但如何建立这样一个约束是不平凡的。MoCo-Flow [4]使用附加的时间条件正向变形MLP来约束变形的一致性。BANMo [57]使用不同的MLP来生成姿势调节的变形权重,以实现向前和向后变形。然而,由于变形场是两个不同的MLP,并且依赖于帧或姿态,它们仍然遭受过拟合问题。受上述工作的启发,我们设计了我们的共享双向变形模块,使用规范空间中定义的相同运动权重进行向前和向后变形。由于我们的设计是姿势独立的,它有助于模型的泛化到分布外的姿势。在实践中,我们将向后变形公式化为:
其中p = {}是表示为轴角向量的K个关节旋转。与[51]类似,完整的变形由两部分组成:运动权重变形和非刚性变形:
其中的计算类似于线性混合蒙皮:
其中是第i个骨骼的混合权重,
,
是将骨骼的坐标从观察映射到规范空间的旋转和平移。我们通过在规范空间
中定义的一组运动权重体积来计算
:
我们使用CNN求解volume ,CNN从与HumanNeRF相同的随机常数潜在代码z生成[51]:
我们还使用在规范空间中定义的运动权重来实现向前变形:
与后向变形不同,前向运动权重可以直接通过查询为:
这是因为运动权重是在正则空间中定义的。对于非刚性变形,我们使用另一个MLP来计算正向变形。向前和向后的姿势相关变形都可以用同一个公式表示:
为了添加仅与变形场相关的约束作为正则化,我们使用向前和向后变形的一致性的直觉,一致性损失计算为:
其中表示
距离计算,并且它仅惩罚
距离大于阈值θ的点,我们设置该阈值以避免过度正则化。
3.3 转发通信搜索模块
以前的多视图工作[3,48,60]同时利用来自观察视图的对应特征邮票指导小说的看法合成。由于我们的输入图像来自单目视频,因此我们不会同时具有多视图图像。然而,我们可以利用第二节中的前向变形。3.2以实现动态变形,并在我们的单目视频中找到不同时间戳的对应关系。受前人工作的启发,我们设计了由对应特征组成的观察库来指导绘制。我们建议建立一个观察银行跨越时间和搜索的对应特征,在这些构成的关键帧图像从输入的单目视频序列,以指导新的视图和新的姿态合成。如图4所示,我们首先根据骨盆的方向将帧分成分别包含前视图图像和后视图图像的两个子集。然后,我们从这两个集合中找到具有最接近姿势的k对。我们为k对重构纹理图,并最终选择具有最高纹理图互补性的对。然而,由于缺乏准确的相机参数,在单目输入设置中搜索对应关系是一个不平凡的问题。为了解决这一问题,我们利用了第3.2节中所述的向前变形的优点。以搜索点在正则空间中的对应特征。具体而言,我们首先使用等式(7)将
从正则空间变形到对应空间
。
其中表示第i帧中的姿态。然后利用第i帧的相机参数,我们将点
投影到图像坐标:
其中、
分别是第i帧的内在和外在相机参数。
是第i帧中的像素位置,其用于采样第i图像的特征
和颜色
。我们按照IBRNet [48]中的U-Net特征提取来提取图像特征。我们用同样的方法得到第j帧
和
的特征。然后,我们使用混合MLP将这两个特征映射到混合权重:
其中(;)是两个向量的连接。混合特征F用于引导渲染网络。
3.4 体绘制和网络训练
带变形的体绘制。我们在一个正则空间中进行渲染步骤。在由第3.3节中描述的前向对应搜索模块提取的特征的指导下,我们的渲染网络以标准空间点和特征F为输入,并输出其颜色
和密度
。我们将整个渲染网络表示为映射
:
其中γ是的正弦位置编码[28]。最后,我们使用体绘制方程[27,28]在正则空间中绘制神经场。光线r的颜色
具有D个样本可以写为:
其中,是样本i和i + 1之间的间隔。网络培训。我们使用
、
和
优化我们的网络:
其中是摄影机光线r的渲染颜色和真实地面颜色。我们还采用了知觉损失LPIPS [59]作为最终损失。在第3.2用于优化,最终损失函数为:
其中λ是权重平衡系数。
4 实验
4.1 数据集和预处理
我们使用 ZJU-MoCap 数据集 [35] 和从互联网收集的野外视频来评估我们的方法。 我们按照[51]选择相同的6个受试者进行评估。 由于ZJU-MoCap是在室内环境中仔细收集的,因此我们直接使用数据集中的注释。 对于我们从互联网上收集的野生视频,我们使用 PARE [19] 来估计相机矩阵和身体姿势,并使用 RVM [23] 来获取分割掩模。 我们选择关键帧,如图 4 和第 3.3 节所示。
图 4. 关键帧选择示意图。 我们根据姿势相似性和纹理图互补性来选择关键帧。
4.2. 实验设置
比较基线。 我们将我们的方法与(1)NeuralBody [35]进行比较,后者使用结构化潜在代码来表示人体; (2)HumanNeRF[51],通过从单目视频学习运动场映射网络,实现了最先进的数字人图像合成性能。 (3) NeuMan [17],使用两种不同的 NeRF 重建场景和人体,我们只与 NeuMan 的没有背景的人体 NeRF 进行比较。 实施细节。 我们采用类似于[48]的U-Net从关键帧中提取图像特征,变形误差线程θ = 0.05。 在训练过程中,共享双向变形模块的学习率设置为 5 × ,其余设置为 5 ×
。 整个框架在单个 V100 GPU 上训练了 70 小时。
4.3 定量评价
评估指标。 我们使用 PSNR 和 SSIM [49] 来评估生成的图像质量。 由于 PSNR 更喜欢平滑的结果,但可能具有较差的视觉质量 [51, 59],因此我们另外采用 LPIPS [59] 来测量合成图像和地面真实图像之间的感知距离。
比较设置。 为了比较新颖的视图合成和动画的性能,我们按照[51]仅使用ZJU-MoCap中的相机1数据进行训练。 我们进一步将相机 1 中的帧按 4:1 的比例分割为可见姿势集 A 和不可见姿势集 B。 我们将我们的方法与两种设置中的基线进行比较。 1)Tab1中的小说视图设置。我们按照[51]使用A组中的帧作为训练,使用其他22个相机中的同步帧作为评估。 2)表2中新颖的姿势设置。 我们使用A组中的帧作为训练,B组中的帧以及其他22个摄像机中的同步帧作为评估。
表 1. ZJUMoCap 数据集上的新颖视图合成定量比较。 我们计算 6 个序列的平均值。 各科目成绩请参阅附件。 请注意,在所有表格结果中,LPIPS* = LPIPS ×。
表 2. ZJUMoCap 数据集上的新颖姿势合成定量比较。 我们计算 6 个序列的平均值。 各科目成绩请参阅附件。
评价结果。 新颖的视图设置和新颖的姿势设置的结果如表2所示。 1 和选项卡。 分别为2。 我们可以看到,我们的 MonoHuman 框架在两种设置中的大多数指标上都优于现有方法。 借助对应特征和变形场的一致约束,我们可以合成更真实的结果。 虽然 NeuralBody 的 PSNR 指标还不错,但它们在新颖的视图和新颖的姿势中合成了较差的视觉质量图像(因为 PSNR 更喜欢平滑的结果 [59],但可以通过 LPIPS 验证)。 我们的PSNR 相对于 HumanNeRF [51] 的改善并不显着,并且在以新姿势进行测试时,受试者 387 的 PSNR 略有降低。 但在 LIPIS 中,我们的方法在新颖视图和新颖姿势设置方面分别提高了约 19.6% 和 9.46%。 请注意,新颖的姿势合成比新颖的视图合成更具挑战性,但在某些主题中,评估指标的行为相反,因为某些姿势在数据中重复。 因此,我们在分布外姿势中进行提取定性比较。 NeuMan [17] 仅在训练期间更新 SMPL 参数,并将变形建模为最近点的 LBS 权重,这导致新视图中的性能较差。
4.4 定性评价
为了比较生成的结果,我们在 NeuralBody、HumanNeRF 和我们的方法的 ZJU-MoCap 数据集中可视化新颖的视图合成结果,如图 3 所示。 NeuralBody 在新颖的视图中倾向于生成具有大噪声的模糊图像。 HumanNeRF 和我们的方法都以新颖的视角合成逼真的图像,但预测某些细节区域的伪影。 我们还在图 5 中展示了从互联网收集的视频中新颖的视图合成结果。 对于极端视图,HumanNeRF 往往会在衣服和面部区域产生伪影。 而我们的方法可以由于正确的变形而保留这些细节,并有助于引导特征。
图 3. ZJU-MoCap 中新颖视图设置的定性结果。 我们将新颖的视图合成质量与 ZJU-Mocap 中的基线方法进行比较。 结果表明,我们的方法在新颖的视角下合成了更真实的图像。
图 5. 互联网视频新颖视角的定性结果。 上:隐形(视频源),下:Cha-Cha(视频源)
由于ZJU-MoCap和自采集视频中的动作比较简单且经常重复,因此我们需要找到一种方法来评估一些复杂动作中的动画能力。 为此,我们使用 MDM [45],它可以生成与文本输入相对应的复杂动作。 我们使用这样的模型来生成挑战动作,例如后空翻和武术姿势序列,以对 HumanNerf 和我们的方法重建的化身进行动画处理。 如图 A8 所示,HumanNeRF 预测了一些极端姿势(例如蹲下和跳高)中的多个伪影。 它还无法使手臂在空中的出拳动作和后空翻姿势中正确变形。 我们建议,借助共享双向变形模块,我们可以处理此类具有挑战性的姿势中的变形并生成更真实的结果。
4.5 消融研究
我们对模型中的两个关键模块(共享双向变形模块)进行消融研究以及 ZJUMoCap 数据集中的正向对应搜索模块。 为了进一步探索这两个模块的功能,我们分别在新颖的视图和新颖的姿势设置中进行实验。 结果如表 3 所示和表 4 所示。 如表 3 所示,这两个模块对结果的贡献大致相同。 因为新颖视图设置中的输入姿势都可以在训练数据中看到,因此,即使没有一致性约束,变形也基本上是正确的。 但当涉及到新颖的姿势时,LPIPS 更高,因为在新颖的视图设置中变形更困难。 此外,不正确的变形会影响我们通过FCS模块搜索的对应特征,这使得生成的结果变得更糟。
表 3. ZJU-MoCap 在新颖视图设置中的消融研究。 我们计算 6 个序列的平均值。 LPIPS* = LPIPS ×。
表 4. ZJU-MoCap 在新颖姿势设置中的消融研究。 我们计算 6 个序列的平均值。 LPIPS* = LPIPS ×。
没有前向对应搜索模块的影响在新颖视图和新颖姿势设置中几乎相同,因为对应特征的指导在新颖视图和新颖姿势设置中同样重要。 然而,我们的FCS模块的性能依赖于共享双向变形模块,以及Tab 4 的结果验证该属性。 与其他基线相比,我们提出的这两个模块对生成的结果很有帮助。 我们还可视化了一致损失的效果,请参阅附录了解更多详细信息。
5 讨论
我们提出了 MonoHuman,它能够以高保真度的新颖姿势稳健地呈现视图一致的化身。 我们提出了一种新颖的共享双向变形模块来处理分布外的新颖姿势变形。 此外,使用前向对应搜索模块查询对应特征以指导渲染网络,以帮助生成照片般逼真的结果。 为了评估我们的方法,我们通过人体运动扩散模型 [45] 生成具有挑战性的姿势来为我们的化身设置动画。 结果表明,即使在具有挑战性的新颖姿势设置下,我们的模型也可以生成高保真度图像。
局限性和未来的工作。 我们的方法可以仅用单眼视频创建一个可动画化的头像。 然而,我们的方法仍然有一些局限性:1)我们的合成结果依赖于姿势和掩模注释的准确性。 探索如何在训练过程中进行姿势和掩模校正将会很有趣。 2)我们的方法是根据具体情况进行训练的。 研究如何用单眼视频概括不同的人将是有价值的。
一、共享双向变形模块
1. 模块的核心思想
共享双向变形模块的核心目标是解决从单目视频中生成不同姿态下的3D人体形状问题。因为视频中的人物可能处于各种动态姿态下,模型需要能够将这些不同姿态的几何形状进行变形处理,以适应标准的姿态表示并生成新的姿态。
-
双向性:该模块支持前向和反向的几何变形,即:
- 前向变形:将标准姿态(如T-pose)变形为特定的目标姿态。
- 反向变形:将目标姿态的几何形状反向变形成标准姿态,以便在生成过程中保持姿态之间的连贯性。
-
共享参数:双向变形模块共享同一套变形参数,这意味着前向和反向变形使用相同的学习机制,从而简化了网络的结构并提高了学习的效率。
2. 输入和输出
-
输入:
- 标准姿态的几何信息:模型的初始状态,比如T-pose形状。
- 目标姿态的几何信息:需要转换的目标姿态(例如,某个动作中的姿态)。
- 姿态变换参数:这通常是从视频中提取的姿态关节信息,用于指导变形过程。
-
输出:
- 变形后的目标姿态:前向变形后的结果,即标准姿态变形成目标姿态。
- 变形后的标准姿态:反向变形后的结果,即将目标姿态重新变形成标准姿态。
3. 前向变形与反向变形的作用
-
前向变形:该过程通过输入的标准姿态和目标姿态的姿态参数,生成一个符合目标姿态的形状。网络会学习如何通过标准姿态进行形状变形,从而使人体模型能够在各种姿态下保持自然形态。
-
反向变形:反向变形是将变形后的目标姿态恢复为标准姿态。这个步骤确保了即使人体在不同姿态下变化,模型依然可以回到一致的标准形状,这对于保持模型的姿态一致性和生成高质量的渲染图像非常重要。
4. 学习机制
共享双向变形模块通过神经网络进行端到端学习。训练过程中,网络通过对比标准姿态和目标姿态的几何结构,学习如何进行前向和反向的变形。其主要学习机制包括:
-
监督学习:网络利用姿态变化的监督信号来最小化目标姿态和标准姿态之间的几何差异,确保生成的姿态变换是准确的。
-
损失函数:通常使用的损失函数可能包括姿态一致性损失和几何形状重建损失,确保前向和反向变形在保持几何一致性的同时,生成的形状具有自然的外观。
5. 模块在渲染中的作用
共享双向变形模块的输出为渲染模块提供了准确的姿态几何信息。具体来说:
- 前向变形后的目标姿态几何信息会被输入到渲染模块,用于生成目标姿态下的高质量渲染。
- 反向变形后的标准姿态信息可以用于进一步的优化,确保不同姿态之间的转换保持一致。
6. 简单易懂的例子
假设你正在制作一个动画人物模型,初始状态是站立的T-pose姿态(标准姿态)。通过共享双向变形模块,你可以实现以下操作:
- 前向变形:你输入T-pose姿态的小人和一个新的姿态(例如,弯腰),模块会学习如何将T-pose变形成弯腰姿态。
- 反向变形:如果你想将弯腰的小人恢复到T-pose,反向变形模块会利用共享的学习参数进行姿态的反向变形。
通过这种双向变形,模型能够灵活处理不同姿态,并且保持姿态转换时的几何一致性。
总结
共享双向变形模块在《MonoHuman》系统中的作用是核心的,它通过双向的姿态变形确保人体模型能够在标准姿态和目标姿态之间进行自然的过渡。这一模块的设计大大提升了姿态重建的准确性,同时通过共享参数的方式简化了学习过程,使得网络能够更高效地生成自然且一致的3D人体模型。
二、正向通信搜索模块
1. 正向通信搜索模块的作用
正向通信搜索模块的主要作用是从输入的单目视频中提取与人体姿态相关的关键信息,并将这些信息传递到后续的神经场生成模块中。该模块的主要目标是解决单目视频中获取人体3D几何形状和姿态变化的难题。
具体作用包括:
- 姿态估计:从视频中提取人物在不同帧中的姿态信息,主要是关节位置信息和骨架结构。
- 几何特征提取:提取视频中每一帧的几何特征信息(如轮廓、深度等),为后续的3D形状恢复和姿态变形提供支持。
- 数据关联:将不同帧的姿态信息和几何特征信息进行关联,确保在动态姿态变化下,模型仍能保持一致性和连贯性。
2. 输入与输出
-
输入:
- 单目视频帧:来自输入视频的序列帧,包含了人物的不同姿态和视角。
- 初始的几何信息:通常是标准姿态(如T-pose)的初始人体模型信息,用于后续的姿态变形。
-
输出:
- 姿态关节信息:提取出人体骨架的姿态信息(如3D关节位置、骨架角度等),这些信息被用于指导姿态变形。
- 几何特征信息:提取出的几何特征,用于生成最终的3D形状和纹理。
- 姿态变形参数:这些参数会传递给后续的双向变形模块,指导模型如何从标准姿态变形到目标姿态。
3. 正向通信搜索的工作机制
该模块的核心功能是通过深度学习技术(通常是卷积神经网络或变形网络)从视频帧中提取和关联关键几何和姿态信息。具体的工作流程可以分为以下几个步骤:
-
姿态估计:
- 首先,正向通信搜索模块会通过预训练的姿态估计网络(如OpenPose或SMPL等)从每一帧中提取人物的姿态关节信息。
- 这些关节信息构成了人体的骨架,用于后续的姿态变形和渲染。
-
几何特征提取:
- 在提取出姿态信息的同时,正向通信搜索模块会通过卷积网络从视频帧中提取几何特征(如深度、轮廓、表面法线等)。
- 这些几何特征被编码为特征向量,用于后续的人体形状重建。
-
数据关联与融合:
- 正向通信搜索模块不仅从单个帧中提取信息,还通过时序模型(如RNN或Transformer等)在不同帧之间进行特征关联。这样可以确保在姿态变化的过程中,姿态信息和几何特征能够连贯一致。
- 这种关联确保了在动画生成过程中,不同姿态和视角下的人体模型能够保持形状一致性和自然过渡。
-
姿态变形指导:
- 正向通信搜索模块输出的姿态信息和几何特征信息会被用于指导后续的双向变形模块。这些信息确保模型能够从标准姿态变形成目标姿态,并保持高质量的渲染效果。
4. 正向通信搜索模块的学习机制
正向通信搜索模块的学习过程是通过大量的标注数据进行监督学习。具体来说,使用包含姿态标注、几何信息(如深度、骨架)的训练数据来训练该模块,使其能够从输入的视频帧中有效提取人体姿态和几何特征。
- 损失函数:通常,模块会使用姿态估计损失、几何重建损失、特征匹配损失等来监督学习过程。
- 预训练模型:为了提高姿态估计的准确性,正向通信搜索模块通常依赖于预训练的姿态估计模型(如SMPL或其他人体姿态估计网络)。
5. 正向通信搜索模块在渲染中的作用
正向通信搜索模块提取的姿态信息和几何特征为后续的渲染提供了基础数据。这些信息确保渲染模块能够在目标姿态下生成准确、逼真的3D模型。
总结
正向通信搜索模块在《MonoHuman》系统中的作用是从输入的单目视频中高效地提取人体姿态和几何特征信息,并将这些信息传递给后续的双向变形模块和渲染模块。它通过姿态估计、几何特征提取和数据关联,确保在不同姿态和视角下生成的一致、高质量的3D人体模型。
三、体积渲染和网络训练
1. 体积渲染(Volumetric Rendering)
体积渲染是NeRF方法中的核心部分,用于生成具有深度和光照效果的3D图像。在《MonoHuman》系统中,体积渲染的主要作用是将人体在不同姿态和视角下的3D形状生成为逼真的2D图像。
工作原理
体积渲染的核心思想是通过模拟光线在3D空间中的传输过程,生成2D图像。以下是体积渲染的主要步骤:
-
采样光线(Ray Sampling):
- 在渲染过程中,从观察者的相机位置发出光线,并沿着光线方向在3D空间中进行采样。
- 每条光线会穿过3D空间中的多个体素(Volumetric Voxels),这些体素代表了3D空间中不同位置的体积密度和颜色。
-
累积颜色和密度(Color and Density Accumulation):
- 对于每个采样点,模型会根据其坐标预测该点的颜色(RGB值)和密度(用于表示光线在该点的衰减程度)。
- 系统会对沿着光线的所有采样点的颜色和密度进行累积,生成最终的2D像素值。
-
体积积分(Volumetric Integration):
- 累积过程使用了体积渲染方程,通过对光线在3D空间中的颜色和密度进行加权求和,最终得到每个像素的颜色。公式如下:
其中,C(r)是光线的最终颜色,σ(t)是体积密度,c(t) 是颜色,T(t) 是光线在该点处的透射率,表示光线到达该点时的累积衰减。
4. 深度估计(Depth Estimation):
体积渲染还可以估计每条光线的深度,通过计算体积密度的累积值来确定物体的前景和背景,从而实现逼真的3D效果。
体积渲染的作用
- 视角独立性:通过体积渲染,可以在任何视角下生成同一物体的图像,这在生成多视角的3D人体模型时非常重要。
- 逼真的光照和反射效果:体积渲染能够模拟光线与物体表面的相互作用,生成具有逼真光照效果的图像,确保人体在不同姿态下的渲染质量。
2. 网络训练(Network Training)
网络训练部分通过端到端的监督学习,优化网络参数,使其能够在输入单目视频帧的情况下生成准确的3D人体模型和姿态变换。整个训练过程包括以下几个关键要素:
2.1. 网络结构
《MonoHuman》系统基于NeRF框架,使用多层感知机(MLP)网络来表示3D空间中的颜色和密度场。具体结构如下:
- 输入:
- 3D坐标 (x,y,z)和光线方向 (dx,dy,dz)。
- 人体的姿态编码(通过姿态估计模块提取的姿态信息)。
- 输出:
- 颜色值 (r,g,b) 和 体积密度 σ。
通过输入3D空间中的坐标和光线方向,网络会输出对应点的颜色和密度,这些信息用于体积渲染过程。
2.2. 训练数据
网络训练时使用单目视频帧作为输入,目标是重建每一帧中的人体形状和姿态。为了训练网络,系统使用了以下几种数据:
- 图像数据:从单目视频中提取的帧图像。
- 姿态数据:通过预训练的姿态估计网络(如SMPL模型)提取的关节位置和人体骨架信息。
- 相机参数:每一帧的相机内参和外参,用于指导光线采样的方向。
2.3. 损失函数(Loss Function)
为了训练网络,系统使用了多种损失函数来指导优化过程:
-
重建损失(Reconstruction Loss):
- 主要用于度量生成图像与真实图像之间的差异,确保渲染结果与输入视频帧保持一致。通常使用L2损失或L1损失来计算像素级别的差异。
-
姿态一致性损失(Pose Consistency Loss):
- 用于确保生成的人体姿态与姿态估计模块提取的关节位置一致,从而保证模型能够准确生成不同姿态下的人体形状。
-
几何约束损失(Geometric Consistency Loss):
- 用于保证模型生成的3D形状在不同视角下保持一致,避免形状变得不自然或不稳定。
2.4. 优化过程
网络的训练是通过梯度下降法(如Adam优化器)来最小化损失函数。随着训练的进行,网络不断调整其权重,使其能够更好地从单目视频中生成高质量的3D人体模型和动画。
3. 体积渲染与网络训练的关系
-
体积渲染的输出作为监督信号:体积渲染模块生成的2D图像会与输入视频帧进行对比,网络通过损失函数来计算生成图像与真实图像之间的差异。这一差异作为监督信号,指导网络调整其参数。
-
体积渲染引导网络学习:体积渲染过程涉及对3D空间中光线的采样和积累,网络通过学习如何从3D坐标生成正确的颜色和密度场,从而生成逼真的2D图像。这个过程直接影响网络训练的效果。
总结
- 体积渲染:通过采样光线、计算颜色和密度,模拟光线在3D空间中的传播,生成逼真的2D图像。
- 网络训练:通过多种损失函数优化网络参数,使其能够从单目视频中生成准确的3D人体模型。
两者的结合使《MonoHuman》系统能够从单目视频生成逼真的多视角3D人体动画。