首页 > 其他分享 >论文阅读:Nerflets: Local Radiance Fields for Efficient Structure-Aware 3D Scene Representation

论文阅读:Nerflets: Local Radiance Fields for Efficient Structure-Aware 3D Scene Representation

时间:2023-10-19 17:02:54浏览次数:30  
标签:场景 nerflet 实例 Efficient Fields 我们 Radiance nerflets 3D

Nerflets: Local Radiance Fields for Efficient Structure-Aware 3D Scene Representation from 2D Supervision

Nerflets: 用于高效结构感知的三维场景的二维监督的局部辐射场

论文阅读:Nerflets: Local Radiance Fields for Efficient Structure-Aware 3D Scene Representation_3D

图1。我们提出用一组局部神经辐射场来表示场景,称为nerflets,仅在2D监督下进行训练。我们的表示法不仅适用于新视图合成和全景分割等2D任务,而且还能够解决面向3D的任务,如3D分割和场景编辑。关键思想是我们学会的结构化分解(右上)。

摘要

我们从图像中解决高效和结构感知的3D场景表示问题。Nerflets是我们的主要贡献-一组局部神经辐射场共同代表一个场景。每个nerflet保持自己的空间位置、方向和范围,在其中它有助于全景、密度和亮度重建。通过仅利用光度和推断的全景图像监督,我们可以直接联合优化一组nerflets的参数,从而形成场景的分解表示,其中每个对象实例都由一组nerflets表示。在室内和室外环境的实验中,我们发现nerflts:(1)比传统的全局nerf更有效地拟合和近似场景,(2)允许从任意视图中提取全景和测光渲染,(3)实现nerf很少执行的任务,如3D全景分割和交互式编辑。

1. 引言

本文旨在仅从2D图像生成紧凑、高效、全面的3D场景表示法。理想情况下,这种表示法应该重建外观、推断语义和分离对象实例,以便它可以用于各种计算机视觉和机器人任务,包括2D和3D全景分割、交互式场景编辑和新视图合成。

许多以前的方法都试图从图像中生成丰富的3D场景表示。PanopticFusion[36]从图像中生成3D全景标签,尽管它需要从专门的传感器输入深度测量值。NeRF[34]及其后代[3,4,35,41]产生3D密度和亮度场,可用于新视图合成、表面重建、语义分割[52,62]和全景分割[5,23]。然而,现有的方法需要三维地面真相监督,效率低,或不能处理对象实例。

我们提出了nerflets,这是一种具有多个局部神经场的3D场景表示,它们被联合优化以描述场景中的外观、密度、语义和对象实例(图1)。nerflets构成了一种结构化和不规则的表示-每个表示都由一个3D中心、一个3D XYZ旋转和9-DOF坐标框架中的3个(每轴)半径参数化。每个弱化的影响由径向基函数(RBF)调制,RBF随弱化中心距离以及半径的增加而减小

,确保每个nerflet都对场景的局部有贡献。在该影响区域内,每个nerflet都有一个微型MLP来估计密度和亮度。它还存储了一个语义logit向量,描述nerflet的类别(例如,“car”),以及一个实例标签,指示它属于哪个现实世界的对象(例如,“第三辆车”)。在图1中,每个椭球都是一个单独的nerflet,它们根据语义进行着色。

一个场景可以包含任意数量的nerflets,它们可以放置在空间的任何地方,并且它们可以重叠,这为高效地建模复杂、稀疏的3D场景提供了灵活性。由于多个nerflets可以具有相同的实例标签,因此它们可以组合起来表示复杂对象实例的密度和亮度分布。相反,由于每个nerflet只有一个实例标签,nerflet提供了一个完整的场景分解到现实世界的对象。Nerflets因此提供了一个3D全景场景分解,可以渲染和编辑。

使用nerflets合成图像进行基于密度的体渲染,就像在NeRF[34]。然而,我们不是在一条射线的每个点样本上评估一个大的MLP,而是只评估样本附近nerflets的小MLP。我们将结果平均,根据每个nerflet对样本的影响进行加权。渲染对于nerflets的所有连续参数是完全可微的。拟合的nerflet表示是从一组提出的RGB图像与一个单一的训练阶段。训练完成后,根据场景结构分配实例标签,完成表示。

室内和室外数据集的实验证实了nerflets的主要好处。我们发现:1)简约鼓励优化器将场景分解为nerflets,并将一致的投影分解为新的全景图像(章节4.1);2)语义监督有利于新视图合成(章节4.2);3)结构鼓励效率、紧凑和可伸缩性(章节3.4);4)场景的显式分解提高了人类的可解释性,便于交互编辑,包括添加和删除对象(章节4.1)。这些优点使KITTI360[26]具有最先进的性能,新颖的语义视图合成基准,在ScanNet 3D全景分割任务中具有更有限的监督,以及一个交互式3D编辑工具,利用nerflets的效率和3D分解。

以下是我们的主要贡献:

•我们提出了一种新颖的3D场景表示,由名为nerflets的小型局部神经场组成。

•nerflets的姿态、形状、全景和外观信息都在单个训练阶段联合拟合,从而从室内或室外场景的真实RGB图像中获得全面的学习3D分解。

