Neural Fields in Visual Computing and Beyond

文章目录

  • Abstract
  • 1. Introduction
    • 1.1. Background
    • 1.2. Related Surveys and Articles
  • Part I. Neural Field Techniques
  • 2. Prior Learning and Conditioning
    • 2.1. Conditional Neural Fields
      • 2.1.1. Encoding the Conditioning Variable z
      • 2.1.2. Global and Local Conditioning
      • 2.1.3. Mapping z to Neural Field Parameters Θ
    • 2.2. Gradient-based Meta-learning
  • 3. Hybrid Representations
    • 3.1. Defining g and its Common Forms
      • 3.1.1. Regular Grids
      • 3.1.2. Irregular Grids
  • 4. Forward Maps
    • 4.1. Rendering
      • 4.1.1. Ray-surface Intersection
      • 4.1.2. Surface Shading and Lighting
      • 4.1.3. Volume Rendering
      • 4.1.4. Hybrid Volume and Surface Rendering
    • 4.2. Physics-informed Neural Networks
    • 4.3. Identity Mapping Function
  • 5. Network Architecture
    • 5.1. Overcoming Spectral Bias
    • 5.2. Integration and Derivatives

Abstract

  • 机器学习的最新进展使得人们对使用基于坐标的神经网络的方法来解决视觉计算问题越来越感兴趣。这些方法,我们称为神经场,参数化的物理性质的场景或对象跨越空间和时间。他们在诸如三维形状和图像合成、人体动画、三维重建和姿态估计等问题上取得了广泛的成功。快速的进步导致了大量的论文,但对已发现的知识的巩固还没有出现。我们提供了背景,数学基础,并回顾了神经领域文献中超过250篇论文。在第一部分中,我们通过识别神经场方法的常见组成部分来关注神经场技术,包括不同的条件反射、表示、前向映射、体系结构和操作方法。在第二部分中,我们专注于神经领域在视觉计算中的不同问题的应用,以及其他(例如机器人,音频)。我们的综述展示了视觉计算中已经涵盖的主题的广度,包括历史上的和当前的版本,并强调了神经场方法所带来的改进的质量、灵活性和能力。最后,我们提出了一个配套网站,它充当一个活动数据库,可以由社区不断更新。

1. Introduction

  • 视觉计算涉及跨空间和时间的物体和场景数据的综合、估计、操作、显示、存储和传输。在计算机图形学中,我们合成3D形状和2D图像,渲染新奇的场景视图,并使铰接的人体有动画效果。在计算机视觉中,我们重建三维外观,形状,物体的姿态和变形。在人机交互(HCI)中,我们实现了时空数据的交互研究。除了视觉计算和邻近的学科,如机器人,我们使用3D场景的结构来计划和执行动作。在这些学科中,场被广泛用于在空间和时间上连续参数化对象或场景的潜在物理量。例如,场已被用于可视化物理现象[Sab88],计算图像梯度[SK97],计算碰撞[OF03],或通过构造实体几何(CSG)表示形状[Eva15]。
  • 在视觉计算任务中,我们解决了许多不同的优化问题,包括使用机器学习和训练数据。自2019年以来,一类方法获得了重大关注:代表一个领域的基于坐标的神经网络。我们把这些方法称为神经场。在足够的参数条件下,全连接神经网络可以以任意分辨率对任意维数的连续信号进行编码。最近神经网络的成功引起了人们对视觉计算问题的兴趣,导致了更精确、更高保真度、更有表现力和内存效率的解决方案。这使得神经场作为二维图像[KAL * 21]、3D形状[PFS * 19,MON * 19,CZ19]、与视图相关的外观[SZW19, MST * 20]以及人体和面部[NMOG19, DLJ * 20, SYMB21, YTB * 21, RTE * 21]的有用参数化获得了吸引力。
  • 这种关注表现为快速进步和论文的爆炸式增长(图2),需要巩固已发现的知识。然而,描述相关技术的通用数学公式尚未出现,这使得思想交流和培训学生非常困难。此外,对较老的甚至是同时进行的作品存在“选择性失忆”[SC21],导致研究重复。最后,快速的进展使任何调查都很快过时,需要新的总结方法。
    Neural Fields in Visual Computing and Beyond_第1张图片
    [图2: 神经场在20年前就被提出了,但是它在视觉计算中的发展集中在最近两年,有超过250篇论文。]
  • 在对250多篇论文的调查之后,我们通过通过物理量的领域定义神经场,通过通用技术提供共享的数学公式,对许多应用进行分类、描述和关联,并通过社区网站呈现一个活的数据库,来解决上述问题。
  • 在第一部分中,我们描述了具有一致符号和词汇的论文中常见的神经场技术。例如,我们确定并形式化了神经场最近的离散-连续混合表示,以及学习先验的技术,如局部和全局条件反射和元学习。此外,神经场可以与各种各样的可微前向映射相结合,我们识别了许多这样的映射,包括表面和体积渲染器和偏微分方程。
  • 在第二部分中,我们描述了视觉计算中神经领域应用的广泛截面。这让我们能够识别不同作品之间的共性、联系和趋势,这些作品代表了场景和对象的形状和外观,包括3D重建、数字人、生成建模、数据压缩和2D图像处理。我们还回顾了解决邻近领域任务的工作,包括机器人(第11节)、医学成像(第13.1节)、音频处理(第13.1节)和物理相关问题(第13.2节)。
  • 我们的动态数据库是一个配套网站,它提供搜索、筛选和可视化功能,以呈现本报告中描述的作品(图1),以及书目导出功能。该网站允许我们的社区提交神经领域的新作品,并使用第一部分和第二部分分类法中的关键字分类自动更新数据库。该网站只需要最少的维护,其源代码是开放的,以便将来的报告和调查提供相同的功能。
  • 总之,神经场技术是强大的,广泛适用于视觉计算等问题。这份最新的报告提供了技术的数学公式和应用的讨论,使这个令人兴奋的领域有意义,以及一个社区驱动的网站,继续帮助研究人员跟踪未来的新发展。
    Neural Fields in Visual Computing and Beyond_第2张图片
    [图1: 此报告的贡献。在对超过250篇论文的调查之后,我们提供了(第一部分)神经领域的技术,如先验学习和条件反射、表示、前向映射、架构和操作,以及(第二部分)视觉计算中的应用,包括2D图像处理、3D场景重建、生成建模、数字人、压缩、机器人等。该报告由一个社区驱动的网站补充,该网站具有搜索、过滤、书目和可视化功能。]

