作者 | Huapeng Li 编辑 | 3D视觉之心
点击下方卡片,关注“自动驾驶之心”公众号
戳我-> 领取自动驾驶近15个方向学习路线
本文只做学术分享,如有侵权,联系删文
水下重建的挑战
神经辐射场(NeRFs)能够提供逼真的3D场景重建质量,3DGS在渲染质量方面可以与NeRF媲美,并且提供了实时渲染速度、更好的可编辑性和控制能力。
散射场景的重建,如雾霾和水下环境,是一个有趣的研究领域,应用范围从海军机器人到虚拟现实体验。在水体体积中重建几何结构具有挑战性,因为散射介质的属性与空气不同。在典型场景中,主要要求是表示表面。NeRFs和高斯散点方法都优化了表面表示,从而提高了效率。对于NeRFs,由于它们是全体积的,因此理论上它们应该能够完全体积化地表示介质。然而,NeRFs为加速训练过程而使用的采样器阻止了它们对体积的良好学习。
为了解决这个问题,一种名为SeaThru-NeRF[2]的NeRF方法被提出,它使用两个场:一个用于几何,一个用于中间的体积。然而,这种方法在渲染和训练上都很慢。
本文介绍一种新方法WaterSplatting[1],通过使用3DGS显式表示几何,并使用体积表示中间体积。提出的渲染器不仅在渲染质量上超越了全体积表示,还在渲染和训练速度上达到了与3DGS相当的水平。其主要贡献如下:
介质中的散点:引入了一种结合高斯散点(GS)和体积渲染的新方法。该方法采用GS进行显式几何表示,并使用单独的体积场捕捉散射介质。这种双重表示允许在散射介质中合成新的视角,并在无介质的情况下恢复清晰的场景。
损失函数对齐:提出了一种新的损失函数,旨在将3DGS与人类对高动态范围(HDR)和低光场景的感知对齐。
高效合成与恢复:证明了在合成现实世界的水下数据的新视角和恢复合成的背散射场景中的清晰场景方面优于其他模型,同时大大缩短了训练和渲染时间。
项目主页:https://water-splatting.github.io
具体方法
预备知识
3D高斯散点(3D Gaussian Splatting, 3DGS)使用可学习的显式原语 来建模场景。每个高斯原语 由中心位置 和协方差矩阵 定义:
3DGS原语还具有两个附加的参数化属性:不透明度 和球谐系数 ,后者用于表示方向外观成分(各向异性颜色)。为了渲染像素颜色,将通过视图变换 将原语转换到摄像机空间,并使用投影变换的仿射近似的雅可比矩阵 对 进行变换,然后得到投影的2D均值 和2D协方差矩阵 :
以及 在z坐标上的深度:
2D高斯核 表示为:
其中 是像素的坐标。对于光栅化,每个高斯在3倍标准差范围内截断,仅考虑与该范围内的16×16像素块相交的高斯原语,因为约99.7%的概率落在均值的3倍标准差范围内。因此,像素颜色通过对不透明度 高于阈值的排序后相交的高斯进行alpha混合来计算:
其中 是给定视图方向的颜色, 是Sigmoid函数, 是参与alpha混合的高斯数目。在优化过程中,3DGS会通过分割大的高斯并复制小的高斯来周期性地密化在2D坐标 上具有高平均梯度的高斯,同时通过修剪低不透明度的原语来加速渲染,并周期性地将所有高斯的 设为接近零,以适度减少接近输入摄像机的漂浮物。
在散射介质中的场景渲染,我们使用了修订过的水下图像形成模型【1】,其中最终图像 被分为直接成分和背散射成分:
其中 是在无介质下在深度 捕获的清晰场景, 是水在无限远处的背散射颜色。颜色乘以衰减系数,其中 和 是图像直接成分和背散射成分的衰减系数,分别表示介质对颜色的影响。向量 表示直接成分的依赖关系,包括深度 、反射率、环境光、水的散射特性和水的衰减系数。向量 表示背散射成分的依赖关系,包括环境光、水的散射特性、背散射系数和水的衰减系数。
介质中的散点渲染
方法流程如图2所示。模型输入是一组具有散射介质的图像和相应的摄像机姿态。通过结构化运动(SfM)初始化一组3D高斯原语,并通过神经网络对其进行优化,以编码介质属性。在考虑到原语和介质的遮挡情况下,模型能够获得沿射线的透射率,并能够在新视角下合成介质成分和物体成分。
考虑沿摄像机射线 从摄像机到无限远处积分的像素期望颜色 ,由于3DGS的无界渲染,通过添加介质项来释放光在散射介质中传播的约束:
其中,透射率 定义为:
其中, 和 分别表示物体和介质的密度,而 和 分别表示物体和介质的颜色。
将 和 设置为每条射线上的常量,并且每个颜色通道分别处理。为了在3DGS中应用离散表示,前第 个高斯 (在第 个高斯 之后)的透射率 在深度 的区间 内可分解为:
其中, 是之前原语遮挡所贡献的累积透射率,而
是从摄像机到深度 的介质累积透射率。然后,颜色由离散的高斯和可积分的介质组成:
高斯 对最终输出贡献的颜色为:
其中, 是基于像素 与 的相对位置计算得到的不透明度(参考公式(5)),而 是基于射线方向的颜色。介质在第 个高斯 和高斯 之间对颜色的贡献为:
为了精确估算介质属性,还包括从最后一个高斯 到无限远处的背景介质项:
在累积颜色中。
广色域相机在捕捉场景时的有效介质密度 在物体颜色 和介质颜色 中表现不同。为物体衰减 和介质背散射 使用两组参数,分别应用于 和 。通过将 设为零,最终的渲染颜色方程为:
其中:
损失函数对齐
在原始的3D高斯散点(3DGS)方法中,损失函数结合了L1损失和D-SSIM损失,适用于没有共享参数的原语。该方法提出了一种正则化损失函数 ,以增强优化过程中暗区域的权重,使其与人类对动态范围的感知对齐。更具体地说,在渲染的估计值 和目标图像 上应用逐像素权重 ,其中 ,其中 是像素坐标, 表示对其参数进行梯度停止(即其导数为零)。
因此得到正则化的L1损失:
该损失减少了模糊,并使边缘更加锐利。还得到了正则化的D-SSIM损失:
该损失鼓励 和 之间的高结构相似性。最终提出的损失函数是:
该损失函数鼓励高斯优化更好地与人眼对动态范围的感知对齐。
实验效果
总结一下
WaterSplatting重点研究了水下重建问题,该问题此前是通过体积表示解决的,但训练和渲染速度较慢。它将显式点散射方法(3DGS)与体积渲染结合起来的方法,实现了快速训练和实时渲染速度。在散射介质通过光线段进行整合的同时,交替使用高斯散点的alpha合成。该方法能够在实现实时渲染的同时,达到最先进的效果。此外,显式场景表示还使几何和散射介质的解耦成为可能。
未来工作方向:将该方法扩展到包含水和雾的大型场景中
局限性:
在区分远处背景物体和介质时存在一些困难,如图3和图7顶部所示。然而,在前景中,本方法能够很好地修剪与介质相关的原语,而SeaThru-NeRF无法防止几何场适应介质,从而导致波纹状伪影。
依赖于可用的摄像机姿态数据,这在水下3D场景中可能难以获得。
基于3DGS的方法在缺乏观察的区域会产生伪影,这也是NeRF基于模型的问题,如图8左侧和图4顶部所示,而基于NeRF的SeaThru-NeRF方法(右侧图像)则会引入一些模糊、失真和插值效果。
从场景中恢复的颜色不能保证精确(尤其是对于背景物体),因为在介质的作用下,物体的颜色和衰减属性在训练过程中会相互纠缠,如图5所示。
参考
[1] WaterSplatting: Fast Underwater 3D Scene Reconstruction Using Gaussian Splatting
[2] Seathru-nerf: Neural radiance fields in scattering media
投稿作者为『自动驾驶之心知识星球』特邀嘉宾,欢迎加入交流!重磅,自动驾驶之心科研论文辅导来啦,申博、CCF系列、SCI、EI、毕业论文、比赛辅导等多个方向,欢迎联系我们!
① 全网独家视频课程
BEV感知、BEV模型部署、BEV目标跟踪、毫米波雷达视觉融合、多传感器标定、多传感器融合、多模态3D目标检测、车道线检测、轨迹预测、在线高精地图、世界模型、点云3D目标检测、目标跟踪、Occupancy、cuda与TensorRT模型部署、大模型与自动驾驶、Nerf、语义分割、自动驾驶仿真、传感器部署、决策规划、轨迹预测等多个方向学习视频(扫码即可学习)
网页端官网:www.zdjszx.com② 国内首个自动驾驶学习社区
国内最大最专业,近3000人的交流社区,已得到大多数自动驾驶公司的认可!涉及30+自动驾驶技术栈学习路线,从0到一带你入门自动驾驶感知(2D/3D检测、语义分割、车道线、BEV感知、Occupancy、多传感器融合、多传感器标定、目标跟踪)、自动驾驶定位建图(SLAM、高精地图、局部在线地图)、自动驾驶规划控制/轨迹预测等领域技术方案、大模型、端到端等,更有行业动态和岗位发布!欢迎扫描下方二维码,加入自动驾驶之心知识星球,这是一个真正有干货的地方,与领域大佬交流入门、学习、工作、跳槽上的各类难题,日常分享论文+代码+视频
③【自动驾驶之心】技术交流群
自动驾驶之心是首个自动驾驶开发者社区,聚焦感知、定位、融合、规控、标定、端到端、仿真、产品经理、自动驾驶开发、自动标注与数据闭环多个方向,目前近60+技术交流群,欢迎加入!扫码添加汽车人助理微信邀请入群,备注:学校/公司+方向+昵称(快速入群方式)
④【自动驾驶之心】全平台矩阵