•我们在4个任务上测试nerflets -新视图合成,全景视图合成,三维全景分割和重建,以及交互式编辑。

•我们在KITTI-360语义新视图综合排行榜上获得第一名。

2. 相关工作

最近,深度学习方法在计算机视觉和图形任务中的成功使研究人员能够在各种设置下重建和推理3D场景。本文综述了基于分割和神经场的场景表示的相关研究。

语义、实例和全景分割:有许多方法设计用于语义、实例和/或全景[20]分割。最流行的方法是完全监督的,并在单一输入数据模式中操作。例如,2D方法[2,6,16,29,31,44,57,60,61]通常基于CNN或变压器主干,并将图像中的每个像素与特定的语义或实例标签关联起来。在我们的框架中,我们利用了一个经过训练的2D全景模型panoptic Deeplab[7]。

类似的框架已被提出用于解决3D点云[38 - 40,46,49]、网格[15,18]、体素网格[14,47]和八叉树[43]的3D分割任务。然而,这些方法通常需要大量带注释的3D数据,获取这些数据的成本很高

为了避免对3D注释的需求,一些多视图融合方法探索了使用加权平均[1,17,25,51]、条件随机场(crf)[24,33]和贝叶斯融合[32,51,56]将2D图像语义特征聚合到点云或网格上。也有像2D3DNet[13]这样的方法,将2D多视图融合与3D模型结合起来。

与这些方法相比,我们的方法只从2D输入构建完整的3D表示,包括几何、外观、语义和实例信息,没有任何输入3D基底,如网格或点云。

使用NeRF进行场景理解:NeRF[34]和后续工作[21,23,37,52,55,63]显示了神经辐射场在新视图合成之外的任务,包括3D重建、语义分割和全景分割的前景。例如,SemanticNeRF[63]和NeSF[52]对于语义理解是有用的,但不考虑对象实例。DFF[21]利用大型语言模型的强大功能进行语义理解,但同样不产生对象实例。ObjectNeRF[55]和NSG[37]对对象编辑很有用,但不能产生完整的全景分解或支持高效的交互式编辑。这些方法都不能像nerflets那样生成完整的场景表示。

泛视神经场(PNF)[23]与我们的论文非常相关,因为它既支持语义场景理解,也支持对象级场景编辑。PNF首先运行一个3D对象检测器,然后运行一个跟踪器来创建一个对象轨迹的输入集。然后,他们为每个物体轨迹设置一个单独的MLP,并为场景的其余部分设置另一个特殊的“东西”MLP。这是一个令人信服的有效方法,支持移动对象,但它不能解决我们的目标问题。它1)对探测器和跟踪器需要昂贵的地面真相3D监督,而这些监督只适用于某些类;2)有一个固定的3D场景分解,由输入跟踪器结果提供。最后一点意味着当探测器或跟踪器失败时,它也会失败,即使像在NeRF中那样,多视图综合分析外观损失也能够通过要求所有像素由某个对象实例描述来强制进行正确的预测。相比之下,nerflets只需要2D监督,支持任何2D全景分割可用的类,并联合优化大多数参数,提高效率和实例召回率。

DM-NeRF[5]是高度相关的并发工作。它学习场景的对象分解,但不提供显式结构,完整的全景分解,或简单的交互式编辑nerflets。特别是,大型MLP将空间位置解码为对象标识向量,因此编辑需要仔细考虑—反向查询算法[5]。相比之下,nerflets可以直接作为几何原语进行编辑。我们在第4节中对PNF和DM-NeRF进行了定量比较。

结构化的NeRF表示:nerflets的关键优势之一是它们的不规则结构,这已经在其他上下文中进行了研究。许多现有的方法利用结构来提高效率[30,35,41,48,53]、紧凑性[28]、可伸缩性[50,59]、人类可解释性[37]、简约性[11]或可编辑性[23,55]。例如KiloNeRF[41]和DiVER[53]利用mlp或特征的规则网格提高了NeRF新视图合成的效率。MVP[30]为实时肖像渲染构建了一个不规则的基于原语的表示,但需要显式的场景几何输入来初始化原语,并在初始化后冻结它们的位置。我们从这些方法中获得灵感,这些方法通过局部结构实现了令人印象深刻的性能,并将其见解应用于全景分割和编辑。与这些方法不同,nerflets可以符合对象的范围,然后随着对象的编辑而移动。在未来,探索不规则NeRF表示的更多好处可能包括跟踪移动对象或允许使用一致的局部坐标框架来学习3D先验。

3.方法

本节介绍了我们的nerflet场景表示以及我们的训练和渲染方法。和NeRF[34]一样,我们方法的输入是一组二维的RGB图像。我们首先运行一个现成的2D泛视分割模型[7]来生成预测的2D语义和实例图像,我们在优化期间将其用作目标。接下来,我们优化我们的核心nerflet表示(第3.1节),以收敛光度、语义、实例和正则化损失,应用于使用体积射线行进[34]渲染的图像(第3.2节)。最后,我们根据学习到的分解(第3.3节)将实例标签分配给nerflets,此时表示已经完成,可以呈现或编辑了。

3.1. 场景表示

