隐式表达的更进一步:基于NeRF的形状可编辑方法

news/2025/1/12 3:05:12/

来源:投稿 作者:橡皮
编辑:学姐

[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的潜在空间,我们将其设置为两个部件特定的可学习潜在代码:一个用于形状,一个用于纹理,z_m^s ,z_m^t 。这些代码是从每个对象特定的可学习嵌入中获得的。将形状与纹理分离,允许修改一个属性而不影响另一个。

请注意,虽然我们对输入应用了位置编码,但我们从 (3)+(4) 中省略了它以避免符号混乱。

为了强制每个部件仅捕获对象的连续区域,我们将其占用函数与以坐标系原点为中心的轴对齐 3D 椭球的占用函数相乘,轴长由比例向量s_m 给出。这使得第 m 个部分的联合占用函数如下:

其中 τ 是用于确定点是否在第 m 个部件内的阈值。如图所示。现在可以定义与第 m 部分相关联的射线集R_m ,作为首先与其相交的射线集,即:

使用射线对部件的分配和每个部件的渲染方程 (7),我们可以为整个物体制定渲染方程,使用 M 个NeRFs 如下:

即,如果光线 r 被分配给第 m 部分,我们将使用第 m 个 NeRF 来渲染光线 r。如果射线不与任何部分关联,则其颜色为黑色。硬射线部分分配是一项基本属性,可确保编辑一个部分不会改变其他部分的外观。

方法细节3:网络结构

MLP是在不同部件之间共享的。我们使用四元数对R_m进行参数化。正如在第二节中讨论的那样。 我们从(9)中确定分配给每个部件m的射线集R_m ,并将它们变换到它的坐标系中。

神经渲染:给定每个部分坐标系的变换点,我们用 (5)+(3) 预测颜色和占用。接下来,我们使用 (7) 执行体积渲染,并使用 M 个NeRFs 和 (10) 渲染对象。

方法细节4:训练

覆盖损失:这种损失确保部件覆盖物体,从而防止小部件或物体外部部件的退化排列。为实现这一点,我们鼓励零件至少包含 k 条内部射线。这可以表示为 R_m^k中所有光线的预测的每个部分和目标标签之间的二元交叉熵损失,

重叠损失:为了鼓励生成的部分捕获物体的不同区域,我们对超过 λ 部分内部的光线进行如下惩罚

控制损失:为了确保对整个形状的统一控制,我们需要具有可比体积的零件。我们在椭圆体的体积 V(·) 上实现这种损失,如下所示:

实验结果:

关注下方《学姐带你玩AI》🚀🚀🚀

回复“CVPR”免费领取500+篇顶会论文合集

码字不易,欢迎大家点赞评论收藏!


http://www.ppmy.cn/news/1062933.html

相关文章

基于单片机串口控制直流电机调速

一、系统方案 (2)本设计采用STC89C5单片机作为主控器,串口控制直流电机调速,串口助手发送1-8,改变电机速度,数码管显示对应速度。 二、硬件设计 原理图如下: 三、单片机软件设计 1、首先是系统初始化 TMOD0x21;//定…

解决MyBatis不能将表中含有下划线的字段映射到实体属性的两种方案

版权声明 本文原创作者:谷哥的小弟作者博客地址:http://blog.csdn.net/lfdfhl 问题描述 MyBatis不能准确地将表中含有下划线的字段映射到实体属性。例如:表中的列名为:user_name,实体类中的属性为:userNa…

如何解决“缺失msvcp110.dll”错误,msvcp110.dll丢失要怎样才能修复

今天,我将为大家分享关于电脑提示msvcp110.dll丢失的3种修复方法。希望这些方法能帮助到正在遇到这个问题的朋友们。 首先,我们来了解一下msvcp110.dll文件的作用。msvcp110.dll是Microsoft Visual C 2010 Redistributable Package的一部分,…

网络安全(黑客)——自学日薪2700

以下是练习舞蹈时长两年半的苕皮哥的故事 你想想一个跨专业的都能拿到日薪2700,你上你也行,那么接下来就是我给大家,整理的网络安全学习思路,让大家斩获高薪! 前言: 想自学网络安全(黑客技术&am…

Linux学习之nginx虚拟域名主机,lsof和netstat命令查看端口是否被监听

需要先参考我的博客《Linux学习之Ubuntu 20.04在https://openresty.org下载源码安装Openresty 1.19.3.1,使用systemd管理OpenResty服务》安装好Openresty。 虚拟域名可以使用让不同的域名访问到同一台主机。 cd /usr/local/openresty切换当前访问目录到/usr/local/o…

Azure sqlserver 更改字符集

前言 我们的Azure SQL Server是在2018年建的,当时还不支持汉字的字符集。然后最近发现因为字符集的缘故,出了bug,要调整字符集。然后就照着sqlserver 排序规则(字符集)查看与修改 一通修改。 然后神奇的事情来了&…

kali 2023.3新增工具

在终端模拟器中运行 sudo apt update && sudo apt full-upgrade 命令来更新其安装 Kali Linux 2023.3 发布中包含了九个新工具,分别是: Calico:云原生网络和网络安全。 cri-tools:用于Kubelet容器运行时接口的命令行界面…

Abase数据库管理系统

Abase数据库管理系统的架构介绍如下: 1. 概述 Abase是一个开源的分布式数据库中间件,实现MySQL数据库的自动扩缩容、故障转移和查询路由。 2. 功能架构 - 读写分离:拆分为主从两套服务 - 自动扩缩容:根据负载水平完成扩容 - 负载均衡:基于查询解析的路由 - 故障转移:快速切换…