作者:Xiangjun Gao, Xiaoyu Li, Chaopeng Zhang 等 来源:CVPR 2024 论文题目:ConTex-Human: Free-View Rendering of Human from a Single Image with Texture-Consistent Synthesis 论文链接:https://github.com/gaoxiangjun/ConTex-Human 内容整理:王睿妍 这项工作中提出了一种以自由视角的方式从单个图像渲染 3D 人体的挑战的方法。一些现有的方法通过使用可泛化的像素对齐隐式场来重建人体的纹理网格或通过使用 2D 扩散模型作为分数蒸馏采样(Score Distillation Sampling, SDS)方法的指导来实现这一点,将 2D 图像提升到 3D 空间。然而可泛化的隐式场通常会导致纹理场过度平滑,而 SDS 方法倾向于与输入图像产生纹理不一致的新视图。在本文中,我们引入了一个纹理一致的反向视图合成模块,该模块可以通过深度和文本引导的注意力注入将参考图像内容转移到反向视图中。此外,为了缓解发生在侧面区域的颜色失真,我们结合合成的反向视图纹理提出了一种感知一致性正则化用于纹理映射和细化。通过上述技术,我们可以从单幅图像中实现高保真和纹理一致的人体渲染。在真实数据和合成数据上进行的实验证明了我们方法的有效性,并表明我们的方法优于之前的基线方法。
自由视角人体合成或渲染对于虚拟现实、电子游戏和电影制作等各种应用都是必不可少的。传统方法通常需要密集的相机或深度传感器来重建几何形状并细化渲染对象的纹理,从而产生繁琐和耗时的过程。
在本文中,我们的目标是仅使用单个输入图像实现高保真、纹理一致的人类自由视图渲染,如图 1 所示。我们提出了一个名为 “ConTex-Human”的创新框架。在此框架下,我们将最终目标分解为两个关键子目标。第一个涉及生成具有精细细节的纹理一致的反向视图。第二个子目标是将输入参考和反向视图映射到重构几何图形后,用合理的纹理绘制侧面和不可见区域。总之,本文的贡献如下:
图1 “ConTex-Human”可以在不同数据集上仅使用单视图来实现高保真纹理一致的自由视图人体渲染。左边两个结果来自数据集 SSHQ,右边两个来自 THuman2.0
给定人类的单个 RGB 图像,我们的目标是重建 3D 表示,可以从各种视点渲染人类高保真图像。我们的方法只需要一个 RGB 图像及其前景掩码。我们的方法如图 2 所示,由三个主要阶段组成:首先使用 2D 扩散模型将输入的人体图像提升到粗略阶段的辐射场;接下来从参考中引入深度和文本引导的注意注入模块,在反向视图中合成纹理一致的图像,作为后续阶段的基本信息;最后,我们提出了一种可见性感知的 patch 一致性损失来重建3D网格,以便在精细阶段进行高质量的渲染)。
图2 Overview "ConTex-Human"
最近将单个图像提升到3D对象中的图像到3D生成方法通常采用Stable Diffusion (SD)作为扩散先验。然而SD 引导经常导致繁琐的优化过程,最重要的是,由于扩散模型的训练数据中的数据偏差,会导致优化后的3D对象中出现不一致的多头问题。在3D人体的背景下,这个问题甚至可以为简单的姿势生成多手臂和多条腿的几何图形,更不用说处理复杂多样的人体姿势了。为了解决这个问题,我们使用基于Zero-1-To-3模型的SDS损失作为扩散先验。
为了优化3D表示,我们首先在从输入图像中提取的Mask
和前视图中的渲染 Mask
之间使用
来约束3D空间中的人体区域:
在前视图中,计算RGB损失来惩罚输入图像
和渲染结果
之间的差异:
此外,为了在优化过程中加强更好的几何形状并加快训练过程,我们还为前视图中呈现的法线映射加入了参考法线约束。因此,参考法线
和渲染法线
之间的正常损失公式为:
总的损失函数可写为:
,
,
and
。
尽管目前的图像到3D图像方法可以为输入图像的不可见区域生成合理的结果,但由于在合成其他区域时缺乏对输入图像的认识,结果往往是过饱和、过度平滑、风格不一致和低质量的。受最近的2D图像编辑方法的启发,该方法可以在合成和编辑过程中保持源图像的内容和细节。我们的关键思想是从输入参考图像
中查询图像内容,并集成它们来合成反向视图图像
,同时保持一致的纹理细节,该过程由文本提示
和深度图
指导。深度图
能够指导
的布局,这对于精细阶段将纹理无缝映射到几何图形至关重要。文本提示
描述了人体信息风格,如性别、头发颜色和风格、服装颜色和类型等。在指导的基础上,我们提出了一种深度和文本条件纹理一致的反向视图合成模块,该模块利用预先训练的深度条件稳定扩散模型,并比以前的方法合成了更详细的反向视图图像。
图 3
我们的纹理一致的反向视图合成模块如图 3 所示。我们首先通过 SD 编码器对原始前图像
编码为潜在代码
。然后在
上进行 DDIM 反演采样,该采样与前视图深度
迭代连接以获得起始噪声潜在代码
。对于反向视图合成,
被复制为后视图图像的起始噪声潜码,并与后视图深度
连接,用于后续的DDIM采样。利用
作为条件信息控制布局,生成的反向视图与粗阶段NeRF和细阶段网格很好地对齐。此外,我们将短语“back view”合并到原始文本提示
中,通过在 SD 模型中通过交叉注意来指导反向视图合成。
除了反向视图合成外,还同时进行来自
和
的前向视图合成过程。在反向视图和前视图合成期间,对于特定的时间步
,我们采用注意力注入方法将注意力层中的关键特征
和值特征
从前视图分支转移到后视图分支。同时,反向视图分支在注意力层中保持其原始查询特征
。迭代执行注意力特征转移以合成反向视图。通过这些提议的操作,来自前视图图像的详细纹理可以同时转移到后视图,保持与前视图几何视图一致的后视图深度布局,并根据原始文本描述很好地对齐。
粗阶段只生成一个粗糙的几何形状和低质量的纹理,由密度场和颜色场表示。因此,我们引入了一个精细阶段,通过利用参考图像中的内容细节并从我们的方法中生成反向视图图像,从粗阶段细化几何和纹理。
几何重建
我们采用 DMTet是一种混合 SDF-Mesh 表示,用于精细阶段的重建,能够生成高分辨率 3D 形状并允许有效的可微渲染。为了初始化 DMTet,我们使用来自粗略阶段的密度场设置每个顶点
的 SDF 值,变形向量 △
设置为 0。在几何优化过程中,从 DMTet 中提取三角形网格。我们采用差分光栅化器从给定的视点渲染法线贴图。
为了在优化过程中正则化几何图形,我们还采用了与粗略阶段相同的正常约束。一种简单的方法是使用 ECON 中现有的法线估计器,从参考图像估计前视图和后视图的正常映射作为监督。然而,由于相机设置不同,估计的背视图法线和重建几何图形之间存在对齐问题。鉴于此,我们从生成的合成纹理一致的反向视图交替获得反向法线
。这个法线与我们的初始化的几何和合成反向视图很好地对齐。
鉴于参考视图法线和反向视图法线包含大部分人体区域,在应用网格法线平滑度和拉普拉斯平滑度约束后,可以实现参考视图和反向视图之间的合理转换。最后,精细阶段的几何重建损失可以写成如下:
其中
和
分别是使用Nvdiffrast渲染的网格法线图。
和
分别是使用参考图像和生成的后视图像的 ECON 法向估计器估计的参考和后视真实法向图。
纹理映射和细化
在精细阶段的几何重建之后,下一步是通过将参考前图像
和生成的后视图图像
映射到精化几何图形来生成纹理。我们采用Instant-NGP来表示 3D 纹理场。对于采样图像中的每个像素
,我们首先计算其射线网格交点的三维位置
。然后从 Instant-NGP 特征网格插值潜在特征,并被馈送到一个微小的层 MLP 网络来解码颜色值。首先使用前参考图像Ir和生成的后视图图像
作为监督对纹理场进行正则化:
其中,
和
分别是来自纹理场的渲染前图像和渲染后图像。
尽管前视图和后视图图像可以覆盖人类的大部分纹理,但在侧视图和自遮挡区域仍然存在一些缺失的纹理。为了完成缺失的纹理,我们采用稳定扩散和 Zero-1-To-3 模型的
组合来优化纹理场:
组合的 SDS 损失可以填充文本提示引导的缺失区域。然而,在许多情况下,前后视图图像之间的填充部分存在明显的纹理转换和不一致的风格。为了解决这个问题,我们提出了一种可见性感知的patch一致性损失进行细化,可以缓解不一致的侧视图纹理,如图 4 所示。具体来说,对于前视图图像和后视图图像中的每个像素,我们通过栅格化找到它与对应的网格三角形面的交点。最接近交集的人脸上的顶点设置为1,表明它们对
或
可见。
和
不可见的顶点设置为 0。
图 4
我们认为不可见区域中的像素应该与它们在 patch 内的相邻可见像素具有一致的颜色。为了实现这一点,我们首先在相机空间中采样一个随机视点,并渲染RGB图像
及其可见性图
。然后我们对
中的随机 patch
及其在
中的可见性图
进行采样。在这个patch中,不可见像素
可以通过(
=
*
)计算,可见像素
可由(
=
*
)计算。然后我们计算可见性感知的 patch 一致性损失如下:
纹理映射和细化的整体损失可以表述为
、
和
的组合。
图5
图5 是各个方法在 THuman2.0 和 SSHQ 数据集上的定性比较结果。第 1&2 行是 THuman2.0 样本,第 3&4 行是 SSHQ 样本。PIFu 和 PaMIR 倾向于预测模糊的渲染结果,尤其是在背面视图中。Magic123 难以预测一致的纹理。
图6 THuman2.0和SSHQ上无纹理一致的反向视图合成模块和完整模型的定性结果。
比较结果如图6所示。可以观察到,在没有纹理一致的反向视图的情况下,纹理往往质量较低,最重要的是,与输入视图缺乏一致性。
图7 THuman2.0 和 SSHQ 上无可见性感知patch一致性损失和完整模型的定性结果。
图 7 中显示的视觉示例表明,在没有 VPC 损失、严重的颜色失真以及颜色不一致的情况下,将出现在侧面区域。我们将此不一致归因于 SDS 优化无法引导模型朝向最佳满足前视图的最佳收敛解决方案。
表1 在SSIM、PSNR、LPIPS和CLIP方面,我们的方法与PIFU、PaMIR、Magic123在THuman2.0和SSHQ数据集上的定量比较。(↑ 表示越高越好,↓ 表示越低越好。)
表2 无反向视图合成(w/o back)、无可见性感知 patch 一致性损失(w/o VPC)和 THuman2.0 数据集上的完整模型之间的比较。(↑ 表示越高越好,↓ 表示越低越好。)
深度和文本条件反向视图合成,以及可见性感知的 patch 一致性损失,使我们能够实现具有一致纹理的显著自由视图人体渲染。但是,有一些限制。
在本文中,我们介绍了一种用于单幅图像自由视图 3D 人体渲染的新框架。我们提出了一个纹理一致和高保真反向视图合成模块,该模块与输入参考图像很好地对齐。提出了具有可见性感知patch一致性损失的纹理映射模块,用于侧面和不可见区域修复。在THuman2.0和SSHQ上的实验表明,该模型在自由视角图像合成方面达到了最先进的性能。