我们框架的核心新颖之处在于nerflet场景表示。Nerflets是一种结构化的表示,其中输出亮度和全景场是通过混合N个单独的Nerflets产生的值来定义的。

论文阅读:Nerflets: Local Radiance Fields for Efficient Structure-Aware 3D Scene Representation_DM_02

图2。由nerflet和NeRF维护的信息。与NeRF相比,nerflet只关注由其影响函数g (Eq. 1)决定的场景的一小部分,因此它使用一个微型MLP来拟合密度σ和颜色c。每个nerflet也保持一个语义logit向量si和分配的实例ID Insi。这些参数一起构成了我们场景表示的一个紧凑的构建块。

Nerflet定义:每个Nerflet存储局部几何、外观、语义和实例信息。如图2所示,nerflet i具有1)位置和方向参数,这些参数定义了它在空间上的影响函数gi, 2)它自己的微型MLP fi生成密度和辐射度值,3)单个语义logit向量si直接存储其语义信息,以及4)关联实例ID 。与其他语义感知的NeRF方法相比[52,62],我们使用单个logit向量来表示局部语义信息,而不是训练MLP来编码语义。这与我们的目标一致,即单个nerflet不应该跨越多个类或实例,并且具有减少MLP容量负担的额外好处,并提供对3D空间一致性的自然归纳偏差。

姿态和影响:每个nerflet有9个姿态参数-一个3D中心μ i, 对应于3个轴的半径和3个旋转角度。我们用两种方式解释这些姿态参数。首先,作为一个坐标帧-每个nerflet可以直接栅格化通过将椭球转换为由nerflet定义的坐标框架来实现可视化。这对于编辑和理解场景结构很有用(例如,图1)。第二种方法,对于渲染来说更关键,是通过由相同的9个姿态参数定义的影响函数gi(x)。gi是一个基于尺度各向异性多元高斯的解析径向基函数(RBF) [11,12]

论文阅读:Nerflets: Local Radiance Fields for Efficient Structure-Aware 3D Scene Representation_DM_03

μ i是基函数的中心,Σi是一个6自由度的协方差矩阵。协方差矩阵由3个欧拉角旋转角度和3个轴对齐半径决定,它们是沿每个主轴的方差的倒数。这9个参数提供了一种快速紧凑的方法来评估每个nerflet的影响区域,而无需评估任何神经网络。这个性质对于我们的快速训练和评估是至关重要的,后面会介绍。η是为所有实验设置为5的缩放超参数,τ是用于控制衰减硬度的预定温度超参数。τ在每个训练epoch之后减小,以逐渐减少nerflets之间的重叠。

渲染和混合:给定一个由N个nerflets表示的场景,我们可以使用体渲染来渲染2D图像,如NeRF所示:

论文阅读:Nerflets: Local Radiance Fields for Efficient Structure-Aware 3D Scene Representation_新视图_04

C(r)为射线r的最终颜色,Tk为第k个样品沿射线的透射率,αk为样品的不透明度,ck为样品处的颜色,δk为当前样品在射线上的厚度,σk为样品处的密度。我们用k表示沿一条射线的样本索引,用K表示样本总数,用i表示nerflet的索引。

论文阅读:Nerflets: Local Radiance Fields for Efficient Structure-Aware 3D Scene Representation_DM_05

图3。样品和混合方法说明。基于距离的加权函数确定的影响值gi,来自各个nerflets的结果是混合的。混合是平滑的,但空间中的大多数位置都是由一个单一的nerflet主导的,即使有一些重叠。

和NeRF最大的不同是使用单个大的MLP来产生ck和σk,我们结合由单个nerflet MLP产生的值,使用它们的影响权重(图3)。我们在第k个输入样本(pos, dir) = (xk, d)处沿射线查询单个nerflet MLP fi,产生N个值,对于标记为i∈[1,N]的nerflets。然后,我们将各个nerflet 值δ映射到α,以使用δk和公式2进行渲染。最后,我们对N个个体nerflet颜色和α值进行加权平均,得到ck和αk:

论文阅读:Nerflets: Local Radiance Fields for Efficient Structure-Aware 3D Scene Representation_DM_06

e是一个允许在空白空间中平滑衰减到零的因子,具有Σgi(xk) ∼e。混合后,αk和ck值直接用于射线行进,如公式2-4所示,以生成最终的像素颜色值C(r),如NeRF所示。

虽然原则上我们应该在这一步评估场景中的所有nerflet mlp,因为高斯rbf有无限的支持,我们不这样做。通常,gi由一个或最多几个接近样本的nerflets主导。因此,我们只评估附近的mlp,从而提高性能和可伸缩性。这是用我们自定义的CUDA内核实现的,将在第3.4节中介绍。较远的nerflet被忽略在平均值中。

为了生成语义图像,我们对每个点样本的per-nerflet语义logit向量进行平均,方法与上面描述颜色值ck,i的方法相同。

为了处理实例,我们首先为每个点样本计算一个nerflet影响激活函数w∈R n:

论文阅读:Nerflets: Local Radiance Fields for Efficient Structure-Aware 3D Scene Representation_DM_07

