点击上方“小白学视觉”,选择加"星标"或“置顶

重磅干货,第一时间送达

1

摘要

将表示学习方法与同时定位和建图(SLAM)系统相结合是一个开放的问题,因为它们的高度模块化和复杂性.在功能上,SLAM是一种将原始传感器输入转换成机器人和环境状态分布的操作.如果这种转换(SLAM)可以表达为一个可微函数,我们可以利用基于任务的错误信号来学习优化任务性能的表示.然而,典型的稠密SLAM系统的几个组件是不可区分的.在这项工作中,我们提出了∇SLAM(gradSLAM),一种方法提出SLAM系统作为可微分的计算图,它统一了基于梯度的学习和SLAM.我们提出了可区分的信赖域优化器、表面测量和融合方案以及光线投射,而不牺牲精度.这种稠密的SLAM与计算图形的融合使我们能够从3D地图一路回溯到2D像素,为基于梯度的SLAM学习开辟了新的可能性.

2

引言

同步定位和建图(SLAM)几十年来一直是机器人感知和状态估计的核心问题.SLAM文献的很大一部分直接或间接地集中在地图表示的问题上.最近,基于梯度的学习方法已经改变了几个领域的前景(例如图像识别,语言建模,语音识别).然而,这种技术在SLAM中的成功有限,从形式上来说,我们需要一个将图像中的像素(或者一般来说,传感器测量值)与环境的3D地图M相关联的表达式.我们建议通过开发一个可微映射函数来解决这个问题.那么映射∇sM的梯度可以直观地告诉我们,用无穷小的δs扰动传感器测量值s会导致映射m被

δ改变.

实现完全可微的SLAM系统的核心目标是计算图,这是大多数基于梯度的学习技术的基础.我们观察到,如果一个完整的SLAM系统可以分解成所有可微的基本运算,我们可以组合这些基本运算来保持可微性.然而现代稠密的SLAM系统相当复杂,这使得开发这样系统具有挑战性.

我们提出了∇SLAM (gradSLAM),SLAM的一个可微的计算图视图.我们展示了SLAM中所有不可微函数是如何实现为光滑映射的.∇SLAM框架是非常通用的,并且可以扩展到大多数稠密SLAM系统的可微性.

为了促进对可区分SLAM系统及其在空间基础学习中的应用的进一步研究,∇SLAM提供了一个开源PyTorch框架.

官方Demo如下:

项目页面和代码如下:

https://gradslam.github.io

3

实验和结果

1   可微优化

在前文中,我们引入了两个广义逻辑函数λ和来计算阻尼函数以及随后的迭代.我们进行了多个实验来验证这种近似对非线性最小二乘解算器的性能(收敛速度、解的质量)的影响.

我们首先设计了几个问题(来自[5]的启发),来衡量∇LM相对于其不可微的对手的表现.我们考虑三个非线性函数,即指数、sine和sinc,各有三个参数a、t和w.

对于这些函数中的每一个,我们对参数p = {a,t,w}进行统一采样,以创建一组基本事实曲线,并对区间[6,6]中的初始猜测p0= {a0,t0,w0}进行统一采样.我们为三个函数中的每一个函数抽取了100个问题实例.我们运行各种优化器(如梯度下降(GD)、高斯-牛顿(GN)、LM和∇LM)进行最多10、50和100次迭代.我们计算参数空间(独立于每个参数a、t、w)和函数空间中的均方误差.请注意,这两个误差不一定线性相关,因为参数和函数变量之间的相互作用是高度非线性的.结果见表4.3,可以看出,∇LM的表现与LM几乎相同.

2   案例研究的比较分析

我们将Kinect-Fusion、PointFusion和ICP-SLAM实现为可微分计算图.在这里,我们分析了每种方法与其不可微的对应方法的比较.表2显示了ICP-SLAM和点融合的不可微和可微(∇)版本的轨迹跟踪性能.当利用可微分建图模块和∇LM进行优化时,我们没有观察到性能的实际变化.这是在起居室序列的分割子集上计算的.

我们还用kincontinuous的重建质量来评价∇KinectFusion的重建质量.在ICLNUIM 基准的living_room_traj0序列的一个子段上,Kintinuous的表面重建质量为18.625,而可微KinectFusion的表面重建质量为21.301(更好).然而,这个量是误导性的,因为Kintinuous在提取的网格中只保留了高置信度点的子集,而我们的可微分KinectFusion输出(见图8)包含一些噪声伪像,这是由于我们的平滑截断函数.

3   定性结果

