来源:投稿 作者:橡皮
编辑:学姐
[paper]:https://arxiv.org/pdf/2303.09554
[code]:https://ktertikas.github.io/part_nerf
主要贡献:
设计了 PartNeRF,这是一种新颖的部件感知生成模型,实现为自动解码器架构。模型支持部件级别的控制,这有助于对生成实例的形状和外观进行各种编辑操作。这些操作包括对象部分的刚性和非刚性变换、来自不同对象的部分混合、删除/添加部分以及编辑对象特定部分的外观。
在考虑将对象分解为多个部件的现有生成管道中,我们的工作是第一个不需要明确的 3D 监督信号并且可以对生成对象的形状和纹理进行编辑操作的工作。
在 ShapeNet 数据集上的各种类别评估 PartNeRF,证明它可以生成比假设有 3D 监督信号的方法以及依赖 NeRF 的方法保真度更高的纹理形状。此外,展示了以前无法实现的各种编辑操作。
背景:
生成逼真且可编辑的 3D 内容是计算机视觉和图形学领域一个长期存在的问题,最近由于 AR/VR、机器人技术和游戏应用中对 3D 对象的需求增加而受到更多关注。
然而,手动创建 3D 模型是一项费力的工作,需要经验丰富的艺术家和产品设计师的技术技能。另一方面,编辑 3D 形状通常涉及重新调整现有 3D 模型的用途,方法是手动更改网格的面和顶点并修改其各自的 UV 贴图 。
形状编辑涉及对对象不同部分的形状和外观进行局部更改。因此,对将对象分解成多个部分有一个基本的了解有助于控制要编辑的内容。
但现有的方法存在着以下问题:
(1)生成对抗网络 (GAN) 已成为合成逼真图像的强大工具,它们忠实地恢复了几何形状和外观,但不允许更改对象的特定部分。
(2)受神经隐式渲染技术快速发展的启发,最近的作品提议将它们与 GAN 结合,以实现多视图一致的高质量生成。尽管它们在新颖的视图合成方面表现出色,但它们的编辑能力有限。
(3)通过将形状分解成多个部分,其他作品可以促进结构感知形状操作。然而,它们在训练过程中需要 3D 监督,并且只能在无纹理的形状上进行操作。
方法介绍:
零件感知可控 3D 形状生成和编辑:在没有明确的 3D 监督信号情况下解决了部件感知 3D 形状生成和编辑的任务。先前的部件感知生成模型在训练时假设有3D 监督信号,且只允许改变物体的形状。在这项工作中,提出了PartNeRF,这是一种生成模型,能够编辑生成形状的形状和外观纹理,这些形状被参数化为局部定义的NeRF的集合。
方法概览:
生成模型实现为一个自动解码器架构,如下图,其中包括三个主要组件:
方法细节1:神经辐射场
方法细节2:将部件视为神经辐射场
我们使用M个部件表示一个 3D 对象,其中每个部分都被参数化为NeRF。请注意,假设所有对象的部分数量都是固定的,即生成的对象不能有可变数量的部分。为了学习每个NeRF的潜在空间,我们将其设置为两个部件特定的可学习潜在代码:一个用于形状,一个用于纹理, , 。这些代码是从每个对象特定的可学习嵌入中获得的。将形状与纹理分离,允许修改一个属性而不影响另一个。
请注意,虽然我们对输入应用了位置编码,但我们从 (3)+(4) 中省略了它以避免符号混乱。
为了强制每个部件仅捕获对象的连续区域,我们将其占用函数与以坐标系原点为中心的轴对齐 3D 椭球的占用函数相乘,轴长由比例向量 给出。这使得第 m 个部分的联合占用函数如下:
其中 τ 是用于确定点是否在第 m 个部件内的阈值。如图所示。现在可以定义与第 m 部分相关联的射线集 ,作为首先与其相交的射线集,即:
使用射线对部件的分配和每个部件的渲染方程 (7),我们可以为整个物体制定渲染方程,使用 M 个NeRFs 如下:
即,如果光线 r 被分配给第 m 部分,我们将使用第 m 个 NeRF 来渲染光线 r。如果射线不与任何部分关联,则其颜色为黑色。硬射线部分分配是一项基本属性,可确保编辑一个部分不会改变其他部分的外观。
方法细节3:网络结构
MLP是在不同部件之间共享的。我们使用四元数对进行参数化。正如在第二节中讨论的那样。 我们从(9)中确定分配给每个部件m的射线集 ,并将它们变换到它的坐标系中。
神经渲染:给定每个部分坐标系的变换点,我们用 (5)+(3) 预测颜色和占用。接下来,我们使用 (7) 执行体积渲染,并使用 M 个NeRFs 和 (10) 渲染对象。
方法细节4:训练
覆盖损失:这种损失确保部件覆盖物体,从而防止小部件或物体外部部件的退化排列。为实现这一点,我们鼓励零件至少包含 k 条内部射线。这可以表示为 中所有光线的预测的每个部分和目标标签之间的二元交叉熵损失,
重叠损失:为了鼓励生成的部分捕获物体的不同区域,我们对超过 λ 部分内部的光线进行如下惩罚
控制损失:为了确保对整个形状的统一控制,我们需要具有可比体积的零件。我们在椭圆体的体积 V(·) 上实现这种损失,如下所示:
实验结果:
关注下方《学姐带你玩AI》🚀🚀🚀
回复“CVPR”免费领取500+篇顶会论文合集
码字不易,欢迎大家点赞评论收藏!