1.1. Background

  • 根据物理学中的原始定义[FLS65, McM02],我们将场定义为: 字段是定义在所有空间和/或时间坐标上的量。
  • 我们可以将字段表示为将坐标 x 映射到一个量的函数,这个量通常是一个标量或向量。表1提供了几个示例。物理学界也研究了旋量场和张量场。最后,场坐标不局限于空间和时间,如频谱图中的频率坐标。这篇综述将关注定义在时空上的标量场和向量场,它们与视觉计算最为相关。
    Neural Fields in Visual Computing and Beyond_第3张图片
    [表1: 物理和视觉计算领域的例子。]
  • 在实践中,潜在的场生成过程可能没有一个已知的解析形式。因此,函数可以用手工制作、优化或学习的参数 θ \theta θ 来描述。我们将这样的字段表示为生产数量 q = Φ ( x ; Θ ) q = \Phi(x;\Theta) q=Φ(x;Θ)。此外,我们经常使用离散值为采样函数建立索引,例如在相机像素处,或者使用体素或离散水平集选择离散函数参数化。然而,离散参数化受到奈奎斯特采样率的限制,导致3D任务需要较高的内存。像八叉树和k-d树这样的自适应网格可以减少内存,但它们的生成会导致昂贵的组合优化。
  • 神经网络神经网络连接了许多层人工神经元,以学习将固定大小的输入非线性映射到固定大小的输出[LBH15]。多层感知器(MLP)神经网络可以通过学习到的参数逼近任何函数(通用逼近定理[KA03])。自2010年以来,人们对使用神经网络产生了浓厚的兴趣,并对支持神经网络的硬件和软件进行了相应的投资。这大大降低了将神经网络应用于广泛问题的障碍。
  • 神经场根据普适近似定理,任何场都可以用MLP神经网络参数化。因为神经场是由神经网络全部或部分参数化的场
  • 神经场具有连续性和自适应性。与离散参数化所需的记忆与时空分辨率的比例差不同,神经场所需的记忆与神经网络参数的数量成比例,即所谓的网络复杂性。虽然其他连续参数化可以表示较大的范围(例如,傅立叶级数是字段的参数化),但通常很难提前知道有效表示所需的复杂性。神经场有助于解决这个问题,因为它只在有场细节的地方使用参数。神经场通常被参数化为具有明确梯度的激活函数的mlp。通过它们的解析可微性、梯度下降和过参数化[FC19],神经场可以有效地通过对问题的优化来回归复杂信号,否则问题是病态的。
  • 我们对神经场的定义不包括上域具有空间范围的神经网络,例如输出体素网格的网络。这些方法通常使用卷积层并输出RGB颜色、占用或潜在特征的2D或3D网格[STH * 19,LSS * 19]。虽然这些体系结构的规则网格输出可以被视为场的采样,但神经网络参数化的函数不是神经场,因为它们不摄取时空坐标。
  • 术语。在视觉计算中,神经场被称为隐式神经表示、神经隐式或基于坐标的神经网络。在神经科学中,术语神经场可以描述有关大脑组织和功能的理论[CbGPW14]。该术语还描述了神经网络中神经元的规则网格[Lem92]。我们排除了这两个领域的作品,因为它们不符合我们的定义。

1.2. Related Surveys and Articles

  • 在视觉计算领域,有关于神经渲染[TFT * 20, TTM * 21]和3D重建[ZSG * 18]等特定领域的调查论文,以及场景表示的工作列表[NeRb, NeRa, Sit, NeRc]。我们的调查旨在连接我们的视觉计算社区,并分享发现。最后,神经场是领域不可知的,可以模拟形状和外观以外的任意数量。神经场通过物理信息神经网络(pinn)在计算物理学中得到了广泛的应用[RPK19a],现有的研究[KKL * 21]。

