IROS2024 | DarkGS:学习神经照明和3D高斯重新照明,用于黑暗中机器人探索

news2024/11/15 19:30:37

DarkGS:学习神经照明和3D高斯重新照明,用于黑暗中机器人探索

论文标题:DarkGS: Learning Neural Illumination and 3D Gaussians Relighting for Robotic Exploration in the Dark

论文地址:https://arxiv.org/abs/2403.10814

研究背景

人类能够在不同光照条件下构建环境的一致性心理模型,而机器人和自动驾驶车辆在光照条件不佳的环境中进行探索、检查、运输和搜索救援等任务时需要具备类似的能力。现有的视觉系统主要依赖于多视图图像中的共同特征点来实现场景重建,但这些方法在处理光照变化时存在局限性,尤其是在使用移动光源的情况下。随着NeRF等技术的发展,其在图形学领域取得了巨大成功,但在机器人平台上处理移动光源带来的光照变化仍然存在一定的不足。

在移动光源和低光照条件下,如何构建一个逼真的场景,并实现场景的重新照明,以便机器人能够更好地理解和导航未知环境,是当前研究领域面临的一个主要问题。

为了解决以上问题,本文提出了一个名为DarkGS的新方法,该方法基于NeLiS(Neural Light Simulators)来模拟和校准相机-光源系统。通过数据驱动的方式,利用NeLiS来学习光源的辐射强度分布(RID)、光衰减和环境光,以及相机-光源的姿态。DarkGS利用3DGS(3D Gaussian Splatting)模型的变体,在光照条件不佳的情况下构建逼真的场景表示,并能够使用全局照明重新照亮场景。本文还提出了一种新的工作流程,包括光源建模、相机-光源校准、3D高斯构建和场景重新照明,以及开发了相应的前端软件来辅助标定过程。

相关工作

A. 机器人的外感传感器标定

自主机器人通常装备有多种感知传感器,包括相机和激光雷达(LiDAR)。以相机标定为例,通常利用带有AprilTag标记或棋盘格图案的标定板。通过从多个视角捕捉目标图像,估计出相机的焦距、投影中心、畸变系数以及其姿态。相似的基于目标的标定方法也被用于激光雷达、雷达和声学传感器的标定,以便进行后续的传感器数据融合。本文提出了一种新颖的标定方法,使用由AprilTags和空白区域组成的目标来标定相机-光源系统中的光源。这包括估计相机与光源坐标系之间的转换关系、光源的辐射强度分布(RID)以及光强衰减曲线。

B. 光源标定

现有的光源标定方法采用了多种定制的标定目标。例如,使用结合AprilTags和销钉的标定板,通过分析销钉产生的阴影来推断点光源的位置。其他研究提出使用朗伯球体,并通过学习如何重建球体来估计光源参数。此外,部分研究工作展示了如何从球体的阴影中恢复光源的位置。也有一些研究工作利用朗伯平面和特制的标记,展示了如何用单张图像完成点光源的标定。然而,这些工作大多基于简化的模型,如假定点光源的光强遵循逆平方衰减规律,或假定在完全黑暗的环境中进行,或者RID是预先已知的,这限制了这些方法在实际应用中的广泛适用性。在本文中,采用了一个简化的标定目标设计,仅包含AprilTags和朗伯平面,通过NeLiS,展示了通过建模和学习RID、光强衰减以及环境光,连同相机-光源的姿态,可以提高图像重建的质量,使本文提出的标定方法更适合于现实世界中机器人的部署。

C. NeRF和3D高斯散射

