ECCV`24 | 首次解决文本到3D NeRFs分解问题!港中文等提出DreamDissector

论文链接:https://arxiv.org/abs/2407.16260

亮点直击

  • 据作者所知,作者是第一个解决文本到3D NeRFs分解问题的团队。

  • 为了解决这个问题,本文引入了一个名为DreamDissector的新颖框架,包括一种新颖的神经类别场(NeCF)表示,可以将输入的NeRF分解成独立的子NeRF,一个深度概念挖掘(DCM)技术,通过个性化扩散模型促进子NeRF和概念之间的对齐,以及一个类别分数蒸馏采样(CSDS)损失,利用DCM增强NeCF的学习。

  • 实验结果展示了DreamDissector的有效性,额外的可控编辑应用展示了其在真实场景中的实用性。

最近,文本到3D生成领域取得了显著进展。为了增强其在实际应用中的实用性,关键是生成具有交互作用的多个独立对象,类似于2D图像编辑中的图层合成。然而,现有的文本到3D方法在这一任务上存在困难,因为它们设计用于生成非独立对象或缺乏空间合理交互的独立对象。

针对这一问题,本文提出了DreamDissector,一种能够生成具有交互作用的多个独立对象的文本到3D方法。DreamDissector接受多对象文本到3D NeRF作为输入,并生成独立的纹理网格。为实现这一目标,本文引入了神经类别场(NeCF)来分解输入的NeRF。此外,本文提出了类别分数蒸馏采样(CSDS),由深度概念挖掘(DCM)模块促进,以解决扩散模型中的概念差距问题。通过利用NeCF和CSDS,本文能够有效地从原始场景中导出子NeRF。进一步的优化增强了几何和纹理。本文的实验结果验证了DreamDissector的有效性,为用户提供了控制3D合成在对象级别的新手段,并可能为未来各种创意应用打开了途径。

方法

概览

DreamDissector从文本转3D神经辐射场(NeRF)开始。其目标是将生成的3D NeRF分解为根据NeRF包含的物体类别分开的独立3D资产。为实现这一目标,本文引入了一种称为神经类别场(NeCF)的3D表示。

这旨在将目标NeRF分解为多个子NeRF,同时保持每个物体的原始外观。NeCF受本文新引入的类别分数蒸馏采样(CSDS)监督,这是一种涉及一系列针对子NeRF的特定类别文本提示的分数蒸馏采样(SDS)的方法。随后,这些子NeRF被转换为DMTets进行最终的几何和纹理细化。由于DMTets可以轻松转换为表面网格,DreamDissector最终为每个物体生成独立的表面网格,保留了动作和互动,从而方便人类艺术家进行编辑。本文的DreamDissector框架概述如下图2所示。

神经类别场

为了在目标NeRF中渲染每个分类对象,一个直接的解决方案是为每个对象引入一个子NeRF,例如,一个密度场和一个颜色场。随后,可以使用其密度和颜色场来渲染每个对象。然后,整个NeRF可以通过根据体积渲染的原则组合这些密度和颜色场来渲染:

其中,表示类别的数量。然而,这种方法需要为密度和颜色场训练额外的网络,并需要一个约束损失来保持整个NeRF的外观一致性。

为此,本文提出了一种用概率分布(即类别场)对密度场进行分解以渲染每个类别对象的替代公式。具体来说,上述密度组合可以重新表述如下:

在处理密度时,可以添加一个小的数值以避免除以零的情况。因此,σσ 可以被视为一个概率单纯形,因为它们相加为一,且元素为非负数。受此启发,我们利用具有 softmax 函数的 MLP 直接建模概率单纯形 σσ。设 表示第 i 个点在 3D 空间中属于第 k 个类别的概率:

将T表示为温度,它控制概率分布的尖锐度,是类别场网络的输出。通过类别场,第k个类别对象的颜色可以如下渲染:

可以观察到,每个点的密度σ被类别场pk缩放。换句话说,本文可以将σ解释为第k个类别对象的子NeRF的密度,例如,和σσ。此外,颜色场可以在训练过程中被重复使用并冻结,简化训练过程。

值得注意的是,NeCF的设计具有以下优点:

  • 本文只需要训练一个额外的类别场网络,这比训练额外的密度和颜色场网络更有效率。

  • 由于原始的密度和颜色场网络在训练过程中被冻结,子NeRF的重新组合完全等同于原始的NeRF,保持其原始外观。

类别 分数 蒸馏 抽样

一个朴素的方法。 为了训练NeCF,一个朴素的方法是使用多个SDS损失来监督每个类别的类别字段。具体地,对于第k个类别的对象,其SDS损失的梯度可以被表达为:

这里,表示第k个类别的文本embedding。例如,给定由提示生成的NeRF:“一个[v1]坐在一个[v2]上。”,用于类别对象的文本提示将是“一个[v1]”和“一个[v2]”。这可以很容易地由人类用户或现代LLM完成。需要注意的是,本文在训练NeCF时不需要为整个文本提示使用SDS,除了类别字段网络之外,所有网络都被冻结。

概念差异在扩散模型中。 尽管这种朴素的方法可以处理一些简单的情况,但它无法将具有概念差距的场景从文本描述中分离出来。概念差距指的是完整文本提示生成的对象与类别文本提示生成的对象在2D扩散模型的潜在空间中占据不同区域的差异。

例如,文本提示“一只黑猩猩透过望远镜看。”会生成一个场景,描述一只黑猩猩使用手持望远镜,如下图3左侧(a)所示。相比之下,类别文本提示“一个望远镜”更有可能生成一个三脚架安装的望远镜,因为三脚架安装的望远镜位于提示“一个望远镜”的主导特征空间中,而手持望远镜则位于边缘特征空间中。因此,学习到的NeCF会生成一个带有三脚架的望远镜,三脚架被隐藏在黑猩猩的身体内,如下图3左侧(c)所示。

深度概念挖掘。为了解决这个问题,本文提出挖掘文本提示中的概念,并将其与NeRF中描绘的概念进行对齐,以进行分解,如上图3所示。为此,本文个性化了一个T2I扩散模型,将由NeRF渲染的给定视图去噪,生成描绘一个(或多个)独立对象的图像,在一个(或多个)特定概念的条件下。具体来说,本文首先创建一组包含一个或多个概念的提示。对于每个概念或概念组合,本文通过基于文本的开放词汇分割模型(例如Grounded-SAM [46])为NeRF渲染视图生成相应的分割蒙版。然后,本文利用提示-蒙版对来优化文本embedding和扩散主干,使用带有蒙版注意力的概念挖掘损失 [2]:

在这里,表示第个类别的mask。DCM模块在优化后被冻结,以提供更好的独立文本概念与子NeRF之间的对齐,以便更好地使用CSDS损失进行NeCF训练。冻结的DCM还用于训练DMTet精化模块,如上图2所示。

最终精化。 在训练完NeCF后,本文使用等值面提取技术将子NeRF转换为DMTets,并利用文本embedding和来自DCM的模型对这些DMTets进行微调。其原理是进一步精化可以修复分解产生的伪影,而且DMTets可以轻松转换为表面网格。然而,DCM倾向于在原始NeRF中过度拟合挖掘的概念,导致颜色过饱和和不真实。为了解决这个问题,本文采用原始的稳定扩散方法通过额外步骤对DMTets的颜色进行微调,增强其真实感。最后,DMTets被转换为有纹理的网格。

整体 Pipeline

因此,整个流程包括以下步骤:

  • 从渲染视图中为提示中的每个类别生成mash,并用它们来优化DCM模块。

  • 冻结DCM,并使用CSDS损失训练NeCF网络,将一个NeRF分解为独立对象的子NeRF。

  • 将子NeRF转换为DMTets,并利用优化后的DCM模块对它们进行微调,然后使用原始稳定扩散微调DMTets的颜色以生成最终输出。

实验

结果

主要结果。 定性结果显示在下图4中。对于每种情况,每个对象的两个视图被采样,并且相应的文本提示在补充文件中提供。可以观察到DreamDissector能够有效地解开具有各种复杂交互的输入场景,比如骑行等。值得注意的是,DreamDissector能够处理具有大型和复杂接触表面的情况,如“章鱼弹钢琴”案例中所示,章鱼的触手与钢琴分离开来。此外,最终的网格比输入NeRF中的网格展现出更加真实和高质量的纹理。这种改进归因于最终的精细化处理,进一步展示了DreamDissector的实用性。

比较。 本文将DreamDissector与两个基线方法进行比较:负面提示和一个组合基线。负面提示涉及将整个文本提示作为正面提示,并将独占对象作为负面提示。例如,在提示“一个[v1]坐在[v2]上”中,两个对象的正面提示都是整个提示,而对象[v1]的负面提示是“[v2]”,反之亦然。由于最相关的作品CompoNeRF和Comp3D不是开源的,本文实现了一个具有类似思想的组合基线:分别训练对象,然后通过进一步的微调进行组合。本文在定性和定量上将本文的方法与这些基线进行比较。如下图5所示,DreamDissector明显优于基线方法。此外,本文使用CLIP分数指标评估DreamDissector和基线方法,该指标衡量文本和图像embedding之间的余弦相似性。本文对独立对象和组合对象进行这种评估,并计算平均分数。正如下表1所示,本文的方法明显优于基线方法。

分析

用于分解的DCM. 使用深度概念挖掘(DCM)进行分解。为了评估深度概念挖掘(DCM)在分解NeRF中的有效性,本文与两个基准进行了比较分析:(1)不使用DCM的基础类别分数蒸馏采样(CSDS),以及(2)三维中的NeRFs(SA3D)。

与完全无监督的基础CSDS不同,本文的DCM方法和SA3D都需要一个输入mask来进行单视图处理。正如下图6所示,基础CSDS在处理存在显著概念差异的场景(例如“一只蓝色毒箭蛙坐在一片睡莲上”)时很难分解NeRF,其中原始场景主要描绘了睡莲叶。而SA3D虽然成功分解涉及概念差异的场景(如青蛙),但在涉及大量遮挡的更复杂情况下表现不佳,比如比格犬和章鱼等情况。相比之下,DCM展现出卓越的性能,成功分解涉及概念差异和显著遮挡的场景。

DCM用于细化。 DCM不仅用于NeRF的分解,还用于细化DMTets。本文对DCM在这种细化过程中的有效性进行了分析。结果如下图7所示。从(a)可以看出,在分解后仍然存在伪影。由于原始NeRF的不可见接触表面,在分解后出现了“黑洞”。然而,使用原始稳定扩散进行DMTet细化并不能解决这个问题,如(d)所示。这是因为提示“一叠煎饼”通常会生成在煎饼上放水果的图像,因为这些水果在stable diffusion的高密度区域中很常见,如(b)所示。因此,经过微调的DMTet会在黑洞伪影区域产生水果。相比之下,DCM的稳定扩散与输入的煎饼紧密匹配,如第一行所示,在DMTet细化过程中有效修复了伪影,如(e)所示。这进一步展示了DCM的优越性。

对DCM进行消融研究。 本文对DCM的每个组成部分进行了消融研究,包括两阶段训练和mask注意力损失。具体来说,本文使用经过微调的模型从文本提示“一只小兔子坐在一堆煎饼上”中挖掘出“小兔子”概念的图像样本。理想情况下,采样的图像不应包含任何类似于煎饼的概念。如下图8所示,DCM成功提取了“小兔子”概念,而其他训练策略未能将该概念与其他类似于其坐在上面的煎饼的物品分离开。这证明了DCM挖掘独立概念的能力。

Applications

可控纹理编辑。 尽管基于文本引导的纹理生成取得了显著进展,但为具有多个物体的复杂场景生成纹理仍然具有挑战性。本文在三种不同情况下评估了TEXTure,如下图9所示。对于基准情况,本文将多物体网格视为单个实体并应用TEXTure。对于本文的方法,本文将TEXTure分别应用于每个物体的网格,然后将它们组合起来。本文观察到,基准方法生成的纹理与输入提示不匹配,并且质量较低。值得注意的是,独立物体的纹理受到场景中其他物体的影响,例如,老鼠的一部分呈现出红色。相比之下,DreamDissector显著提升了TEXTure的性能,生成视觉上吸引人且准确的纹理。

可控对象替换。 除了可控纹理编辑外,DreamDissector还具有替换单个对象而不影响场景中其他对象的能力。为了实现这一点,目标DMTet在保持其他DMTets固定的同时进行微调。然而,使用基于SDS的监督将DMTet变形为完全不同拓扑结构的对象具有挑战性。受[7]启发,本文最初将DMTet的法线馈送到stable diffusion中进行多个步骤,有效地变形了DMTet。本文还经验性地观察到,仅微调目标DMTet会引起严重的网格相互穿透。为了解决这个问题,本文引入了一个相互穿透损失,

当中 代表目标 DMTet 的第 i 个顶点时,和分别是 在其他 DMTets 中最近邻顶点的顶点和顶点法线,ϵ 是用于避免相互穿透的小容差超参数。如下图 10 所示的结果表明,DreamDissector 能够实现可控的概念替换。

用户进行几何编辑。 为了进一步验证 DreamDissector 如何促进用户工作流程,本文允许用户单独编辑对象。正如下图 11 所示,通过简单的操作,如缩放、平移和拖动,可以轻松修改对象,从而突显了 DreamDissector 在提高实际应用中人类编辑能力方面的有效性。

结论

本文提出了 DreamDissector,这是一个新颖的框架,旨在生成由文本引导的多个独立交互对象。DreamDissector 接受多对象文本到 3D 神经辐射场(Neural Radiance Field,NeRF)作为输入,并生成多个带纹理的网格。本文引入了神经类别场(Neural Category Field,NeCF),这是一种能够将输入的 NeRF 分解为多个子 NeRF 的表示。为了训练 NeCF,本文提出了类别分数蒸馏采样(Category Score Distillation Sampling,CSDS)损失。此外,本文观察到了 2D 扩散模型中的概念差异问题,这可能会降低分解性能。为了解决这个问题,本文引入了深度概念挖掘(Deep Concept Mining,DCM)来微调文本embedding和 2D 扩散模型,有效地导出子 NeRF。此外,本文提出了一个两阶段的细化过程,进一步改进几何和纹理,从而增强现实感。实验结果和进一步应用展示了 DreamDissector 在现实场景中的有效性和实用性。

参考文献

[1] DreamDissector: Learning Disentangled Text-to-3D Generation from 2D Diffusion Priors

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/503028.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

nginx-灰度发布策略(split_clients)

一. 简述: 基于客户端的灰度发布(也称为蓝绿部署或金丝雀发布)是一种逐步将新版本的服务或应用暴露给部分用户,以确保在出现问题时可以快速回滚并最小化影响的技术。对于 Nginx,可以通过配置和使用不同的模块来实现基于…

PCL点云库入门——PCL库点云特征之PFH点特征直方图(Point Feature Histograms -PHF)

1、算法原理 PFH点(Point Feature Histogram)特征直方图的原理涉及利用参数化查询点与邻域点之间的空间差异,并构建一个多维直方图以捕捉点的k邻域几何属性。这个高维超空间为特征表示提供了一个可度量的信息空间,对于点云对应曲面…

qml PathView详解

1、概述 PathView 是 Qt Quick 中一个非常强大的视图组件,它基于一个 Path 来展示视图项(如 Item、Rectangle 等)。PathView 可以让你按照定义的路径动态地显示多个元素,并且支持动画、滑动等功能。这个视图控件的最大特点是能够…

网络协议安全的攻击手法

1.使用SYN Flood泛洪攻击: SYN Flood(半开放攻击)是最经典的ddos攻击之一,他利用了TCP协议的三次握手机制,攻击者通常利用工具或控制僵尸主机向服务器发送海量的变源端口的TCP SYN报文,服务器响应了这些报文后就会生成大量的半连…

前端学习DAY31(子元素溢出父元素)

.box1{width: 200px;height: 200px;background-color: chocolate;} 子元素是在父元素的内容区中排列的,如果子元素的大小超过了父元素,则子元素会从 父元素中溢出,使用overflow属性设置父元素如何处理溢出的子元素 可选值:visible…

机器人手眼标定

机器人手眼标定 一、机器人手眼标定1. 眼在手上标定基本原理2. 眼在手外标定基本原理 二、眼在手外标定实验三、标定精度分析 一、机器人手眼标定 要实现由图像目标点到实际物体上抓取点之间的坐标转换,就必须拥有准确的相机内外参信息。其中内参是相机内部的基本参…

【前端下拉框】获取国家国旗

一、先看效果 二、代码实现&#xff08;含国旗&#xff09; <!DOCTYPE html> <html lang"zh"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><…

Timer、Ticker使用及其注意事项

Timer、Ticker使用及其注意事项 在刚开始学习golang语言的时候就听说Timer、Ticker的使用要尤其注意&#xff0c;很容易出现问题&#xff0c;这次就来一探究竟。 本文主要脉络&#xff1a; 介绍定时器体系&#xff0c;并介绍常用使用方式和错误使用方式源码解读 timer、tic…

C++11——2:可变模板参数

一.前言 C11引入了可变模板参数&#xff08;variadic template parameters&#xff09;的概念&#xff0c;它允许我们在模板定义中使用可变数量的参数。这样&#xff0c;我们就可以处理任意数量的参数&#xff0c;而不仅限于固定数量的参数。 二.可变模板参数 我们早在C语言…

君正T41交叉编译ffmpeg、opencv并做h264软解,利用君正SDK做h264硬件编码

目录 1 交叉编译ffmpeg----错误解决过程&#xff0c;不要看 1.1 下载源码 1.2 配置 1.3 编译 安装 1.3.1 报错&#xff1a;libavfilter/libavfilter.so: undefined reference to fminf 1.3.2 报错&#xff1a;error: unknown type name HEVCContext; did you mean HEVCPr…

感知器的那些事

感知器的那些事 历史背景Rosenblatt和Minsky关于感知机的争论弗兰克罗森布拉特简介提出感知器算法Mark I感知机争议与分歧马文明斯基简介单层感知器工作原理训练过程多层感知器工作原理单层感知机 vs 多层感知机感知器模型(Perceptron),是由心理学家Frank Rosenblatt在1957年…

C语言:枚举类型

一、枚举类型的声明 枚举顾名思义就是一一列举。我们可以把可能的取值一一列举。比如我们现实生活中&#xff1a; 星期一到星期日是有限的7天&#xff0c;可以一一列举 &#xff1b;性别有&#xff1a;男、女、保密&#xff0c;也可以一一列举 &#xff1b;月份有12个月&#x…

25/1/6 算法笔记<强化学习> 初玩V-REP

我们安装V-REP之后&#xff0c;使用的是下面Git克隆的项目。 git clone https://github.com/deep-reinforcement-learning_book/Chapter16-Robot-Learning-in-Simulation.git 项目中直接组装好了一个机械臂。 我们先来分析下它的对象树 DefaultCamera:摄像机&#xff0c;用于…

CODESYS MODBUS TCP通信(AM400PLC作为主站通信)

禾川Q1 PLC MODBUS-TCP通信 禾川Q1 PLC MODBUS-TCP通信(CODESYS平台完整配置+代码)-CSDN博客文章浏览阅读17次。MATLAB和S7-1200PLC水箱液位高度PID控制联合仿真(MODBUSTCP通信)_将matlab仿真导入plc-CSDN博客文章浏览阅读722次。本文详细介绍了如何使用MATLAB与S7-1200PLC进行…

OSPF - 影响OSPF邻居建立的因素

总结为这么10种 routerID 冲突区域id不一致认证MA网络掩码需一致区域类型(特殊区域)hello、dead时间MTU(如果开启检查)静默接口网络类型不匹配MA网络中路由器接口优先级全为0 如何建立邻居可以查看上一篇文章&#xff0c;可以直接专栏找&#xff08;&#x1f92b;挂链接会没流…

【大数据】(选修)实验4 安装熟悉HBase数据库并实践

实验4 安装熟悉HBase数据库并实践 1、实验目的 (1)理解HBase在Hadoop体系结构中的角色; (2)熟练使用HBase操作常用的Shell命令; (3)熟悉HBase操作常用的Java API。 2、实验平台 操作系统:Linux Hadoop版本:2.6.0或以上版本 HBase版本:1.1.2或以上版本 JDK版…

windeployqt.exe打包qt程序总结(MSVC)

文章目录 前言打包步骤问题 前言 打包环境&#xff1a;windows10VS2017QT5.12.12 参考&#xff1a;Qt 打包发布程序&#xff0c;解决找不到msvcp140.dll等动态库问题正确方案 打包步骤 运行Qt5.12.12&#xff08;MSVC 2017 64-bits&#xff09; 在开始软件菜单里找到Qt文件夹…

算法的学习笔记—不用常规控制语句求 1 到 n 的和

&#x1f600;前言 在算法编程中&#xff0c;有时我们会遇到一些特殊的限制条件&#xff0c;这些限制会迫使我们跳出常规思维。本文讨论的问题就是一个典型案例&#xff1a;在不能使用基本控制语句的情况下&#xff0c;如何求解 1 到 n 的和。这个问题不仅考验编程技巧&#xf…

计算机网络 (27)IP多播

前言 IP多播&#xff08;也称多址广播或组播&#xff09;技术是一种允许一台或多台主机&#xff08;多播源&#xff09;发送单一数据包到多台主机&#xff08;一次性的、同时的&#xff09;的TCP/IP网络技术。 一、基本概念 定义&#xff1a;多播作为一点对多点的通信&#xff…

CSS 学习之正确看待 CSS 世界里的 margin 合并

一、什么是 margin 合并 块级元素的上外边距(margin-top)与下外边距(margin-bottom)有时会合并为单个外边距&#xff0c;这样的现象称为“margin 合并”。从此定义上&#xff0c;我们可以捕获两点重要的信息。 块级元素&#xff0c;但不包括浮动和绝对定位元素&#xff0c;尽…