Part I. Neural Field Techniques

  • 视觉计算中典型的神经场算法如下(图3):跨越时空,我们对坐标进行采样,并将其输入神经网络以产生场量。场量是来自我们问题的期望重构域的样本。然后,我们应用前向映射将重构与传感器域(例如RGB图像)联系起来,在那里可以进行监督。最后,通过将重构信号与传感器测量结果进行比较,计算重构误差或损失,从而指导神经网络优化过程。
    Neural Fields in Visual Computing and Beyond_第4张图片
    [图3: 一个典型的前馈神经场算法。时空坐标被输入到一个神经网络中,该神经网络预测重构域的值。然后,将该域映射到传感器域,其中传感器测量可作为监督。改编自[MST * 20, LZP * 20]。]
  • 在这个过程中,很多问题影响了我们成功重建信号的能力。为了更好地理解和应用神经场,我们确定了五类技术(表2)。我们可以通过先验学习和条件反射从不完整的传感器信号中帮助重构(第2节)。我们可以通过使用离散数据结构的混合表示提高内存、计算和神经网络效率(第3节)。我们可以通过可微分前向映射来监督重构,转换或投射我们的域(例如,通过2D图像进行3D重构;通过适当的网络架构选择,我们可以克服神经网络谱偏差(模糊)并有效地计算导数和积分(第5节)。最后,我们可以操纵神经场来添加约束和正则化,并实现可编辑表示(第6节)。总的来说,这些类构成了一个技术工具箱,以帮助解决神经场问题。
    Neural Fields in Visual Computing and Beyond_第5张图片
    [表2: 神经领域工具箱中的五类技术都解决了在学习、推理和控制中出现的问题。]

2. Prior Learning and Conditioning

  • 假设我们希望估计一个合理的三维表面形状给定部分点云。这个问题出现在从激光雷达扫描重建3D街景时,因为我们只观察表面上的点。为了完成这个任务,我们需要一个合适的先验在3D表面。一种选择是通过启发式(如平滑性或稀疏性)手工创建先验。然而,这种方法受限于我们所能设想的启发式的复杂性。或者,我们可以从数据中学习这样的先验,这些可以在神经网络的参数和架构(第5节)中进行编码。
  • 除此之外,我们可能希望根据具体情况调整我们的先验。在我们的街景激光雷达示例中,我们可能会根据车辆的类型来改变车辆的预期表面形状:自行车、汽车或卡车。对于神经场来说,这是通过使神经场与一组潜变量z相适应来实现的,这些变量对特定场的属性进行编码。通过改变潜在变量,我们可以改变神经场。在本节中,我们将讨论如何提出学习潜变量 z 的优化问题,如何在给定一组不完全观测值的情况下推断 z,以及如何调整 z 上的神经场以将它们解码为不同的场。

2.1. Conditional Neural Fields

  • 条件神经场允许我们通过改变一组潜在变量 z 来改变该场。这些潜在变量可以是来自任意分布的样本,也可以是描述形状、类型、大小、颜色等的语义变量,或者来自其他数据类型的编码,如音频数据[GCL * 21]。例如,通过对描述汽车的语义变量进行调节,我们希望将这些变量解码为代表相应汽车的形状和外观的字段。实例特定的信息可以编码在条件潜变量 z 中,而共享信息可以编码在神经场参数中。如果这些潜在变量定义在语义或平滑空间上,则可以对它们进行插值或编辑。
  • 在接下来的小节中,我们将讨论以无监督的方式学习潜变量 z 是什么,如何在给定(部分)观测值 O 的情况下推断它们,以及如何对 z 的神经场进行条件化,以便将 z 解码为相应的场。z 通常是一个低维向量,通常被称为潜在代码或特征代码。我们将讨论不同的编码方案(第2.1.1节)、全局和局部条件反射(第2.1.2节)以及不同的映射函数 Ψ (第2.1.3节)。

2.1.1. Encoding the Conditioning Variable z

  • 前馈编码器/平摊推理。对于前馈编码器方法,条件潜码 z = ϵ ( O ) z = \epsilon(O) z=ϵ(O) 是通过编码器 ϵ \epsilon ϵ 生成的,通常是一个神经网络(图4,左)。 ϵ \epsilon ϵ 中的参数可以编码先验,可以对数据或辅助任务进行预训练。解码器是受潜码制约的神经场。这种条件反射方法是快速的,因为推断只需要通过编码器和解码器进行一次前向传递。用于不同数据类型的编码器的例子包括用于点云的PointNet [QSMG17],用于2D图像的ResNet [HZRS16],或用于体素网格的VoxNet [MS15]。
  • Auto-decoders。只有解码器是显式定义的,编码是通过随机优化进行的。也就是说,潜代码 z = a r g m i n z L ( z , Θ ) z = argmin_z L(z,\Theta) z=argminzL(z,Θ) 是通过最小化某个损失函数 L 获得的,该损失函数 L 可能是对数据集的期望(图4,右)。每个训练观察都是用它自己的潜代码 zi 初始化的。为了优化特定的潜码 zi,我们将其映射到神经场参数 Θ \Theta Θ (第2.1.3节),计算重构损失,并将该损失反向传播到 zi,以采取梯度下降步骤。训练时,对每观察潜码 zi 和神经场 Φ Θ \Phi_\Theta ΦΘ 进行联合优化。在测试时,给出一个新的观察 O ^ \hat O O^,我们冻结 Φ 参数和优化的代码 z ^ \hat z z^ 最小化重建误差。因此,自解码器通过一阶优化求解参数 a r g m a x z P ( z ∣ O ) argmax_z P(z|O) argmaxzP(zO);优化作为编码器E,将观测值 O 映射到潜在变量 z。
    Neural Fields in Visual Computing and Beyond_第6张图片
    [图4: 推断:编码vs.自动解码。(A)在平摊或基于编码器的推理中,编码器 ϵ \epsilon ϵ 将观测值 O 映射到潜变量 z, ϵ \epsilon ϵ 的参数与条件神经场联合优化。(B)自动解码缺少编码器,每个神经场由一个单独优化的潜码 zi表示,该潜码zi与条件神经场共同优化。橙色显示的梯度流。]
  • 考虑到推理时间的优化,自动译码明显比前馈编码器方法慢。然而,自动解码不引入额外的参数,也不对观察结果 O 做假设。例如,2D CNN编码器假设 O 在2D像素网格上,而自动解码器可以摄取像素坐标和颜色的元组,独立于它们的空间排列。这可以在某些非分布场景中带来健壮性。例如,在从图像进行三维重建时,当观察不在训练集中的相机姿态时,卷积编码器受其核的二维几何限制,而自动解码器则不受此限制[SZW19, LLS * 21]。由于这些优点,一些作品采用了自解码器的方法[PFS * 19, GSL * 20, RTE * 21, YWC * 21, LZZ * 21, JA21, TTG * 21, SRF * 21]。
  • 混合方法。这些方法通过参数编码器 ϵ \epsilon ϵ 的正向传递初始化 z,然后通过自动解码继续迭代优化 z [MQK * 21]。

2.1.2. Global and Local Conditioning

  • 在全局条件反射中,单个潜码 z∈Rn 跨座标值决定了整个神经场 Φ (图5,左)。这在表示学习中是可取的,当我们希望 z 是紧凑的——编码尽可能多的信息。然而,某些信号不适合学习一个潜在变量 z 的单一连续空间。具体地说,信号是其他独立部分的组合,例如一个房间的几何结构是由独立的物体组成的。在这种情况下,通过潜在变量 z 的全局集合来表示整个房间意味着这些潜在变量必须表示房间的所有可能配置,而房间的配置会随着物体的数量呈指数增长。因此,全局潜码成功地对自由度相对较少的分布进行建模,例如单个物体或人体的形状和外观。
  • 在局部条件反射中,我们引入多个潜码 z。在坐标 x 的空间中,每个 z 都有一个局部邻域的空间范围。因此,潜码是 x 的函数: z = g ( x ) z = g(x) z=g(x) (图5,右)。例如离散数据结构,如2D光栅网格[SHN * 19, YYTK21, TY21], 3D体素网格[PNM * 20, LGL * 20, JSM * 20, CAPM20, CLI * 20],表面贴片[TTG * 20],或3D网格的正交二维投影,如地板图[DBS * 21,PNM * 20]。由于每个潜码 z 只需要编码关于其本地邻域的信息,因此它不再需要存储关于配置的信息。例如,想象我们将一个房间分割成小的3D立方体,并且在每个立方体中存储描述该立方体中的几何结构的潜在代码。这些潜在的代码不再需要编码房间的所有可能的配置。
    Neural Fields in Visual Computing and Beyond_第7张图片
    [图5: 局部条件反射与全局条件反射。(A)在全局条件反射中,一个潜码 z 定义了跨所有输入坐标 x 的神经场。(B)在局部条件反射中,一个离散数据结构提供了一个坐标相关的潜码 z = g(x),这样神经网络是坐标相关的。图改编自[PNM * 20]。]
  • 同样,对于局部条件反射,编码器 ϵ \epsilon ϵ 只需将局部属性编码为潜变量 z。编码器可以保留观测 O 的空间范围,如2D或3D cnn,以从图像或离散体中提取特征。这可以利用编码器的属性,如翻译等方差,提供更好的分布外泛化。另一方面,潜码 z 不捕获全局场景信息,这提供了较少的约束和较少的高层控制。
  • 混合方法。全局和局部条件作用可以结合起来。例如,对于人脸图像,试图将跨实例共享的属性(如头发颜色)与特定区域的属性(如皮肤皱纹)分离开来。

2.1.3. Mapping z to Neural Field Parameters Θ

  • 给定一组潜变量 z,我们现在希望用它们来参数化表示相应场的神经网络。在之前的工作中已经提出了不同的方法。虽然乍一看,它们似乎不可比较,但它们都遵循相同的原则: 定义一个函数 Ψ,该函数将潜变量 z 映射到神经网络参数的子集 Θ = Ψ(z),然后将神经场 ΦΘ 参数化。不同的条件反射方法不同,其中参数 Θ 由 Ψ 输出,以及 Ψ 本身的形式。这些设计选择可能会影响泛化能力、参数数量和计算成本。
  • 串联条件作用。通过直接连接坐标输入 x 和 z,神经场可以以潜在变量 z 为条件。例如,考虑一个将2D像素坐标映射到 RGB 颜色的神经场 Φ: R2→R3,并考虑一个潜在变量 z∈Rn 的向量。通过连接的条件作用将产生一个条件神经场 Φ’: R2+n→R3,它以连接坐标 x 和潜在代码 z 作为输入。
  • 通过串联的条件反射如何落入上面定义的框架还不清楚,在这个框架中,所有条件神经场都表示为通过函数 Ψ 预测神经场 ΦΘ 的参数 Θ 的一个子集。然而,通过串联的条件反射等同于定义一个仿射函数 Ψ(z) = b,它将潜码 z 映射到 Φ 第一层的偏差向量 b [SCT * 20, DPS * 18, MGB * 21]。换句话说,在通过串联条件反射的情况下,Ψ 预测的参数子集仅仅是神经网络 Φ 第一层的偏差,Ψ 被参数化为一个简单的仿射映射。
  • FiLM 和其他调理。在通过连接的条件反射和完整超网络之间,可以通过预测特征转换(FiLM)来调节 MLP [DPS * 18, CMK * 21,MGB * 21]。为了膜化神经场 Φ,我们使用网络 Ψ 从潜在变量 z: Ψ(z) = {γ,β} 预测每层(可能每神经元)尺度 γ \gamma γ 和偏置 β 向量。输入 xi 到第 i 层 Φi 转换为 Φ i = γ i ( z ) ⊙ x i + β i ( z ) \Phi_i=\gamma_i(z)\odot x_i+\beta_i(z) Φi=γi(z)xi+βi(z) 通过预测神经场权重矩阵的低秩分解因子 Φ [SIE21],预测神经场参数子集大小的另一种权衡得到了解决。

2.2. Gradient-based Meta-learning

  • 条件神经场方法的另一种选择是基于梯度的元学习[FAL17]。在这里,我们的目标分布中的所有神经场都被视为具有参数 θ 的底层元网络的特殊化[SCT * 20, TMW * 21]。通过将该元网络拟合到一组观测值 O 中获得单个实例,在步长 λ \lambda λ 的少量梯度下降步骤中最小化重构损失 L: Θ j + 1 = Θ j − λ ∇ ∑ L ( Φ ( O ; Θ i j ) ) ,       Θ i 0 = θ (1) \Theta^{j+1}=\Theta^j-\lambda∇\sum L(\Phi(O;\Theta_i^j)),~~~~~\Theta_i^0=\theta\tag{1} Θj+1=ΘjλL(Φ(O;Θij)),     Θi0=θ(1)
  • 与条件神经场中的自解码器框架类似,推理函数 ϵ \epsilon ϵ 是通过迭代优化算法实现的。元网络可以看作是一个初始化,它足够接近目标分布中的所有神经场。
  • 在条件神经场中,先验通过 Ψ 的参数表示,这些参数要求 Φ 的参数位于由潜变量 z 定义的低维空间中。然而,在基于梯度的元学习中,先验通过约束优化来表示,以使神经场参数 Θ 不远离元网络的参数 Θ。基于梯度的元学习支持快速推理,因为只需要几个梯度下降步骤就可以获得 Θ。由于这没有假设一个低维的潜在变量集,原则上我们保留了神经场 Φ 的全部表达性。

3. Hybrid Representations

  • 神经场工具箱中的第二类项目是混合表示。这些方法将神经场与分解输入坐标空间的离散数据结构结合起来。这使得神经场可以扩展到大信号RWG * 13。离散数据结构在可视化计算中广泛使用,包括规则网格、自适应网格、曲线、点云和网格。离散结构有几个重要的好处:1)它们通常减少计算。例如,包围卷层次结构(BVHs) [RW80, MOB * 21]支持在硬件加速器上进行快速查询[PBD * 10,WWB * 14]。2)它们还允许更有效地使用网络容量,因为大型MLP网络在表示容量方面的回报递减[RJY * 21]。3)在表示几何图形时,离散结构允许跳过空白空间,从而加速渲染。4)离散结构也适用于模拟,如通过有限元方法,可以帮助操作和编辑任务(第6节)。
  • 空间分解的一般方法是将部分或全部神经场参数 ΘΦ 存储在数据结构 g 中。给定坐标 x,我们查询g 来检索神经场的参数 Θ。将参数 Θ 映射到数据结构 g 的两种常用方法是网络平铺和嵌入。
  • Network Tiling。一组独立的(通常较小的)神经场 Φ 在输入坐标空间上平铺,覆盖不相交的区域。网络结构是共享的,但它们的参数对于每个不相交的区域是不同的。给定一个坐标 x,我们只需在数据结构 g 中查找网络参数: q = Φ ( x , Θ ) = Φ ( x , g ( x ) ) (2) q=\Phi(x,\Theta)=\Phi(x,g(x))\tag{2} q=Φ(x,Θ)=Φ(x,g(x))(2)
  • Embedding。我们将潜变量 z 存储在数据结构中,如第2.1.2节所示。神经场参数 Θ 通过映射函数 Φ 成为局部嵌入 z = g(x) 的函数: q = Φ ( x , Θ ) = Φ ( x , Ψ ( z ) ) = Φ ( x , Ψ ( g ( x ) ) ) (3) q=\Phi(x,\Theta)=\Phi(x,\Psi(z))=\Phi(x,\Psi(g(x)))\tag{3} q=Φ(x,Θ)=Φ(x,Ψ(z))=Φ(x,Ψ(g(x)))(3)
  • 平铺是嵌入的一种特殊情况,其中 Ψ 是恒等函数,z 是参数 Θ。功能 Ψ 的设计选择细节请参见第2节。