∇SLAM在多个其他RGBD数据集上工作.具体而言,我们展示了在TUM RGB-D数据集等以及在从英特尔RealSense D435相机捕获的内部序列上运行可区分SLAM系统的定性结果.

图9- 11显示了通过对来自TUM RGB等各种序列进行∇SLAM分析获得的定性结果.这些可区分的SLAM系统都完全在图形处理器上执行,并且能够计算关于任何中间变量的梯度(例如相机姿态、像素强度/深度、优化参数、相机固有特性等).

4   梯度分析

∇SLAM的计算图形方法允许我们恢复关于3D表面重建的2D(或2.5D)测量的有意义的梯度.在图12中,最上面一行示出了可微分变换的RGB-D图像—使用∇SLAM(有噪声的)TSDF表面测量,然后与更精确的全局TSDF图进行比较.对齐体积的元素比较给我们一个重建误差,它的梯度使用由∇SLAM维护的计算图(并在深度图像空间中可视化)反向传播到输入深度图.在第二行中,我们有意引入一个mask来遮挡RGB-D图像中的一个小区域(40 × 40),从而引入一个重建伪影.计算体积误差在全局和局部遮挡TSDF体积之间,检查相对于输入的梯度指示遮挡表面对体积误差的每像素贡献.因此,∇SLAM提供了计算梯度的丰富解释:它们表示每个像素对最终三维重建的贡献.

5   应用

在图13中,我们类似地在一个深度中引入这种限流器(顶行)和像素噪声(底行)使用∇PointFusion.重建场景. 然后,我们计算噪声表面图和真实表面图之间的倒角距离,并对每个像素的误差进行反向传播.最小化的损失导致噪声和遮挡区域的目标恢复.我们另外在图14中示出了一个RGB-D图像完成任务(来自均匀噪声).

4

结论

我们引入了∇SLAM,一个可区分的计算图框架,它通过提供关于输入图像和深度图的明确梯度,为大量基于定位和建图的任务实现了基于梯度的学习.我们展示了一系列不同的案例研究,并展示了梯度在跟踪、建图和融合阶段的表现.

下载1:OpenCV-Contrib扩展模块中文版教程

在「小白学视觉」公众号后台回复:扩展模块中文教程即可下载全网第一份OpenCV扩展模块教程中文版,涵盖扩展模块安装、SFM算法、立体视觉、目标跟踪、生物视觉、超分辨率处理等二十多章内容。

下载2:Python视觉实战项目31讲

在「小白学视觉」公众号后台回复:Python视觉实战项目31讲即可下载包括图像分割、口罩检测、车道线检测、车辆计数、添加眼线、车牌识别、字符识别、情绪检测、文本内容提取、面部识别等31个视觉实战项目,助力快速学校计算机视觉。

下载3:OpenCV实战项目20讲

在「小白学视觉」公众号后台回复:OpenCV实战项目20讲即可下载含有20个基于OpenCV实现20个实战项目,实现OpenCV学习进阶。

下载4:leetcode算法开源书

在「小白学视觉」公众号后台回复:leetcode即可下载。每题都 runtime beats 100% 的开源好书,你值得拥有!


交流群

欢迎加入公众号读者群一起和同行交流,目前有SLAM、三维视觉、传感器、自动驾驶、计算摄影、检测、分割、识别、医学影像、GAN、算法竞赛等微信群(以后会逐渐细分),请扫描下面微信号加群,备注:”昵称+学校/公司+研究方向“,例如:”张三 + 上海交大 + 视觉SLAM“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进入相关微信群。请勿在群内发送广告,否则会请出群,谢谢理解~

