查看原文
其他

TPAMI 2023丨用于3D室内场景具有细粒度几何生成的层次图网络

让你更懂AI PaperWeekly
2024-08-22

3D 室内场景具有广泛的应用,例如智能数字房屋、虚拟现实/虚拟现实、机器人技术、虚拟房间规划等。它们还包含丰富的信息,包括房间布局,以及家具类型、几何形状和位置。人们对高质量的 3D 室内场景有很高的要求,但创建高质量的 3D 室内场景不仅耗时,而且需要设计师的专业知识。因此,能够自动生成 3D 场景的研究将非常有价值。

对此,现有的研究仅解决了部分问题:一些工作学习如何生成房间布局,而其他工作则专注于生成单个家具物体的详细结构和几何形状。然而,前面提到的几个步骤之间是相关的,应该一起解决才能达到最佳的合成效果。作者提出了 Scene-HGN,它是一个用于 3D 室内场景的分层图网络,考虑到了从房间层面到物体层面,最后到物体零件层面的完整层次结构。因此,这个方法首次能够直接生成可信的 3D 房间内容,其中还包括具有精细几何形状的家具物体及其布局。
论文标题:
SceneHGN: Hierarchical Graph Networks for 3D Indoor
Scene Generation with Fine-Grained Geometry

作者单位:

中科院计算所;斯坦福大学;卡迪夫大学

论文链接:

https://arxiv.org/pdf/2302.10237.pdf

开源代码:

http://geometrylearning.com/scenehgn/
https://github.com/xxh43/PartRetrievalAndAssembly (Coming soon)




引言

现有的研究工作通常只关注部分步骤,而不是整个过程。例如,大量工作涉及室内场景布局生成,包括传统的数据驱动模型和更新的深度生成模型。尽管此类作品可以生成多样且合理的家具布局,但它们不会同时生成家具几何图形,通常只会从存储库中检索现有的家具形状。

然而,形状几何和布局是相关的,分别处理这两个步骤可能会产生次优结果。此外,由于家具在几何和结构方面可能具有多种多样,检索形状不可避免地限制了可能出现在合成场景中的家具形状的多样性。其他一些工作明确考虑了零件感知的 3D 形状生成,它可以应用于家具物体以合成具有各种结构和/或几何细节的对象,但此类方法仅限于单个物体,而不是在 3D 室内场景级别。

虽然可以按顺序应用这些单独的步骤来合成 3D 室内场景,但很难确保对象之间的一致性和兼容性,如果将早期输出作为对下一阶段的约束,也可能会不必要地限制生成场景的多样性。一个关键的问题是家具的布局和几何形状是纠缠在一起的。例如,当一把椅子放在桌子下面时,它的几何形状不能是任意的,因为椅子必须适合那里的空间。因此,几何图形必须与其布局兼容。

为了应对这些挑战,作者提出联合对布局和细粒度几何建模,并使用单个深度生成模型合成整个 3D 房间。这将具有显著优势:通过将其视为联合优化问题,提出的方法能够生成具有丰富几何细节的多样化室内场景,同时确保物体房间关系、物体之间的上下文关系以及家具物体内容和风格的一致性/兼容性。

然而,由于数据的复杂性和问题的存在,存在许多挑战。虽然一个房间自然是分层的:它包含多个家具对象,并且每个家具物体也可以使用基于零件的方法进行建模以获得灵活的结构和细粒度的几何形状,但一个房间可能包含大量对象(例如一个房间在 3D-FRONT 数据集中包含多达 188 个对象),这使得学习变得困难。考虑到对于较大的房间,较小的物体组更可能相互关联(例如,桌子周围有几把椅子),因此引入了功能区域(例如用餐区、沙发区)作为中间代理来弥合房间和物品。

在生成室内场景时,通常会给出房间形状。通过变形一个单位正方形来灵活地表示房间形状,并将变形的编码视为室内场景生成的条件。为了确保合理的综合,考虑丰富的关系也很重要。这些包括层次结构中的垂直关系:区域必须在房间边界内,物体应在区域边界内等,以及将物体约束在同一级别的水平关系:例如物体的对称性、物体之间的相邻性、物体零件之间的对称性等。

为了实现这一点,作者的层次图网络是基于递归神经网络(RvNN)的变分自动编码器(VAE),涵盖 4 个级别,即:房间、区域、物体和零件,在图节点之间精心设计的边缘以强制执行约束。训练如此庞大的网络也具有挑战性,作者提出了多阶段训练策略以确保训练稳定有效。