3.1. Defining g and its Common Forms

  • 我们定义一个离散数据结构 g 作为一个向量场,它将坐标映射到使用狄拉克函数 δ 和的量: g ( x ) = α 0 δ ( x 0 − x ) + α 1 δ ( x 1 − x ) + . . . + α n δ ( x n − x ) (4) g(x)=\alpha_0\delta(x_0-x)+\alpha_1\delta(x_1-x)+...+\alpha_n\delta(x_n-x)\tag{4} g(x)=α0δ(x0x)+α1δ(x1x)+...+αnδ(xnx)(4)
  • 其中系数 αi (标量或向量)是存储在坐标 xi 中的量。对于均匀体素,坐标 xi 分布在规则网格上,而对于点云,坐标 xi 是任意分布的。对于网络平铺,αi 是一整组网络参数 Θi;对于嵌入,αi 是潜变量 zi
  • Interpolation。离散数据结构 g 可以使用插值方案来定义 g 在狄拉克 δ 的坐标 xi 之外,如最近邻、线性或三次插值。如果是这样,函数 δ 就不是狄拉克 δ,而是非零的、紧的和局部支持的基函数。例如,体素网格有规律地与最近邻插值结合,其中 g(x) 被定义为在 xi 最接近 x 处的 αi

3.1.1. Regular Grids

  • 规则网格,如2D像素和3D体素,以规则间隔离散坐标域。它们的规律性使它们易于索引和应用标准信号处理技术。虽然简单,但网格在高维情况下会遭受糟糕的记忆缩放,而且奈奎斯特-香农定理需要对高频信号进行密集采样。为了克服这个问题,网格可以自适应[MLL * 21]或稀疏[CLI * 20]来聚焦在更高频率区域的容量,并且可以使用分层树[LGL * 20, TLY * 21]和纹理[SHN * 19, PNM * 20]等数据结构实现。
  • 网格平铺使用网格离散坐标域,并使用更小的神经网络定义每个局部区域[RWG * 13]。这可以帮助学习更大规模的信号[JK20],使推断更快[RPLG21],并可以适用于并行计算[SJK21]。在给定稀疏训练数据的情况下,平铺可能会增加过拟合[HJKK21],平铺边界伪影是可能的,尽管网络参数插值可以用来减少边界伪影[DVPL21, MMNM21a]。
  • 嵌入网格同样可以建模更大规模的信号[CLI * 20],允许使用小型神经网络[TLY * 21],并受益于插值[LGL * 20]。嵌入网格也可以从其他神经场[MLL * 21],生成模型[ILK21],图像[SSSJ20, TY21, CMK * 21],或用户输入[HMBL21]中生成。有关更详细的讨论,请参阅第9节。