基于从运动结构(SfM)中取得的成功,NeRF通过学习使用连续函数,如多层感知机(MLP)来表示场景,并能够实现逼真的新视角图像合成。流行的NeRF变体,例如MipNeRF和Instant-NGP,通过提升渲染的精度和速度,对NeRF进行了改进。最近引入的3D高斯散射(3DGS)通过用空间高斯代替神经网络的核心部分,彻底改变了这一领域,它在保持系统精度和可微性的同时,实现了100+ fps的渲染速度。对于机器人设置,先前的研究尝试通过模拟场景的物理属性,如粗糙度、反照率和法线,而不是将辐射视为恒定值,来解决光照变化的问题。然而,这些工作过度简化了光模型,将其视为与相机同中心的朗伯点光源,这在许多真实机器人平台上并不适用。Gaussianshader和Relightable 3DG将物理属性引入3DGS框架,但将照明建模为不随帧变化的常数。根据作者的实验,上述方法都无法处理真实机器人成像系统中的照明不一致问题。在本文提出的DarkGS中,通过模拟场景的物理属性并利用NeLiS,不仅可以从光照不足的图像中构建一致的3DGS,还可以使用全局照明重新照亮场景。

D. 光度立体视觉

光度立体视觉是一种技术,它通过分析从单一视角在不同光照方向下拍摄的多张图像来估计物体的形状。早期的方法将这个问题限定在已知光源和具有均匀反照率的朗伯表面。随后的研究扩展到了允许空间变化的反照率和未知光源的情况。然而,本文的机器人设置与这个问题的传统定义不同,因为本文的相机和光源总是一起移动。因此本文选择在3DGS框架内解决这个问题,从而能够合成逼真的新视图。

本文方法

本文构建NeLiS和DarkGS的流程如图2所示。通过对平面标定目标进行相机-光源系统的标定来构建NeLiS。通过标定图像序列和手工测量的光源姿态,一个人类操作员可以使用图形用户界面(GUI)来初始化光源参数。由于标定目标可以通过AprilTags 进行定位,着色模型可以根据给定的参数渲染图像,以近似标定图像。然后,运行优化以最小化标定图像序列和渲染图像的光度误差。在获得校准后的NeLiS之后,机器人可以在黑暗环境中部署,使用收集到的图像构建DarkGS,微调模型,并重新照亮场景。

A. NeLiS的着色模型

通过在平面标定目标上移动相机和光源作为刚体来捕捉标定数据。标定目标是带有四个角落放置为矩形的AprilTags的白色平面(如图3所示)。本文将世界坐标系的原点设置为标定目标的左上角,并假设相机已经预先校准并去除了畸变。NeLiS需要解决的关键问题之一是估计光源相对于相机的相对姿态和。如果给定标定目标的真实大小,可以应用透视-n-点算法(Perspective-n-Point,PnP)来提取和,这些将点从相机坐标变换到世界坐标。然后,光源的位置由给出。由于本文将光源坐标系的z轴与光源的中心线对齐,中心线的方向可以表示为。和都在世界坐标系中。本文仅使用由4个AprilTags界定的兴趣区域(ROI)进行标定。本文假设这个区域是一个朗伯平面,并且在平面上的任何地方都有相同的法线和漫反射反照率(对于灰度图像,λ=1;对于RGB图像,λ=3)。对于ROI中的每个像素,找到相应的相机射线与世界坐标系中目标平面的交点,记为。为了推断在点的入射辐射度,需要对辐射强度分布(RID)、光衰减函数和环境光进行建模。

  1. RID (Radiant Intensity Distribution) 辐射强度分布:

RID通常被建模为光中心线与光线之间角度的函数。之前的研究工作假设RID是已知的,但这种假设不适用于野外机器人部署。相反,本文通过从标定数据中学习一个神经网络RID来消除这种依赖性。

其中,_θ_ 代码MLP的参数。

  1. Light Falloff Curve 光衰减曲线:

光衰减曲线通常基于点光源的假设使用逆平方定律来建模。然而,当物体靠近光源时,逆平方定律(Inverse square law)开始失效。因此,本文选择使用洛伦兹函数(Lorentzian function)的形式来建模光衰减距离。

本文将τ指定为一个可学习的参数,而不是根据光表面的手动测量来估计τ。

  1. Ambient Light 环境光:

通常在暗室中研究成像和照明问题,以通过去除环境光来简化和约束模型。然而,对于现实世界的机器人部署来说,完美的黑暗空间可能无法用于标定。因此,本文将环境光建模为一个可学习的参数A。因此,点x处的入射辐射可以建模为:

  1. BRDF (Bidirectional Reflectance Distribution Function) 双向反射分布函数:

尽管存在能够处理复杂反射效应的BRDF模型,但它们超出了本文的范围。本文选择使用朗伯(Lambertian)反射模型,消除了在BRDF中优化任何参数的需要。本文使用作为BRDF,渲染方程如下:

对于捕获的像素强度Lx,本文使用L1损失,并将NeLiS优化问题公式化为:

B. 构建 DarkGS

在3DGS框架内,本文用高斯点云G来模拟场景(如图3右侧所示)。点云中的每个高斯gi包含位置pi、协方差Σi、不透明度αi、反照率ci和法线ni的属性,即gi = {pi, Σi, αi, ci, ni} ∈ G。给定pi,可以通过公式3计算入射辐射度Ii。对于像素(u, v)的N个有序点,渲染方程变为:

1) Scale Recovery 尺度恢复:

3DGS及其变体的框架通常基于像COLMAP 这样的单目SfM方法。尽管使用AprilTags进行标定可以在NeLiS中以真实度量尺度恢复姿态,但单目SfM仅提供用于构建3D高斯的上尺度姿态。这里,本文引入一个尺度因子s > 0作为可学习参数,以便可以获得具有尺度的位置。使用捕获的像素强度Lu,v,可以通过解决以下优化问题来构建3D高斯:

2) Training Warm-Up 训练预热:

在某些情况下,初始尺度与真实尺度之间的较大差异常常导致优化过程开始时发散和陷入局部最小值。为了解决以上问题,本文提出了一种预热策略。预热策略的总体思想是改写光源姿态,使其与相机同中心且平行。在这种同中心配置中,相机和光源之间的基线为零,以便在粗糙级别上基线与点云之间的尺度差异对着色的影响较小。然后,在前k次迭代中逐渐将姿态恢复到标定结果。在此过程中,公式7被求解,并将优化尺度s。本文定义了一个随迭代增长的预热因子,以至于在第m次迭代中,这个因子是m/k。这里,表示Lie指数映射和Lie对数映射如下:

以至于在预热阶段用以下方式替换 和 :

3) Relighting 重新照明:

一旦DarkGS模型构建完成,可以通过替换公式3中的Ψτ、Φθ和A,用精心设计好的值和函数来重新照明场景。例如,将Φθ中的MLP函数替换为一个常数可以创建没有强烈模式的朗伯照明(Lambertian illumination);将光衰减函数Ψτ替换为一个常数可以模拟来自平行光源的照明源。

C. NeLiS 前端:人机交互式标定

尽管前端软件不是本文的主要贡献,但它为NeLiS的可视化、参数的手动初始化和超参数调整提供了一个交互式界面,如图2。本文发现NeLiS模型容易陷入局部最小值,尤其是当同时从头开始学习MLP和相机-光源姿态时。此外,同时优化MLP和反照率会产生一个约束不足的问题,经常导致数值不稳定。通过本文制作的GUI,首先用高斯分布初始化相机-光源姿态作为初始RID,并微调姿态、反照率和其他参数。然后冻结姿态和反照率,训练基于MLP的RID,防止同时学习多个参数时出现发散。一旦模型收敛,解冻所有可学习参数,并将它们一起优化以达到全局最小值。

实验

A. 实验设置

本文成像系统由一个FLIR机器视觉相机(型号Firefly S)和一个光源组成,它们一起安装在腿部机器人平台的顶部的刚性结构上,如图4所示。相机和光源之间的基线大约为32厘米。尽管通过将光源和相机放置得足够靠近并将它们建模为同中心可以简化光线追踪问题,但在许多应用中,它们之间较长的基线是一个值得研究的首选设计。本文使用了三种不同的光源进行实验:手电筒、潜水灯和泛光灯。为了构建NeLiS,为每种光源配置从不同范围和视角拍摄了大约40张标定图像,并使用25%的图像作为测试集来评估NeLiS的性能。为了构建DarkGS,本文为每个场景拍摄了50到150张图像。所有图像都以RAW格式流式传输,没有进行任何色调映射或白平衡调整。在NeLiS和DarkGS中优化的参数都使用Adam优化器,并集成了LieTorch。

