来源
:ECCV 2022

原标题
:NeuMan: Neural Human Radiance Field from a Single Video

论文作者
:Wei Jiang, Kwang Moo Yi, Golnoosh Samei, Oncel Tuzel,  Anurag Ranjan

内容整理
:王彦竣

作者提出了一个新颖的框架,可以从单一野外视频中重构人物和场景,并能够渲染出新的人体姿态和视角。给定一段由移动相机捕捉的视频,作者训练了两个 NeRF 模型:一个是人类的 NeRF 模型,另一个是场景的 NeRF 模型。为了训练这些模型,作者依赖现有的方法来估计人物和场景的粗略几何形状。这些粗略的几何形状估计允许作者创建一个从观测空间到规范的姿态无关空间的变形场,作者在这个空间中训练人类模型。作者的方法能够从仅有的 10 秒视频剪辑中学习特定个体的细节,包括衣物皱纹和配饰,并在新的姿态和视角下,连同背景一起提供高质量的人体渲染。
目录
  • 引言
    • 先导:神经辐射场
  • 方法
    • 场景 NeRF 模型
    • 人体 NeRF 模型
  • 实验
  • 总结

引言

本文研究仅提供单个视频的情境,旨在重建人体模型和静态场景模型,并实现对人体的新姿态渲染,而无需昂贵的多摄像机设置或手动注释。然而,即使在 NeRF 方法的最近进展下,这仍然不是微不足道的。现有的方法需要多摄像机设置、一致的光照和曝光、干净的背景和准确的人体几何形状来训练 NeRF 模型。表格中显示的 HyperNeRF 基于单个视频建模动态场景,但不能由人体姿态驱动。ST-NeRF 从多个摄像机中使用时变的 NeRF 模型重建每个个体,但编辑仅限于包围盒的转换。Neural Actor 可以生成人体的新姿态,但需要多个视频。HumanNeRF 基于单个视频构建人体模型,使用手动注释掩膜,但不能将其推广到新姿态。Vid2Actor 使用在单个视频上训练的模型生成人体的新姿态,但不能建模背景。作者通过引入 NeuMan 来解决这些问题,它可以从一个单独的野外视频重建人体和场景,并具有渲染新的人体姿态和视角的能力。
NeuMan 是一个新的框架,用于训练 NeRF 模型,同时适用于人物和场景,可以实现高质量的姿势驱动渲染,如下图所示。通过使用常规的现成方,作者首先估计移动相机拍摄的视频中的人物姿态、人物形状、人物掩码以及相机姿态、稀疏场景模型和深度图。
然后,作者训练两个 NeRF 模型,一个用于人物,一个用于场景,由 Mask-RCNN 估计的分割掩码进行引导。此外,作者通过融合多视角重建和单目深度估计来规范化场景 NeRF 模型。
作者在一个姿势无关的规范空间(canonical volume)中,使用SMPL参数化模型,训练人物NeRF模型。作者改进从 ROMP 中 SMPL 的估计,以更好地服务于训练。然而,这些改进的估计仍然不完美。因此,作者以端到端的方式联合优化 SMPL 估计和人物 NeRF 模型。
由于静态规范人体 NeRF 模型不能表示 SMPL 模型未捕获的动态行为,因此作者引入一个错误校正网络来解决它。SMPL 估计和错误校正网络在训练期间进行联合优化。

先导:神经辐射场

为了完整起见,本文快速回顾一下标准的 NeRF 型。本文将 NeRF 网络表示为 ,其中 是参数,它估计给定 3D 位置 和观察方向 的 RGB 颜色 和密度 ,即:
辐射场函数 通常使用具有位置编码和周期性激活的多层感知器(MLP)实现。然后,通过沿着视线方向 从相机中取 个样本的离散射线,穿过由下式给出的体积进行积分,可以获得像素颜色:
其中 是沿着射线两个相邻样本之间的距离, 是第 个样本与相机之间的距离, 是网络在射线上点 处估计的 RGB 颜色。
此外,像素的累积 alpha 值,代表透明度,可以通过以下方式获得:,其中 表示沿着视线方向 的射线。

方法

