点击上方“3D视觉工坊”,选择“星标”

干货第一时间送达

作者丨泡泡机器人

来源丨 泡泡机器人SLAM

点击进入—>3D视觉工坊学习交流群

标题:Real-Time Dense Monocular SLAM with Neural Radiance Fields

作者:Rosinol, Antoni and Leonard, John J and Carlone, Luca

来源:arxiv

编译:张海晗

审核:zhh

代码:https://github.com/ToniRV/NeRF-SLAM

摘要

我们提出了一个新的几何和光度3D映射管道,用于从单眼图像中准确和实时地重建场景。为了实现这一目标,我们利用了最近在密集单眼SLAM和实时分层容积神经辐射场方面的进展。我们的见解是,密集的单眼SLAM通过提供准确的姿势估计和具有相关不确定性的深度图,为实时适应场景的神经辐射场提供了正确的信息。通过我们提出的基于不确定性的深度损失,我们不仅实现了良好的光度测量精度,还实现了巨大的几何精度。事实上,我们提出的管道比竞争对手的方法实现了更好的几何和光度测量精度(PSNR提高了179%,L1深度提高了86%),同时实时工作并只使用单眼图像。

主要贡献

我们提出了第一个结合密集单眼SLAM和分层体积神经辐射场优点的场景重建管道。

我们的方法从图像流中建立精确的辐射场,不需要姿势或深度作为输入,并且可以实时运行。

我们在Replica数据集上实现了单眼方法的最先进性能。

主要方法

我们管道的输入包括连续的单眼图像(这里表示为Img 1和Img 2)。从右上角开始,我们的架构使用Instant-NGP拟合一个NeRF,我们使用RGB图像I和深度D对其进行监督,其中深度由其边缘协方差ΣD加权。受Rosinol等人[23]的启发,我们从密集的单眼SLAM计算这些协方差。在我们的案例中,我们使用Droid-SLAM。我们在第3.1节提供了关于信息流的更多细节。蓝色显示的是Droid-SLAM的贡献和信息流,同样,粉红色是Rosinol的贡献,而红色是我们的贡献。

1. 追踪

密集SLAM与协方差 我们使用Droid-SLAM作为我们的跟踪模块,它为每个关键帧提供密集的深度图和姿势。从一连串的图像开始,Droid-SLAM首先计算出i和j两帧之间的密集光流pij,使用的架构与Raft相似。Raft的核心是一个卷积GRU(图2中的ConvGRU),给定一对帧之间的相关性和对当前光流pij的猜测,计算一个新的流pij,以及每个光流测量的权重Σpij。

有了这些流量和权重作为测量值,DroidSLAM解决了一个密集束调整(BA)问题,其中三维几何被参数化为每个关键帧的一组反深度图。这种结构的参数化导致了解决密集BA问题的极其有效的方式,通过将方程组线性化为我们熟悉的相机/深度箭头状的块状稀疏Hessian H∈R (c+p)×(c+p) ,其中c和p是相机和点的维度,可以被表述为一个线性最小二乘法问题。

从图中可以看出,为了解决线性最小二乘问题,我们用Hessian的Schur补数来计算缩小的相机矩阵HT,它不依赖于深度,维度小得多,为R c×c。通过对HT=LLT的Cholesky因子化,其中L是下三角Cholesky因子,然后通过前置和后置求解姿势T,从而解决相机姿势的小问题。此外,给定姿势T和深度D,Droid-SLAM建议计算诱导光流,并再次将其作为初始猜测送入ConvGRU网络,如图2左侧所示,其中Π和Π-1,是投影和背投函数。图2中的蓝色箭头显示了跟踪循环,并对应于Droid-SLAM。然后,受Rosinol等人的启发,我们进一步计算密集深度图和Droid-SLAM的姿势的边际协方差(图2的紫色箭头)。为此,我们需要利用Hessian的结构,我们对其进行块状分割如下:

其中H是Hessian矩阵,b是残差,C是块状相机矩阵,P是对应于每个像素每个关键帧的反深度的对角矩阵。我们用∆ξ表示SE(3)中相机姿态的谎言代数的delta更新,而∆d是每个像素反深度的delta更新。E是相机/深度对角线Hessian的块矩阵,v和w对应于姿势和深度的残差。从这个Hessian的块分割中,我们可以有效地计算密集深度Σd和姿势ΣT的边际协方差:

最后,鉴于跟踪模块计算出的所有信息--姿势、深度、它们各自的边际协方差以及输入的RGB图像--我们可以优化我们的辐射场参数,并同时完善相机的姿势。

2. 建图

鉴于每个关键帧的密集深度图,有可能对我们的神经体积进行深度监督。不幸的是,由于其密度,深度图是非常嘈杂的,因为即使是无纹理的区域也被赋予了一个深度值。图3显示,密集的单眼SLAM所产生的点云是特别嘈杂的,并且包含大的离群值(图3的顶部图像)。根据这些深度图监督我们的辐射度场会导致有偏见的重建。