B. 现有的3DGS方法能否胜任这项工作?

作者尝试了几种不同的现有方法,包括普通的3DGS、RawNeRF和Relightable 3DGS,以检查它们是否能够处理由移动的相机和光源在低照明条件下捕获的图像。如图5所示,实验结果表明,这些方法在重建场景时都遇到了问题,主要表现为在合成图像中出现了大量的伪影。作者指出,这些方法的失败主要是因为它们没有能力模拟由于光源移动而导致的光照变化。这说明了现有技术在处理动态光照条件下的场景重建方面的局限性。

C. 为什么需要学习RID?

作者指出,先前的方法通常假设RID是已知的或者使用一些通用函数来近似RID,但这些方法在处理实际应用中的各种光源时存在局限性。如图6a所示,实验中发现,不同的光源具有不同的RID模式,而且这些模式对于现有的方法来说往往是未知的。为了解决这个问题,作者提出了使用机器学习,特别是多层感知器(MLP),来适应性地学习不同光源的RID模式。

如图7的第2和5列,消融研究显示,使用基于MLP的模型可以显著提高渲染性能,因为它能够更准确地拟合各种光源的RID模式,而不是依赖于通用的函数形式。这表明,通过学习RID,可以使场景渲染更加逼真,并提高在不同光照条件下重建场景的能力。

D. 为什么需要学习光衰减?

在现实世界中,光源的强度随着距离的增加而减少,并不严格遵循逆平方定律,尤其是在光源和物体距离较近时。作者指出,先前的研究通常简化地使用逆平方定律来描述光的衰减,但这在实际应用中并不总是准确的。为了更准确地模拟光衰减,作者采用了洛伦兹函数来描述光的衰减,并引入了一个可学习的参数τ。如图6b所示,通过实验,作者发现学习这个参数τ可以显著提高渲染性能,因为它能够更好地拟合实际测量的光衰减数据。这说明了使用数据驱动的方法来学习光衰减模型的重要性,这种方法可以更准确地反映现实世界中光源的行为,从而提高场景重建和渲染的质量。

E. 需要一个完全黑暗的环境吗?

作者指出,在现实世界中,环境光无处不在,而且对于实际部署的机器人而言,找到一个完全没有环境光的黑暗房间是相当困难的。论文中的实验表明,无论是在NeLiS的标定阶段还是在DarkGS的部署实验中,都没有使用完全黑暗的环境。如图7的第2和4列,作者通过模型中的环境光参数A,展示了即使在有环境光的情况下,也能够提高渲染性能。这意味着他们的模型能够适应并处理现实世界中常见的光照条件,而不必依赖于理想化的黑暗环境。

F. 结果可视化

本文在各种真实世界环境中部署了提出的系统,结果如图8所示。与地面真实情况相比,本文的模型能够使用从机器人平台在黑暗环境中捕获的RAW图像重建图像,并且能够重新照亮场景,以揭示由于不均匀和部分照明而在RAW图像中被破坏的更多信息。图8中显示的所有结果都来自手电筒设置,根据得到的数值结果,这是最具挑战性的情况。

局限性

作者指出,本文工作的一个局限性是,模型目前还不支持模拟具有重度阴影或镜面反射的物体(图9a)。然而,最近的一些工作已经展示了将它们集成到3DGS框架中的潜力。本文重新照亮的图像仍然是绿蓝色调(图9b)也很明显。这是因为1) 本文在整个流程中坚持使用RAW图像格式,因为RAW图像的特性导致图像呈现绿色;2) 本文使用的LED灯具有高色温(冷色),所以重新照亮的图像呈现出蓝色。

结论

