如果有研究水下场景重建的研究者,可以通过邮箱zhangwenniu@163.com联系我,我目前创建了一个水下场景重建的交流群,欢迎感兴趣的研究者加入。
链接
重点难点介绍
这篇论文的重点和难点主要集中在如何将3D高斯绘制(3DGS)与体积渲染相结合,以实现实时高效的水下场景重建,同时解决散射介质(如水)对重建效果的影响。以下是对论文重点和难点部分的详细分析:
论文的重点部分
1. 方法的核心创新:结合3DGS和体积渲染
-
重点:提出了一种新的方法,将3D高斯绘制(3DGS)用于显式表示场景的几何结构,同时引入一个体积场来表示散射介质(如水)。这种双表示方法既能利用3DGS的高效渲染能力,又能处理水下场景中的散射效应。
-
意义:这种方法解决了传统3DGS无法处理半透明介质的问题,同时避免了NeRF方法训练和渲染速度慢的缺点。
2. 新的损失函数设计
-
重点:设计了一种新的损失函数 LReg,结合了加权L1损失和结构相似性损失(DSSIM),以更好地适应高动态范围(HDR)和低光照场景。
-
意义:这种损失函数能够提升模型对暗部区域的细节处理能力,使重建结果更符合人类视觉感知。
3. 实验验证
-
重点:在真实水下数据集(SeaThru-NeRF 数据集)和模拟雾天场景上验证了方法的有效性。
-
意义:通过与现有方法(如SeaThru-NeRF、ZipNeRF和3DGS)的对比,证明了WaterSplatting在渲染质量、训练速度和实时性方面的优势。
4. 实时渲染能力
-
重点:WaterSplatting实现了高效的水下场景重建,同时保持了实时渲染速度。
-
意义:这使得该方法在实际应用中具有更大的潜力,例如水下机器人导航和虚拟现实体验。
论文的难点部分
1. 散射介质的建模
-
难点:水下场景中的散射效应(如光线的散射和吸收)使得传统的几何重建方法难以直接应用。如何准确地建模和渲染散射介质是一个关键问题。
-
解决方案:作者通过引入一个单独的体积场来表示散射介质,并修改渲染方程来处理散射效应。这种方法需要精确估计散射介质的参数(如衰减系数和后向散射系数)。
2. 双表示的融合
-
难点:将3DGS的显式几何表示与体积场的散射介质表示相结合,需要在渲染过程中同时处理两种不同的表示方法。这涉及到复杂的渲染方程和优化问题。
-
解决方案:作者通过在渲染过程中交替处理高斯点和体积段,实现了两种表示的融合。具体来说,他们通过计算每条光线的透射率,将几何和介质的贡献分别计算并合成。
3. 损失函数的设计
-
难点:传统的损失函数(如L1损失)在处理高动态范围和低光照场景时,可能会导致重建结果过于平滑,丢失细节。如何设计一个能够更好地适应这些场景的损失函数是一个挑战。
-
解决方案:作者提出了一个新的损失函数 LReg,通过引入加权机制,提升对暗部区域的细节处理能力。此外,结合结构相似性损失(DSSIM)进一步优化了重建结果的结构一致性。
4. 实时性和效率的平衡
-
难点:在保持高质量重建的同时,如何实现高效的训练和实时渲染是一个关键问题。NeRF方法虽然能够重建高质量的场景,但训练和渲染速度慢;而3DGS虽然渲染速度快,但无法处理散射介质。
-
解决方案:作者通过结合3DGS和体积渲染,实现了高效的水下场景重建。实验结果表明,WaterSplatting在保持高质量重建的同时,实现了接近3DGS的实时渲染速度。
总结
论文的重点在于提出了一种新的方法,通过结合3DGS和体积渲染,解决了水下场景重建中的散射介质问题,并设计了新的损失函数以提升重建质量。难点在于如何有效地融合两种表示方法、处理散射介质的建模,以及在保持高质量的同时实现高效的训练和实时渲染。作者通过一系列创新的方法和实验验证,成功解决了这些难点,为水下三维重建提供了一种高效且高质量的解决方案。
论文详细讲解
1. 作者信息
-
Huapeng Li:苏黎世大学(University of Zurich),主要研究方向为计算机视觉和三维重建。
-
Wenxuan Song:苏黎世联邦理工学院(ETH Zurich),研究方向包括计算机图形学和实时渲染技术。
-
Tianao Xu:苏黎世联邦理工学院(ETH Zurich),专注于三维重建和神经渲染。
-
Alexandre Elsig:苏黎世联邦理工学院(ETH Zurich),研究方向为计算机视觉和机器学习。
-
Jonas Kulhanek:捷克技术大学(CTU in Prague)与苏黎世联邦理工学院(ETH Zurich),研究方向为计算机视觉和三维重建。
2. 研究背景与动机
水下三维场景重建是一个重要的研究领域,例如在水下机器人导航和虚拟现实体验中。传统的神经辐射场(NeRF)方法虽然可以重建场景,但训练和渲染速度慢,难以实时应用。3D高斯绘制(3DGS)虽然渲染速度快,但无法处理水下场景中的散射介质。因此,作者提出了一种结合两者优点的新方法——WaterSplatting。
3. 研究方法
3.1 3DGS与散射介质的结合
WaterSplatting 的核心思想是将场景的几何结构和散射介质分开表示。具体来说:
-
几何结构:使用3DGS表示,通过高斯分布的点云来表示场景的表面。
-
散射介质:使用体积场表示,模拟水中的散射效应。
作者通过修改渲染方程,将几何和介质的贡献分别计算,最终合成出完整的图像。这种方法不仅能够重建场景,还可以通过移除散射介质来恢复清晰的场景。
3.2 新的损失函数
为了更好地适应高动态范围(HDR)和低光照场景,作者设计了一种新的损失函数 LReg。它结合了像素级的加权L1损失和帧级的结构相似性损失(DSSIM),使模型在优化过程中更注重暗部区域的细节,从而更好地符合人类视觉感知。
4. 实验与结果
4.1 实验设置
作者在真实水下数据集(SeaThru-NeRF 数据集)和模拟的雾天场景上验证了方法。数据集包含多个真实水下场景的图像,模拟场景则通过在标准NeRF数据集上添加雾效生成。
4.2 对比方法
作者将WaterSplatting与多种现有方法(如SeaThru-NeRF、ZipNeRF和3DGS)进行了对比,使用PSNR、SSIM和LPIPS等指标评估重建质量,并记录了训练时间和渲染速度。
4.3 结果分析
实验结果表明:
-
WaterSplatting在渲染质量上优于现有的NeRF方法,尤其是在复杂场景中表现更好。
-
WaterSplatting的渲染速度远快于传统NeRF方法,接近3DGS的实时渲染速度。
-
在模拟场景中,WaterSplatting能够更好地恢复清晰场景,并生成更合理的深度图。
5. 限制与未来工作
尽管WaterSplatting取得了显著的成果,但仍有一些限制:
-
在处理远距离背景时,与介质的区分不够清晰。
-
方法依赖于相机姿态的准确性,这在实际水下环境中可能难以获取。
-
在训练视图覆盖不足的区域,模型的重建质量会下降。
未来,作者计划将这种方法扩展到更大规模的场景,并进一步优化对水和雾等介质的建模能力。
6. 总结
WaterSplatting通过结合3DGS和体积渲染,实现了高效且高质量的水下场景重建。它不仅在渲染质量上优于现有方法,还实现了实时渲染速度,为水下三维重建提供了一种新的解决方案。
论文方法部分介绍
论文的方法部分详细介绍了WaterSplatting的核心技术,即如何将三维高斯绘制(3D Gaussian Splatting, 3DGS)与体积渲染相结合,以实现高效的水下场景重建和实时渲染。以下是方法部分的详细介绍,包括关键的数学公式和实现细节。
3. 方法(Method)
3.1. 基础知识(Preliminaries)
3.1.1 三维高斯绘制(3D Gaussian Splatting)
3DGS是一种基于点的显式表示方法,通过一组可学习的高斯分布来表示场景的几何结构。每个高斯分布 Gi 由以下参数定义:
-
中心位置 μi
-
协方差矩阵 Σi
-
不透明度 oi
-
球谐系数 SHi(用于表示方向相关的颜色信息)
高斯分布的数学表达式为:
Gi(p)=e−12(p−μi)TΣ−1i(p−μi)在渲染过程中,每个高斯分布被投影到相机空间,并通过视图变换 W 和雅可比矩阵 J 进行变换,得到二维投影的均值 ˆμi 和协方差矩阵 ˆΣi:
ˆΣi=(JWΣiWTJT)1:2,1:2每个像素的颜色通过高斯分布的alpha混合计算得到:
C=N∑i=1ciαii−1∏j=1(1−αj)其中,αi=σ(oi)⋅ˆGi(p),σ(⋅) 是Sigmoid函数,ci 是高斯分布的颜色。
3.1.2 散射介质的渲染模型
在散射介质(如水)中,图像的形成模型可以表示为:
I=O⋅e−βD(vD)⋅z+B∞⋅(1−e−βB(vB)⋅z)其中:
-
O 是无介质时的清晰场景图像。
-
B∞ 是无限远处的后向散射颜色。
-
βD 和 βB 分别是直接光和后向散射光的衰减系数。
-
vD 和 vB 分别表示直接光和后向散射光的依赖因素,如深度 z、反射率、环境光和水的散射特性。
3.2. 方法:结合3DGS与介质建模(Splatting with Medium)
3.2.1 渲染模型的改进
WaterSplatting的核心思想是将3DGS的显式几何表示与体积场的散射介质表示相结合。具体来说,渲染方程被扩展为:
C(r)=∫∞0T(s)[σobj(s)cobj(s)+σmed(s)cmed(s)]ds其中:
-
σobj 和 cobj 分别表示物体的密度和颜色。
-
σmed 和 cmed 分别表示介质的密度和颜色。
-
T(s)=exp(−∫s0(σobj(s′)+σmed(s′))ds′) 是透射率。
为了将3DGS的离散表示与体积渲染相结合,透射率可以分解为:
Ti(s)=Tobj,i⋅Tmed(s)其中:
-
Tobj,i=∏i−1j=1(1−αj) 是由前 i−1 个高斯分布贡献的透射率。
-
Tmed(s)=exp(−σmeds) 是介质的透射率。
最终,每个像素的颜色由高斯分布和介质的贡献组成:
C(r)=N∑i=1Cobj,i(r)+N∑i=1Cmed,i(r)+Cmed,∞(r)其中:
Cobj,i(r)=Tobj,iαiciexp(−σattnsi)3.2.2 介质属性的估计
为了精确估计介质属性,作者使用了两个参数集:
-
σattn:用于表示物体的衰减。
-
σbs:用于表示介质的后向散射。
这些参数通过神经网络(MLP)进行编码,网络输入包括光线方向和深度信息,输出为介质的颜色和密度。
3.3. 损失函数对齐(Loss Function Alignment)
为了使3DGS更好地适应高动态范围(HDR)和低光照场景,作者设计了一种新的损失函数 LReg。该损失函数结合了加权L1损失和结构相似性损失(DSSIM),以提升对暗部区域的细节处理能力。
加权L1损失:
LReg−L1=|W⊙(ˆy−y)|其中,权重 W=wi,j,且 wi,j=(sg(ˆyi,j)+ϵ)−1,sg(⋅) 表示停止梯度传播。
加权DSSIM损失:
LReg−DSSIM=LDSSIM(W⊙y,W⊙ˆy)最终的损失函数为:
LReg=(1−λ)LReg−L1+λLReg−DSSIM其中,λ 是平衡参数,用于调整两种损失的权重。
方法总结
WaterSplatting通过结合3DGS和体积渲染,实现了高效的水下场景重建和实时渲染。其核心贡献包括:
-
双表示方法:利用3DGS表示几何结构,体积场表示散射介质,解决了传统方法无法处理半透明介质的问题。
-
新的损失函数:通过加权L1损失和DSSIM损失,提升了对HDR和低光照场景的适应能力。
-
高效的渲染和训练:在保持高质量重建的同时,实现了接近3DGS的实时渲染速度。
这种方法为水下三维重建提供了一种新的解决方案,具有重要的理论和实际应用价值。
原文翻译
摘要
水下三维场景重建是一个具有挑战性但又非常有趣的问题,其应用范围从海军机器人到虚拟现实体验。这一问题曾被全体积化的基于神经辐射场(NeRF)的方法成功解决,这些方法能够同时建模几何结构和介质(水)。不幸的是,这些方法训练速度慢,无法实现实时渲染。最近,三维高斯绘制(3D Gaussian Splatting,3DGS)方法为NeRF提供了一种快速的替代方案。然而,由于3DGS是一种仅渲染几何结构的显式方法,它无法渲染介质,因此不适合用于水下重建。
因此,我们提出了一种新的方法,将体积渲染与3DGS相结合,以有效处理水下数据。我们的方法采用3DGS进行显式几何表示,并使用一个单独的体积场(每像素查询一次)来捕捉散射介质。这种双重表示进一步允许通过移除散射介质来恢复场景。我们的方法在水下SeaThru-NeRF数据集上的渲染质量超过了现有的基于NeRF的最先进方法。此外,我们的方法还实现了实时渲染性能,解决了现有方法的效率限制问题。更多信息请访问项目主页:https://water-splatting.github.io。
1. 引言
神经辐射场(Neural Radiance Fields,NeRFs)[24] 因其能够提供逼真的三维场景重建质量而受到广泛关注,为三维渲染和重建领域开辟了新的研究方向。然而,三维渲染技术的发展日新月异。最近,点绘制方法以三维高斯绘制(3D Gaussian Splatting,3DGS)[15] 的形式重新兴起,其渲染质量与NeRF相当,同时具备实时渲染速度、更好的可编辑性和可控性。散射场景(如雾天和水下环境)的重建是一个有趣的研究领域,其应用范围涵盖海军机器人到虚拟现实体验。在水体积内重建几何结构是一个挑战,因为水与空气的散射特性不同。在典型场景中,主要需求是表示表面。NeRF和高斯绘制方法都专注于仅表示表面,从而提高了效率。对于NeRF而言,由于其是全体积化的,理论上应该能够全体积化地表示介质。然而,由于用于加速NeRF的采样器限制了其对体积的学习能力,这一目标并未实现。为解决这一问题,提出了一种名为SeaThru-NeRF [18] 的NeRF方法,它使用两个场:一个用于表示几何结构,另一个用于表示两者之间的体积。然而,这种方法在渲染和训练方面速度都很慢。因此,我们提出了一种新方法,使用3DGS显式表示几何结构,同时使用体积表示来表示两者之间的体积。我们提出的渲染器不仅在渲染质量上超越了全体积化表示(如[18]所示),还实现了与3DGS相当的渲染和训练速度。为了验证我们的方法,我们在已有的基准水下数据集SeaThru-NeRF [18]上对其进行了评估。评估结果表明,我们的方法在实现高质量、高效的水下重建方面具有显著优势。
总结来说,我们的贡献如下:
-
带介质的绘制(Splatting with Medium):我们提出了一种新的方法,结合了高斯绘制(GS)和体积渲染的优势。我们的方法使用GS显式表示几何结构,并使用单独的体积场来捕捉散射介质。这种双重表示允许在散射介质中合成新视图,并恢复无介质的清晰场景。
-
损失函数对齐(Loss Function Alignment):我们提出了一种新的损失函数,旨在使3DGS与人类对高动态范围(HDR)和低光照场景的感知相一致。
-
高效的合成与恢复(Efficient Synthesis and Restoration):我们证明了我们的方法在真实水下数据的新型视图合成和合成后向散射场景的清晰场景恢复方面优于其他模型,同时训练和渲染时间更短。
2. 相关工作
2.1. NeRF
三维场景重建领域随着神经辐射场(NeRF)方法[23, 24, 34]的出现而受到广泛关注。NeRF将三维场景表示为一个辐射场,该辐射场由微分体积密度和视图依赖的颜色组成,通过沿光线采样的一系列样本进行体积渲染积分来实现渲染[29]。最初,NeRF使用多层感知机(MLPs)来表示辐射场[3, 4, 24],但这种方法训练和渲染速度较慢。为了加速训练和渲染过程,人们提出了多种替代方法,包括使用离散网格[11, 43]、哈希网格[5, 26, 36]、张量分解[9, 31]、点云[40]或四面体网格[17]。此外,NeRF在多个方面得到了改进,例如抗锯齿[3, 5]、处理大规模三维场景[35]以及复杂相机轨迹[4, 38]的能力。NeRF还被扩展到多种应用中,如语义分割[6, 16]、少视图新视图合成[7, 8, 20, 39, 44]和生成式三维建模[22, 27]。尽管如此,NeRF渲染速度慢仍然是一个关键限制,阻碍了其在终端用户设备上的广泛应用。
2.2. 三维高斯绘制
最近,高斯绘制(3DGS)[15]作为一种强大的实时三维渲染方法重新受到关注,其渲染质量与神经辐射场(NeRF)[24]相当,但速度显著更快,甚至适用于终端用户设备[15]。这种技术增强了对场景的控制和可编辑性,因为场景以可编辑的高斯集合形式存储,允许进行修改、合并和其他操作。此外,原始的3DGS方法经过改进,以更好地实现抗锯齿[45]和密度控制[42]。由于这些进步,3DGS已在多种应用中得到广泛采用,如大规模重建[21]、三维生成[10]、同时定位与建图(SLAM)[14, 19]和开放集分割[28]。尽管3DGS具有最先进的渲染质量和出色的复杂场景处理能力,但其显式表示特性限制了其在需要描绘半透明体积(如水下重建中光的散射和吸收是重大挑战)的场景中的使用[15]。
2.3. 散射介质中的计算机视觉
水下计算机视觉面临诸多挑战。复杂的光照条件,包括光的散射和衰减,导致图像失真,传统在清晰空气中训练的算法失效[12]。WaterNeRF[33]将介质参数的估计与渲染分开,并使用直方图均衡化的图像进行处理。在我们的方法中,我们直接修改了渲染方程。ScatterNeRF[30]通过扩展NeRF的渲染方程来包含介质的散射特性,为恶劣天气环境下的场景提供体积表示,并分离图像的后向散射分量。我们的方法更专注于水下和雾天场景。SeaThru[2]提出了一种从水下图像中去除水的方法。该方法通过修订图像形成模型[1],准确估计后向散射,并沿深度轴校正颜色,解决了水下图像的颜色失真问题。SeaThru-NeRF[18]将分离直射光和后向散射分量的图像形成模型[1]纳入NeRF的渲染方程中,这在水下场景中具有高度的专门性。我们在高斯绘制的基础上实现了类似的模型,该模型具有更高的性能,并能够实现实时渲染。
3. 方法
我们首先简要回顾三维高斯绘制(3DGS)以及散射介质中的渲染模型(第3.1节)。然后,我们介绍结合3DGS与介质编码的渲染模型(第3.2节)。最后,我们解释我们提出的损失函数,以使3DGS与人类对HDR场景的感知对齐(第3.3节)。
3.1. 基础知识
三维高斯绘制(3D Gaussian Splatting)通过显式的可学习原语 G0,G1,…,GN 来建模场景。每个高斯分布 Gi 由中心位置 μi 和协方差矩阵 Σi 定义 [15]:
Gi(p)=e−12(p−μi)TΣ−1i(p−μi)(1)3DGS原语还具有两个额外的参数化属性:不透明度 oi 和球谐系数 SHi,用于表示方向相关的外观分量(各向异性颜色)。为了渲染像素级颜色,原语通过视图变换 W 和投影变换的仿射近似的雅可比矩阵 J 转换到相机空间,从而得到投影后的二维均值 ˆμi 和二维协方差矩阵 ˆΣi:
ˆΣi=(JWΣiWTJT)1:2,1:2,ˆμi=(Wμi)1:2(2)以及 Gi 在 z 轴上的深度:
si=(Wμi)3(3)二维高斯的高斯核 ˆGi 表示为:
ˆGi(p)=e−12(p−ˆμi)TˆΣ−1i(p−ˆμi)(4)其中 p 是像素的坐标。在光栅化过程中,每个高斯分布在均值的3倍标准差范围内截断,仅考虑与16×16像素块相交的部分,因为大约99.7%的概率分布在均值的3倍标准差范围内。因此,像素颜色通过排序后的、与像素相交的高斯分布 Gi 的alpha混合计算得出,其 αi 大于某个阈值:
C=N∑i=1ciαii−1∏j=1(1−αj),αi=σ(oi)⋅ˆGi(p)(5)其中 ci 是给定视图方向的颜色,σ(⋅) 是Sigmoid函数,N 是参与alpha混合的高斯分布数量。在优化过程中,3DGS会定期通过分裂较大的高斯分布和复制较小的高斯分布,来增加在二维坐标 ˆμi 上具有高平均梯度的高斯分布的密度。同时,3DGS会剪枝不透明度较低的原语以加速处理,并定期将所有高斯分布的 αi 设置为接近零,以控制靠近输入相机的漂浮物的增加。
对于散射介质中的场景渲染,我们使用了修订后的水下图像形成模型 [1],最终图像 I 被分解为直接图像分量和后向散射分量:
I=O⋅e−βD(vD)⋅z+B∞⋅(1−e−βB(vB)⋅z)(6)其中,O 是在无介质情况下深度为 z 处捕获的清晰场景,B∞ 是无限远处水的后向散射颜色。颜色与衰减系数相乘,其中 βD 和 βB 分别是直接光和后向散射光的衰减系数,它们表示介质对颜色的影响。向量 vD 表示直接光分量的依赖关系,包括深度 z、反射率、环境光、水的散射特性以及水的衰减系数。向量 vB 表示后向散射分量的依赖关系,包括环境光、水的散射特性、后向散射系数以及水的衰减系数。
3.2. 带介质的绘制(Splatting with Medium)
我们在图2中展示了我们方法的流程。模型的输入是一组包含散射介质的图像及其对应的相机姿态。我们通过结构化运动(SfM)[15]初始化一组三维高斯分布,并通过神经网络编码的介质属性对其进行优化。在原语和介质的遮挡下,我们的模型能够沿着光线获取透射率,并在新视图中合成物体分量和介质分量。以下是模型的详细推导。
考虑一个像素沿相机光线 r(s)=o+d(s) 从相机到无穷远处的期望颜色,其积分表达式为 C(r)=∫∞0T(s)σ(s)c(s)ds [13]。由于3DGS的无界渲染特性 [15],我们通过引入介质项来释放光在散射介质中传播的约束 [18]:
C(r)=∫∞0T(s)[σobj(s)cobj(s)+σmed(s)cmed(s)]ds(7)其中,σobj/σmed 和 cobj/cmed 分别表示物体和介质的密度与颜色。按照[18]中的方法,我们假设每条光线的 σmed 和 cmed 在每个颜色通道上是常数且独立的。
为了在3DGS中应用离散化表示,第 i 个高斯分布 Gi(深度范围为 s∈[si−1,si])前面的透射率 Ti(s) 可以分解为:
Ti(s)=Tobj,i⋅Tmed(s)(9)其中,Tobj,i=∏i−1j=1(1−αj) 是由前面原语遮挡贡献的累积透射率 [15],而
Tmed(s)=exp(−∫s0σmed(s)ds)=exp(−σmeds)(10)是从相机到深度 s 处的介质累积透射率。
随后,颜色由离散化的高斯分布和可积分的介质组成:
C(r)=N∑i=1Cobj,i(r)+N∑i=1Cmed,i(r)(11)第 i 个高斯分布 Gi 对最终输出颜色的贡献为:
Cobj,i(r)=Tobj,iTmed(si)αici=Tobj,iαiciexp(−σmedsi)(12)其中,αi 是根据像素 p 和 μi 的相对位置(见公式(5))计算得到的不透明度,ci=cobj,i 是由光线方向决定的颜色。
第 i 个高斯分布 Gi 与第 (i−1) 个高斯分布之间的介质颜色贡献为:
Cmed,i(r)=∫sisi−1Tobj,iTmed(s)σmedcmedds=Tobj,icmed[exp(−σmedsi−1)−exp(−σmedsi)](13)为了精确估计介质属性,我们还将最后一个高斯分布 GN 到无穷远处的背景介质项纳入累积颜色中:
Cmed,∞(r)=∫∞sNTobj,iTmed(s)σmedcmedds=Tobj,icmedexp(−σmedsN)(14)如[1]所述,对于具有宽带颜色通道的相机,其在 Cobj(r) 和 Cmed(r) 中感知到的有效 σmed 是不同的。按照[18]中的方法,我们分别为 Cobj,i(r) 和 Cmed,i(r) 使用两组参数:物体衰减 σattn 和介质后向散射 σbs。通过设置 s0=0,我们得到最终的渲染颜色公式:
C(r)=N∑i=1Cobj,i(r)+N∑i=1Cmed,i(r)+Cmed,∞(r)(15)3.3. 损失函数对齐(Loss Function Alignment)
在标准的3DGS中,损失函数结合了L1损失和D-SSIM损失,适用于没有共享参数的原语。受文献[25]的启发,我们提出了一种正则化的损失函数LReg,以增强优化过程中对暗部区域的权重,使其与人类对动态范围的感知一致。具体来说,我们在渲染估计值ˆy和目标图像y上应用逐像素的权重W=wi,j,其中wi,j=(sg(ˆyi,j)+ε)−1,(i,j)为像素坐标,sg(⋅)表示停止其参数的梯度传播,反向传播的导数为零。因此,我们得到正则化的L1损失:
LReg−L1=|W⊙(ˆy−y)|(19)这将减少模糊并使边缘更加锐利。我们还定义了正则化的D-SSIM损失:
LReg−DSSIM=LDSSIM(W⊙y,W⊙ˆy)(20)这将鼓励y和ˆy之间具有更高的结构相似性。我们最终提出的损失函数为:
LReg=(1−λ)LReg−L1+λLReg−DSSIM(21)该损失函数鼓励高斯优化更好地符合人眼对动态范围的感知。
4. 实验
4.1. 实验
实现细节:我们的实现基于NeRFStudio发布的3DGS重实现版本。按照文献[42, 46]的方法,我们通过累积每个像素梯度的范数来实现原语的密集化。对于介质编码,我们使用球谐编码[37]和一个包含两个线性层的MLP,其中隐藏单元为128个,并使用Sigmoid激活函数。对于cmed,我们使用Sigmoid激活函数;对于σattn和σbs,我们使用Softplus激活函数。在3DGS的每次密集化和剪枝步骤中,我们都会重置介质编码中Adam优化器的移动平均值。
SeaThru-NeRF数据集:由文献[18]发布的SeaThru-NeRF数据集包含来自四个不同海洋场景的真实世界场景:IUI3红海、库拉索岛、日本花园红海和巴拿马。这些场景分别有29张、20张、20张和18张图像,其中分别有25张、17张、17张和15张用于训练,其余的4张、3张、3张和3张用于验证。该数据集涵盖了多种水下和成像条件。这些图像是使用带有穹顶端口的Nauticam水下外壳中的Nikon D850单反相机以RAW格式拍摄的,这有助于防止可能破坏针孔模型的折射。这些图像随后被下采样到大约900×1400的分辨率。在处理之前,输入的线性图像经过白平衡处理,并且每个通道裁剪0.5%以消除极端噪声像素。最后,使用COLMAP[32]确定相机姿态。
模拟数据集:为了进一步评估所提方法的性能,我们从Mip-NeRF 360数据集[4]中选取了一个标准的NeRF数据集——花园场景,并为其添加了雾气以模拟介质的存在。我们使用3DGS提取深度图,并利用这些深度图创建模拟水下和雾天条件的场景。按照公式(6)的方法,我们使用以下参数模拟简单的雾天场景:βD=[0.6,0.6,0.6],βB=[0.6,0.6,0.6],B∞=[0.5,0.5,0.5]。对于复杂的雾天场景,参数为:βD=[0.8,0.8,0.8],βB=[0.6,0.6,0.6],B∞=[0.5,0.5,0.5]。
基线方法:所有方法都在同一组白平衡图像上进行训练。对于带有介质的场景渲染,我们比较了几种NeRF技术:SeaThruNeRF[18]、在NeRF-Studio上发布的SeaThru-NeRF重实现(SeaThru-NeRF-NS)[36]、ZipNeRF[5]和3DGS[15]。对于每种基线方法,我们使用PSNR、SSIM和LPIPS[47]指标来比较渲染质量。我们展示了深度的alpha混合作为深度图,并展示了无介质的渲染,以证明SeaThru-NeRF和我们的方法能够分离介质和物体。我们还使用相同的RTX 4080 GPU计算了FPS和总训练时间,以说明基线和我们的方法之间的速度差异。所有报告的结果均为三次运行的平均值。
4.2. 结果
首先,我们使用标准基准数据集——SeaThru-NeRF数据集,评估了我们方法的性能。表1比较了PSNR、SSIM、LPIPS、平均FPS和平均训练时间,这些指标覆盖了四个场景的验证集,并与基线方法进行了对比。我们的方法在大多数情况下都表现出优越性,并且在渲染和训练方面都具有较高的效率。图3显示,主流的3DGS和NeRF方法在背向散射介质的重建方面存在不足。3DGS剪枝了不透明度较低的高斯分布,留下了类似浓密泥泞的云状原语来拟合介质,这在新视图中导致了伪影。Zip-NeRF在建模几何表面方面存在困难,导致重建的场景缺乏真实感且几乎没有介质残留。
图4表明,在“IUI3红海”、“日本花园红海”和“巴拿马”场景中,我们的方法在质量和分离介质与物体方面都优于SeaThru-NeRF,尤其是在更深、更复杂的场景中(如图中红色方框所示)。此外,我们的深度图揭示了比SeaThru-NeRF更精细的细节,而SeaThru-NeRF在更远距离上难以生成合理的深度图,这在深度图的右上角以红色表示。我们在两个场景中都获得了更高的PSNR值。在模拟场景中,我们的方法在简单和复杂的雾天场景中都渲染出了更好的细节(如图5中红色方框所示),优于SeaThru-NeRF。我们无介质的渲染和深度图显著优于SeaThru-NeRF,尤其是在远离相机的场景中。尽管在复杂雾天场景的右上角,我们的方法的预测可能显得有些模糊且物体图不够清晰,但SeaThruNeRF的结果要糟糕得多。表2中展示的恢复质量对比进一步定量地证明了我们的方法在模拟场景中的优越性。总体而言,我们的方法在水下和模拟场景中都优于SeaThru-NeRF。
4.3. 消融研究(Ablation Study)
我们通过分离不同因素,来分析导致性能提升的关键因素。我们在SeaThru-NeRF数据集的验证集上进行了定量分析,比较了不同损失函数组合的效果,包括像素级损失函数{L1, LReg-L2, LReg-L1}和帧级损失函数{LDSSIM, LReg-DSSIM}。此外,我们还移除了介质效应,甚至同时移除了介质和我们提出的损失函数LReg(即重新实现3DGS)。这些比较的结果如表3所示。图6清晰地表明,我们提出的帧级LReg-DSSIM在低光照条件下能够提供更好的细节。当单独使用时,LReg-DSSIM可以显著提升远距离物体的重建质量和结构相似性。我们的像素级LReg-L1可以进一步锐化边缘。相比之下,LReg-L2[25]对基于3DGS的模型的监督能力相对较弱。我们提出的LReg在引导3DGS模型更好地拟合HDR场景方面优于其他配置。此外,移除介质组件(即基本的3DGS)会显著损害我们方法的性能,这表明我们方法的必要性。
5. 限制(Limitations)
尽管我们的方法在重建质量上取得了良好的效果,但仍存在一些限制。首先,与基于NeRF的方法[18]类似,我们的方法在区分远处的背景物体和介质时存在困难,如图3顶部和图7所示。然而,在前景中,我们的方法能够很好地剪枝介质相关的原语,而SeaThru-NeRF无法阻止几何场拟合介质,从而导致波纹状伪影。其次,与其它基于神经视图合成(NVS)的方法[15, 24]一样,我们的方法依赖于可用的相机姿态,而在水下三维场景中获取这些姿态可能较为困难。第三,我们的基于3DGS的方法在缺乏观测的区域会产生伪影[15],这同样也是基于NeRF的模型所面临的问题,如图8左侧和图4顶部所示。相比之下,基于NeRF的SeaThru-NeRF方法(右图)会引入一些模糊、失真和插值问题。最后,由于物体的颜色和衰减属性在训练过程中相互纠缠,从场景中恢复的颜色(尤其是背景类物体的颜色)无法保证精确,如图5所示。
6. 结论
在我们的工作中,我们专注于水下重建问题,该问题此前主要通过全体积化表示方法解决,但这些方法训练和渲染速度较慢。因此,我们提出将显式的点绘制方法(3DGS)与体积渲染相结合,以实现快速训练和实时渲染速度。我们的方法交替进行高斯分布的alpha混合以及穿过散射介质的光线段的积分。我们已经证明,我们的方法在实现实时渲染的同时达到了最先进的结果。此外,显式的场景表示使得几何结构和散射介质能够被分离。在未来的工作中,我们希望将我们的方法扩展到包含水和雾的更大场景中。
致谢
本研究得到了捷克科学基金会(GACˇR)EXPRO(项目编号2307973X)和捷克共和国教育、青年和体育部通过e-INFRA CZ(ID:90254)的支持。Jonas Kulhanek感谢欧盟“地平线2020”研究与创新计划下ELISE(项目编号951847)提供的旅行支持。
评论