Rosinol等人的研究表明,深度估计的不确定性是一个很好的信号,可以为经典的TSDF体积融合的深度值加权。受这些结果的启发,我们使用深度不确定性估计来加权深度损失,我们用它来监督我们的神经体积。图1显示了输入的RGB图像,其相应的深度图的不确定性,所产生的点云(在用σd≤1.0对其不确定性进行阈值化以实现可视化),以及我们使用不确定性加权的深度损失时的结果。鉴于不确定性感知的损失,我们将我们的映射损失表述为:

我们对姿势T和神经参数Θ进行最小化,给定超参数λD来平衡深度和颜色监督(我们将λD设置为1.0)。特别是,我们的深度损失是由以下公式给出的。

其中,D*是渲染的深度,D、ΣD是由跟踪模块估计的密集深度和不确定性。我们将深度D*渲染为预期的射线终止距离。每个像素的深度都是通过沿着像素的射线取样的三维位置来计算的,在样本i处评估密度σi,并将得到的密度进行alpha合成,与标准的体积渲染类似:

颜色的渲染损失如下:

3. 架构

我们的管道由一个跟踪线程和一个映射线程组成,两者都是实时和并行运行的。追踪线程不断地将关键帧活动窗口的BA重投影误差降到最低。映射线程总是优化从跟踪线程收到的所有关键帧,并且没有一个有效帧的滑动窗口。这些线程之间的唯一通信发生在追踪管道生成新关键帧时。在每一个新的关键帧上,跟踪线程将当前关键帧的姿势与它们各自的图像和估计的深度图,以及深度的边际协方差,发送到映射线程。只有跟踪线程的滑动优化窗口中当前可用的信息被发送到映射线程。跟踪线程的有效滑动窗口最多包括8个关键帧。只要前一个关键帧和当前帧之间的平均光流高于一个阈值(在我们的例子中是2.5像素),跟踪线程就会生成一个新的关键帧。最后,映射线程还负责渲染,以实现重建的交互式可视化。

主要结果

本文仅做学术分享,如有侵权,请联系删文。

点击进入—>3D视觉工坊学习交流群

干货下载与学习

后台回复:巴塞罗自治大学课件,即可下载国外大学沉淀数年3D Vison精品课件

后台回复:计算机视觉书籍,即可下载3D视觉领域经典书籍pdf

后台回复:3D视觉课程,即可学习3D视觉领域精品课程

3D视觉工坊精品课程官网:3dcver.com

1.面向自动驾驶领域的3D点云目标检测全栈学习路线!(单模态+多模态/数据+代码)
2.彻底搞透视觉三维重建:原理剖析、代码讲解、及优化改进
3.国内首个面向工业级实战的点云处理课程
4.激光-视觉-IMU-GPS融合SLAM算法梳理和代码讲解
5.彻底搞懂视觉-惯性SLAM:基于VINS-Fusion正式开课啦
6.彻底搞懂基于LOAM框架的3D激光SLAM: 源码剖析到算法优化
7.彻底剖析室内、室外激光SLAM关键算法原理、代码和实战(cartographer+LOAM +LIO-SAM)

8.从零搭建一套结构光3D重建系统[理论+源码+实践]

9.单目深度估计方法:算法梳理与代码实现

10.自动驾驶中的深度学习模型部署实战

11.相机模型与标定(单目+双目+鱼眼)

12.重磅!四旋翼飞行器:算法与实战

13.ROS2从入门到精通:理论与实战

14.国内首个3D缺陷检测教程:理论、源码与实战

15.基于Open3D的点云处理入门与实战教程

16.透彻理解视觉ORB-SLAM3:理论基础+代码解析+算法改进

重磅!粉丝学习交流群已成立

交流群主要有3D视觉、CV&深度学习、SLAM、三维重建、点云后处理、自动驾驶、多传感器融合、CV入门、三维测量、VR/AR、3D人脸识别、医疗影像、缺陷检测、行人重识别、目标跟踪、视觉产品落地、视觉竞赛、车牌识别、硬件选型、ORB-SLAM系列源码交流、深度估计、TOF、求职交流等方向。

扫描以下二维码,添加小助理微信(dddvisiona),一定要备注:研究方向+学校/公司+昵称,例如:”3D视觉 + 上海交大 + 静静“。请按照格式备注,可快速被通过且邀请进群。原创投稿也请联系。

▲长按加微信群或投稿,微信号:dddvisiona

3D视觉从入门到精通知识星球:针对3D视觉领域的视频课(三维重建系列、三维点云系列、结构光系列、手眼标定、相机标定、激光/视觉SLAM、自动驾驶等)源码分享、知识点汇总、入门进阶学习路线、最新paper分享、疑问解答等进行深耕,更有各类大厂的算法工程人员进行技术指导。与此同时,星球将联合知名企业发布3D视觉相关算法开发岗位以及项目对接信息,打造成集技术与就业为一体的铁杆粉丝聚集区,6000+星球成员为创造更好的AI世界共同进步,知识星球入口:

学习3D视觉核心技术,扫描查看,3天内无条件退款

高质量教程资料、答疑解惑、助你高效解决问题

觉得有用,麻烦给个赞和在看~  