本文旨在解决使用移动相机-光源系统拍摄的图像来构建3D高斯和场景重新照明的问题。本文提出了一种全新的方法,包括NeLiS,一个相机-光源模拟和校准模型,以及DarkGS,它为黑暗中的场景构建了逼真的表示。结果表明,本文提出的方法能够从部署在黑暗中的机器人平台拍摄的图像中构建可重新照明的高斯,而其他现有方法则无法完成这项工作。消融研究显示,本文提出的模型中的组件有效地提高了着色模型的性能,使模型能够学习任意光型的MLP RID,更好地近似光衰减曲线,并允许在不是完全黑暗的环境中校准和部署系统。从而使本文提出的方法更适用于现实世界的机器人部署。未来的工作包括模拟阴影和非朗伯物体,以及将白平衡和色调映射纳入循环。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1984386.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

数据开发/数仓工程师上手指南(七)CDM-DWS层搭建规范及流程

前言 进入到了CMD公共数据层的结尾最后一层-DWS层了,该层基本就是直接与业务强关联,也就是说产品提出的需求,或是报表、用户画像统计好还是数据大屏都是在这一层给处理好数据,再放入ADS层,然后我们只需要在BI里面配备…

【数据结构】——堆的实现(赋源码)

堆的概念与结构 堆(Heap)是计算机科学中一类特殊的数据结构,是最高效的优先级队列。堆通常是一个可以被看作一棵完全二叉树的数组对象。 堆的性质: 堆中某个结点的值总是不大于或不小于其父结点的值; 堆总是一棵完全二叉树。 堆的物理结构本质上是顺序…

PDF怎么转Word?分享二个简单的方法

很多小伙伴在工作学习的时候,经常会遇到别人发来的PDF文件。PDF 文件用于查看资料非常方便,因为它们的布局稳定,在大多数设备上都可以显示相同的布局。 如果我们需要将其转换为Word,如何转换呢?许多人不知道如何转换。…

怎么录制视频?简单步骤教你如何录制高质量视频

视频是我们生活、工作和学校中不可或缺的一部分,但对于初学者来说,面对琳琅满目的录屏工具,往往感到无从下手,今天我们就给大家分享几种简单又高效的电脑录屏方法,让你轻松掌握高质量视频录制的技巧。 录制技巧1&#…

工厂人员定位系统原理

工厂人员定位系统是一种通过现代无线通讯技术和定位技术实现对工厂内人员位置进行实时监测的系统。其具体原理是通过安装在员工身上的定位标签产生无线电信号,并通过无线通讯网络传输给基站,再由基站将数据传输到服务器进行处理,最终在监控中…

《藏文驾考》App:支持藏汉双语切换的驾考题库,方便不熟汉语的藏族学员考驾照,中文藏文语音读题!

藏文驾考,是一款支持藏汉双语切换的驾照考试在线刷题学习软件。服务于涉藏地区的藏文驾驶理论考试,同步西藏、四川、青海、甘南等涉藏地区的驾考新规题库。提供科目一、科目四藏文交规理论学习,科目二、科目三视频技巧讲解。支持汉语、卫藏、…

Power功效分析之广义模型原理及案例实操

Power功效分析常用于实验研究时样本量的计算(或功效值计算),如果是涉及广义模型时的回归系数差异计算时,SPSSAU共提供二元logit回归和Poisson回归情况时的Power功效分析,具体如下表格所述: 比如二元Logit回…

监听器Listener + 过滤器Filter

监听器Listener 介绍 Listener是JavaEE的规范,就是接口 监听器的作用是,监听某种变化(一般就是对象创建/销毁, 属性变化), 触发对应方法完成相应的任务 ServletContextListener监听器(最常用) 作用: 监听S…

javase综合案例4 -- 考试系统

文章目录 一&#xff0c;项目要求二&#xff0c;创建实体类ExamItem三&#xff0c;创建考试服务类ExamService3.1 全局变量 考题列表itemList(List< ExamItem >类型)&#xff0c;答案数组answerArr (String[]类型)&#xff0c;得分score3.2 初始化方法init()3.3 打印菜单…

从0开始的算法(数据结构和算法)基础(六)

二叉树 什么是二叉树 二叉树是一种非线性数据结构(层次关系结构)&#xff0c;代表“祖先”与“后代”之间的派生关系&#xff0c;体现了“一分为二”的分治逻辑。与链表类似&#xff0c;二叉树的基本单元是节点&#xff0c;每个节点包含值、左子节点引用和右子节点引用。 首先…