σi是x在第i个nerflet上的密度求值。这个值直观地表示每个nerflet对给定点样本的影响有多大,并且可以通过射线行进来累积,为每个射线r生成一个nerflet影响图W(r)。W(r)连续捕获哪个nerflet对每个最终像素值占主导地位,并用于我们在3.2节中描述的影响损失。为了给一个查询位置或射线分配一个离散实例标签,我们分别取argmaxi∈[N]w(r)或argmaxi∈[N]W(r)来得到i,然后输出该nerflet的实例Insi。

无界场景:Nerflets支持室内(有界)和室外(无界)场景。为了处理无界场景,我们添加了一个单独的MLP ffar来评估大场景边界框外的样本。我们在射线的末端为这些点绘制M个额外的样本,我们在混合RGBα值和复合后拼接它们。我们采用Zhang等[58]提出的方案,使用添加的语义分支,尽管内容非常遥远且接近定向,但许多其他方法可能会工作得很好(例如,环境地图)。

3.2. 损失函数

在训练过程中,我们共同优化了所有的网络参数以及nerflets的姿态。通过这种方式,每个nerflet都可以通过渐变来“移动”场景,并专注于场景的特定部分。我们希望最终的分解能反映场景,在复杂的物体上有更多的nerflets,并使用多次损失来达到这个目的。

损失函数被分解为rgb、语义、实例和正则化术语:

论文阅读:Nerflets: Local Radiance Fields for Efficient Structure-Aware 3D Scene Representation_3D_08

Lrgb: RGB损失Lrgb是合成颜色的平均值和地面真实颜色C对一批采样射线的平均值之间的均方误差,就像在原始的NeRF中一样。唯一的变化是我们在第0步时使用一个为0.0的调度参数来衡量这个损失。我们在训练过程中逐渐将这个值增加到1.0,以防止早期过拟合到高频外观信息。

Lsem:我们的语义损失Lsem将体积渲染的语义logits像素与Panoptic Deeplab预测[7]进行了比较。我们使用逐像素的软最大交叉熵函数来计算这种损失。

实例损失定义为:

论文阅读:Nerflets: Local Radiance Fields for Efficient Structure-Aware 3D Scene Representation_DM_09

即根据实例分割模型预测,对来自同一类但不同实例的P射线对(r1, r2)进行采样,并强制它们具有不同的影响映射。虽然这种方法有些间接,但分离良好的nerflets可以很容易地分配实例标签(章节3.3),而且它的优点是避免了由于场景中实例数量可变而导致的拓扑问题,同时仍然实现了针对实例分解的综合分析损失。它还兼容在不同的2D全景图像预测中不一致的实例ID标签。光线对(r1, r2)在每L × L像素窗口内选择,以提高训练效率。

Lreg:我们的正则化损失有几个项,使nerflets的结构更好地反映场景的结构

论文阅读:Nerflets: Local Radiance Fields for Efficient Structure-Aware 3D Scene Representation_DM_10

除了下面描述的直觉,每一个都在剔除消融研究中得到验证(第4.2节),并在多个数据集上进行了测试,以降低对一个设置过拟合的风险。

首先,为了减少物体内不必要的nerflet重叠和减少场景混乱,我们惩罚nerflet半径的L2范数(Lradii)。为了尽可能地鼓励稀疏性,我们在样本位置(L’1)惩罚nerflet影响值的L1范数。我们还要求nerflets呆在他们的场景边界框内,惩罚:

论文阅读:Nerflets: Local Radiance Fields for Efficient Structure-Aware 3D Scene Representation_新视图_11

这降低了nerflet“死亡”的风险,因为nerflet离场景内容很远,所以它不会造成损失,因此不会收到梯度。

最后,我们加入了一个“密度”正则化损失Ldensity,这大大提高了分解质量:

论文阅读:Nerflets: Local Radiance Fields for Efficient Structure-Aware 3D Scene Representation_DM_12

N (μ i, Σi)表示第i个nerflet的基本多元高斯分布,D是绘制的样本数量。这个术语奖励一个nerflet在其中心位置附近创造密度。因此,nerflets最终会在它们重建的对象中处于中心位置。

3.3. 实例标签分配

给定一个优化的场景表示,我们使用贪婪合并算法对nerflets进行分组,并将它们与实际对象实例相关联。我们首先选择一个任意的2D实例图像,并为该图像渲染相关的nerflet影响图W(r)。然后,我们将最负责渲染每个2D实例的nerflets分配给基于它的3D实例。我们继续到下一张图像,根据需要将nerflets分配给新的或现有的3D实例。因为nerflets已经被优化为只投射到训练图像中的单个2D实例,这个阶段不容易失败,除非2D全景图像强烈不一致。

更多细节请参见补充。

3.4. 高效Nerflet评估

Top-k评估:我们不像公式5-8中那样评估一个场景中所有Nerflet mlp,而是使用gi影响值以两种方式过滤掉遥远和不相关的Nerflet。首先,我们将所有nerflet影响截断到0以下的一些微不足道的阈值-如果MLP的支持度有限,根本不需要评估MLP。在自由空间中,通常所有的mlp都可以这样忽略。接下来,我们实现了一个与自动差异训练和推理框架兼容的“top-k”MLP评估CUDA内核。这个内核只评估与每个样本相关的最高影响nerflet mlp。在本文中,我们使用k = 16进行训练和可视化,尽管更激进的修剪在图像质量上是非常相似的(例如,top-16和top-3之间的PSNR只有~ 0.05的差异),并提供了大量的计算减少。一项顶级k消融研究可在补充中获得。

