G009, k012 Seeing Through the Glass, Neural 3D Reconstruction of Object Inside a Transparent Container

Zhangwenniu 于 2025-02-14 发布

如果有研究透明场景3D重建的研究者,可以通过邮箱zhangwenniu@163.com联系我,我目前创建了一个透明场景3D重建的研究者交流群,欢迎感兴趣的研究者加入。

链接

[v1] 2023年3月24日,04:58:27 UTC (21,246 KB)

文章难点解析

这篇论文是关于如何通过透明容器看到里面物体的3D形状,并重建出来。这是一个很有挑战性的问题,因为透明容器会让光线发生多次反射和折射,导致图像失真。传统的3D重建方法在这种情况下通常会失败。

研究背景

这篇论文的灵感来源于博物馆数字化藏品的需求。许多珍贵的文物或标本(如昆虫、水生生物等)被保存在透明材料(如玻璃或树脂)中。为了在虚拟现实或元宇宙中展示这些藏品,我们需要重建这些被透明容器包裹的物体的3D形状。

研究问题

论文提出一个新的问题:如何从多个2D视角重建透明容器内物体的3D几何形状。透明容器会让光线在空气和玻璃界面之间多次反射和折射,导致图像失真,使得传统的3D重建方法(如运动恢复结构SfM或神经辐射场NeRF)无法准确重建。

解决方案:ReNeuS

为了解决这个问题,作者提出了一种新的方法,叫做ReNeuS(Refraction and Reflection Neural Surface)。这个方法的核心思想是将场景分为两个部分:容器内部(包含目标物体)和外部(空气)。然后,他们用一种混合渲染策略(结合光线追踪和体积渲染)来处理光线在两个部分之间的交互。

关键点:

神经隐式表示:使用神经网络来表示物体的几何形状和外观。这种表示方式可以高效地处理复杂的形状和外观。

混合渲染策略:通过光线追踪处理反射和折射,然后用体积渲染来计算光线在容器内部的传播。这种策略可以更真实地模拟光线在透明容器中的行为。

优化网络参数:通过最小化真实图像和渲染图像之间的差异来优化网络参数,从而重建出物体的3D形状。

实验

作者为了验证他们的方法,创建了两个数据集:一个是合成数据集,包含13个复杂外观或几何形状的物体;另一个是真实数据集,包含10个被玻璃容器包裹的昆虫标本。

实验结果:

ReNeuS在合成数据集上表现优于现有的最先进方法(如COLMAP、IDR和NeuS),尤其是在处理透明容器时。 在真实数据集上,ReNeuS能够成功重建昆虫的翅膀和触角等细节,这些细节在传统方法中很难重建。

局限性

尽管ReNeuS取得了很好的结果,但它也有一些局限性:

假设透明容器的几何形状已知,且背景是均匀的。如果容器形状不规则或背景复杂,可能会导致性能下降。

未来的研究方向可能包括联合重建物体和容器,以及建模光照条件。

总结

这篇论文提出了一种新的方法,用于重建透明容器内物体的3D形状。通过结合神经隐式表示和混合渲染策略,ReNeuS能够处理复杂的光线反射和折射,从而在现有方法失败的情况下成功重建出高质量的3D模型。

方法概述

ReNeuS 的核心思想是将场景分为两个子空间:

  1. 内部空间(Sin):包含目标物体的透明容器内部。
  2. 外部空间(Sout):容器外部的空气空间。

通过这种划分,ReNeuS 可以分别处理内部物体的几何和外观信息,同时处理光线在两个子空间之间的复杂交互(如反射和折射)。最终,通过优化网络参数,使得渲染图像与真实图像之间的差异最小化,从而重建出物体的 3D 几何形状。

1. 神经隐式表面(Neural Implicit Surface)

ReNeuS 基于 NeuS 方法,使用神经网络隐式地表示场景的几何和外观。具体来说,它包含两个独立的多层感知机(MLP):

这种表示方式能够高效地处理复杂的几何形状和外观信息。

2. 混合渲染策略(Hybrid Rendering Strategy)

ReNeuS 的关键创新之一是混合渲染策略,结合了光线追踪(ray tracing)和体积渲染(volume rendering),以处理光线在两个子空间之间的交互。

2.1 光线追踪(Ray Tracing)