由于没有公开的数据集包含丰富的零件级 3D 室内场景,作者使用了一个混合数据集,将 3D-FRONT 数据(物体级三维室内场景)与 PartNet 数据集相结合,后者包含有详细的零件级注释的物体,其中 3D-FRONT 数据集中的每个物体被替换成最相似的 PartNet 中的物体,以使得到的三维场景具有零件级注释。广泛的实验表明,本文的方法优于基线,并允许进行一系列有趣的应用,包括重建、生成、补全和插值。

▲ 图1:本文的深度生成模型SceneHGN在多个概念层面上对室内场景进行编码:房间、功能区域、家具物体,甚至是细粒度的物体零件几何形状。作者利用边缘,包括提出的超边缘来加强解码过程中物体之间的关系。这使得一些有趣的应用成为可能,例如用零件级的几何形状和场景插值进行房间编辑。本文的方法允许整个三维房间被表示和合成。在此基础上,可以实现场景中的部件几何编辑(不同尺度),如功能区域的刚性转换和部件层面的非刚性变形。同时,网络能够捕捉到类似场景附近的平滑潜伏空间,以便进行合理的场景插值。

总之,本文的主要贡献是:

1. 第一个提出能够用合理的家具合成整个房间的深度生成模型,包括物体布局和细粒度的物体几何。

2. 为了实现这一目标,作者提出了一个基于 RvNN VAE 的分层图网络,它涵盖了从房间到物体和物体零件的四个层次。在图中引入了功能区域和精心设计的垂直和水平边缘,包括代表多个物体之间关系的超边缘,以确保有效的学习和合理的生成。进一步将房间边界编码为变形的正方形,并将其作为控制生成的条件。

3. 大量实验表明,提出的方法优于现有基线,并支持从室内场景合成到编辑以及补全的一系列应用。



背景与问题

在此简要回顾合成场景表示和方法,并总结了利用层次图表示来学习 3D 生成模型的现有研究工作。

室内场景表示。由于现实三维场景的复杂性和多样性,研究者们已经开始追求组合式的场景表示,如场景图,它明确地模拟了场景中的实体(如房间、物体、墙壁)和它们之间的丰富关系(如相邻性、对称性)。场景图已被证明在生成二维图像方面具有强大的能力。

在本文的方法中,作者使用了一个层次图场景表示法,它不仅利用了场景图表示法的优势来编码同一层次的场景实体之间的丰富关系,而且还利用了层次分解来抽象不同层次的节点(例如,区域、物体、物体部分)。3D 场景可以被分层分解成多个语义层次的内容节点:区域、物体和物体零件。一些父-子间的包容约束,如物体应位于房间边界内,应该是成立的。本文工作还在每个层次的同级节点之间用水平边缘形成较小的图来增强效果。

室内场景合成。有许多探索家具布局生成的作品,在此简要回顾一下这个任务:该系列工作的通常设定为从给定的数据库中检索三维模型,并预测模型的位置,以生成语义上和功能上真实的室内场景。

在深度学习得到普及之前,大量的工作已经探索了这个问题,并不断地推动着前沿的发展。对于真实的室内场景,一些工作通过使用机器人的扫描方法对真实场景进行了密集的、真实的重建。

最近,基于深度学习的方法进一步提升了性能。比如引入一个基于图像的生成模型,对关系图进行推理。提出学习基于图像的深度卷积生成模型;利用一个递归神经网络在一个有四面墙的房间内布置家具;通过训练生成式对抗网络来解决这一任务,通过混合表示实现没有任何地板约束的自由形态生成,等等。还有其他一些工作在语言、活动、人类和动作的约束下学习产生家具布局。与这些工作不同的是,本文的方法是学习生成新的三维家具形状,而不是从数据库中检索现有的模型,同时也扩展到更精细的物体零件。

分层图网络。设计用于处理分层数据的神经架构是非常不容易的事情。最近的工作表明,使用递归神经网络(RvNN)和 TreeLSTM 来编码树状结构的自然语言句子和自然场景,取得了很好的效果。

最近,大家见证了使用 RvNNs 为三维形状和场景建模的成功浪潮。GRASS 首次提出将三维形状表示为部分的二进制层次结构,并采用 RvNN 变分自动编码器来建立 3D 形状生成模型。

