参考1: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,机器人的自主性会得到极大的进步。

参考2: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已经完全不一样了。

参考3:育心

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

区别

  • (1)SLAM要求实时,数据是线性有序的,无法一次获得所有图像,部分SLAM算法会丢失过去的部分信息;基于图像的SfM不要求实时,数据是无序的,可以一次输入所有图像,利用所有信息。
  • (2)SLAM是个动态问题,会涉及到滤波,运动学相关的知识,而SfM主要涉及的还是图像处理的知识。

联系

  • (1)基本理论是一致的,都是多视角几何;
  • (2)传统方法都需要做特征值提取与匹配;
  • (3)都需要优化投影误差;
  • (4)回环矫正和SfM的全局注册方法是同一件事情。

SLAM和三维重建中的SFM区别相关推荐

  1. SLAM和三维重建有什么区别?

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 本文转自:新机器视觉Qiang Qiang 回答中很多人提SLAM ...

  2. 基于点云的三维重建_香港科技大学王煜教授:深度学习在物体三维重建中的应用...

    基于单幅图像的物体三维重建是计算机视觉领域的一个重要问题, 近十年来得到了广泛地关注. 随着深度学习的不断发展, 近年来逐渐成为一个新的学术研究热点问题. 计算机视觉研究的主要目标之一是从二维图像复原 ...

  3. 三维重建中的立体匹配详解

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 作者丨HawkWang 来源丨计算摄影学 通过立体校正算法,可以把双摄图像对校正到标准形态,使得两幅图 ...

  4. 视觉SLAM总结——SVO中关键知识点总结

    视觉SLAM总结--SVO中关键知识点总结 视觉SLAM总结--SVO中关键知识点总结 1. 为什么叫半直接法视觉里程计? 2. SVO的优缺点是什么? 3. SVO的整体框架是怎样的? 4. 分别介 ...

  5. 三维重建中旋转矩阵与平移矩阵思想误区(转载)

    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/weixin_34346607/article/details/52988221 三维重建中通常要解决 ...

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

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

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

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

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

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

  9. 三维重建中旋转矩阵与平移矩阵思想误区

    三维重建中通常要解决这样一个问题,通过设备采集系统得到一个物体不同角度下的深度数据,假设深度数据已经转换为X,Y,Z坐标,那么需要通过两帧之间的坐标计算这两帧对应的设备旋转的角度与平移量.但计算得到的 ...

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

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

最新文章

  1. 百面机器学习之模型评估
  2. Redis之intset(整数集合)
  3. java 6 jaxb_JAVA6开发WebService (五)—— JAXB
  4. linux知识(二)互斥量、信号量和生产者消费者模型
  5. hive内置函数详解
  6. 中国水蛭素产品行业市场供需与战略研究报告
  7. vc++ 6.0 三次bezier曲线绘制_Python matplotlib绘制散点图
  8. Centos 6.4 开启 VNC
  9. 基于tensorflow的RBF神经网络案例
  10. 对计算机病毒防治最科学的方法是什么,常见的计算机病毒防治措施有什么
  11. cad图纸批量转换pdf
  12. QT 度和温度符号的显示(字符编码)
  13. js赋值改变后,原数据也发生改变
  14. Fastadmin隐藏后台登录入口地址?
  15. Opencv图片锐化
  16. Python数据分析6——数据规整
  17. [bzoj3698]XWW的难题 有源汇的上下界最大流
  18. jmeter添加cookie
  19. pga_aggregate_limit
  20. 烽火HG6821M光猫开启telnet(202302)

热门文章

  1. 浅入深出Vue:数据渲染
  2. lammps计算的应力的方法
  3. Ngnix中的fastcgi参数性能优化和解释
  4. ASP.NET MVC . Controller
  5. Forms Authentication With Absolute Return URLs
  6. C# .net 多线程中集合数据同步
  7. ireport 生成一维码 和 二维码 小记
  8. 同一个网址,根据pc跟移动端,跳到对应页面
  9. MutationObserver监听页面是否加载完成
  10. SqlServer2005海量数据存储过程分页(上)