交互式可视化和场景编辑:我们为nerflets开发了一个结合CUDA和OpenGL的交互式可视化工具,该工具利用了nerflets的结构、效率、渲染质量和场景的全景分解。详情见补充部分。实现高效评估的关键见解是nerflets具有良好的加速稀疏模式——它们具有一致的局部结构。我们用下面的两步方法大大减少了计算量。在第一次传递中,我们确定在体积样本网格中nerflets有足够高的影响力来贡献最终图像。在第二步中,我们为特定的nerflet MLP评估空间相邻的小子网格,由于RBF函数的低空间频率,它通常对子网格中的所有样本都有很高的影响。这就平摊了将MLP层加载到共享内存中的内存带宽。这种方法没有InstantNGP[35]那么快,但仍然是交互式的,并且具有镜像场景结构的优势。

4. 实验

在本节中,我们使用512 nerflets在两个具有挑战性的现实世界数据集的多个任务上评估我们的方法。其他超参数请参见补充说明。

KITTI-360:对于KITTI-360实验,我们使用新颖的视图合成拆分,并与Panoptic Neural Fields (PNF)[23]进行比较,这是一种最新的全景新颖视图合成方法(在KITTI-360排行榜上排名第一)。为了生成户外场景的2D全景预测,我们使用了在COCO[27]上训练的panoptic DeepLab[7]模型。

ScanNet:对于ScanNet实验,我们评估了DM-NeRF[5]中的8个场景,并与最近的基线进行了比较——DM-NeRF[5],它综合了语义和实例信息,以及Semantic-NeRF[62],它只综合语义。为了生成室内场景的全景图像,我们使用PSPNet[60]和Mask R-CNN[16]。请参阅补充关于如何实现扫描网上的2D监督的重要细节。

4.1. 结果

论文阅读:Nerflets: Local Radiance Fields for Efficient Structure-Aware 3D Scene Representation_新视图_13

图4。新视图合成定性比较。Nerflets的性能优于NeRF、Mip-NeRF和FVS,并且在困难区域(最左边)的性能与PNF相当,可能是由于参数的显式空间分配。

新视图合成:我们在两个数据集KITTI360和ScanNet上评估了nerflets的新视图图像合成性能。如表1所示,在KITTI-360上,我们的方法在排行榜上的PSNR优于其他所有2D监督方法,与使用3D监督的PNF[23]具有竞争力。如图4-所示我们的视觉质量与PNF大致相当,在具有挑战性的领域表现尤其出色。对于ScanNet中的复杂室内场景(表2),我们在所有设置(有或没有实例监督)下实现了新视图合成的最佳性能,包括与DM-NeRF[5]相比。特别是,nerflets实现了更好的对象细节(图6),这可能是由于它们显式地将参数分配给单个对象实例。

2D全景分割:Nerflets可以在新视图下呈现语义和实例分割。我们在KITTI-360(表1)和ScanNet(表2)上定量评估了我们的2D全景渲染性能。在这两个数据集上,nerflets在语义mIoU方面优于所有基线,甚至与3d监督的PNF[23]相比。在ScanNet数据集上,我们还表明nerflets在mIoU和实例mAP方面优于PSPNet[60]和Mask R-CNN[16],尽管这些方法用于为我们的方法生成2D监督。这表明,尽管nerflets的语义参数化要低得多,但它不仅具有足够的表现力来表示输入掩码,而且nerflets可以有效地将来自多个视图的2D信息融合成更好、更一致的3D整体。我们将在补充材料中进一步探讨这一点。从定性上讲,与基线方法相比,nerflets实现了更好、更详细的分割(图5、图6),特别是对于薄结构。

论文阅读:Nerflets: Local Radiance Fields for Efficient Structure-Aware 3D Scene Representation_新视图_14

图5。新视图语义综合定性比较。Nerflets优于其他方法,特别是在细节和薄结构方面。









图6。ScanNet定性结果与DMNeRF[5]的比较。比较来自DM-NeRF论文中的ScanNet视图合成示例。我们的结果在图像和分割质量方面都有所提高——注意,玻璃桌子的图像渲染更好,椅子腿的分割更好,甚至超过了地面真实质量。



场景编辑:在图7和图8中,我们使用nerflet上的实例标签来选择单个对象,然后直接操作nerflet结构来编辑场景。不需要额外的优化,并且可以在交互式帧率下渲染时进行编辑(请参阅视频演示,这里的结果由本文的标准autodiff推理代码渲染)。与ScanNet上的object - nerf相比(图8),由于nerflets的显式结构和与对象边界的对齐,它生成了更清晰的结果和更多的细节。使用nerflets,空场景区域在删除后将不会携带任何密度,因为那里没有任何东西可以评估。在图7中,我们演示了KITTI-360上的其他编辑,得到了类似的结果。这些可视化帮助确认,nerflets学习了一个精确和有用的三维场景分解。