后续工作扩展了 GRASS,以便从单一图像或三维点云中重建零件层次。StructureNet 及其后续工作利用 PartNet 数据集,提供了大规模的分层形状零件分割注释,将 GRASS 的二元层次结构扩展为更灵活的 n-ary 层次结构,并通过相邻和对称的零件关系形成兄弟节点之间的局部图来增强表示。在本文中,作者进一步探索使用层次图网络,特别是本文中的 RvNN,用于三维场景的生成,将每个 3D 场景建模为带有图的 n-ary 层次结构。




方法概述

作者提出了 SceneHGN,一个用于 3D 室内场景网格生成的分层图网络,它在多个概念层面上是端到端的可区分的:房间、功能区、家具物体,甚至是细粒度的物体零件几何。给定房间边界布局作为输入,SceneHGN 学习平滑和连续的条件潜伏空间,以生成多样化和新颖的室内场景,其中包括语义上合理的家具布局和具有部件级细节的形状几何。图 2 展示了用于 3D 场景生成的分层条件变分自动编码器(VAE)的高层次结构概况。

▲ 图2. 本文的场景层次有四个概念层次:房间根节点、功能区域、物体和物体零件。为了训练递归自动编码器,使用一个编码器网络以自下而上的方式提取特征,并使用一个解码器网络以自上而下的方式重建从房间根节点到区域再到物体最后到物体零件的场景层次结构。在这个过程中,还对不同层次的丰富的边缘关系进行建模,以加强生成的场景结构的有效性。

层次图表示

作者将每个 3D 室内场景表示为具有多个级别的层级树:房间⇒功能区域⇒物体⇒物体零件。同时发现,在合理的水平上对高度合成的 3D 室内场景的复杂空间进行建模对于产生高质量的结果是必要的。
除了自然定义的物体和零件级别外,作者还引入了抽象的功能区域层次(例如用餐区、睡眠区),以更好地组织大房间内的家具物体。图 3 展示了 3D 室内房间中常见的示例区域。功能区域级别充当层次结构的中间代理,并有助于在一个大房间内对较小的家具形状集进行分组。因此,房间内的所有对象都按照明确的层次结构更加一致地组织:房间⇒区域⇒对象。

▲ 图3. 功能区的可视化。整个场景被划分为三个功能区域,包括橱柜区域、餐饮区域和生活区域,这三个区域用不同的颜色突出。分离是通过空间聚类算法DBSCAN进行的,这是一种基于密度的非参数聚类算法,其中聚类的数量是自适应的。可以看到,一个室内场景可以被合理地划分。

场景中的物体也有自己的构成零件结构:它们的组成零件和零件关系。因此,在本文方法中,将一个物体组织成一个 n 元层次图树,其中包括其零件几何和边缘关系。需要注意的是,整个场景层次中的物体节点不仅编码了 n 元层次图树来表示物体的几何和结构,而且还编码了房间家具布局背景中的空间参数。

在场景层次结构中,还编码了不同级别节点之间的丰富关系。除了分层表示中自然定义的父子垂直关系外,同一级别的节点还具有水平边缘约束,例如形状和墙壁之间(例如与墙壁对齐的床),两个物体之间(例如两个对称的床头柜),甚至在多个物体之间(例如一张餐桌和四把周围的椅子,两个床头柜与床对齐)。作者不仅采用了以前工作中常用的二元边关系,还提出在多个对象之间实施超边约束。

层次图网络

作者训练了一个条件递归变分自动编码器,以学习一个平滑的潜伏空间用于场景生成。框架由一个房间布局编码器、一个场景层次编码器和一个场景层次解码器组成。房间布局编码器将地板边界的变形梯度作为输入,并提取一个矢量,作为解码器的地板边界条件。
场景层次编码器将室内场景层次从房间层面到功能区域层面、物体层面,最后到物体零件几何层面,分层递归地映射到一个共同的潜在空间。相比之下,场景层次解码器执行反映射,将潜伏向量和地板边界条件向量以自上而下的方式解码为具有详细几何形状的家具布局和形状。

在编码过程中,家具物体首先被预先训练好的 DSG-Net 编码为物体特征。然后,结合物体特征和它们在区域中的空间位置信息,提取区域级特征。最后,一个单一的房间级根特征将所有的区域信息与区域级的空间排列结合起来。场景层次解码器以自上而下的方式将室内场景层次从房间级潜伏代码逆向重建到更精细的层次。在训练的编码和解码过程中,进行了一些图信息传递操作,以捕捉物体与物体之间、房间边界与物体之间以及多个物体之间丰富的边缘关系和约束。




