【论文解读】iSDF: Real-Time Neural Signed Distance Fields for Robot Perception

news2024/10/5 0:30:51

《iSDF: Real-Time Neural Signed Distance Fields for Robot Perception》提出了一种用于实时签名距离场(SDF)重建的持续学习系统。

论文:https://arxiv.org/abs/2204.02296icon-default.png?t=N7T8https://arxiv.org/abs/2204.02296

项目:iSDFicon-default.png?t=N7T8https://joeaortiz.github.io/iSDF/代码:GitHub - facebookresearch/iSDF: Real-time Neural Signed Distance Fields for Robot PerceptionReal-time Neural Signed Distance Fields for Robot Perception - facebookresearch/iSDFicon-default.png?t=N7T8https://github.com/facebookresearch/iSDF

 1 摘要

     iSDF,这一系统旨在利用神经网络进行实时SDF重建。该网络在实时训练中使用移动相机获取的深度图像,使其能够适应不同的细节级别并合理填补部分观察到的区域。该方法与其他替代方法进行了比较,展示了其在准确性和实际应用中的优越性。

 

图1展示了iSDF系统的工作流程和效果:

  1. 上排(Zero Level Set Mesh):展示了随着时间推移(5秒、26秒、59秒、89秒),系统生成的零水平集网格。红色轨迹代表相机的运动路径,绿色点代表相机位置。
  2. 中排(SDF Slice):展示了不同时间点(5秒、26秒、59秒、89秒)生成的SDF切片。
  3. 下排(Latest Frame):最新帧的RGB图像(未使用)。

iSDF系统通过处理实时深度图像流,优化一个随机初始化的网络,将输入3D坐标映射到近似的有符号距离值。该网络可以在线查询,以获得碰撞成本和梯度,用于导航和操作领域​​。

2 引言

        引言部分讨论了机器人感知的重要性以及SDF在机器人技术和视觉中的应用。SDF在运动规划中的碰撞避免中至关重要,但实时计算通常过于昂贵。本文旨在通过聚焦实时SDF重建,提供一种在平滑度和碰撞避免成本之间取得平衡的方法。

3 相关工作

        该部分强调了以前基于体素网格的实时非截断SDF重建方法。这些方法受限于分辨率和计算成本。神经场,尤其是使用多层感知器(MLP)的神经场,提供了一种替代方案,可以从头开始优化以准确适应特定场景,无需先前训练。

4 方法

    iSDF是一个用于实时SDF重建的系统,它将移动摄像机捕获的流构成深度图像作为输入,并在在线操作期间学习近似环境真实有符号距离场的函数。有符号距离函数由多层感知器(MLP)建模,该感知器将3D坐标映射到该点的有符号距离值。模型以随机权重初始化,并根据输入的测量值实时优化。

    iSDF采用神经网络将输入的3D坐标回归为签名距离。该网络通过一种持续学习的方法,使用移动相机获取的深度图像进行训练。方法的关键点包括:

  • 网络架构: SDF由一个将3D坐标映射到签名距离值的MLP模型。
  • 训练: 网络通过自我监督方法进行实时训练。损失函数通过批量主动采样查询点中最接近采样点的距离来约束预测的签名距离。
  • 效率: 该方法在内存分配方面非常高效,可以去噪和合并噪声测量,同时填补部分观察区域的空白。

系统示意图。iSDF的多层感知机(MLP)将输入的3D坐标 x=(x,y,z)x = (x,y,z)x=(x,y,z) 回归为有距离符号函数 s = f_{\theta}(x)

图3展示了不同方法计算采样点SDF预测边界的对比:

  • 左图:展示了计算采样点x(橙色)的SDF预测边界的三种方法:光线法、法线修正法和批量距离法。
  • 右图:展示了沿不同光线的采样点的边界,批量距离法提供了最紧密的边界,而光线距离法提供的边界最弱​​。

图2展示了三种不同的方法在计算采样点的SDF预测边界时的可视化对比。这些方法包括光线距离方法、法线修正方法和批量距离方法。具体解析如下:

  • 左图:三种方法计算采样点 xxx 的SDF预测边界。
  • 右图:沿不同光线的采样点的边界展示。