图7。KITTI-360场景编辑。我们替换汽车(上)或删除一个符号实例(下)。



图8。在ObjectNeRF论文中显示的一对ScanNet图像上与ObjectNeRF的场景编辑比较。请注意,在删除过程中对自由空间的处理得到了改进,在复制过程中纹理更加准确,这都归功于nerflets操作的简单“复制粘贴”性质。




图9。一个三维网格提取从ScanNet RGB序列与nerflets,根据预测的泛视标签着色。

左侧显示了带有人类注释标签的Ground truth RGBD网格。Nerflets成功地重建并标记了地面真相网格中丢失的椅子实例。

三维全景重建:在图9中,我们通过提取一个全景光学标记的3D网格并将其与地面真相进行比较,展示了nerflets的3D功能。表面提取细节在补充中提供。我们观察得到的网格与地面真实相比具有良好的重构和全景质量。例如,nerflets甚至显示了一个椅子实例,在地面真相网格中完全不存在。与表3中现有的3D标记方法相比,我们通过将nerflet表示转移到一组ground truth 3D ScanNet网格来定量地演示这一点。我们观察到,在增加实例功能的同时,nerflets比类似监督的多视图融合基线表现更好。当输入几何和大型3D训练语料库可用时,最先进的直接3D监督基线仍然比nerflets更有效,但即使如此,nerflets也优于一些旧的3D语义和实例分割方法。

4.2. 分析和消融


场景分解质量:我们的想法是创建一个不规则的表示,反映场景的结构。nerflets成功地实现了场景分解吗?在图10中,我们展示了RGB和全景图像以及生成它们的底层nerflet分解。我们确实看到,nerflets并没有跨越物体边界,而是连接在一起来表示大型或复杂的物体,并且覆盖了场景内容。

语义帮助外观:关于我们的方法的一个关键见解是,nerflets分解的语义结构即使对于较低级别的任务也是有益的,比如新视图合成。我们在KITTI-360验证集上进行了一个实验,并观察到在没有语义或实例损失的情况下(即只有光度和正则化损失)进行训练时,nerflets的PSNR达到了20.95。但是当添加语义损失时,PSNR增加到22.43,因为nerflets最终更准确地定位在场景内容所在的位置。这也是为什么我们在训练早期使用更高的语义损失进行训练,以鼓励更好的nerflet定位。

消融研究:在这里,我们运行一个剔除消融研究来验证我们每个正则化项的有效性。表4显示了所有正则化项对最终性能的定量贡献。Ldensity是学习良好表示法最重要的术语。它影响图像合成和分割性能,因为它鼓励nerflets关注实际场景内容。也都提高了性能,因为它们的作用是迫使一个更良好的分离和活跃的场景分解,所有的nerflets都有助于最终的结果。

性能:由于它们的局部结构,Nerflets具有良好的性能。我们的编辑器呈现320 × 240 top-1可编辑体积图像,192个样本/像素,31 FPS, 4个A100 gpu和64个nerflets -每秒4.57亿个样本评估。

5. 结论与局限性

在这项工作中,我们提出了一种新的3D场景表示方法nerflets,它将场景分解为一组局部神经场。过去的工作表明,结构在基于mlp的形状表示[11]中是有用的,我们在本文中发现了类似的证据,将其扩展到场景中。由于每个nerflet的局地性,我们的模型是紧凑的,高效的,多视图一致的。在KITTI360和ScanNet两个具有挑战性的现实世界数据集上的实验结果表明,在全景新视图合成方面具有最先进的性能,以及具有竞争力的新视图合成,并支持场景编辑和3D分割等下游任务。

尽管有这些优点,nerflets也有一些局限性。例如,我们不为动态内容建模。尽管该表示非常适合处理刚性运动(如场景编辑中演示的那样),但该特征还没有被研究过。此外,虽然单个nerflet亮度场能够处理参与的媒体,但整体表示可能难以适应那些效果跨越语义边界的场景(例如,雾蒙蒙的室外序列)。最后,我们目前假设每个场景的nerflets数量是固定的,不管场景的复杂性如何。然而,根据需要的地方(例如,损失最高的地方),修剪、添加或以其他方式动态调整数字可能是有利的。在未来的工作中,研究这些新特征是很有趣的。



附录

更多细节

模型架构

对于所有的nerflets MLPs fi,我们遵循NeRF架构[34],但将隐藏层的数量从8减少到4,并将隐藏维度的数量从256减少到32。我们还删除了原来网络中的快捷连接。所有其他体系结构细节如[34]所示。背景神经场采用nerf++[58]风格编码,其MLP ffar有6个隐藏层和128个隐藏维。一个区别是,我们确实像[34]中那样执行粗-细采样,但粗和细样本都是从单个MLP中提取的,而不是两个不同的MLP。

A.2超参数

在主论文中,我们使用N = 512个nerflets进行所有实验。所有实验的标度参数η均设置为5。我们将nerflets温度参数τ初始化为1,并在各个epochs将τ乘以0.9。所有实验的平滑衰减因子设置为。在边界框内,粗级抽取64个样本,细级抽取128个样本。对于无界场景,我们从背景MLP中绘制16个粗样本和16个细样本。我们将Lrgb的权重从0.0增加到最大1.0,跨epoch的步长为0.2,以防止早期过拟合到高频信息。对比射线对在一个32 × 32像素的窗口内采样。正则化损失Lreg的权重设置为0.1。所有其他损失的权重为1.0。

