作者:Badour AlBahar 等 论文题目:Single-Image 3D Human Digitization with Shape-Guided Diffusion 来源:SIGGRAPH Asia 2023 论文链接:https://arxiv.org/abs/2311.09221 内容整理:王怡闻 本文提出了一种方法,能够从单一输入图像中生成360°的3D高分辨率RGB人体图。NeRF及其变种通常需要来自不同视点的视频或图像。大多数现有方法使用单眼输入,要么依赖于地面真实的3D扫描进行监督,要么缺乏3D一致性。尽管最近的3D生成模型展现了在3D一致的人体数字化方面的潜力,但这些方法在适应各种服装外观方面表现不佳,而且结果缺乏逼真感。与现有工作不同,本文利用事先针对通用图像合成任务进行预训练的高容量2D扩散模型作为着装人体外观的先验。为了在保留输入身份的同时实现更好的3D一致性,我通过基于轮廓和表面法线的形状引导扩散,逐步合成输入图像中人物的多个视图,并修复缺失区域。然后,通过反向渲染将这些合成的多视图图像融合,得到给定人物的完全贴图的高分辨率3D网格。实验证明,该方法优于先前的方法,并实现了对来自单一图像的各种着装人体的逼真360度合成,包括复杂纹理。
图 1
现有方法的生成外观,特别是在遮挡区域,逼真性很差。我们认为现有方法的性能不佳是由于训练数据的有限多样性导致的。然而,扩展现有的2D服装人类数据集还需要大量的人工注释。为了解决这个限制,我们提出了一种简单而有效的算法,可以从单一图像中创建一个3D一致纹理的人类,而无需依赖经过策划的2D服装人类数据集进行外观合成。
我们的关键思想是利用在极大的图像语料库上训练的强大的2D生成模型作为人类外观的先验。具体来说,我们使用扩散模型,它使我们能够合成多样化和逼真的图像。与最近利用2D扩散模型从文本输入生成3D对象的工作不同,我们使用扩散模型以3D一致的方式重建输入图像中真实人物的360度视图。我们首先使用一种现成的工具重建人物的3D几何形状,然后使用2D单一图像的人物重定位方法生成输入图像的背景,以确保完成的视图与输入视图一致。接下来,我们通过渐进地修补新视图,利用预训练的修补扩散模型,并由法线和轮廓引导,合成3D结构。为了生成新视图,我们通过基于重要性的RGB颜色混合所有其他视图。与先前的工作相似,我们使用这些视图的可见像素与感兴趣的当前视图之间的角度差异以及它们到最近缺失像素的距离来确定混合过程中每个视图的适当权重。这确保了生成的多视图图像彼此一致。最后,我们通过考虑合成的多视图图像中的轻微不对齐来执行多视图融合,以获得完全贴图的高分辨率3D人体网格。我们的实验表明,所提出的方法比先前的方法更详细、更准确地合成了穿着服装的人体,而不需要高质量的3D扫描或策划的大规模服装人类数据集。我们的贡献包括:
图 2
前视图和背景视图之间存在强烈的语义关联,例如T恤的背面很可能是具有相似纹理的T恤,而轮廓提供了结构性的指导。因此,在合成其他视图之前,首先合成了人物的背景视图作为指导。
具体而言,论文提到了使用先进的2D人体合成方法(AlBahar et al. 2021)与推断的密集姿势预测来生成人物的背景视图。为了生成与输入图像精确对齐的密集姿势预测,首先从与输入视图相反的视角渲染形状𝐺的表面法线和深度图,然后使用ControlNet 以“人物背面穿着漂亮衣服,站在纯灰色背景前,最佳质量”为文本提示创建照片逼真的背景视图。接下来,使用dense pose,最后将其输入Pose-with-Style 。实验证明,使用Pose-with-Style与上述步骤相比,能够生成语义上更一致的背景视图,而不仅仅使用ControlNet。
在修补之前,我们将支持集
中的所有视图聚合到目标视图
。然而,简单地对所有视图进行平均会导致图像模糊,因为每个视图中存在轻微的不对齐。为了确保保留所有高分辨率细节,我们使用基于可见性、观察角度和距离的置信度进行加权平均。
对于合成视图集
中的每个视图
,我们从
中渲染法线图
以及其颜色
。此外,通过比较
的可见面和
的可见面,我们设置每个视图
的可见性掩码
。我们使用这个可见性掩码
来计算距离变换
,从每个视图
的可见像素和不可见像素的边界开始。我们还计算每个可见像素在视图
和当前关注的视图
之间的角度差异
,计算方式如下:
其中
是一个小值,避免除以零。
最后,我们计算视图
的混合权重
如下:
在我们的实验中,我们将决定角度差异强度的
和决定欧几里得距离强度的
都设置为3。使用角度差异
确保较近的视图具有较高的权重,而使用欧几里得距离
确保在靠近缺失区域的像素具有较低的权重。此外,如果只有一个现有视图包含特定像素,我们将其边界
标记为不可见。这确保了目标视图不会受到边界伪影的影响。
我们使用计算得到的权重
将先前合成视图
的颜色
混合在一起,其中当前视图
的混合图像和其可见性掩码
如下:
最终混合图像
及其可见性掩码
然后用于使用我们的形状引导扩散合成完整视图
。
为了合成在混合图像𝐼𝑐中由可见性掩码𝑀𝑐指示的未见外观,我们使用了2D修补扩散模型。然而,我们观察到在没有任何引导的情况下,修补的区域通常不遵循底层几何结构𝐺。为了解决这个问题,我们采用了ControlNet方法,将额外的结构信息纳入扩散模型。当我们使用法线图作为控制信号时,我们可以保留网格的结构细节,但不能保留人体形状。另一方面,仅使用轮廓图保留了人体形状,但没有网格的结构细节。为了最好地引导修补模型符合底层的3D几何结构,我们建议同时使用法线图和轮廓图,如图所示。我们将这个生成的视图添加到我们的支持集𝑉中,并继续到下一个视图,直到所有𝑁个视图都合成完成。
图 3
由于潜在扩散模型在低分辨率的潜在空间中进行修补,最终合成的图像不能形成几何上一致的多视图图像。因此,将这些轻微不对齐的多视图图像
合并成一个一致的单一3D纹理映射
。
图 4
首先,使用xatlas计算重建的3D几何的UV参数化。然后,通过具有对小不对齐鲁棒性的损失函数的逆渲染优化UV纹理映射
。在每次迭代中,我们从我们的合成视图集
中为每个视图
渲染UV纹理映射
,并最小化此渲染视图和合成视图之间的重建损失,使用LPIPS损失和L1损失,如下所示:
其中
,
设置为10。一旦优化了纹理映射
,就可以从任意视点渲染带有纹理的网格。
表 1
图 5
表 2
图 6
总体而言,这些局限性提供了未来改进和拓展这项工作的方向。
我们介绍了一种简单而高效的方法,可以从单张图像中生成具有完整纹理的3D人体网格。我们的实验证明,基于高容量潜在扩散模型和强大的多视图融合方法的形状引导修补,现在可以合成遮挡视图的高分辨率和逼真纹理。虽然3D人体数字化通常依赖于在3D或2D中进行过筛选的人体中心数据集,但我们的方法首次通过利用通用大规模扩散模型实现了卓越的合成结果。