NeRF-SLAM:实时密集单眼SLAM 辐射场的实时密集单眼SLAM相关推荐

  1. [论文阅读-NeRF+SLAM]NeRF-SLAM:使用神经辐射场表征的实时稠密单目SLAM系统

    NeRF-SLAM NeRF-SLAM: Real-Time Dense Monocular SLAM with Neural Radiance Fields 第一个结合稠密单目SLAM和层次化体素神 ...

  2. SLAM综述阅读笔记六:基于图像语义的SLAM调研:移动机器人自主导航面向应用的解决方案 2020

    转自[[论文阅读]A survey of image semantics-based visual simultaneous localization and mapping 语义视觉SLAM综述 - ...

  3. 参加第一届“SLAM技术及应用”暑期学校暨研讨会和全国SLAM技术论坛有感

    哈哈,先是一段官话啦! 2018年7月24日至7月27日,第一届"SLAM技术与应用"暑期学校与研讨会在浙江紫金港校区的蒙民伟楼225报告厅成功举行.本次暑期学校由浙江大学CAD& ...

  4. chart控件做实时曲线显示_组态王实时趋势曲线控件介绍,让你对此不再陌生

    一.组态王实时趋势控件的特点 1. 通过TCPIP获得实时数据,数据服务器可以是任何一台运行组态王的机器,而不需进行组态王网络配置. 2. 最多可以显示20条曲线. 3. 可以设置每条曲线的绘制方式, ...

  5. 实时日志/数据库采集处理,实时用户行为属性个人总结

    好久没写博客了,做了一段时间的日志采集和流处理,总结一下自己的工作吧.本人只涉及了一些总结,很多技术细节我也不会多说吧. 很有幸的是,在大数据前我负责了内部 debezium 相关的维护开发,所以也会 ...

  6. [转载]实时 Java,第 4 部分: 实时垃圾收集

    实时 Java,第 4 部分: 实时垃圾收集 2007 年 6 月 04 日 传统垃圾收集(GC)中的不确定性暂停使 Java™ 技术无法提供适合实时(RT)开发的环境.Metronome GC -- ...

  7. 实时网速监测app_实时网速安卓下载_实时网速监测安卓app下载-XP软件园

    详情介绍 实时网速安卓是一款简单实用的手机网速监测工具,自身的体积只有2m大小,对手机运行的网速数字显示最新网速,掌握目前手机网速情况,需要就来下载实时网速安卓吧. 实时网速安卓介绍 实时网速监测安卓 ...

  8. 分享:实时语音通讯,可广域网实时通讯,音质清晰流畅!

    分享:纯免费互联网实时语音通讯,可广域网实时通讯,音质清晰流畅! 运行效果: 开发者:yunxunmi.com 交流QQ群:181978302 应用平台:window.Linux 下载地址: 1.ht ...

  9. 什么叫实时操作系统,什么叫非实时操作系统,两者有什么区别?

    嵌入式实时系统中采用的操作系统我们称为嵌入式实时操作系统,它既是嵌入式操作系统,又是实时操作系统.作为一种嵌入式操作系统,它具有嵌入式软件共有的 可裁剪.低资源占用.低功耗等特点:而作为一种实时操作系 ...

最新文章

  1. 在DataTable中添加行和列数据
  2. 与内存对齐,字符数组求sizeof相关的一些问题
  3. linux游戏欢迎界面,制作Linux登录欢迎界面
  4. 排序千万级数据_从千万级房产成交量排名,窥探中国城市的真实家底
  5. ios vue 添加本地音乐_vue 项目,ios上audio音频 无法自动播放
  6. xp系统服务器dns怎么设置在哪里设置,xp系统DNS怎么设置 DNS设置步骤
  7. msql查询姓名不带r的员工姓名_java基础之MySQL多表查询2
  8. BizTalk Server 2010新功能介绍(四):基于安全连接的FTP适配器
  9. Windows11微软官方网址下载地址(2021年11月更新)
  10. You earned your Program Management Professional (PgMP)® Credential
  11. 微信小程序开发知识点
  12. com.fasterxml.jackson.datatype:jackson-datatype-jsr310
  13. 大数据在金融行业的应用——银行大数据
  14. ubuntu卸载mysql
  15. 计算机网络原理与技术
  16. ERP与MRP、MRPⅡ的主要区别
  17. apache arm 交叉编译_Apache 2移植到Arm开发板的过程整理——如何交叉编译Apache 2
  18. php计算三角形的面积,PHP实现的简单三角形、矩形周长面积计算器分享
  19. 珍藏的Android电子书
  20. 了解串口协议,及完成STM32的USART串口通讯程序,并用keil观察波形

热门文章

  1. 美国独立服务器好吗?
  2. 关于社交圈子的一点思考
  3. 关于fanuc 机床联网的研究
  4. 关于PDF的相关操作-----PyPDF2
  5. IO框架(BV1Tz4y1X7H7)
  6. super(true)到底是什么意思?
  7. Android移植librtmp
  8. python中年月日只保留年月_气轻Python04.只保留日期去掉时间
  9. VC2005生成时提示error c1007错误的解决方案
  10. fastGithub下载