层级图表示
详细介绍作者提出的层次图表示的节点和边缘组合和关系设计。
4.1 层次节点分解

给定一个 3D 室内场景,作者将其表示为一个分层的图结构。层次结构中有多个概念层次:房间、功能区域、家具物体和物体零件的几何形状。除了 PartNet 中定义的物体和物体零件的自然概念外,作者还提出了一个新的概念层次——功能区域,将大房间中的物体进一步划分为更小的物体群,以便通过无参数方法产生更高质量的 3D 场景。节点定义描述如下:

区域。根据家具形状的功能,功能区域将整个场景划分为更小的物体群,以获得更一致和更便于学习的场景分层表示。不同类型的房间通常有非常不同的功能区域。明确地对区域语义进行建模,不仅可以提供许多有意义的语义标签作为场景生成结果的一部分,而且还有利于对每个房间内的大量对象进行建模。

物体。将场景空间划分为功能区域后,每个区域内都有许多家具物体。每个形状是由一个网格几何形状描述的,同时还有它的语义物体类别和它在区域内的空间位置。

物体零件。使用 PartNet 形状零件的层次结构,将每个三维形状分解为语义一致的部件层次结构,组织成一个 n 元的分层图树结构,涵盖了从粗粒度到细粒度零件的不同层次的零件实例。另外,本方法遵循与 StructureNet 中完全相同的物体内部分节点的边缘关系。

4.2 边缘关系

本文考虑场景层次结构中的两种节点关系:

  • 父节点和子节点之间关系的垂直边;
  • 同一级别节点之间的水平边。

▲ 图4. 在层次结构的物体层面上说明了两种类型的二元边:(a)展示了第一种二元边,它被定义在房间墙壁和一个物体之间,鼓励物体定位在房间的边界内,并与房间的边界对齐。(b)为另一种类型的二元边,描述了两个物体之间的空间关系。例如,任何一对四张椅子都有丰富的不同种类的对称关系。
对以前只考虑二元边建模的工作进行了扩展,作者提出了超边界来建模 n>2 个部分之间的 n 元关系。在许多室内场景中,多个物体可能拥有一个 n 元约束,例如平行共线性和 n 重旋转对称(例如餐椅围着圆桌)引入超边界使我们生成的室内场景更加合理和真实。作者使用更准确的关系来描述如何组织这些家具物体,包括两个物体之间的边界:邻接、平移对称、反射对称和旋转对称;多个物体之间的边界:平行共线性和 n 重旋转对称。

4.2.1 垂直边界

垂直边表示父节点和子节点之间的关系,这自然是由层级中的多级节点概念描述的:
  • 房间根节点由多个功能区域组成;
  • 每个区域包含许多家具物体;
  • 每个物体进一步由不同粒度的物体零件组成。
为了合成一个真实合理的室内场景,必须让生成的物体与房间边界兼容。因此,作者提出了两种额外类型的垂直边缘,将房间根节点连接到零件级别:
  • 在某些场景中,物体的定向边界框可能必须与房间边界对齐;
  • 场景中生成的物体必须位于房间边界墙内。
这种跳跃链接的垂直边缘有助于规范化生成的场景网格的有效性。

4.2.2 二进制水平边界

在同级节点上定义水平边,描述父节点的兄弟节点之间的丰富关系和约束。在本文,作者考虑两个物体之间和两个物体零件之间的二进制水平边缘。定义了四种类型的二元边,包括邻接 、平移对称 、反射对称和旋转对称。不同的关系采用不同的方式来进行区分和定义。请注意,两个节点之间可能存在多种关系。例如,桌子一侧的两把椅子同时具有平移对称性和反射对称性。
4.2.3 N元超边界

作者发现二元关系不足以描述复杂的物体布局,因为一些现实场景可能有更复杂的关系,这些关系发生在两个以上的节点之间。例如,在图 5(a)中,除了所示的广泛的二元关系之外,考虑约束四把椅子围绕中央餐桌的 5 元超边关系将是有益的。类似的超边关系也可能有帮助,例如图 5(b)中的示例,其中两个床头柜和床的定向边界框应该彼此平行。