方法解析

  1. 光线距离方法

    • 使用光线投影从相机位置到物体表面,沿光线方向采样点的距离。
    • 这种方法计算速度较快,但精度相对较低,边界较松散。
    • 图中可以看到,光线距离方法的边界最弱,较少捕捉到表面的细节。
  2. 法线修正方法

    • 在光线投影的基础上,引入表面法线信息,通过修正光线方向来提高采样点的准确性。
    • 相对于光线距离方法,法线修正方法提供了更为精确的边界。
    • 从图中可以看出,法线修正方法的边界比光线距离方法紧密,但仍不如批量距离方法。
  3. 批量距离方法

    • 采用一种批量采样方法,计算采样点与一批点的最小距离,从而得到SDF预测边界。
    • 这种方法综合考虑了多个采样点的信息,提供了最紧密和准确的边界。
    • 图中显示了批量距离方法提供了最紧密的边界,能更好地捕捉到表面的细节和形状。

右图展示了沿不同光线的采样点的边界比较。从图中可以清楚地看到:

  • 光线距离方法边界最弱,表面细节捕捉较少。
  • 法线修正方法提高了边界的紧密性,但仍存在一定的误差。
  • 批量距离方法边界最紧密,精度最高,能准确捕捉表面的形状和细节。

通过对比三种方法,展示了批量距离方法在计算SDF预测边界时的优势。相较于光线距离和法线修正方法,批量距离方法提供了更高的精度和更紧密的边界,使其在实时3D重建和感知任务中表现出色。

图4展示了自由空间损失的计算方法:

  • 左图:展示了自由空间损失L<sub>free space</sub>(f(x; θ), b)对于目标SDF的计算过程。
  • 右图:展示了自由空间损失在不同情况下的计算结果​​。

这些图展示了iSDF系统的核心思想和关键方法,包括实时优化、批量自监督、以及在自由空间中的SDF预测损失计算方法。通过这些方法,iSDF能够在实时条件下生成精确且详细的3D重建​​

5 试验结果

        展示了iSDF在生成准确SDF方面的有效性,所有序列的误差均小于6厘米。iSDF也是唯一能够重建零水平集的闭合网格的方法。系统在SDF准确性方面优于先前的方法,并且在计算碰撞成本和梯度以供下游规划器使用时表现出色。

图5展示了不同方法在一个场景中重建的有符号距离场(SDF)的横截面。具体来说,它展示了在不同序列结束时,在不同高度上的SDF切片。以下是对图5的详细解析:

  1. 场景选择: 图5中的切片来自多个不同的场景,包括apt_3_navapt_3_objscene0030_00scene0004_00scene0005_00apt_3_mnp。这些场景代表了不同的环境和复杂性,以展示算法在不同条件下的表现。

  2. 方法对比: 图中对比了三种不同的方法:

    • iSDF:论文中提出的实时SDF重建方法。
    • Voxblox:一种基于体素的SDF重建方法。
    • KinectFusion+:一种增强的KinectFusion方法。
  3. 结果展示

    • SDF切片:每个切片在一个固定的高度上展示了重建的SDF值。不同方法的结果分别用不同的图形展示。每个图形中,颜色代表了重建的SDF值,其中红色框突出显示了存在问题的区域。
    • 孔洞问题:红色框中的区域显示了重建中常见的问题,即由于近处物体的部分遮挡而导致的远处区域的孔洞。这些孔洞在Voxblox和KinectFusion+的结果中尤为明显,而iSDF则能够更完整地重建这些区域。
  4. 方法优势

    • iSDF的优势:iSDF在图5中展示了其在远处和部分遮挡区域能够生成更完整、更逼真的重建。这对于后续的规划非常重要,因为未映射的区域必须被标记为不可通行,并赋予较高的代价。
    • 梯度场问题:由于梯度场是通过有限差分计算的,孔洞在梯度场中会变得更大。iSDF通过更准确的重建减少了这种问题,从而为下游任务提供了更好的支持。

图5通过这些比较和细节展示了iSDF在重建质量和完整性方面的显著优势,特别是在复杂和部分遮挡的场景中。

图6展示了对Voxblox映射区域进行的评估。为了评估这一点,论文对比了几种方法在Voxblox映射区域内的表现,包括iSDF、Voxblox和KinectFusion+。图6的主要内容如下:

  1. 左图:展示了每种方法在不同高度下重建的SDF切片。这些高度分别为地面高度(15cm)、相机高度(1.2m)和高于相机的高度(2.8m)。在Voxblox和KinectFusion+的切片中,由于可见性有限,地面高度和高于相机高度的区域大部分是灰色的。

  2. 中图:展示了apt 2 nav房间角落的SDF切片和零水平集网格。这些网格从绿色箭头所在位置查看。图中可以看到iSDF生成的SDF更完整、更准确。