人生苦短,我用 Python,AI 模型助力高效数据提取

一、前言 在网络爬虫和数据挖掘领域&#xff0c;提取网页内容是一项常见且重要的任务。无论是从新闻网站、电商平台还是社交媒体&#xff0c;获取有用的信息都是开展后续分析和应用的前提。然而&#xff0c;传统的网页内容提取需要编写大量的代码来处理和解析 HTML 文档&#…

comfyui flux

下载文本编码器&#xff0c;模型放到ComfyUI/models/clip/ 下&#xff0c;t5模型可以任选其一&#xff1b;https://huggingface.co/comfyanonymous/flux_text_encoders/tree/main 下载vae模型&#xff0c;https://huggingface.co/black-forest-labs/FLUX.1-schnell/tree/main&a…

31、Python之面向对象:开闭原则与多态?学我者生、似我者死

引言 前面我们花了不少的篇幅把Python中面向对象的封装与继承简单介绍了一遍。今天来聊一下Python面向对象的第三个特性&#xff1a;多态。 其实&#xff0c;在《Python之面向对象&#xff1a;一切皆对象&#xff0c;可你真的需要面向对象吗》这篇文章中&#xff0c;对比面向…

Python大数据分析——朴素贝叶斯模型

Python大数据分析——朴素贝叶斯模型 数学方面思路理论基础高斯贝叶斯分类器多项式贝叶斯分类器伯努利贝叶斯分类器 代码部分高斯贝叶斯——皮肤识别多项式贝叶斯——毒蘑菇识别伯努利贝叶斯——情感分析 数学方面 思路 该分类器的实现思想非常简单&#xff0c;即通过已知类别…

vs code 代码同步到服务器,无需下载插件,使用自带ftp

可使用 vscode 自带ftp,无需下载插件 快捷键 ctrl shift p {"name": "My Server", //上传名"host": "192.168.56.102",//服务器"protocol": "ftp",//协议"port": 21,//端口"username": &q…

《机电信息》是什么级别的期刊?是正规期刊吗?能评职称吗?

​问题解答 问&#xff1a;《机电信息》是不是核心期刊&#xff1f; 答&#xff1a;不是&#xff0c;是知网收录的正规学术期刊。 问&#xff1a;《机电信息》级别&#xff1f; 答&#xff1a;省级。主管单位&#xff1a;江苏省设备成套股份有限公司 主办单位&#x…

nvm安装高版本的node18.17.0,报https://nodejs.org/dist/latest/SHASUMS256.txt

1、执行npm install v18.17.0这条命令时&#xff0c;报如下错误&#xff1a; 2、或者报Node.js v18.17.0 is not yet released or is not available. 解决方案&#xff1a; 1、打开nvm 的安装路径中的setting.json node_mirror:npm.taobao.org/mirrors/node/ npm_mirror:npm.…

基于目标检测的目标跟踪(python)

文章目录 概要环境准备目标检测实现目标跟踪实现整合后的代码可能遇到的问题Could not load library libcudnn_ops_infer.so.8. Error: libcudnn_ops_infer.so.8: cannot open shared object file: No such file or directory参考概要 基于目标检测的目标跟踪过程通常包括以下…

硬控年轻人的长沙,城市底色竟是研发

近年来&#xff0c;找到“流量密码”的长沙&#xff0c;吸引了来自全国各地的年轻人&#xff0c;形成百川赴海之势。而消费生力军的到来&#xff0c;也让长沙成为新消费发展的“沃土”&#xff0c;三顿半、茶颜悦色、文和友、墨茉点心局、柠季、零食很忙等一众“顶流”新消费品…

ADC的一些细节

一&#xff0c;输入通道 总共 2 个 ADC&#xff08;ADC1&#xff0c;ADC2&#xff09;&#xff0c;每个 ADC 有 18 个转换通道: 16 个外部通道、 2 个内部通道&#xff08;温度传感器、内部参考电压&#xff09; ADC1和ADC2的通道都相同&#xff0c;是采用分时复用来…