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

重磅干货,第一时间送达

本文转自:新机器视觉Qiang

Qiang

回答中很多人提SLAM比三维重建多了一个L(location),我想也许可以稍微深入一点。

我们看一下定义:

(1)SLAM:同步定位与地图构建;定谁的位?相机的位,相机在机器人身上,就是定机器人的位。建谁的地图?相机经过地方的地图。二者结合,才能确定机器人在某个地图中的具体位置,和这个场景(地图)下的连续运动轨迹。

(2)三维重建(SFM):从运动恢复结构。我觉得更像是构建目标的三维模型。然后,我们看一下流行算法的效果:

SLAM:蓝色表示运动位置。

图1:LSD-SLAM-运动轨迹和稀疏的场景地图,黄色表示位置之间的约束,这是优化问题,不展开。

图2:ORBSLAM2-运动轨迹和稠密(Dense)地图

SFM:

图3:KinectFusion-构建目标三维地图

图4:ElasticFusion-构建场景地图

我们可以看出,SFM中构建的三维模型是很漂亮的,目标是人,就构建人,目标是是物,就构建人,目标是地图,就构建地图的三维模型,所以我更愿意定义SFM:构建目标的三维模型。

SLAM(侧重定位)和SFM(侧重建图)联系很大的,大佬们为什么要把这两个东西分开?既估计出相机的运动轨迹,又把经过所有的地方(整个场景包括人,桌子,椅子)都构建出来,这不是更perfect的方案吗?

因为.....做不到,计算量达不到。

在SLAM中,现有方法可以做到小场景下的“相对”稠密化建图(图2),而在大场景下(图1)是难以实现的。当你的目标是导航,就需要实时性的定位,大场景稠密地图的读取和储存,现有硬件条件是不可能达到的,但是,越稠密的地图才能更好的帮助机器人进行自主定位。所以,现在发展二十年之久的SLAM的遗留问题就有,稀疏地图稠密化(我构建了稀疏地图,但是为了自主导航,这个地图不够用),或者稠密地图的稀疏表达(典型工作octotree)。

SLAM中的M什么时候能变成,真正能用做语义分割和识别的dense mapping,机器人的自主性会得到极大的进步

akkaze-郑安坤

稍微修改一下这个回答,准确点说slam应该去和sfm比较,不能直接和三维重建比较。

slam最重要的作用是定位,相机要知道自己的姿态,因为需要的姿态通常都是3d的,所以在恢复3d姿态的时候,使用pnp方法能得到不少3d点,这些3d点也能成为新的地图,但是多半是稀疏的,当然这是非直接法,直接法会计算图像梯度变换比较大的地方的深度,所以最终能得到半稀疏的地图。slam属于稀疏重建的范畴,它也没有刻意要去重建某个目标,并且要求运行速度很快,通常是在线的,否则在某些场景里面就要出事故,slam要求速度大于精度,所以slam只会在关键帧间做BA,非关键帧都会使用基于filter的方法。

然后是sfm,structure from motion,它和slam的功能其实是最像的,它的目的也是为了求解相机姿态,同样也能得到3d的稀疏点,它和slam最大的不同在于它要求精度更高,能做BA的地方通常都会做BA。

三维重建是密集重建,它和前面两个算法最大的区别在于它需要恢复深度图出来,至少是关键帧的深度图出来。恢复深度图的通常是立体匹配,如果是rgbd的话能直接从sensor得到。

立体匹配也有两种主流方法。我个人认为可以分为sgm一类,patchmatch一类。个人觉得最主要的区别在于patchmatch能利用前面slam或者sfm解算出来那些稀疏的3d点,然后在全图像平面传播。sgm只能从头开始做匹配。

当然恢复出来深度图以后还有各种深度图融合算法。因为对三维模型的表示也有好几种方式,基于三角网的,基于voxel的,基于tsdf的。每一种的融合方法都不一样。这是一个大的课题。总的来说,到这里,三维重建和slam已经完全不一样了。

育心

针对这个问题,专门请教了视觉SLAM和三维重建方面的大佬,整理如下:

区别

(1)SLAM要求实时,数据是线性有序的,无法一次获得所有图像,部分SLAM算法会丢失过去的部分信息;基于图像的SfM不要求实时,数据是无序的,可以一次输入所有图像,利用所有信息。

(2)SLAM是个动态问题,会涉及到滤波,运动学相关的知识,而SfM主要涉及的还是图像处理的知识。

联系

(1)基本理论是一致的,都是多视角几何;

(2)传统方法都需要做特征值提取与匹配;

(3)都需要优化投影误差;

(4)回环矫正和SfM的全局注册方法是同一件事情。

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

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

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

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