在 ReNeuS 中,光线追踪用于模拟光线在透明容器界面的反射和折射。具体步骤如下:

  1. 计算交点:对于从相机发出的光线 $ \ell_i $,计算它与透明容器的交点。如果没有交点,则终止追踪。
  2. 反射和折射光线:如果光线与容器相交,根据反射定律和斯涅尔定律(Snell’s Law),计算反射光线 $ \ell_r $ 和折射光线 $ \ell_t $。
  3. 递归追踪:对反射光线和折射光线递归地进行追踪,直到达到预设的递归深度 $ D_{re} $。

2.2 体积渲染(Volume Rendering)

对于内部空间 Sin,使用体积渲染来计算光线的颜色。具体来说:

2.3 颜色累积(Color Accumulation)

最终,光线的颜色通过累积所有子光线的颜色来计算。具体步骤如下:

  1. 对于每个子光线 $ m_i $,根据其是否在内部空间 Sin 或外部空间 Sout,分别获取其颜色。
  2. 按照光线追踪的逆序累积颜色,同时考虑反射和折射的权重(如 Eq. 8 和 Eq. 9)。
  3. 在穿过 Sin 时,进一步乘以沿光线的累积透射率 $ T_\ell $。

3. 损失函数(Loss Function)

为了优化网络参数,ReNeuS 使用以下损失函数:

  1. 光度损失(Photometric Loss):计算渲染图像与真实图像之间的 L1 损失。
  2. 透明度正则化(Transmittance Regularization):假设 Sin 的大部分区域应该是透明的,通过正则化透射率来抑制不必要的几何结构。
  3. 几何正则化(Geometric Regularization):使用 Eikonal 正则化,确保几何 MLP 的梯度接近于 1。

通过最小化这些损失,ReNeuS 能够优化网络参数,重建出高质量的 3D 模型。

4. 方法的优势

ReNeuS 的方法有以下关键优势:

  1. 处理复杂光线交互:通过混合渲染策略,ReNeuS 能够准确模拟光线在透明容器中的反射和折射,解决了传统方法在复杂光学场景下的失效问题。
  2. 神经隐式表示:使用 SDF 和体积渲染,能够高效地表示复杂的几何形状和外观信息。
  3. 优化驱动的重建:通过最小化渲染图像与真实图像之间的差异,ReNeuS 能够自适应地优化网络参数,从而重建出高质量的 3D 模型。

总结

ReNeuS 的方法通过将场景划分为内部和外部子空间,并结合光线追踪和体积渲染,能够有效地处理透明容器内的复杂光线交互。通过优化网络参数,ReNeuS 能够重建出高质量的 3D 模型,即使在传统方法失败的情况下也能成功。这种方法为透明容器内物体的 3D 重建提供了一个强大的解决方案。

透明度正则化(Transmittance Regularization)

透明度正则化(Transmittance Regularization)是 ReNeuS 方法中一个关键的正则化技术,它的目的是利用透明容器的物理特性来约束神经网络的优化过程,从而提高重建结果的质量和稳定性。

透明度正则化的背景和动机

在 ReNeuS 的场景中,透明容器内部(Sin)大部分区域是空的,只有目标物体占据了一小部分空间。这意味着,除了物体本身,透明容器内部的大部分区域应该是“透明”的,即光线可以无障碍地通过这些区域。

然而,在神经网络的优化过程中,如果不加以约束,网络可能会在这些透明区域生成不必要的几何结构(例如虚假的表面或体积),从而导致重建结果的不准确。为了避免这种情况,透明度正则化被引入,以确保透明容器内部的大部分区域保持透明。

透明度正则化的具体实现

透明度正则化的核心思想是通过正则化项来约束光线在透明容器内部的透射率(Transmittance),使得这些区域尽可能保持透明。具体来说,透射率 $ T_\ell $ 表示光线在穿过某个区域时未被吸收或散射的概率。在一个完全透明的区域中,透射率应该接近于1。

数学表达

在 ReNeuS 的损失函数中,透明度正则化项 $ L_{\text{trans}} $ 的定义如下:

\[L_{\text{trans}} = \frac{1}{|M_{\text{in}}|} \sum_{p \in M_{\text{in}}} \sum_{\ell \in L_p \cap S_{\text{in}}} \| 1 - T_\ell \|\]

其中:

物理意义

透明度正则化的作用

  1. 抑制虚假几何结构:在优化过程中,网络可能会在透明容器内部生成不必要的几何结构(例如虚假的表面或体积)。透明度正则化通过约束透射率,使得这些区域保持透明,从而抑制了虚假几何结构的生成。
  2. 提高重建质量:通过确保透明容器内部的大部分区域保持透明,透明度正则化有助于网络更准确地重建目标物体的几何形状和外观。
  3. 增强鲁棒性:在处理复杂场景时,透明度正则化可以提高网络的鲁棒性,使其在不同条件下都能生成高质量的重建结果。