3.1.2. Irregular Grids

  • 不规则网格使用不遵循常规采样模式(因此避免了Nyquist-Shannon采样极限)的网格离散坐标域。在复杂的数据区域中,可以对它们进行变形,以自适应地增加容量。它们可以显式地声明坐标之间的连通性,如在网格中,或隐式地声明坐标之间的连通性,如在Voronoi细胞中。它们也可以组织成层次结构,例如在BVH或场景图中[GSRN21, OMT * 21]。
  • Point Clouds。点云是稀疏离散坐标的集合。每个位置都可以保存一个嵌入[TTG * 20]或一个网络[RJY * 21]。虽然点云的支持是稀疏的,但是点云可以通过Voronoi单元通过最近邻插值在体积上定义区域。对于连续插值,我们可以使用具有自然邻接插值[Sib81]或softV oronoi插值[WPLN * 20]的Voronoi单元。
  • Object-centric Representations。它们也是点的集合,但每个点都有一个方向和一个边界框或体积[WSH * 19]。神经场参数存储在边界卷的每个点或每个顶点,并可以存储嵌入[OMT * 21]或网络[GFWF20, ZLY * 21]。
  • Mesh。网格是计算机图形学中一种常见的数据结构,具有易于理解的属性和处理操作。对于三角形网格,嵌入可以存储在顶点[PZX * 21]和用重心插值插值。对于复多边形,中值坐标[Flo03]和谐波坐标[JMD * 07]是选项。