▲ 图5. 超边界的说明。作者定义了两种存在于多个对象之间的超边界:旋转和平行。旋转超边界表示物体围绕一个中心旋转,而平行超边界表示物体是平行放置的。
因此,作者引入了两种类型的超边界关系:
  • n 重旋转对称 :例如餐桌周围放着几把餐椅;
  • 平行共线性:例如多个盒子物体彼此平行并且它们的中心可能共线对齐。
提出的超边界是在物体级别和功能区域内检测到的,其中物体的数量大于 2。另一个原因是,如果只考虑任意两个节点之间的关系,则会为网络学习构建一个密集图,这对于训练和进行消息传递操作来说非常困难。




层级图网络

提出的网络是一个条件 RvNN-VAE,在上一节定义的分层场景图表示上,有许多边界损失,以鼓励在生成的场景中建立更现实和合理的结构关系。

SceneHGN 将场景层次结构从房间根节点向下到物体零件几何形状作为输入,并以额外的输入房间边界作为条件。房间边界通过地板编码器映射为条件特征,而场景层次也 SceneHGN 的编码器映射为潜在向量。然后,将条件房间边界特征和编码场景层次特征连接在一起,随后将其输入 SceneHGN 的解码器以重建输入场景层次。

为了训练 VAE 生成模型,添加了正则化,使用 KL 散度,在潜在空间上将所有场景映射到标准高斯分布,可以从中平滑地采样新场景并在给定场景之间进行插值。由于作者采用了 DSGNet 的物体零件层次结构,因此零件几何编码器和零件几何解码器遵循 DSG-Net。编码器接收零件几何信息,包括物体每个零件的变形梯度,其中心以及其结构信息,并映射到潜伏嵌入特征。反之,解码器将潜伏特征及其结构信息映射回变形梯度空间。

下面,重点介绍作者提出的的房间边界布局和场景层次 VAE,以及训练策略和损失项。

5.1 房间边界布局 VAE

作者的目标是在给定任意房间边界的情况下生成房间,该边界在拓扑上与环形边界同构。为了生成合理的室内房间并对物体与房间边界之间的关系进行建模,需要有效地表示房间边界的详细几何形状。

为了实现这一目标,训练了一个由编码器和解码器组成的 FloorNet VAE,以将房间的地板边界映射到潜在空间。作者提出使用 2D 顶点环的变形特征来表示地板边界几何。任何封闭的地板边界都可以表示为变形的二维单位正方形边界。在本文中,单位正方形边界由 596 个顶点和 596 条边组成。所提出的 FloorNet 的架构如图 6 所示。

▲ 图6. 训练一个单独的VAE来编码地板边界。具体来说,将二维顶点环注册到输入的地板边界图上,然后在注册的环结构上计算 ACAP 特征。最后,VAE将ACAP特征映射到一个潜在向量中,它将作为场景生成的条件。

5.2 场景层次编码器

编码器由两部分组成:一个从零件几何到物体的递归编码器和另一个从物体到整个房间级别的递归编码器。遵循 DSGNet 中的设计。下面,重点描述提出的编码器设计,它学习映射物体,通过功能区域,最后到房间根节点。
对于每个物体节点,有三种类型的信息存储在其中:使用编码器提取的物体的结构和几何信息、放置参数和语义类别标签的独热向量。放置参数包括中心位置,尺度,以及围绕上轴的方向。物体特征编码器将上述信息一起编码为一个物体潜伏编码。

对于其他非物体节点,使用递归编码器收集所有子节点的特征,并沿着节点间的零件关系边进行消息传递。对于多个节点之间的超边界,首先仅将超边类型聚合到相应的节点中,以通过 MLP 更新节点特征,该 MLP 由两个全连接(FC)层和 Leaky ReLU 组成。然后,在子图中执行两个消息传递操作,并通过具有 LeakyReLU 激活的 FC 层聚合子节点的所有特征。最后,特征从所有子节点的特征中收集信息。

整个过程不断重复,直到根节点。全连接层将根节点的最终特征映射到潜在空间。在潜在空间中添加了一个正则化项,即 KL 散度,以鼓励潜在空间接近标准高斯分布。

5.3 场景层次解码器

解码过程以地板编码器提取的地板边界特征为条件。场景层次解码器将场景层次编码器输出的地板条件和根节点特征作为输入,并学习以递归方式将场景层次解码到零件几何结构。它还包括两部分:一个递归解码器,它根据物体特征预测部分几何形状;另一个递归解码器,它使用父节点特征以及条件特征,并解码物体根节点特征。对于物体解码,解码器遵循 DSG-Net 中的设计。

