3D视觉技术登上火星?NASA也用上了NeRF技术做太空勘探

news2024/11/17 8:29:58

原文链接:https://www.techbeat.net/article-info?id=4468
作者:seven_

现阶段,人类探索宇宙的一个关键方向是如何高效的利用航天器返回的数据来了解和分析外太空的环境特点。其中最为常用的就是图像数据,但是这些数据非常宝贵,获取难度较大,信息传输成本也非常高。但是与地质学家研究地球环境的方式不同,现阶段我们对太空环境的探索还离不开对三维场景的模拟。本文研究的重点就是如何使用来自火星车上的相机数据生成火星表面的3D场景,以帮助研究火星地质,进行模拟导航和火星形状分析。目前可以实现火星表面三维重建的技术大多都依赖于经典的计算机图形学,这类方法在重建过程中需要耗费大量的计算资源,而且很难推广到新的场景和不同火星车采集的数据中。
在这里插入图片描述

论文链接:
https://arxiv.org/abs/2212.01672
代码链接:
https://github.com/lrnzgiusti/MaRF

神经辐射场(NeRFs)作为最近几年3D计算机视觉社区中最为火热的话题,可以非常有效地应对上述火星表面重建的限制。我们可以通过使用稀疏的采集图像优化连续场景函数来合成复杂的火星场景,作者将这一方法命名为MaRF。MaRF使用神经图形基元(NGP)代替了原有技术中的稀疏图像集,由于NGP可以被视为是一组固定长度的可学习向量,它可以以更小的空间来保存原始图像的信息,从而提高了三维重建的效率。

此外,本文作者在实验部分展示了使用MaRF对来自好奇号火星车、毅力号火星车和Ingenuity火星直升机采集到的真实火星数据的三维环境生成效果,这也算得上是3D NeRFs技术助力太空探索的一大步,本文作者主要来自于美国宇航局喷气推进实验室(NASA JPL),JPL主要承担了美国宇航局的火星科学实验室项目。

一、介绍

为了能够使研究者更加全面的观察外太空的地形地貌,已经有人想到将混合现实(mixed reality,MR)技术应用到该领域,混合现实是一种新型的人机交互形式,它将交互式计算机图形环境与现实世界中的元素相结合,完全通过计算机生成的环境信号重建整个感官世界。混合现实将计算机生成的感官信号叠加到实际环境中,使用户能够同时体验虚拟世界和现实世界的结合。基于混合现实技术,美国宇航局戈达德太空飞行中心(GSFC)的研究人员开发了一种沉浸式工具,用于探索从海洋深处到遥远恒星和星系的区域。另外值得注意的一项技术是NASA JPL实验室(喷气推进实验室)和微软联合研发的OnSight框架[1,2],该框架可以对好奇号火星车访问过的每一个火星地点生成非常逼真的3D地形模型,并且允许科学家们以增强现实的形式在这些虚拟空间中对火星地质进行研究,真正实现了空地合一的勘探体验,如下图所示:
在这里插入图片描述
在这样的技术发展背景之下,本文作者研发出一个更加先进的端到端三维重建框架MaRF,MaRF可以直接从JPL实验室的行星数据系统(Planetary Data System,PDS)获取航天器采集到的火星图像数据,并且对其进行过滤以合成火星场景的综合视图。MaRF借助深度3D渲染算法的非线性拟合能力,可以更好的捕捉三维场景的几何和外观信息,能够合成模型从未见过的火星视角,这是之前传统方法望而却步的一点。此外,由于整个火星场景都可以被编码在MaRF的多层感知器(MLP)中,这样占用的存储空间比单个PDS数据结构要小几个数量级,因此MaRF也可以被作为存储火星航天器数据的数据中心,其可以同时保留与原始图像集相同的信息内容。

二、本文方法

MaRF的技术基础来源于3D NeRF算法,在NeRF中,一个三维场景由一系列的MLP表示,给定一个虚拟物体的3D空间坐标 r = ( x , y , z ) \mathbf{r}=(x, y, z) r=(x,y,z) 和在场景中的被观察方向 d = ( θ , ϕ ) d=(\theta, \phi) d=(θ,ϕ)MLP对当前目标的体积密度 σ \sigma σ、颜色 c = [ R , G , B ] \mathbf{c}=[R, G, B] c=[R,G,B] 进行预测并在该空间位置进行体积渲染,在具体操作时,首先将空间坐标 r \mathbf{r} r 送入MLP,输出 σ \sigma σ 和中间特征,然后将其送入到全连接层中预测颜色,整个过程可以形式化表示为:
在这里插入图片描述
其中 Θ \Theta Θ 是可学习参数,我们可以通过最小化不同视图中渲染和真实像素颜色之间的总平方误差来训练网络。基于这一原理过程,本文作者设计了如下的火星三维场景渲染Pipeline,该Pipeline可以从行星数据系统(PDS)直接获取可用的航天器图像来训练NeRF网络进行视图合成。
在这里插入图片描述
整个Pipeline共分为提取数据、过滤、校准、优化和视图合成5个阶段,下面我们将详细介绍每个阶段中的一些技术细节。