4. Forward Maps

  • 在许多应用中,重构域(我们如何表示世界)不同于传感器域(我们如何观察世界)。解决一个逆问题,从传感器获得的观测恢复重建,即,找到神经场 Φ 的参数 Θ,给定传感器 Ω 的观测。
  • 我们将(未知)重构表示为一个神经场 Φ: X→Y,它将世界坐标 xrecon∈X 映射到量 yrecon∈Y。传感器观测通常也是一个场 Ω: S→T,它将传感器坐标 xsens∈S 映射到测量 tsens∈T。
  • 例如,在从2D图像的3D重建中,传感器域包含位于2D栅格网格上的相机图像,重建域可以是一些连续的3D表示(例如SDF,辐射场)。来自照相机的2D照片是一个表示辐照度的场Ω: R2→R3。如果我们希望将重构建模为各向异性光子通量的亮度场Φ: R5→R3,我们需要Φ和Ω之间的映射。我们称这种模型为前向地图;图7显示了几个示例。
  • 正向映射是一个算子F:(X→Y)→(S→T),这是一个函数映射。转发映射可能依赖于附加的参数,并可能与下游算子(如采样或优化)组成。如果y = F(Φ(x))我们可以计算 ∂y/∂θ,如果可以计算 ∂y/∂x,我们称正向映射参数可微,输入可微。
  • 给定一个参数可微前向映射,我们可以解决以下优化问题来恢复神经场 Φ: arg min ⁡ θ ∫ x r e c o n , x s e n s ∈ ( X , S ) ∣ ∣ F ( Φ ( x r e c o n ) ) − Ω ( x s e n s ) ∣ ∣ (5) \argmin_\theta\int_{x_{recon},x_{sens}\in(X,S)}||F(\Phi(x_{recon}))-\Omega(x_{sens})||\tag{5} θargminxrecon,xsens(X,S)∣∣F(Φ(xrecon))Ω(xsens)∣∣(5)
  • 利用可微规划和随机梯度下降等算法。
  • 在二维图像实例中,正演映射可以用辐射传递方程建模,该方程在一个体积各向异性向量场上积分。神经亮度场(nerf) [MST * 20]是从二维图像测量中恢复各向同性密度和各向异性亮度场的一个例子。尽管许多逆问题是病态的,不能保证解的存在或唯一,经验正向映射帮助我们在各种应用中找到好的解决方案(第二部分)。