实验中的表现

在论文的实验部分,作者通过对比实验验证了透明度正则化的效果。例如,在没有使用透明度正则化的情况下,网络可能会在透明容器内部生成虚假的边界或结构,导致重建结果的质量下降。而使用透明度正则化后,这些虚假结构被显著抑制,重建结果更加准确和稳定。

总结

透明度正则化是 ReNeuS 方法中一个重要的技术,它通过约束透明容器内部的透射率,确保这些区域保持透明。这一正则化项不仅抑制了虚假几何结构的生成,还提高了重建结果的质量和鲁棒性,是 ReNeuS 能够成功重建透明容器内物体的关键因素之一。

原文翻译

4. 实验

4.1 数据集

由于没有现成的数据集专门用于我们的问题设置,我们引入了两个新的数据集(一个合成数据集和一个真实数据集)来评估我们的方法和基线方法。

合成数据集:我们选择了13个外观和/或几何形状复杂的物体来生成合成数据。使用带有物理基础渲染引擎Cycles的Blender [5] 渲染逼真的图像。我们将物体放置在一个盒子的中心,手动调整盒子的大小以适应物体,然后将其缩放到单位球体内。物体通常具有朗伯表面。盒子的材质通过Principled BSDF调整,使其看起来像折射率为1.45的玻璃。相机姿态在半径为5的完整球面上随机采样。对于每个相机姿态,我们不仅渲染了包含透明盒子的完整场景图像,还渲染了没有透明盒子的图像。我们为每个场景渲染了60个视角,分辨率为800×800,从而得到了两个子集,分别命名为“带盒子(w/box)”和“不带盒子(w/o box)”数据集。

真实数据集:我们还捕获了10个真实昆虫标本的场景。我们在摄影灯箱中捕获该数据集,标本放置在旋转展示架上的ChArUco板 [8] 上。图像从半球面上的不同方位角和高度拍摄。我们使用ChArUco板校准相机的内参和姿态。对于透明盒子,我们通过手动标记图像中的边缘并根据已知相机计算其尺寸和姿态。然后通过将盒子投影到二维图像上生成透明盒子的掩膜。最后,我们将所有图像居中裁剪为1728×1152像素,并从每个场景中随机采样60张图像。有关数据集的更多详细信息,请参阅补充材料。

4.2 基线方法。

由于没有专门针对同一问题的特定方法,我们选择了几种最先进的三维重建方法作为基线。为了使我们的结果更具说服力,除了带盒子(w/box)数据外,我们还在不带盒子(w/o box)数据集上与基线方法进行了比较。

COLMAP [26, 27] 是一种流行的多视图立体(MVS)方法。为了公平比较,我们没有使用COLMAP运行运动恢复结构(structure-from-motion),而是直接使用真实的相机姿态进行重建。我们通过对COLMAP输出的点云应用屏蔽数值泊松曲面重建 [16] 来获得网格。

IDR [33] 是一种基于神经渲染的三维重建方法,能够实现高保真度的结果。我们仅使用不带盒子数据集的对象掩膜运行IDR。

NeuS。我们的方法实际上是NeuS在光学复杂场景中的扩展。我们与NeuS进行比较以验证我们的方法的有效性。

4.3 实现细节。

我们在NeuS [31]的基础上实现了ReNeuS。我们采用了与NeuS相同的几何MLP $ g_\theta $和外观MLP $ f_\phi $的网络结构。几何MLP初始化为[2],形成一个类似椭球的SDF场。与NeuS不同,我们将激活函数(Softplus)替换为周期性激活函数SIREN [28],因为其具有更强的神经表示能力。输入参数位置 $ x $ 和视图方向 $ v $ 采用位置编码[22]进行增强。外部空间 $ S_{\text{out}} $ 的几何形状表示为一个已知尺寸的规则盒子的网格。对于真实数据,我们通过手动标记盒子的边缘对其进行校准。更多细节请参考补充材料。对于ReNeuS的渲染,我们将递归深度 $ D_{re} $ 设置为2,以在精度和效率之间进行权衡。对于合成数据,环境光 $ C_{\text{ambient}} $ 设置为[0.8, 0.8, 0.8](伽马校正前),并通过测量真实数据的平均背景进行校准。对于损失函数,公式(13),我们在所有实验中经验性地将 $ \lambda_1 $ 和 $ \lambda_2 $ 设置为0.1。在训练过程中,我们每批采样1024条射线,采用层次化采样[22],沿每条射线总共采样128个点(粗采样64个,精采样64个)。不额外采样外部点。我们在单个NVIDIA Tesla P100 GPU上训练所有模型,总共进行200k次迭代。在评估时,我们使用Marching Cubes [18]从几何MLP $ g_\theta $的零等值面提取网格。通过聚类并保留顶点最多的网格进行自动后处理。