A.3 数据集细节。

对于每个ScanNet场景的训练,我们统一采样20%的RGB帧用于训练,10%的RGB帧用于评估——大约200帧用于训练,100帧用于评估。对于ScanNet和KITTI-360场景,我们使用摄像机外部参数估计场景包围框,并将所有实验的坐标输入归一化为[−0.5,0.5]。

关于ScanNet [9]实验的一个重要注意事项是,2DScanNet监督间接来自3D。这是因为2DScanNet数据集是通过将标记网格渲染成图像而制成的。我们不直接使用这个2D地面真理,但PSPNet[60]是在它上面训练的。这里,这主要是评估的限制,而不是方法的限制——有许多2D模型可以预测ScanNet图像上合理的语义和实例,但我们希望能够根据3D地面真相中存在的确切类进行评估。这并不影响与其他2D监督方法的比较,因为所有的监督都来自同一个2D模型。相比之下,KITTI-360的结果是纯二维的,但所有的定量评估都必须在图像空间中完成。

A.4论文可视化细节。

对于ScanNet网格提取,我们在网格上创建点样本,并从nerflets评估它们的密度、语义和实例信息。然后,我们使用5个最近的邻居估计点法线,并使用筛选泊松曲面重建[19]创建网格。网格三角形根据其顶点的语义和实例标签进行着色。对于我们学习到的nerflets表示的teaser和KITTI-360可视化,我们根据其影响函数对nerflets进行可视化。我们在影响值e−1 2≈0.607处画椭球。


A.5 交互式可视化器细节。

我们的交互式可视化工具允许实时预览nerflet编辑结果,同时调整场景中对象的包围框。可视化工具绘制了以下组件。首先,一个交互式分辨率高达320x240的体积渲染RGB或深度图像。这使得可以实时查看对场景所做的更改。其次,通过在可配置的影响阈值处渲染每个nerflet的椭球,直接对nerflet进行处理。这样就可以看到nerflets产生的场景分解。第三,通过移动立方体提取的动态等值面网格,随着场景的编辑而更新,给出了一些与场景内容相关的nerflets的位置。第四,一组装箱操作器,每个对象实例一个,具有可拖动的平移和旋转句柄。这些盒子的实例化是通过选取与单个实例ID关联的所有nerflets的椭球轮廓网格的包围框来实现的。每个实例都不同的转换矩阵被存储,并在每次编辑时推送到nerflets。

编辑器的大部分内容都是用OpenGL实现的,卷渲染是通过一系列CUDA内核实现的,这些内核异步执行,并在准备就绪时传输到预览窗口。在主要论文中,我们报告了top-1评估的性能数字,这通常是在给定预算中最大化感知质量的正确妥协(例如,像素计数可能更重要),尽管在一些较低的分辨率下,具有top-16或top-3评估的交互帧率是可能的。

A.6 实例标签分配。

为了给每个nerflet分配实例标签,我们为每个视图渲染nerflet影响映射Wi,并与相应的2D语义和实例分割映射进行比较,以将每个(视图i中局部id为j的2D对象实例或东西)匹配到一组nerflet。这里M(·)将一个实例ID映射到它相关的一组nerflets。然后,我们根据第一个视图的分割结果创建一组3D实例我们为每个检测到的2D对象实例创建一个3D全局实例,也为语义映射中的每个不相交的东西标签创建一个3D全局实例。对于每个新视图i,如果,我们将与3D实例匹配,然后将更新为。如果在中没有找到匹配,我们创建一个新的3D实例并将其插入到g中。在插入任何新的全局实例g之前,我们从g中删除所有已经被全局集g覆盖的nerflet。通过使用这种先到先得的贪婪策略,我们总是保证没有nerflet与两个不同的全局实例相关联。在这一步之后,每个nerflet都与一个全局实例ID相关联,我们的表示可以用于有效地在实例级进行推理。

B. 更多结果

下面的实验是在来自[5]的ScanNet子集上进行的。

Nerflets的数量。我们对扫描网络上的Nerflets数量进行了消融研究。结果见表5。我们发现,增加nerflets的数量可以提高光度和语义指标的性能。然而,当增加的nerflets数量超过512时,优势就饱和了。为了平衡性能和效率,我们在本文的所有实验中使用了512个nerflets。


B.2Top-k评价效果。

当我们对每个点样本只评估具有Top-k影响权重的nerflets时,我们对k的性能影响进行了消融研究。结果见表6。我们发现,评估32个、16个或3个nerflet对模型性能的影响很小,因为每个nerflet只在局部有贡献。然而,当只评估一个具有最高影响权重的nerflets时,我们看到了适度的性能下降。为了平衡计算成本和性能,本文的所有实验都选择计算k = 16个nerflets。