图7展示了在序列结束时重建的SDF的不同可视化结果:

  1. 左图:展示了apt 2 mnp的不同高度下重建的SDF。相机安装在固定的俯仰角和大约1.2米的高度(中间切片的高度)。其他两个切片分别位于地面高度(15cm)和高于相机的高度(2.8m),在Voxblox和KinectFusion+的切片中,由于可见性有限,这些高度的大部分区域是灰色的。

  2. 中图:展示了apt 2 nav房间角落的SDF切片和零水平集网格。绿色箭头指示了网格的视角。图中可以看到,iSDF生成的SDF在beanbag周围更完整、更准确。

  3. 右图:摄像机靠近盐瓶,好像要操纵它。iSDF是唯一可以在多个细节层次上操作并在房间尺度和小物体尺度上进行重建的方法

这些图表明iSDF在生成更完整和准确的SDF方面优于其他方法,尤其是在具有挑战性的区域。

 

 图8展示了iSDF、Voxblox和KinectFusion+在三个评估指标上的比较:SDF误差、碰撞成本误差和梯度余弦距离。这些指标在序列的固定时间间隔内进行评估,采样点位于当时的可见区域。由于Voxblox没有映射整个可见区域(参见图5),我们使用最近邻插值来评估未映射区域的SDF误差。对于碰撞成本误差,我们将表面成本分配给未映射区域,因为机器人会避开未知区域。

  • SDF误差:iSDF在整个序列中的SDF误差最低,这表明其在重建表面形状方面的准确度最高。
  • 碰撞成本误差:iSDF在这一指标上也表现最好,这意味着其生成的重建结果更有利于机器人导航,避免潜在的碰撞风险。
  • 梯度余弦距离:这一指标用于评估梯度场的准确性,iSDF通常也表现最佳,但在某些序列中,KinectFusion+的表现与之相当。

图8展示了这三种方法在序列进行中的各个时间点上的性能,iSDF在多数情况下都表现出显著的优势 .

6 结论

        强调了iSDF在机器人感知实时SDF重建中的优势。该方法高效、适应性强且准确,较基于体素网格的以前方法有显著改进。

7 主要贡献

  1. 实时SDF重建: iSDF实现了利用神经网络进行实时SDF重建。
  2. 持续学习: 网络以持续学习的方式进行训练,使其能够随着时间的推移适应和改进。
  3. 效率与准确性: 该方法在内存使用和计算成本方面非常高效,同时提供了高精度的SDF重建。
  4. 机器人感知应用: iSDF在导航和操作中的下游应用中表现出色,提供了准确的碰撞成本和梯度。

通过解决先前方法的局限性并利用神经网络的优势,iSDF在机器人实时SDF重建方面代表了一项重要的进步。

8 核心算法详解

  1. 神经SDF建模

    • 该算法使用一个多层感知机(MLP)来参数化SDF。通过输入3D坐标点,MLP输出该点的SDF值。
    • 为了提升模型的表达能力,MLP的输入经过傅里叶特征映射,这能够捕捉更多的空间细节。
  2. 监督信号

    • 采用几何监督信号,包括表面监督、梯度监督和Eikonal监督。
      • 表面监督(Surface Supervision)确保在观测到的表面附近,SDF值正确。
      • 梯度监督(Gradient Supervision)保证SDF的梯度方向指向表面法线方向。
      • Eikonal监督约束SDF的梯度范数为1,从而满足Eikonal方程。
  3. 实时更新机制

    • 算法能够通过增量方式实时更新SDF,这对于机器人在线环境感知至关重要。
    • 使用深度相机捕捉的深度图像进行逐帧更新,通过优化损失函数来调整MLP参数。
  4. 融合策略

    • 提出了一种两阶段的融合策略。第一阶段进行表面融合,生成占据网格;第二阶段通过欧氏距离变换将占据网格转换为SDF。
  5. 训练与优化

    • 使用Adam优化器对网络进行训练,损失函数综合了上述监督信号的加权和。
    • 训练过程中使用批处理距离(batch distance)来计算SDF监督界限,以提高重建精度。

9 具体实现细节

  • 占据网格构建

    • 利用深度图像构建占据网格,然后通过高效的欧氏距离变换(EDT)算法计算SDF。EDT首先计算平方欧氏距离,再取平方根。
  • 实验与评估

    • 通过实验评估算法在ReplicaCAD和ScanNet数据集上的性能。
    • 采用多个评估指标,包括PSNR、SSIM、LPIPS以及自定义的SDF误差度量(如绝对误差、均方误差等)。