4.1. Rendering

  • 我们将渲染器定义为前向映射,它将一些三维形状和外观的神经场表示转换为图像。渲染器将相机的内部参数和外部参数以及神经场 Φ 作为输入来生成图像。外部参数定义了相机的平移和旋转,而内部参数定义了像形成模型的任何其他信息,如视场和镜头畸变[HZ03]。渲染器通常使用光线追踪器,它将光线原点和光线方向(即,来自相机模型的单个像素)作为输入,并返回一些关于神经场的信息。这些信息可以是几何的,如曲面法线和交叉深度,也可以聚合或返回一些任意的特征。

4.1.1. Ray-surface Intersection

  • 如果一个神经场代表一个形状的曲面,我们可以使用多种方法获取曲面法线和交点等几何信息。对于常见的形状神经场表示,如占位和符号距离场,射线面相交相当于一个寻根算法。其中一种方法是射线推进,即在射线上采取离散步骤来寻找表面。给定第一个区间,可以使用 Secant 方法等方法在区间内细化根。如果曲面薄于离散步长的区间,则该方法不能在正确的曲面上收敛。采用抖动步骤可以通过随机改变步长和使用超抽样来缓解这一问题[DW85]。区间算法可以以迭代次数为代价保证收敛[FSSV07]。在某些情况下,神经网络可在射线行进中用于预测下一步[SZW19, NSP * 21]。如果曲面是lipschitz有界的(就像有符号距离场的情况一样),那么球体跟踪[Har96]可以有效地找到交集并保证收敛。段跟踪[GGPP20]可以进一步加快收敛速度,但每一步需要额外的段算法计算。
  • 这些方法都是可微的,但是天真地通过迭代算法反向传播是计算开销很大的。相反,可以单独使用表面交点来计算梯度[NMOG20, YKM * 20]。如果使用混合表示,我们可以利用边界卷层次来加快光线跟踪。在某些情况下,还可以将数据结构光栅化到图像上,以减少射线的数量。

4.1.2. Surface Shading and Lighting

  • 一旦射线面交点被检索,我们可以计算从该点到相机的辐射贡献。这是通过双向散射分布函数(BSDF) [CT82,BS12]实现的,该函数可微,也可参数化为神经场[GN98]。为了聚合光照对点的贡献,最物理精确的方法是用多弹蒙特卡洛算法[PJH16]求解Kajiya的渲染方程[Kaj86]。然而,与神经场相结合,这在计算上可能特别昂贵。
  • 为了克服这个问题,可以使用入射照明的近似(与预先计算的辐射转移有关)。这包括立方映射[Gre86]或球面基函数的使用,如球面谐波[Gre03]。神经场也可以用来近似入射光[WPYS21]。在不需要对确切的材料属性或照明环境建模的情况下,以位置和视图方向为输入的神经场可以直接对相机的亮度进行建模[MST * 20]。

4.1.3. Volume Rendering

  • 表面渲染方程不能对云、雾等非均匀介质的场景进行建模。即使对于不透明表面的场景,反向表面渲染也很难恢复高频或稀疏几何结构,如头发和其他中尺度细节,因为梯度只定义在表面上。体绘制不是Kajiya的绘制方程,而是使用基于辐射传递方程的体绘制积分[KH84] [Cha13],对此积分可以使用正交法进行数值逼近(在实践中,随机射线移动[PH89, MST * 20])。
  • 在可微设置下,在指数透过率的假设下,可以用穿过射线的样本的简单累积和进行积分,使反向传播高效且相对于坐标的密度[MST * 20]。这也会在空间中传播梯度,使优化更容易。非指数公式存在[LSCL19, VJK21];有些在物理上并不精确,但可以作为近似。
  • 在基于随机射线移动的体绘制中,样本的数量是一个重要的因素。更高的样本计数将意味着更精确的模型,但以计算成本和内存为代价。缓解这一问题的一些方法包括使用粗神经场模型来重视样本[MST * 20],使用分类器网络[NSP * 21],或使用分析不定积分[LMW21b]。

4.1.4. Hybrid Volume and Surface Rendering

  • 许多可微渲染器试图结合不透明表面渲染器和体积渲染器的优点。由于在间隔上采集的随机样本,V体积绘制通常是受限制不足的,导致表面附近有噪声。表面渲染只提供物体表面的梯度,它不能平滑地跨越空间域。
  • 我们可以通过使用拉普拉斯分布[YGKL21]、逻辑密度函数[WLL * 21]、高斯分布或平滑阶梯函数将隐式曲面重新参数化为具有软边界的密度场来组合各种方法。我们还可以在表面交点附近进行重要采样[OPG21]。

4.2. Physics-informed Neural Networks

  • 偏微分方程(PDEs)也是将网络输出映射到梯度空间监督的强大前向模块。到目前为止,大多数工作都完全依赖于数据驱动的范式,在这种范式中,可以通过表示的选择或来自网络架构的隐式偏差和不变性来施加额外的约束。另一类方法被称为物理信息神经网络(pinn),使用学习偏差[KKL * 21],它使用损耗监督边界和初值(来自不完全模拟或观察),并通过采样或正则化物理方程(通常是偏微分方程(PDEs))来监督剩余空间。
  • 在视觉计算中,PINN范式经常使用带符号的距离函数[GYH * 20]。SDF的一个核心属性是它们满足Eikonal方程: ∣ ∣ ∇ u ( x ) ∣ ∣ = 1 f ( x ) , x ∈ R n (6) ||∇u(x)||=\frac{1}{f(x)}, x\in R^n\tag{6} ∣∣∇u(x)∣∣=f(x)1,xRn(6)
  • 边界值是点云X,它对应于0水平集。在f (x) = 1的特殊情况下,u(x)成为SDF。
  • 偏微分方程是对自然界动力学的一种自然描述。因此,在物理学科中已经提出了大量的偏微分方程,而且自然地,许多偏微分方程已经与神经场作为pinn一起使用。我们建议读者参考Karniadakis等人对pin的更全面的综述[KKL * 21]。