B.3不活跃的Nerflets。使用学习范围的RBF训练的一个已知问题是,当RBF太小或离场景太远时,它对构建结果没有贡献。提出了半径损耗Lradii和盒子损耗Lbox来解决这一问题。为了估计不活跃的nerflet的实际数量,我们使用nerflet影响地图W,并统计在任何视图中没有出现在任何这些地图上的nerflet。在KITTI-360实验中,我们估计平均每个场景有10.6个非活动的Nerflets,占所有可用nerfleet的2.07%。在主要论文中的ScanNet实验中,我们估计每个场景平均有30.6个非活动的nerflets,占所有可用nerflets的5.98%。

B.4对输入二维分割的鲁棒性。

在图11中,我们在ScanNet上可视化了更多的例子,将我们的全景预测与来自数据集的参考注释进行比较。可以看出,我们从二维监督中学习到的表示包含丰富的信息,在某些情况下可以产生比参考地图更准确的分割结果。我们的方法产生了更清晰的边界,更少的洞,并在参考结果中发现了缺失的对象,这要归功于它能够将来自多个视图的分割与表示结构的3D稀疏性融合在一起。

标签:场景,nerflet,实例,Efficient,Fields,我们,Radiance,nerflets,3D
From: https://blog.51cto.com/u_16312091/7940815

相关文章

  • 论文阅读:A Lightweight Knowledge Graph Embedding Framework for Efficient Inferenc
    ABSTRACT现存的KGE方法无法适用于大规模的图(由于存储和推理效率的限制)作者提出了一种LightKG框架:自动的推断出码本codebooks和码字codewords,为每个实体生成合适的embedding。同时,框架中包含残差模块来实现码本的多样性,并且包含连续函数来近似的实现码字的选择。为更好的提升K......
  • Go - Defining Metadata for Struct Fields
    Problem: Youwanttodefinemetadatatodescribethestructfields.Solution: Usestructtagstodefinemetadataandthereflectpackagetoaccessthetags. Oneverycommonplaceyoufindthisisinthejsonpackage:typePersonstruct{......
  • 无涯教程-OC - Input types - TextFields函数
    键盘输入类型可帮助无涯教程从用户那里获得所需的输入。无涯教程可以使用UITextField的keyboard属性设置用户可以提供的输入类型。Inputtypes-键盘输入类型Sr.No.InputType&描述1UIKeyboardTypeASCIICapable键盘包括所有标准ASCII字符。2UIKeyboardTypeNumber......
  • EfficientFormer:高效低延迟的Vision Transformers
    我们都知道Transformers相对于CNN的架构效率并不高,这导致在一些边缘设备进行推理时延迟会很高,所以这次介绍的论文EfficientFormer号称在准确率不降低的同时可以达到MobileNet的推理速度。Transformers能否在获得高性能的同时,跑得和MobileNet一样快?为了回答这个问题,作者首先回顾......
  • 完美解决ParserError: Error tokenizing data. C error: Expected 2 fields in line 5
    完美解决ParserError:Errortokenizingdata.Cerror:Expected2fieldsinline53,saw3文章目录报错问题解决方法声明报错问题之前在工作中遇到过这个坑,记录一下问题以及解决方法,不一定针对所有情况都能用,但是可以供大家参考。问题描述如下:ParserError:Errortokenizing......
  • Precomputed Radiance Transfer(games202)
    PrecomputedRadianceTransfer(games202)关于BRDF可以看看这篇文章基于物理着色:BRDF物体在不同光照下的表现不同,PRT(PrecomputedRadianceTransfer)是一个计算物体在不同光照下表现的方法。光线在一个环境中,会经历反射,折射,散射,甚至还会物体的内部进行散射。为了模拟具有真实......
  • destoon添加自定义字段报错INSERT INTO [pre]fields
     今天做destoon开发时候在后台添加自定义字段时候出现:destoon7.0-8.0添加自定义字段报错MySQLQuery:INSERTINTO[pre]fields(tb,name,title,note,type,length,html,default_value,option_value,width,height,input_limit,addition,search,display,front)VALUES('article_21',......
  • QSqlTableModel.insertRecord()报错"No Fields to update"解决记录 && QField构造
    问题的出现当我想向一个Table中插入一条记录时,我本能的想的是:QSqlTableModel是由一条一条的Record组成的,那么我先创建一个Record,并且赋予对应的值,然后再使用QSqlTableModel::insertRecord()插入就好了,代码如下:QSqlRecordrcd;rcd.remove(model->fieldIndex("id"));rcd.setValu......
  • [VLDB 2012]Efficient Subgraph Matching on Billion Node Graphs
    [VLDB2012]EfficientSubgraphMatchingonBillionNodeGraphs重点了解实现star-join的具体过程。分解query和STwigs排序文中把star叫做STwigs,每一个STwigs查询为\(q=(r,L)\),其中r是跟节点标签,L是子节点标签合集。点的选择性:\(f(v)=deg(v)/freq(v.label)\)分解算法:每次......
  • ​MPDIoU: A Loss for Efficient and Accurate Bounding Box Regression
    ​MPDIoU:ALossforEfficientandAccurateBoundingBox RegressionMPDIoU:一个有效和准确的边界框损失回归函数摘要边界框回归(Boundingboxregression,BBR)广泛应用于目标检测和实例分割,是目标定位的重要步骤。然而,当预测框与边界框具有相同的纵横比,但宽度和高度值完......