10 算法优势

  • 实时性
    • 能够在实时环境中更新SDF,对于机器人在线感知和路径规划尤为重要。
  • 高精度
    • 结合几何监督信号和傅里叶特征映射,提高了SDF的重建精度和细节捕捉能力。
  • 鲁棒性
    • 适应不同的场景和数据集,表现出较强的鲁棒性和泛化能力。

通过上述核心算法的解析,可以看出该论文在神经SDF建模和实时更新机制方面的创新,有效提升了机器人感知系统的实时性和精度。

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

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

相关文章

QT创建地理信息shp文件编辑器shp_editor

空闲之余创建一个简单的矢量shp文件编辑器&#xff0c;加深对shp文件的理解。 一、启动程序 二、打开shp文件 三、显示shp文件的几何图形 四、双击右边表格中的feature&#xff0c;主窗体显示选中feature的各个节点。 五、鼠标在主窗体中选中feature的节点&#xff0c;按鼠标左…

【坚果识别】果实识别+图像识别系统+Python+计算机课设+人工智能课设+卷积算法

一、介绍 坚果识别系统&#xff0c;使用Python语言进行开发&#xff0c;通过TensorFlow搭建卷积神经网络算法模型&#xff0c;对10种坚果果实&#xff08;‘杏仁’, ‘巴西坚果’, ‘腰果’, ‘椰子’, ‘榛子’, ‘夏威夷果’, ‘山核桃’, ‘松子’, ‘开心果’, ‘核桃’&a…

Python爬虫实战案例——王者荣耀皮肤抓取

大家好&#xff0c;我是你们的老朋友——南枫&#xff0c;今天我们一起来学习一下该如何抓取大家经常玩的游戏——王者荣耀里面的所有英雄的皮肤。 老规矩&#xff0c;直接上代码&#xff1a; 导入我们需要使用到的&#xff0c;也是唯一用到的库&#xff1a; 我们要抓取皮肤其…

使用ref定义响应式数据变量

Ref 使用 Ref 可以方便地创建和管理Vue组件中的响应式数据。例如&#xff0c;如果你有一个计数器组件&#xff0c;你可以使用 Ref 来创建一个响应式的计数器变量&#xff0c;然后在组件内部或外部修改这个变量的值&#xff0c;而不需要手动触发视图更新。 先声明一个变量&…

数据结构初阶 堆的问题详解(三)

题目一 4.一棵完全二叉树的节点数位为531个&#xff0c;那么这棵树的高度为&#xff08; &#xff09; A 11 B 10 C 8 D 12 我们有最大的节点如下 假设最大高度为10 那么它的最多节点应该是有1023 假设最大高度为9 那么它的最多节点应该是 511 所以说这一题选B 题目二 …

昇思25天学习打卡营第11天|基于MindSpore通过GPT实现情感分类

学AI还能赢奖品&#xff1f;每天30分钟&#xff0c;25天打通AI任督二脉 (qq.com) 基于MindSpore通过GPT实现情感分类 %%capture captured_output # 实验环境已经预装了mindspore2.2.14&#xff0c;如需更换mindspore版本&#xff0c;可更改下面mindspore的版本号 !pip uninsta…

【深海王国】小学生都能玩的语音模块?ASRPRO打造你的第一个智能语音助手(4)

Hi~ (o^^o)♪, 各位深海王国的同志们&#xff0c;早上下午晚上凌晨好呀~ 辛勤工作的你今天也辛苦啦(/≧ω) 今天大都督继续为大家带来系列——小学生都能玩的语音模块&#xff0c;帮你一周内快速学会语音模块的使用方式&#xff0c;打造一个可用于智能家居、物联网领域的语音助…

01 Docker 概述

目录 1.Docker简介 2.传统虚拟机 vs 容器 3.Docker运行速度快的原因 4.Docker基本组成三要素 5.Docker 平台架构 入门版 架构版 1.Docker简介 Docker是基于Go语言实现的云开源项目。 Docker的主要目标是&#xff1a;Build, Ship and Run Any App, Anywhere&#xff0c…

抖音常用的视频剪辑软件有哪些,变速视频如何制作?

抖音是一款当下流行的短视频软件。很多人都想在上面发表自己的作品&#xff0c;但是也还有人因为不会剪辑&#xff0c;找不到合适的视频制作软件&#xff0c;一直没能行动。今天就为大家解答抖音常用的制作视频软件有哪些&#xff0c;如何调整抖音制作视频的速度。 希望大家看完…

AzureDataFactory 实体间的关联如何处理(Lookup)