本方法的框架概述如下图所示。主要由两个 NeRF 网络组成:人体 NeRF 对场景中的人的外观和几何形状进行编码,并与人体姿态相结合;场景 NeRF 对场景背景的外观进行编码。作者先训练场景 NeRF,然后在训练好的场景 NeRF 的条件下训练人体 NeRF。
方法概览图,蓝色的样本代表场景,红色的样本代表人体

场景 NeRF 模型

场景 NeRF 型类似于传统运动检测工作中的背景模型,但它是一种 NeRF 模型。对于场景 NeRF 模型,作者构建了一个 NeRF 模型并只用被认为是背景的像素进行训练。
对于给定的射线,假设人体分割掩模为,其中表示射线对应于人体,表示对应于背景,则作者为场景NeRF模型制定了重建损失,即:
其中 对应于 GT 的 RGB 颜色值,而对应于从场景 NeRF 模型渲染的颜色值。
类似于 Video-NeRF,仅仅最小化场景 NeRF 的目标函数会导致场景中出现模糊的物体。因此,作者添加了一个正则化项来约束估计密度,强制使相机和场景之间的空间密度为零。对于每个光线 ,采样终止深度值 ,并最小化如下的损失函数:
其中 是一个松弛因子,以避免深度估计不准确时出现强烈的正则化。用于训练场景NeRF的最终损失函数如下:
其中 是一个超参数,控制所有实验中的 的正则化。
预处理: 给定一个视频序列,作者使用 COLMAP 来获取相机姿态、稀疏场景模型和多视角立体(MVS)深度图。通常,MVS 深度图 包含空洞,作者使用 Miangoleh 等人提出的方法,利用密集的单目深度图 填充这些空洞。作者将 和 融合在一起,得到一个深度一致的融合深度图 。更详细地说,作者使用具有两个估计值的像素之间的线性映射来找到两个深度图之间的映射关系。然后,作者使用该映射将 的值转换为匹配  中的深度尺度,并通过填充空洞来获得融合深度图  。
为了检索人的分割地图,作者使用 Mask-RCNN。作者进一步扩张人的掩膜 4%,以确保完全遮盖人体。利用估计的相机姿态和背景掩膜,作者只在背景上训练场景 NeRF 模型。

人体 NeRF 模型