递归解码器将房间节点特征作为输入,并推断其子功能区域的节点特征,直到达到物体级别。对于每个解码步骤,本文假设每个父节点最多有 10 个子节点,并学习使用二元分类网络(由具有 Sigmoid 激活函数的 MLP 实现)来预测节点存在似然分数的概率。还将子节点的语义信息预测为输出。对于物体节点,训练一个 MLP 来预测放置参数、分类语义标签和物体特征,然后将其反馈并解码零件层次结构。

放置参数预测网络由两个全连接层、一个 Leaky ReLU 激活层和一个跳跃链接组成。网络分别通过三个单独的全连接层预测中心、缩放和围绕上轴的方向。因此,根据提取的节点特征,首先预测节点的存在性、语义和几何形状。

对于物体节点,还会预测放置参数。然后根据它们的几何形状和节点特征预测现有节点之间的边缘,并将边界类型与真值(GT)边界类型进行比较,以在递归解码训练期间优化网络的超参数。重复递归解码过程,直到它到达物体级别,然后将其进一步解码为物体零件。

5.4 训练过程与损失函数

5.4.1 训练策略

由于提出的的场景层次结构是一个非常深的复杂分支,从房间根节点到功能区域、物体,最后到物体零件,因此很难从头开始有效地一起训练它。因此,作者选择分两个阶段训练网络。首先训练从物体到零件几何的递归网络,然后训练整个网络,同时微调预训练的物体到零件网络。对于底层边界 VAE,将其与骨干网络分开训练。

5.4.2 损失项

作者将总训练损失 L 定义如下:

其中 S 是场景在整个数据集中的分布,重建损失 L 包括叶子损失、语义损失、边/节点存在损失、几何损失、放置损失和一些边缘损失(例如房间-物体边界、物体-物体边界、超边界和零件边界)。除了房间物体边界和提出的超边界的放置损失和边界损失外,其他损失项遵循 StructureNet。对于结构一致性损失,在 StructureNet 中使用它来确保生成的物体结构合理真实。

然而,与 StructureNet 不同的是,本文只在物体层级上添加了损失,而不是在整个场景层级上。而正则化旨在使潜在空间更平滑,更容易用于下游应用程序(场景生成和插值)。根据经验,γ = 0.01。

现在定义放置参数重建损失和边界损失。

放置参数重建损失。中心,尺度 ,以及围绕上轴的方向用于表示每个物体在室内场景中的位置。此外,观察到家具通常位于地板或天花板上,房间中的家具形状通常有 8 个方向,在大多数情况下间隔为 45°。因此,使用离散表示对家具的方向进行编码,以预测上述候选物体的粗略方向,并使用残差偏移来拟合物体的真实方向。

房间-对象二进制边缘损失。这个损失项的主要目的是尽可能地将预测物体的位置与房间的边界墙对齐。在原始室内场景数据中,如果将上轴表示为 y 轴,则房间边界大部分与 x 轴和 z 轴对齐。在此假设下,鼓励物体的定向边界框与 x 轴和 z 轴对齐。损失项仅适用于在解码期间检测到的具有属性(房间物体边缘)的物体。

超边界损失。这些损失项鼓励多个物体保留它们的 n 元超边界关系。在这里包括两种类型的损失,对应于两种类型的超边界。对于满足 n 重旋转对称超边界的物体 O ,可以定义损失:

对于共线平行的超边界,作者定义了两个损失函数。
第一个损失是:
这种损失对应于平行超边的第一个条件。
第二个损失是:
请注意,在计算 v 时,根据物体的 x 坐标按升序对物体中心进行排序,然后使用它们的 y 坐标按升序排序,以避免添加指向相反方向的向量。
最后,总损失函数:




实验与应用

作者进行了广泛的实验,评估 SceneHGN 用于 3D 场景重建、生成和插值,以及许多其他应用程序,例如场景编辑、从 3D Box 布局条件生成和房间补全。在许多定量指标和感知研究方面将 GRAINS 和 Deep Priors 作为两种最先进的方法进行了比较,证明了本文方法的卓越性能。使用 3D-FRONT 数据集进行训练和评估。3D-FRONT 是新发布的 3D 室内场景数据集,包含 6,815 栋房屋和 51,708 个房间。房间设计直接来自专业创作。