2.1 提取数据

在这一阶段中,系统可以直接通过指定火星图像的绝对路径来从PDS中读取图像,其中每张图像都附带一个相关的标签文件,其中包括航天器系统、拍摄图像的时间和CAHVOR格式的相机参数(内参和外参)等指标

2.2 数据过滤

三维场景渲染的效果很大程度上取决于输入网络的数据质量,直接从PDS访问到的火星图像可能具有不同的分辨率,甚至包含有噪声图片。因此,在训练视图合成之前,数据集首先通过一组过滤器进行筛选,筛选标准包括以下几个方面:(a)文件维度,(b) 图像形状,(c)滤色器,(d)灰度,(e)颜色直方图,(f)模糊检测。

其中前两个过滤器直接使用阈值进行参数化,即如果图像的存储大小小于 β \beta β 或图像形状太小,就直接将其删除。滤色器(c)利用感知哈希函数来识别具有相近哈希值的照片,并删除环境相同但滤色器不同的图像。灰度过滤器(d)和颜色直方图(e)的负责将灰度值和彩色直方图异常的图像进行删除。之所以采用这种方法是因为火星的图像通常具有一致的颜色通道值(如下图b),而噪声图像将具有截然不同的颜色直方图(例如航天器的故障图像,如下图a)。模糊检测过滤器(f)使用图像的拉普拉斯算子的方差进行检测,它在数值上决定了图像的清晰度。通过设置锐度阈值 τ \tau τ 可以直接过滤掉锐度值小于 τ \tau τ 的所有图像。
在这里插入图片描述

2.3 数据校准

在数据获取阶段,对于每张图像都会提供CAHVOR格式的相机参数,包括内部参数和外部参数。这些参数在训练NeRF网络时需要通过相机投影矩阵的形式进行表示:
在这里插入图片描述
其中 R R R 是3×3旋转矩阵, I I I 是3×1单位矩阵, t t t 是3×2平移向量, K K K 是摄像机校准矩阵,定义如下:
在这里插入图片描述
这里, K K K 包含固有的相机参数,其中 f x f_{x} fx f y f_{y} fy 是相机的焦距。 c x c_{x} cx c y c_{y} cy 是主点距图像左上角的偏移。尽管目前已有将CAHVOR参数转换为针孔相机参数的技术,但其需要一些其他特殊的参数,这对于PDS系统来说仍然有一定的难度,因此这里作者使用运动结构(SfM)算法来对图像进行校准,校准过程的结果如下图所示。
在这里插入图片描述

2.4 优化

对于MaRF网络的超参数,作者使用随机搜索的方式来确定。网络整体的优化目标通过定量测定一组图像 { I j } j = 1 N \left\{I_{j}\right\}_{j=1}^{N} {Ij}j=1N 所描述的基础场景与一组渲染图像 { I ^ j } j = 1 N \left\{\hat{I}_{j}\right\}_{j=1}^{N} {I^j}j=1N 所组成的视图合成效果 S ^ \hat{\mathcal{S}} S^ 之间的峰值信噪比来确定。具体来说,对于单个图像,其GT效果与合成效果之间的PSNR计算方式如下:
在这里插入图片描述
其中, MSE ( I , I ^ ) = ( I − I ^ ) 2 W ⋅ H ⋅ C \text{MSE}(I, \hat{I})=\frac{(I-\hat{I})^{2}}{W \cdot H \cdot C} MSE(I,I^)=WHC(II^)2 。然后,为了获得 S S S S ^ \hat{\mathcal{S}} S^ 之间的峰值信噪比,作者计算组成场景的图像的峰值信噪比的平均值。

2.5 视图合成

作者在本文中主要使用了三种不同来源的火星表面图像数据集进行实验评估,其中包括:

  1. 好奇号火星探测器的科学相机
  2. Ingenuity火星直升机的彩色摄像头
  3. 毅力号火星车的Mastcam-Z

作者对这三种数据源进行了实验对比,主要对比了MaRF在这三种数据集上训练10秒到15分钟后的RSNR值,对比结果如下表所示。
在这里插入图片描述
下图同步展示了MaRF对这三种数据源的视图合成效果,从上表中我们可以观察到,对于毅力号火星车Mastcam-Z数据集,MaRF的RSNR值会随着训练时间的延长而降低,作者解释说导致这一现象的原因是因为其中涉及到的相机模型发生了轻微错位导致视图合成时出现了一些噪声黑点,如下图(d)中所示,但是这不会影响整体的重建质量。
在这里插入图片描述