4.4 在合成数据集上的评估。

我们在合成数据集上对ReNeuS和其他基线方法进行了评估。我们仅在带盒子(w/box)数据集上运行ReNeuS,而其他所有方法都在带盒子和不带盒子(w/o box)数据集上进行了评估。为了进行定量比较,我们报告了重建结果与真实值之间的Chamfer-L1距离。由于真实网格中点的数量分布不均衡,我们从重建的网格中均匀采样N = max(10000, 0.2numv)个点作为输入,其中numv是真实网格的顶点数量。请注意,为了便于比较,我们在论文中将所有结果放大了100倍。

我们在表1和图3中报告了实验结果。对于带盒子数据集,很明显ReNeuS在定量和定性方面都大幅优于其他基线方法。在不带盒子数据集上与基线方法的比较进一步证明了我们方法的强大。尽管处理的是更具挑战性的数据,但我们的方法仍然实现了与基线方法相当的性能,仅在需要真实值掩膜进行训练的IDR [33]之后。值得注意的是,即使在没有容器盒子的数据上,ReNeuS的性能也优于NeuS。我们推测这是反射的贡献。每当光线发生反射时,就好像我们获得了场景的一个新视角,这有助于重建。

4.5 在真实数据集上的可视化。

我们在真实数据集上运行了ReNeuS和其他基线方法进行定量比较。对于IDR,我们使用透明盒子的掩膜运行,因为我们没有物体掩膜。IDR仅能重建出掩膜的凸包,未能重建出其他内容。实验结果如图5和补充材料所示。从可视化结果来看,我们认为NeReuS在所提出的任务上表现相当出色。我们的方法甚至能够重建出小昆虫的翅膀和触角,这在常规的三维重建中是一个相当困难的问题。

4.6 消融研究。

我们进行了消融研究以验证我们ReNeuS框架的有效性。

渲染策略。我们认为,我们新颖的混合渲染策略是解决问题的关键。为了验证这一点,我们提出了一个基于NeuS [31]的简单解决方案,即我们仅在空间界面上对光线进行一次折射。我们将其称为NeuS+。如图4所示的结果,NeuS+的结果实际上被另一个盒状网格完全包围。原因是NeuS+方法并没有精确地模拟场景中的光交互。在使用光度损失进行训练时,网络试图在每个侧面渲染雕像的图像,从而产生了这些虚假的边界。由于我们的方法很好地处理了光交互,因此这些虚假边界得到了显著缓解。基于这一观察,我们在消融研究中放弃了后处理,以更好地评估这种错误的影响。结果如表2所示,其中“失败案例”意味着我们在尝试3次后未能从几何MLP中提取网格。除了精度之外,我们的方法在不同情况下表现一致。特别是对于恐龙案例,由于其结构纤细且外观无纹理,这是一个相当具有挑战性的情况,除了完整模型外,其他两种方法都失败了。

透射率损失。我们还对我们的稀疏性先验项进行了消融研究,如图4所示。通过正则化,这些虚假的表面被显著抑制。

5. 限制与结论

限制:我们方法的主要限制在于假设透明容器的几何形状已知且背景光照均匀。这一假设可能因为透明容器形状不规则(例如有圆角和边缘)而被违反,同时均匀光照的假设也可能阻碍数据采集过程。从真实数据集的结果中我们发现,违反这些假设会导致性能下降。我们相信,通过联合重建物体和容器,并对光照条件进行建模,可以解决这些限制,并为未来的研究提供有前景的方向。

结论:在本文中,我们定义了一个新的研究问题,即从脆弱博物馆藏品的数字化中引出的透明容器内标本的三维重建问题。由于光线在不同介质界面之间复杂的多路径交互导致的图像失真,对恢复标本的精确三维几何形状构成了挑战。为了解决这一问题,我们提出了一种名为ReNeuS的神经重建方法,该方法采用了一种新颖的混合渲染策略,考虑了玻璃/空气界面之间的多次光线反射和折射,以准确重建三维模型。我们在合成数据集和新采集的真实数据集上的实验结果证明了我们方法的有效性。当现有方法失败时,我们的方法能够生成高质量的三维重建结果。

评论