在数据集中,每栋房子被分成几个房间,房间类型相关联。在所有房间中,有 18,797 个房间配备了来自 3D-FUTURE 的物体,这是一个带纹理的 3D 家具模型数据集,每个模型都标有一个家具类别。
6.1 场景生成
3D 室内场景的生成是 SceneHGN 的第一个也是最直接的应用。本方法可以进行自由生成,但实际上,大多数生成任务都需要某种条件作为输入(例如房间的边界)。所以作者决定将地板边界(决定墙壁)作为条件和输入。生成的结果是装满家具的房间。展示了定量和定性比较。此外,还对生成模型进行了感知研究。

▲ 图7:给定训练集中房间边界和顶部检索房间的形状生成结果图库。为了展示房间生成的新颖性,根据采样点云上的倒角距离通过形状检索显示训练集中前 5 个最近邻。给定房间边界,可以看到生成的形状在对象布局和几何细节上与前 5 个检索到的房间不同,这证明了生成房间的新颖性。
从图 8 中的结果来看,本文方法能够更好地捕捉功能区域的变化(或家具的局部聚集)。例如,可以成功预测一张桌子周围有四把具有相同几何形状的椅子,而其他方法则不能。此外,图 9 中还显示了更多生成的室内场景。给定房间边界,SceneHGN 可以生成物体布局和家具的细粒度几何形状。
该图显示了生成的 12 个房间,包括 4 个客厅、4 个卧室和 4 个图书馆,这表明生成的合理的零件几何形状和合理的对象布局可以适应给定的房间边界。此外,为了证明房间生成的新颖性,根据采样点上的 CD 通过形状检索显示了训练集中的前 5 个最近邻(图7)。呈现的结果表明,生成的房间在对象布局和几何细节方面与前 5 个检索到的房间不同。

▲ 图8.关于房间生成的比较。展示了本文的方法与其他方法生成结果的比较。从结果可以看出,本文方法能更好地捕捉到功能区域(或家具的局部聚集)。

▲ 图9. 房间生成结果。鉴于房间的边界,可以利用训练好的解码器来生成新的房间。网络能够将任意的房间边界作为输入,以递归的方式生成物体布局和几何细节。图中显示了 12 个生成的房间。从结果来看,网络成功地学习了连续的潜在空间,它可以同时捕捉到合理的零件几何形状和适合房间边界的合理物体布局。

▲ 表1:方法之间的生成比较指标。计算 FID 和四个额外的指标,它们可以测量家具在本文的方法与其他方法生成的房间中的分布。可以看到,本文结果优于所有基线。


对生成结果的感知研究。除了定量结果外,作者还对本文提出的方法和两种基线方法的生成结果进行了感知研究。为了公平地比较结果,我们从数据集中随机选择 100 层边界,并使用这些边界作为条件为所有三种方法生成房间。为每位参与者准备了 20 个问题。

对于每个问题,要求用户根据三个标准对结果进行排名:a)家具的布局,即位置和放置家具的类别。b)家具的协调性(如餐桌和沙滩椅不协调)。c)生成房间的整体性能。所有参与者都是可靠的志愿者。感知研究的结果如表 2 所示。

▲ 表2. 关于 3D 场景生成的知觉研究结果。显示了平均排名分数(从 2(最好)到 0(最差))以及方法被排在第 1、2 和 3 位的频率结果是基于 433 次试验计算的。
6.2 场景插值

插值是提出的 RvNN-VAE 的另一个直接应用。为了显示 VAE 所学到的潜在空间的平滑性,在图 11 中展示了一些内插的例子。在插值时,首先将地板边界和源场景以及目标场景的场景布局编码为特征向量,并在源和目标之间同时对这两个特征进行线性插值,然后将它们送入条件 VAE 解码器。由于生成式 FloorNet 保证了有意义的潜空间,所以 FloorNet 可以实现源和目标之间合理的插值房间边界。

▲ 图11. 房间插值。同时对边界和场景布局进行插值,并将其送入 VAE 解码器。每一个插值步骤都是一个有效的三维场景布局,边界不断变形,布局根据边界的变化而变化。注意,只有当源和目标相似时,插值才是合理的。
6.3 应用
3D 室内场景的分层图形表示和 RvNN VAE 创建的局部平滑潜在空间使用户能够执行多个有趣的应用程序。在本节中,演示了三个应用:a)多层次的房间编辑;b)以 3D 盒子布局为条件的房间生成;c)从部分输入房间补全场景。
房间编辑。编辑 3D 室内场景不是一件容易的事,因为从功能区域到物体零件的所有元素都是相互关联的。因此,仅编辑其中一个通常会使场景显得不和谐(例如仅编辑桌子周围四把椅子中的一把会使场景看起来很奇怪)。但是 RvNN-VAE 学习了整个场景,包括物体零件的几何形状和场景布局。通过对场景和潜在空间的编辑,可以在空间中找到既满足编辑又解码为有效场景布局的潜在编码。