三、总结

本文算得上是一项3D视觉技术的跨界之作,作者针对火星勘探任务提出了一个端到端的NeRF神经渲染框架MaRF,MaRF能够利用神经辐射场直接将行星数据系统(PDS)上的航天器图像渲染成为火星表面的合成视图。整体的渲染过程包括对数据的获取、过滤、矫正、优化和视图合成,工作流较为成熟。此外,作者已经在三个不同的真实航天器数据集上对MaRF技术进行了评估,均达到了非常好的效果。作者认为,MaRF是一项真正实现了混合现实与人工智能交叉融合的新兴技术,如果能够将MaRF及其一系列3D视觉工具应用在未来的太空勘探任务中,科学家们会在太空协作探索、行星地质勘察以及更好的感知人类尚未接触过的遥远星系等方面获得更大的科研成果。

参考

[1] Abercrombie, S.P., Menzies, A., Winter, A., Clausen, M., Duran, B., Jorritsma, M., Goddard, C., Lidawer, A.: Onsight: Multi-platform visualization of the surface of mars. In: AGU Fall Meeting Abstracts. vol. 2017, pp. ED11C–0134 (2017)

[2] Beaton, K.H., Chappell, S.P., Menzies, A., Luo, V., Kim-Castet, S.Y., Newman, D., Hoffman, J., Norheim, J., Anandapadmanaban, E., Abercrombie, S.P., et al.: Mission enhancing capabilities for science-driven exploration extravehicular activ- ity derived from the nasa basalt research program. Planetary and Space Science 193, 105003 (2020)

Illustration by Pixel True from IconScout

-The End-

关于我“门”

将门是一家以专注于发掘、加速及投资技术驱动型创业公司的新型创投机构,旗下涵盖将门创新服务、将门-TechBeat技术社区以及将门创投基金。
将门成立于2015年底,创始团队由微软创投在中国的创始团队原班人马构建而成,曾为微软优选和深度孵化了126家创新的技术型创业公司。
如果您是技术领域的初创企业,不仅想获得投资,还希望获得一系列持续性、有价值的投后服务,欢迎发送或者推荐项目给我“门”:
bp@thejiangmen.com

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

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

相关文章

C语言-自定义类型-结构体应用-通讯录(11.2)

目录 1.通讯录的设计思路 1.1主函数与通讯录框架 1.2菜单的实现 1.3通讯录的定义与初始化 2.通讯录具体功能的实现 2.1添加联系人 2.2删除联系人 2.3查找联系人 2.4修改联系人信息 2.5整理通讯录(按年龄排序) 2.6查看整个通讯录 3.通讯录源码…

Ubuntu 网络管理

一:NetPlan配置 1、安装netplan 如果/etc/netplan目录不存在请用以下命令安装: apt -y install netplan.io 2、配置文件 创建并编辑/etc/netplan/01-netplan.yaml文件: eth0:动态分配;eth1:静态分配 …

聊一聊nginx中KeepAlive的设置

文章目录问题分析为什么要有KeepAlive?TCP KeepAlive和HTTP的Keep-Alive是一样的吗?Nginx的TCP KeepAlive如何设置Apache中KeepAlive和KeepAliveTimeOut参考资料问题 之前工作中遇到一个KeepAlive的问题,现在把它记录下来,场景是…

【BP靶场portswigger-客户端11】跨站点脚本XSS-20个实验(上)

前言: 介绍: 博主:网络安全领域狂热爱好者(承诺在CSDN永久无偿分享文章)。 殊荣:CSDN网络安全领域优质创作者,2022年双十一业务安全保卫战-某厂第一名,某厂特邀数字业务安全研究员&…

ssm权限管理系统1

先说一个声明,这个文章可能不完整,也就是说,我只是列举出了项目里面部分疑问难点,然后你们想做,可以去b站查看这个项目的视频。我这里会上传每一部分源代码 svn: 安装好svn服务器之后,我们需要去服务器建…

Python之勒让德多项式

文章目录勒让德多项式简介求导和积分求根和反演拟合勒让德多项式简介 Legendre多项式是一种非常重要的正交多项式,在物理学中有着广泛的应用,例如点电荷在空间中的激发电势就具备勒让德多项式的形式。其表达形式为 Pn(x)12nn!dndxn{(x2−1)n}P_n(x)\fra…

D. Rorororobot(线段树寻找区间最大值)