下载3:OpenCV实战项目20讲

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

交流群

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

SLAM和三维重建有什么区别?相关推荐

  1. OpenREALM :基于视觉SLAM和三维重建的无人机实时空中测绘

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 作者丨泡泡机器人 来源丨泡泡机器人SLAM 标题:OpenREALM: Real-time Mappi ...

  2. 《SLAM室内三维重建技术综述》

    该综述2018年7月发表于 测绘科学,一作:北京建筑大学 文章目录 摘要 一.SLAM是什么? 二.室内三维重建 三.SLAM现状 1.SLAM发展的三个阶段 1)古典时代(1986-2004) 2) ...

  3. 基于slam的三维重建_实时三维重建算法的实现 基于Kinect与单目视觉SLAM的三维重建.docx...

    实时三维重建算法的实现 基于Kinect与单目视觉SLAM的三维重建 实时三维重建算法的实现--基于Kinect与单目视觉SLAM的三维重建夏文玲1,顾照鹏2,杨唐胜2XIAWenling1,GUZh ...

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

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

  5. 全部开课!加入学习群一起进步(附点云、多传感器融合、SLAM、三维重建课程)...

    前言 终于,工坊参与开发的几门课程已全部上线,涉及点云处理.三维重建.视觉SLAM.激光SLAM.自动驾驶多传感器融合感知等内容.授课老师均为一线工程算法人员和国内外高校博士,拥有丰富的理论和实践工程 ...

  6. 二十五.SLAM中Mapping和Localization区别和思考

    专栏系列文章如下: 一:Tixiao Shan最新力作LVI-SAM(Lio-SAM+Vins-Mono),基于视觉-激光-惯导里程计的SLAM框架,环境搭建和跑通过程_goldqiu的博客-CSDN ...

  7. 超详细的计算机视觉数据集汇总(自动驾驶、SLAM、三维重建、立体视觉、深度估计)

    前言 本文首发于公众号[3D视觉工坊],原文请见超详细的计算机视觉数据集汇总 1.KITTI数据集 KITTI数据集由德国卡尔斯鲁厄理工学院和丰田美国技术研究院联合创办,是目前国际上最大的自动驾驶场景 ...

  8. 计算机视觉与深度学习 | 深度学习与VO、SLAM、三维重建【论文及代码篇】

    ============================================== 博主github:https://github.com/MichaelBeechan 博主CSDN:htt ...

  9. DeepFusion:基于单视图深度和梯度预测的单目SLAM实时稠密三维重建

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 标题:DeepFusion: Real-Time Dense 3D Reconstruction fo ...

最新文章

  1. DevOps时代测试应该如何应对?
  2. PHP中的替代语法(冒号、endif、endwhile、endfor)
  3. Sqlserver中分页,2012后支持offset + fetch,2012之前用rownum嵌套查询
  4. noi2017初赛c语言试题,NOIP2017普及组初赛试题及答案
  5. 微信小程序 input框进行双向绑定
  6. CRM One Order事件注册的准确位置
  7. mysql读出来的日期后面多了个 .0处理及layui中日期控件点击一闪而过处理
  8. Httpd总结 :HTTPD的基本概念
  9. C语言 库函数:qsort 详解
  10. 第一课:OD软件界面基本介绍
  11. ubuntu安装JLink 驱动。终结总结
  12. 锁定计算机还能远程控制,我的电脑可能被远程控制
  13. Detours Hook初探
  14. Android之底部菜单栏的实现
  15. 如何在Windows中创建新用户?
  16. 浅谈如何通过自媒体渠道实现赚钱的途径与方法?
  17. php sec-websocket-accept,javascript – Websocket握手Sec-WebSocket-Accept标...
  18. java 生成二维码可带LOGO和文字描述
  19. 男人三十岁需要做到的事
  20. 佳能打印技术推动艺术品拍卖业务创新高;iQOO 9系列手机搭载Pixelworks X5 Pro视觉处理器 | 全球TMT...

热门文章

  1. 5行代码就能入门爬虫?
  2. 腾讯AI Lab负责人张潼离职,张正友或接替其位
  3. 进击的Waymo,掘进无人驾驶深水区
  4. 撸了个低代码开发平台,爽!
  5. 阿里巴巴为什么不建议直接使用Async注解?
  6. 盘点 HashMap 源码中的那些优雅的设计!
  7. 数据库连接池为什么要用threadlocal呢?不用会怎样?
  8. 面试官:磁盘 IO 变高,你怎么分析?
  9. 磐创AI - 专注机器学习技术分享
  10. 当支持向量机遇上神经网络:这项研究揭示了SVM、GAN、Wasserstein距离之间的关系...