使用ADF从外部数据源(例如Sql Server)往D365推数时&#xff0c;实体间的Lookup一定是要做的&#xff0c;本篇以我项目中的设备为例&#xff0c;设备表中有产品的lookup字段 设备表结构如下 msdyn_customerasset 表名ID 设备表guidSerialNumber设备序列号ProductCode设备对应的…

Hadoop3:NameNode和DataNode多目录配置(扩充磁盘的技术支持)

一、NameNode多目录 1、说明 NameNode多目录&#xff0c;需要在刚搭建Hadoop集群的时候&#xff0c;就配置好 因为&#xff0c;配置这个&#xff0c;需要格式化NameNode 所以&#xff0c;如果一开始没配置NameNode多目录&#xff0c;后面&#xff0c;就不要配置了。 2、配置…

Linux环境下的字节对齐现象

在Linux环境下&#xff0c;字节对齐是指数据在内存中的存储方式。字节对齐是为了提高内存访问的效率和性能。 在Linux中&#xff0c;默认情况下&#xff0c;结构体和数组的成员会进行字节对齐。具体的对齐方式可以通过编译器选项来控制。 在使用C语言编写程序时&#xff0c;可…

技术市集 | 如何通过WSL 2在Windows上挂载Linux磁盘?

你是否常常苦恼&#xff0c;为了传输或者共享不同系统的文件需要频繁地在 Windows 和 Linux 系统之间切换&#xff0c;既耽误工作效率&#xff0c;也容易出错。 那么有没有一种办法&#xff0c;能够让你在Windows系统中像访问本地硬盘一样来操作Linux系统中的文件呢&#xff1…

jni原理和实现

一、jni原理 主要就是通过数据类型签名和反射来实现java与c/c方法进行交互的 数据类型签名对应表 javac/cbooleanZbyteBcharCshortSintIlongLfloatFdoubleDvoidVobjectL开头&#xff0c;然后以/分割包的完整类型&#xff0c;后面再加; 比如String的签名就是Ljava/long/Strin…

基于jeecgboot-vue3的Flowable流程-集成仿钉钉流程(一)一些样式的调整使用

因为这个项目license问题无法开源&#xff0c;更多技术支持与服务请加入我的知识星球。 1、比如下面的发起人双击后出现的界面不正常&#xff0c; 看它的样式主要是这个里面的margin-left应该太小了&#xff0c; [data-v-45b533d5] .el-tabs__content { margin-top: 50px;mar…

实用麦克风话筒音频放大器电路设计和电路图

设计目标 输入电压最大值输出电压最大值电源Vcc电源Vee频率响应偏差20Hz频率响应偏差20kHz100dB SPL(2Pa)1.228Vrms5V0V–0.5dB–0.1dB 设计说明 此电路使用跨阻抗放大器配置中的运算放大器将驻极体炭精盒麦克风的输出电流转换为输出电压。此电路的共模电压是固定的&#xf…

第15届蓝桥杯Python青少组选拔赛(STEMA)2023年8月真题-附答案

第15届蓝桥杯Python青少组选拔赛&#xff08;STEMA&#xff09;2023年8月真题 题目总数&#xff1a; 11 总分数&#xff1a; 400 一、单选题 第 1 题 单选题 以下不符合 Python 语言变量命名规则的是&#xff08; &#xff09;。 A. k B. 2_k C. _k D. ok 答案 B …

cesium方案论证实现功能

仓库地址&#xff1a;Harvey-Andrew 演示地址&#xff1a;哔哩哔哩-满分观察网友z 文章目录 1. 场景加载2. 3D 模型2.1. 坐标转换2.2. 放置模型2.3. 调整模型2.4. 提交方案 3. 查看方案3.1. 场景还原3.2. 删除 1. 场景加载 加载Cesium的Melbourne Photogrammetry的倾斜摄影作…

【Threejs进阶教程-着色器篇】1. Shader入门(ShadertoyShader和ThreejsShader入门)

ThreejsShader入门 关于本Shader教程认识ShaderShader和Threejs的关系WebGLShaderThreejsShaderShadertoyShader其他Shader 再次劝退数学不好的人从ShaderToy开始Shader的代码是强类型glsl的类型&#xff0c;变量&#xff0c;内置函数&#xff0c;关键字关于uv基于UV的颜色处理…

Linux——高级IO

目录 IO 五种IO模型 阻塞式IO 非阻塞式IO 信号驱动IO 多路转接 异步IO 阻塞IO VS 非阻塞IO IO 网络的知识我们已经介绍完了&#xff0c;网络通信的本质就是IO&#xff0c;一方要发送数据&#xff0c;还要接收数据&#xff0c;这就是一次IO&#xff0c;所以我们原来说过…