▲ 图12:房间编辑。第一列显示原始场景,随后成对的列展示编辑及其结果。两个场景中的每一个都有四次编辑。第一次和第二次编辑仅改变对象的位置和方向,第三次编辑使对象部分变形,第四次编辑替换对象的几何形状。从结果中,可以观察到与编辑对象相关的每个对象都根据编辑移动或变形。

从 3D 盒子布局生成房间。在生成 3D 室内场景时,有时会给出比地板边界更多的条件。室内设计中广泛使用的条件是二维平面图,它基本上包含地板边界和家具的二维边界框的信息。可以将 2D 平面图扩展到 3D 盒子布局。在 3D 框布局中,提供了物体的房间边界和 3D 边界框,但物体的语义类型和零件几何形状是未知的。需要生成一个房间,里面的家具需要与输入框相协调。

在图 13 中,为了清楚起见,展示了两个输入框布局视图。对于每个输入框布局,生成三个结果。在结果中的所有物体都大致放置在输入框的位置,只是物体的几何形状不同。零件几何形状完全由网络生成,它们看起来很和谐(例如,在第 2 行中,椅子的大小对应于桌子的大小)。

▲ 图13:从3D盒子布局生成 3D 场景。将由3D框组成的层次结构输入到本文的 RvNN-VAE 中,几何信息从随机分布中采样,然后对层次结构进行编码,对潜在向量进行采样并将其解码为完整的 3D 场景。可以看到生成的结果中对象的位置类似于盒子布局,场景的详细几何形状看起来很和谐。

房间补全。与以 3D 盒子布局为条件的房间生成相比,房间补全在某种程度上是一项更具挑战性的任务。对于部分场景,本文的方法需要预测房间中所有丢失的物体。

为了解决这个问题,利用了 VAE 学习到的潜在空间。由于重建损失用于训练 VAE,理论上潜在空间中的每个点都可以解码为完整的场景。所以房间补全过程由两部分组成:使用编码器将部分场景映射到潜在空间中的一个点,并使用解码器在该点上获得完整的场景。为了测试房间完成的质量,可以从删除层次图表示中的一些节点及其子节点开始,并将这个部分树输入 VAE,然后将采样的潜在向量解码为一个完整的场景。结果如图 14 所示。

▲ 图14:房间补全。给定一个缺失的房间,本文方法可以完成房间布局。前四张图片各展示一个局部场景,下四张图片展示了房间补全的结果。


更多阅读



#投 稿 通 道#

 让你的文字被更多人看到 



如何才能让更多的优质内容以更短路径到达读者群体,缩短读者寻找优质内容的成本呢?答案就是:你不认识的人。


总有一些你不认识的人,知道你想知道的东西。PaperWeekly 或许可以成为一座桥梁,促使不同背景、不同方向的学者和学术灵感相互碰撞,迸发出更多的可能性。 


PaperWeekly 鼓励高校实验室或个人,在我们的平台上分享各类优质内容,可以是最新论文解读,也可以是学术热点剖析科研心得竞赛经验讲解等。我们的目的只有一个,让知识真正流动起来。


📝 稿件基本要求:

• 文章确系个人原创作品,未曾在公开渠道发表,如为其他平台已发表或待发表的文章,请明确标注 

• 稿件建议以 markdown 格式撰写,文中配图以附件形式发送,要求图片清晰,无版权问题

• PaperWeekly 尊重原作者署名权,并将为每篇被采纳的原创首发稿件,提供业内具有竞争力稿酬,具体依据文章阅读量和文章质量阶梯制结算


📬 投稿通道:

• 投稿邮箱:hr@paperweekly.site 

• 来稿请备注即时联系方式(微信),以便我们在稿件选用的第一时间联系作者

• 您也可以直接添加小编微信(pwbot02)快速投稿,备注:姓名-投稿


△长按添加PaperWeekly小编



🔍


现在,在「知乎」也能找到我们了

进入知乎首页搜索「PaperWeekly」

点击「关注」订阅我们的专栏吧


·
·

继续滑动看下一个
PaperWeekly
向上滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存