为了构建一个可以被姿势驱动的人体模型,需要该模型具有姿势独立性。因此,作者基于“大”姿态(Da-pose)下的 SMPL 网格定义了一个规范空间。相比传统的 T-pose,Da-pose 在从观测空间到规范空间的腿部变形时避免了体积碰撞。
使用这个模型在观测空间中渲染一个人的像素时,作者将该射线上的点转换到规范空间中。困难在于如何将 SMPL 网格的变换扩展到整个观测空间,以允许在规范空间中进行射线跟踪。作者使用一种简单的策略将网格蒙皮扩展到体积变形场。
在每个帧 中,给定一个位于观测空间中的 3D 点 和相应的经过预处理得到的 SMPL 网格估计 ,作者通过跟随网格上最近点的刚性变换将其转换为规范空间;见方法图。作者将这个基于网格的变换表示为 ,使得 。然而,这种变换完全依赖于 的准确性, 即使是使用最先进的技术,也难以获得足够可靠的结果。为了缓解 SMPL 参数估计和真实人体之间的错位,作者在训练时同时优化 和神经辐射场。下图展示了在线优化对纠正估计的影响。
SMPL 与场景对齐
此外,为了解决 SMPL 模型无法表达的细节问题,作者的引入了一个误差校正网络,它是一个多层感知器,用于纠正变形场中的误差。最终,将观察空间中的点映射到校正后的规范空间中的点 ,可以表示为:
误差校正网络仅在训练时使用,在进行验证和新姿势的渲染时不使用。由于采用单一的规范空间来解释所有姿势,误差校正网络自然地过拟合于每一帧,使规范体积更加泛化。
由于变形场的性质,观测空间中的直线在经过变形后在规范空间中呈曲线形状。因此,作者通过在原始样本的位置进行观测,考虑光线在规范空间中实际运动的方式来重新计算视角:
其中 和 分别是曲线光线上第 个样本的坐标和视角。
最后,通过人体 NeRF 的参数  、规范空间坐标 和校正后的视角 来获得人体模型的辐射场值:
为了渲染一个像素,模型会发射两条光线,一条用于人体 NeRF ,另一条用于场景 NeRF。模型评估沿着这两条光线的样本的颜色和密度,然后根据深度值按升序对颜色和密度进行排序。最后,模型通过先导节中的体渲染方程对这些值进行积分,得到像素的值。
训练: 为了训练人体辐射场,模型在人体掩模覆盖的区域上采样光线,并最小化以下损失函数:
其中 是从人体 NeRF 模型渲染出的颜色。作者使用 LPIPS 作为额外的损失项 ,通过采样一个 的图像块来计算。作者使用 来强制要求从人体 NeRF 累积的透明度图像与检测到的人体掩模相似。
其中 对应于如先导节中定义的沿光线的累积密度。
为了避免在规范空间中出现“斑点”和半透明的规范人体,作者强制规范 SMPL 模型内部的体积为固体,同时强制规范 SMPL 模型外部的体积为空,即:
此外,作者利用硬表面损失 来减轻规范人体周围的光晕。具体来说,鼓励每个样本的权重为 1 或 0,即:
其中, 是沿光线终止时的透明度,如先导节所定义。
然而,仅仅靠罚函数是不足以获得一个清晰的规范形状的,作者还加入了一个规范边缘损失 。通过在规范空间中渲染一条随机的直线射线,鼓励累积的 alpha 值要么是 1,要么是 0。其计算公式如下:
其中 是从规范空间中一条随机直线射线得到的累积 alpha 值。
因此,最终的损失函数 由以下部分组成:
模型通过最小化这个损失函数同时优化 、 和 。设置 、、、 和 。由于检测到的掩码不太准确,模型通过线性衰减来将 在训练过程中逐渐降为 0。
预处理: 作者利用 ROMP 来估计视频中人类的 SMPL 参数。然而,估计的 SMPL 参数并不准确。因此,作者使用从 DensePose 估计的轮廓和从 HigherHRNet 估计的 2D 关节点来优化 SMPL 参数。最后将 SMPL 估计值对齐到场景坐标中。
场景对齐的 SMPL 模型: 为了将人类置于新视角和姿势中,以及训练两个 NeRF 模型,需要将这两个模型所在的坐标系进行对齐。这实际上是一个不容易解决的问题,因为人体姿态估计器通常在其自己的摄像机系统中操作,并采用近正交相机模型。为了解决这个问题,作者首先使用 COLMAP 相机内参解决了估计的 3D 关节和投影的 2D 关节之间的透视-点 (PnP) 问题。这可以解决对齐问题,但不确定比例尺。足总和假设人类至少在一个帧上站在地面上,并通过找到允许 SMPL 模型的脚网格触碰地面的比例尺来解决比例尺的模糊度。通过应用 RANSAC 来获取地平面。下图中展示了对齐后的 SMPL 估计结果。
SMPL 模型与场景对其的可视化
一旦两个 NeRF 模型被正确对齐,作者可以通过发射两条射线来渲染像素,一条用于人类 NeRF 模型,另一条用于场景 NeRF 模型,如上文所述。为了在公式体渲染公式中生成样本的近和远平面,作者使用估计的场景点云来确定场景 NeRF 的近和远平面,并使用估计的 SMPL 网格来确定人类 NeRF 的近和远平面。

实验

下图体现了场景 NeRF 模型的新视角生成效果,模型有效的学到了场景一致的集合信息,并有效地取出来动态的人体。
场景 NeRF 生成效果图
下图展现了网络有效的学习真实的人体细节,它采集了材质信息如衣物的样式,同时保留了细节的几何形状如衣领,袖子。同时,这个人体模型可以合成在新视角下全新的姿态。
人体 NeRF 生成效果图
下表和下图对比了该方法与其他方法新视角生成的效果,本方法可以在动态场景下生成高质量的模型。
新视角生成对比
新视角重建对比

总结

作者提出了一种新颖的框架,用于重建人体和场景的 NeRF 模型,并可以从一段野外视频中渲染出新的人体姿势和视角。为此,作者使用现成的方法来估计场景和人体的 2D 或 3D 几何形状,以提供初始化。作者的人体 NeRF 模型能够从少于 40 张图像中学习纹理细节,例如衣物上的图案和衣袖、领口、拉链等几何细节。
继续阅读
阅读原文