4.3. Identity Mapping Function

  • 在某些应用中,传感器域可能与重构域相同。在这些情况下,正向模型是身份映射函数。这项任务只是简单地将神经场与数据过度拟合。一些例子是:直接通过地真值(PFS * 19)监督神经符号距离场,使用神经场“记忆”图像或音频信号[SMB * 20]。

5. Network Architecture

  • 我们对神经网络的结构和组成部分所做的设计选择对它所参数化的领域的质量有重大影响。这些选择中最明显的是网络结构本身,例如MLP中有多少层以及每层中有多少神经元。我们假设已经选择了一个具有足够学习能力的合理结构,并将讨论重点放在为有效学习神经场提供归纳偏差的其他设计决策上。

5.1. Overcoming Spectral Bias

  • 现实世界的信号是复杂的,这使得神经网络难以实现高保真度。此外,神经网络偏向于拟合具有低空间频率的函数[RBA * 19, HMZ * 21]。有几种设计可以解决这个缺点。\
  • Positional Encoding。神经网络的坐标输入可以通过位置编码 γ : R n → R m \gamma: R^n→R^m γ:RnRm 进行转换,这是一组标量函数 γ i : R n → R m \gamma_i: R^n→R^m γi:RnRm 映射一个坐标向量 x = [ x 1 , x 2 , … ] , x n ] T ∈ R n x = [x1,x2,…], xn]^T∈R^n x=[x1,x2],xn]TRn 的嵌入坐标向量: γ ( x ) = [ γ 1 ( x ) , γ 2 ( x ) , . . . , γ m ( x ) ] (7) \gamma(x)=[\gamma_1(x),\gamma_2(x),...,\gamma_m(x)]\tag{7} γ(x)=[γ1(x),γ2(x),...,γm(x)](7)
  • 这些正弦嵌入,也被称为傅里叶特征映射,随后在新视图合成任务中得到推广[MST * 20, TSM * 20]。在神经切线核[JGH18]的背景下,正弦位置编码可以显示出一个具有空间选择性的核,该核随着函数φi的频率增加而增加。因此,位置编码也可以被视为控制神经场的插值特性。
  • Wang等人[WLYT21]表明,γi频率的选择使网络偏向于学习某些带宽有限的频率内容,其中较低的编码频率导致模糊重构,而较高的编码频率引入盐和胡椒伪影。为了更稳定的优化,一种方法是在优化开始时屏蔽高频编码项,以由粗到细的方式逐步增加高频编码权重[LMTL21,BHumRZ21]。SAPE提出了一种屏蔽方案[HPG * 21],该方案也允许对空间变化的权重进行编码。最后,还提出了替代的位置编码函数φi [ZRL21, WLYT21, MRNK21]。Zheng等[ZRL21]对各种位置编码函数进行了综合研究。
  • Activation Functions。启用高频函数拟合的另一种方法是将标准单调非线性替换为周期非线性,例如在SIREN [SMB * 20]中启用高频内容拟合的周期正弦。虽然神经切线核的性质的推导是出色的,一些理论理解可以通过分析神经场输出的梯度相对于相邻坐标输入的关系得到——对于正弦激活的高频,这些梯度已经被证明是正交的,导致在任何输入坐标上完美拟合值的能力,而不需要任何插值。有人指出,具有傅立叶特征的位置编码等价于周期非线性,其中一个隐藏层作为第一神经网络层[BHumRZ21]。

5.2. Integration and Derivatives

  • Derivatives。神经场的一个关键优点是它们是高度灵活的一般函数近似器,其导数∇xΦ(x)可通过自动微分轻易获得[G * 89, BPRS18],这使得它们对于需要通过偏微分方程监督导数的任务具有吸引力。然而,这在参数化油田的MLP体系结构方面提出了额外的要求。
  • 具体来说,网络的导数对于PDE的程度必须是非平凡的(即非零的)(图8,左)。例如,要参数化波动方程的解-一个二阶偏微分方程-神经场的二阶导数必须是非平凡的。这就限制了网络中使用的激活函数。例如,ReLU非线性具有分段常数一阶导数和零高阶导数,因此一般不能参数化波动方程的解。其他常见的非线性,如softplus, tanh或sigmoid,可以解决这个问题,但通常需要与位置编码相结合,以参数化神经场的高频内容。或者,周期正弦也可以用作激活函数[SMB * 20]。
  • Integrals。在某些情况下,我们进一步感兴趣的是解决一个逆问题,我们测量一个场的导数,但稍后感兴趣的是获得神经场的积分表达式。在这些情况下,可以对神经场进行采样,并使用数值求积来近似积分,就像在体绘制中经常做的那样[MST * 20]。然而,对于给定的精度,近似积分所需的样本数量可能是任意大的。
  • 虽然自动区分在深度学习中无处不在,但自动集成还没有得到很好的研究。开创性的工作AutoInt [LMW21b]提出将该场的不定积分直接参数化为神经场Φ。然后,我们可以实例化其梯度网络的计算图∇xΦ(x),并将梯度网络拟合到给定的导数值。在测试时,由于微积分的通用定理(图8,右),一个积分可以在一次前进的过程中计算出来。

你可能感兴趣的:(python)