点击上方“计算机视觉life”,选择“星标”
快速获得最新干货
本文转自3D视觉工坊
自古以来,人们惆怅千年要解决的问题: 定位、定向. 当然了还有我是谁?我在哪里?
在这个时候, SLAM与SFM 横空出世. 这两兄弟叱咤乾坤,成为人们解决上述问题的得力帮手.
SFM即Structure From Motion.
它也称之为传统三维重建,这是一门计算机视觉学科的分支, 特点是把数据采集回来,然后离线处理.常见应用就是重建某建筑物的3D地图.
下面附上一些三维重建的效果图:
SLAM也被称为Simultaneous Localization and Mapping,翻译过来叫同时定位与建图.
SALM是一个概念不是算法,SLAM包含多个模块,每个模块都有多种算法.每种算法很复杂的,此处还是保护好自己头发!
整个SLAM框架可以分为前端和后端.根据不同的前端需求,我们采用不同的后端策略,后端也提出了众多的算法理论,这些基本都是关于优化方面的东西,还是要好好保护头发.
附上一些SLAM效果图
关于这两者区别与联系,知乎已有前辈给出了很鲜明的解释.
SFM和SLAM基本讨论的是同一问题,不过SFM是vision方向的叫法,而SLAM是robotics方向的叫法.
SLAM所谓的Mapping,SFM叫structure;SLAM所谓的Location,SFM方向叫camera pose.
但是从出发点考虑的话,SFM主要是要完成3D reconstuction,而SLAM主要是要完成localization.这样设计的优化目标就完全不同了.
从方法论的角度上考虑的话,传统的SFM是不要求prediction的,real-time是不要求的.但是对于SLAM而言prediction是必须的,因为SLAM的终极目标是要real-time navigation.
而传统的SLAM也把主要精力放在prediction上面,而且是借助非camera的外界的手段来predict(运动模型?状态方程?).例如acceleration sensor.
传统SFM则把精力放在feature tracking上面了.
直到最近,SFM开始利用图片间的optical flow做prediction,而SLAM则更加的注重了feature tracking.所以就目前而言两个领域似有大融和趋势.
SLAM要求实时,数据是线性有序的,无法一次获得所有图像,部分SLAM算法会丢失过去的部分信息;基于图像的SFM不要求实时,数据是无序的,可以一次输入所有图像,利用所有信息.
SLAM是个动态问题,会涉及到滤波,运动学相关的知识,而SFM主要涉及的还是图像处理的知识.
基本理论是一致的,都是多视角几何.
传统方法都需要做特征值提取与匹配.
都需要优化投影误差.
回环矫正和SfM的全局注册方法是同一件事情.
更多精彩回答可参考如下链接:
https://www.zhihu.com/question/64011093/answer/971851111?utm_source=wechat_session
从最近几年发展来看
SLAM: 以定位为主,以建图为辅;且是朝轻量级,小型化方向发展,而且最近跟深度学习结合的语义SLAM也在慢慢火热,这也跟这几年深度学习火热有关系,也许深度学习能解决一些SLAM的技术门槛吧.
三维重建: 以建图为主,以定位为辅;朝大规模,大型动态场景的重建方向发展.
从0到1学习SLAM,戳↓
欢迎加入公众号读者群一起和同行交流,目前有SLAM、三维视觉、传感器、自动驾驶、计算摄影、检测、分割、识别、医学影像、GAN、算法竞赛等微信群(以后会逐渐细分),请扫描下面微信号加群,备注:”昵称+学校/公司+研究方向“,例如:”张三 + 上海交大 + 视觉SLAM“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进入相关微信群。请勿在群内发送广告,否则会请出群,谢谢理解~
投稿、合作也欢迎联系:[email protected]
扫描关注视频号,看最新技术落地及开源方案视频秀 ↓