Problem - 1709D - Codeforces 有一个网格,由n行和m列组成。行的编号是从1到n,从下到上。列从左至右编号为1至m。第i列的底部ai单元被封锁(第1,2,...,ai行的单元),其余n-ai单元没有被封锁。 一个机器人正在穿越这个网…

制冷设备远程监控解决方案

大中型工业制冷设备方面在国内发展还是处在一个发展期,前景广阔,在船舶行业,大型化,个性化,大冷量化是趋势,在石油石化领域,工艺分离、结晶浓缩、提纯催化需求低温,而在建筑领域&…

Vue+element 实现影响榜功能

目录 一、英雄榜实现 1、引入element Lib 和VUE 2、设置滚动条动态显示 1)设置对应的VUE参数名:scrollHiddenVar 2)VUE data定义 3)mounted 设置鼠标监听事件 4)监听方法 3、设置element Table 4、table 数组…

CentOS 7 升级 GCC/G++ 版本

CentOS 7官方源的 GCC 最新版本是 4.8.5,该版本发布于2015年,年代久远且不支持高版本的 C 编译了,因此有必要安装高版本的 GCC。   红帽(RedHat)中拥有多个已经编译好了的高版本 GCC,但未更新到 base 和 …

再说多线程(四)——Semaphore类

Semaphore提供了更精细化的多线程控制,如果你看过上一节的Mutex介绍,那么你应该很容易理解Semaphore类。我们直接先以例子开头,然后在介绍这个类。1.Semaphore实例看下面的代码:using System; using System.Threading;namespace S…

【爪洼岛冒险记】第3站:任务1:学会int和String之间的转换;任务2:将Java运算符全部收入囊中~ 任务3:拿下Java中的类型提升

🌱博主简介:是瑶瑶子啦,一名大一计科生,目前在努力学习C进阶,JavaSE。热爱写博客~正在努力成为一个厉害的开发程序媛! 📜所属专栏:爪洼岛冒险记 ✈往期博文回顾:【爪洼岛冒险记】第2站&#xff…

Allegro172版本如何快速打开和关闭层面操作指导

Allegro172版本如何快速打开和关闭层面操作指导 在做PCB设计的时候,打开和关闭某个层面是非常频繁的操作,尤其是丝印等等层面。 Allgeo升级到了172版本的时候,可以将常用的层面添加到Visibility菜单里,就不需要频繁打开颜色管理器打卡和关闭层面了,如下图 具体操作如下 打…

常见锁策略,CAS,synchronized原理

1.常见锁策略锁策略不仅仅局限于java,任何与"锁"相关的话题(操作系统,数据库...),都会涉及到锁策略,这些策略是给锁的实现者用来参考的1.1乐观锁vs悲观锁这个不是两把具体的锁.而是两类锁,是在锁冲突的概率上进行区分的乐观锁指的是预测锁竞争不是很激烈(做的工作相对…

Ambari2.7.5安装Flink1.14

文章目录下载Flink配置安装源下载ambari-flink-service服务修改配置文件创建用户和组重启Ambari登录Ambari安装Flink提交Flink任务Flink 直接单独提交到 On Yarn指定Flink在Yarn跑的容器运行Flink异常异常1异常2异常3下载Flink配置安装源 wget https://archive.apache.org/dis…

Goby+AWVS 联动

系列文章 AWVS安装与激活 AWVS扫描Web应用程序 AWVS扫描报告分析 GobyAWVS 联动 1.Goby简介 Goby是针对目标企业梳理最全面的工具,同构goby可以清晰的扫描出ip地址开放的端口,以及端口对应的服务,于此同事会根据开放的端口及应用进行实战…

分享116个ASP源码,总有一款适合您

ASP源码 分享116个ASP源码,总有一款适合您 116个ASP源码下载链接:https://pan.baidu.com/s/1LEs24-feWjvhac6vzyVecg?pwdnosx 提取码:nosx 下面是文件的名字,我放了一些图片,文章里不是所有的图主要是放不下...&am…

2.线性表

##线性结构 基本特点:结构中各元素之间满足线性关系。 线性关系:数据元素之间存在一对一的关系 1.存在唯一的开始元素 2.存在唯一的终止元素 3.除了开始元素和终止元素,其他元素均有且仅有一个直接前驱元素和一个直接后驱元素。 所有元素可排…

Sass进阶指南 -- 写出更优雅的样式表

我以为已经会了,之前在公司写项目基本都是用sass写样式,十分顺手。直到有段时间,我准备参考Element Plus来设计自己组件库的工程结构,看到Element Plus那些优雅的sass用法时,我开始为我的浅薄和无知感到羞愧。这便开始…

Python学习笔记——集合

集合(set)是一个无序的不重复元素序列。可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。创建格式:parame {value01,value02,..…