∇SLAM:自动可微分SLAM相关推荐

  1. 对SLAM和自动驾驶定位的思考,最新自动驾驶视觉SLAM方法综述!

    摘要 自动驾驶车辆在不同的驾驶环境中需要精确的定位和建图解决方案.在这种背景下,SLAM技术是一个很好的解决方案.LIDAR和相机传感器通常用于定位和感知.然而,经过十年或二十年的发展,激光雷达SLA ...

  2. 三维感知,这些干货足够了!(自动驾驶/三维重建/SLAM/点云/标定/深度估计/3D检测)...

    人工智能渗入到越来越多领域,以计算机视觉为主的相关应用更是呈现爆发性增长,国内外资本对AI视觉兴趣只增不减,自动驾驶.工业视觉.AR/VR.测量测绘.移动机器人等领域涌现了大量独角兽公司,相关产品受到 ...

  3. 控制src_【聚焦】仙知机器人基于SRC的激光SLAM自动叉车,满足各类场景需求

    来源: 仙知机器人Seer 传统的仓库与工厂中的货物搬运总是耗费大量人力,不仅效率低下.容易出错,还会存在一定的安全风险.随着智能仓储与智能物流的兴起,各行各业都在加速采用智能化的物流装备替代人工搬运 ...

  4. SLAM自动驾驶行业交流(微信)群

    <SLAM自动驾驶行业交流(微信)群> 一.SLAM自动驾驶行业交流群 简介 自动驾驶技术是实现更高程度的智能生活的技术基础,目前已经广泛应用于无人车/船/机. SLAM自动驾驶广泛应用于 ...

  5. 实车采集的数据重建场景_超详细的计算机视觉数据集汇总(自动驾驶、SLAM、三维重建、计算机视觉)...

    原标题:超详细的计算机视觉数据集汇总(自动驾驶.SLAM.三维重建.计算机视觉) 公众号:3D视觉工坊 主要关注:3D视觉算法.SLAM.vSLAM.计算机视觉.深度学习.自动驾驶.图像处理以及技术干 ...

  6. 【SLAM】gradslam(∇SLAM)开源:论文、代码全都有

    内容提要:来自蒙特利尔.卡内基梅隆大学的团队,在 ICRA 2020 上发表的论文中所提出的 ∇SLAM,解决了当下 SLAM 系统普遍所面临的一个开放性问题. 关键词:SLAM  室内 3D 地图重 ...

  7. SLAM综述(1)-Lidar SLAM

    分 享 SLAM包含了两个主要的任务:定位与构图,在移动机器人或者自动驾驶中,这是一个十分重要的问题:机器人要精确的移动,就必须要有一个环境的地图,那么要构建环境的地图就需要知道机器人的位置. 本系列 ...

  8. SLAM综述之Lidar SLAM

    SLAM包含了两个主要的任务:定位与构图,在移动机器人或者自动驾驶中,这是一个十分重要的问题:机器人要精确的移动,就必须要有一个环境的地图,那么要构建环境的地图就需要知道机器人的位置. 本系列文章主要 ...

  9. [SLAM] a bite of SLAM

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 本文由知乎作者黄二二授权转载,不得擅自二次转载. 原文链接:https://zhuanlan.zhih ...

最新文章

  1. 封装php连接数据库返回方法
  2. django rest-framework 1.序列化 一
  3. 第八天2017/04/17(3、C++的几个语法)
  4. [python]练习之判断3个数值中最大值
  5. win7更新_Win7最新更新!由微软亲自集成的安装包来袭!
  6. 独家中文汉化AE脚本 Animation Studio v2.3 Win/Mac一键安装版 预设持续更新 支持CC2020
  7. 鹤林全集·闲情志友 | 第一篇——阿鑫
  8. 中国99%的白领以及他们的家庭即将面临破产
  9. 在局域网被网络管理员限制了远程连接的默认端口3389,导致无法远程桌面连接
  10. java.util.concurrent.TimeoutException: Waited 3000 milliseconds (plus 2 milliseconds, 351400 nanosec
  11. 【软件工程】软工视频总结
  12. ubuntu20安装gdb插件gef的爬坑记录
  13. apple关闭双重验证_Apple安全浏览说明-Apple为什么将您的数据发送给Google和腾讯,以及如何将其关闭
  14. 原生javascript实现星级评价功能
  15. 计算机网络学习笔记(3.数据链路层 4.网络层)
  16. CSS | 水平垂直居中都有哪几种方式
  17. BUUCTF Pwn warmup
  18. spark hint中Broadcast Hints、COALESCE and REPARTITION Hints
  19. 百度智能手环方案开源(含源码,原理图,APP,通信协议等)...
  20. 模拟UNIX文件系统的设计及实现

热门文章

  1. 倒计时1天!「2019 Python开发者日」报名即将关闭(附参会提醒)
  2. 120种小狗图像傻傻分不清?用fastai训练一个分类器
  3. 苹果裁员逾200人,拿无人驾驶“开刀”
  4. 10行代码爬取全国所有A股/港股/新三板上市公司信息
  5. 百万人才工程创新大讲堂开课啦!
  6. 活动 | 人工智能产学研生态建设研讨会报名开启
  7. 需要搭建一个高性能的文件系统?我推荐你试试它.....
  8. Java之戳中痛点之 synchronized 深度解析
  9. 今天我们来聊一聊 Spring 中的线程安全性
  10. Spring Cloud第一篇:服务注册与发现Eureka