0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

高翔博士分享:单目SLAM在移动端应用的实现难点有哪些?

QQ475400555 来源:zhihu 2023-06-07 15:02 次阅读

提纲如下:

单目SLAM难点

视觉SLAM难点

可能的解决思路

图片中非原创部分均已加引用,请勿盗图,转载请私信告知。

单目slam的障碍来自于理论和实践两个方面。理论障碍可以看做是固有的,无法通过硬件选型或软件算法来解决的,例如单目初始化和尺度问题。实践问题包括计算量,视野等,可以依靠选型、算法、软件设计等方法来优化。不过在同等硬件水平下,优化也存在极限的。比如对O(1)的算法不满意从而设计O(1/n)的算法似乎是不可能的……

单目SLAM难点

单目的优点是成本低,最大的局限性是测不到空间物体的距离,只有一个图像。所以早期视觉SLAM也被称为“只有角度的SLAM”(Bearing Only)。距离在定位中至关重要,双目和RGBD相机的使用就是为了能够计算(或测量)这个距离。上一个图你们直观体会一下距离的重要性:

5f33adca-04e7-11ee-90ce-dac502259ad0.jpg

很显然,没有距离信息,我们不知道一个东西的远近——所以也不知道它的大小。它可能是一个近处但很小的东西,也可能是一个远处但很大的东西。只有一张图像时,你没法知道物体的实际大小——我们称之为尺度(Scale)。

可以说,单目的局限性主要在于我们没法确定尺度,而在双目视觉、RGBD相机中,距离是可以被测量到的(当然测量也有一定的量程和精度限制)。双目视觉和人眼类似,通过左右眼图像的差异来计算距离——也就是所谓的立体视觉(Stereo)。RGBD则是把(通常是红外)光投射到物体表面,再测量反射的信息来计算距离的。具体原理分结构光和ToF两种,在此不多做解释,还是上图直观感受一下。

5f3cc356-04e7-11ee-90ce-dac502259ad0.png

5f481864-04e7-11ee-90ce-dac502259ad0.png

距离未知导致单目SLAM存在以下问题:

需要初始化

尺度不确定

尺度漂移

而一旦我们拥有了距离信息,上述几条就都不是问题,这也是双目和RGBD存在的意义。下面分别讲一下以上几条。

---------------我是分割线-----------------

1.1 初始化

单目SLAM刚开始时,只有图像间的信息,没有三维空间的信息。于是一个基本问题就是:怎么通过两张图像确定相机自身运动,并且确定像素点的距离。这个问题称为单目SLAM初始化问题。一般是通过匹配图像特征来完成的。

5f59d522-04e7-11ee-90ce-dac502259ad0.png

匹配好的特征点给出了一组2D-2D像素点的对应关系,但由于是单目,没有距离信息。初始化的意义是求取两个图像间的运动和特征点距离,所以初始化完毕后你就知道这些特征点的3D位置了。后续的相机运动就可以通过3D点-2D点的匹配信息来估计。后续的问题叫PnP(Perspective n Point)。

对,你想的没错,单目的流程就是:初始化——PnP——PnP——……

初始化的运动是通过对极几何来求解的,结构是由三角测量得到的。初始化问题是一个2D-2D求运动和结构的问题,比3D-2D的PnP要难(信息更少,更不确定)。我不展开对极几何求运动的原理,但是理解它,对理解单目局限性是很有帮助的。如题主感兴趣,请看Multiple View Geometry第8章。如果在知乎上写,会占掉很大的篇幅。

对极几何最终会分解一个本质矩阵(Essential Matrix)(或基本矩阵(Fundametal Matrix))来得到相机运动。但分解的结果中,你会发现对平移量乘以任意非零常数,仍满足对极约束。直观地说,把运动和场景同时放大任意倍数,单目相机仍会观察到同样的图像!这种做法在电影里很常见。例用用相机近距离拍摄建筑模型,影片看起来就像在真实的高楼大厦一样(比如奥特曼打怪兽实际是两个穿着特摄服装的演员,多么无情的现实)。

这个事实称为单目的尺度不确定性(Scale Ambiguity)。所以,我们会把初始化的平移当作单位1,而之后的运动和场景,都将以初始化时的平移为单位。然而这个单位具体是多少,我们不知道(摊手)。并且,在初始化分解本质矩阵时,平移和旋转是乘在一起的。如果初始化时只有旋转而没有平移,初始化就失败了——所以业界有种说法,叫做“看着一个人端相机的方式,就知道这个人有没有研究过SLAM”。有经验的人会尽量带平移,没经验的都是原地打转……

所以,从应用上来说,单目需要一个带平移的初始化过程,且存在尺度不确定问题,这是它理论上的障碍。

员工:老板你这样移动相机不行啊,要有平移的……

老板:我花20k请你来做slam,一个初始化都搞不定?

1.2 结构问题

由于单目没有距离信息,所有特征点在第一次出现时都只有一个2d投影,实际的位置可能出现在光心与投影连线的任意一处。只有在相机运动起来以后,才可能通过三角测量,估计特征点的距离。

三角测量的应用范围很广,传说高斯在十几岁的时候就已经用最小二乘法测量山的距离,来吊打这些二十大几还在水paper的博士们。现代天文学测星星的距离也使用三角测量。

5f9c2fd0-04e7-11ee-90ce-dac502259ad0.png

然而三角测量的前提是——你得有三角啊。

高斯用三角测量是站在两座山上去量另一座,这就构成了三角。双目视觉左右两个相机,存在一定的平移,和目标点也构成了三角。但在单目情形下,你必须移动相机之后,才可能去估计空间点的3D位置。换句话说,如果相机摆在那儿不动——就没有三角了。这导致单目在机器人避障中应用存在困难,不过既然在谈AR我们就先不说机器人吧。

1.3 尺度漂移

用单目估计出来的位移,与真实世界相差一个比例,叫做尺度。这个比例在初始化时确定,但单纯靠视觉无法确定这个比例到底有多大。进而,由于SLAM过程中噪声的影响,这个比例还不是固定不变的。当你用单目SLAM,会发现,咦怎么跑着跑着地图越来越小了……

5fb0b266-04e7-11ee-90ce-dac502259ad0.png

这种现象在当前state-of-the-art的单目开源方案出亦会出现,修正方法是通过回环检测。但是有没有出现回环,则要看实际的运动方式。所以……

员工:老板你这样移动相机不行啊,要经常把它移回去……

老板:我花20k请你来做slam,怎么搞的地图一会儿大一会儿小,这怎么用?

---------------我是分割线-----------------

视觉SLAM的困难

双目相机和RGBD相机能够测量深度数据,于是就不存在初始化和尺度上的问题了。但是,整个视觉SLAM的应用中,存在一些共同的困难,主要包括以下几条:

相机运动太快

相机视野不够

计算量太大

遮挡

特征缺失

动态物体或光源干扰

2.1 运动太快

运动太快可能导致相机图像出现运动模糊,成像质量下降。传统卷帘快门式的相机,在运动较快时将产生明显的模糊现象。不过现在我们有全局快门的相机了,即使动起来也不会模糊的相机,只是价格贵一些。

5fc83152-04e7-11ee-90ce-dac502259ad0.png

(你真以为啥图都可以用来SLAM吗?拿衣服啊,图片来自TUM数据集)

5fd7282e-04e7-11ee-90ce-dac502259ad0.png

(全局快门相机在拍摄高速运动的物体仍是清晰的,图片来自网络

运动过快的另一个结果就是两个图像的重叠区(Overlap)不够,导致没法匹配上特征。所以视觉SLAM中都会选用广角、鱼眼、全景相机,或者干脆多放几个相机。

2.2 相机视野不够

如前所述,视野不够可能导致算法易丢失。毕竟特征匹配的前提是图像间真的存在共有的特征。

2.3 计算量太大

基于特征点的SLAM大部分时间会花在特征提取和匹配上,所以把这部分代码写得非常高效是很有帮助的。这里就有很多奇技淫巧可以用了,比如选择一些容易计算的特征/并行化/利用指令集/放到硬件上计算等等,当然最直接的就是减少特征点啦。这部分很需要工程上的测试和经验。总而言之特征点的计算仍然是主要瓶颈所在。要是哪天相机直接输出特征点就更好了。

2.4 遮挡

相机可能运动到一个墙角,还存在一些邪恶的开发者刻意地用手去挡住你的相机。他们认为你的视觉SLAM即使不靠图像也能顺利地工作。这些观念是毫无道理的,所以直接无视他们即可。

2.5 特征缺失、动态光源和人物的干扰

老实说SLAM应用还没有走到这一步,这些多数是研究论文关心的话题(比如直接法)。现在AR能够稳定地在室内运行就已经很了不起了。

---------------我是分割线-----------------

可能的解决思路

前边总结了一些单目视觉可能碰到的困难。我们发现大部分问题并不能在当下的视觉方案能够解决的。你或许可以通过一些工程技巧加速特征匹配的过程,但像尺度、遮挡之类的问题,明显无法通过设计软件来解决。

所以怎么办呢?——既然视觉解决不了,那就靠别的来解决吧。毕竟一台设备上又不是只有一块单目相机。更常见的方案是,用视觉+IMU的方式做SLAM。

当前广角单目+IMU被认为是一种很好的解决方案。它价格比较低廉,IMU能在以下几点很好地帮助视觉SLAM:

IMU能帮单目确定尺度

IMU能测量快速的运动

IMU在相机被遮挡时亦能提供短时间的位姿估计

所以不管在理论还是应用上,都出现了一些单目+IMU的方案[2,3,4]。众所周知的Tango和Hololens亦是IMU+单目/多目的定位方式。

5fe1d6ac-04e7-11ee-90ce-dac502259ad0.png

(用Tango玩MC,缺点是盖的房子尺寸和真实世界一样。盖二楼你就得真跑到楼上去盖——这怎么造圆明园?)

6075d852-04e7-11ee-90ce-dac502259ad0.png

(这货就是靠后边这鱼眼+IMU做跟踪的)

(Hololens图就不上了吧……横竖也不是自己的)

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 算法
    +关注

    关注

    23

    文章

    4484

    浏览量

    91335
  • 图像
    +关注

    关注

    2

    文章

    1072

    浏览量

    40131
  • SLAM
    +关注

    关注

    22

    文章

    399

    浏览量

    31640

原文标题:高翔博士分享:单目SLAM在移动端应用的实现难点有哪些?

文章出处:【微信号:机器视觉沙龙,微信公众号:机器视觉沙龙】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    什么是SLAM?视觉SLAM怎么实现

    上周的组会上,我给研一的萌新们讲解什么是SLAM,为了能让他们在没有任何基础的情况下大致听懂,PPT只能多图少字没公式,这里我就把上周的组会汇报总结一下。 这次汇报的题目我定为“视觉SLAM:一直在
    的头像 发表于 08-21 10:02 8328次阅读
    什么是<b class='flag-5'>SLAM</b>?视觉<b class='flag-5'>SLAM</b>怎么<b class='flag-5'>实现</b>?

    深度解析|机器人自主移动的秘密(二)

    SLAM主要解决机器人的实时定位与自动建图问题,那么,实际应用时,SLAM究竟是如何实现的呢?实现
    发表于 06-30 15:05

    SLAM不等于机器人自主定位导航

    和运动控制。SLAM技术帮助机器人确定自身定位和构建地图之后,进行一个叫做目标点导航的能力。通俗的说,就是规划一条从A点到B点的路径出来,然后让机器人移动过去。 机器人自主定位导航= SLA
    发表于 08-24 16:56

    AGV激光雷达SLAM定位导航技术

    实现多AGV小车的协调控制。  ■激光雷达AGV小车中的使用  SLAM中可以进行环境信息感知的主要传感器激光雷达、摄像头等。其中,基于激光雷达的AGV小车自主定位与建图的方法,
    发表于 11-09 15:59

    SLAM技术的应用及发展现状

    )、无人机、自动驾驶等都有应用,大疆位工程师甚至说过“所有关于无人机的梦想都建立SLAM之上”,可见SLAM技术的关键性。 工业用途主要是集中
    发表于 12-06 10:25

    让机器人完美建图的SLAM 3.0到底是何方神圣?

    ,控制与建图中心断开连接时地图数据不会丢失,移动没有断电的情况下地图数据不会丢失。    最后,看一下SLAM 3.0的实际建图效果吧
    发表于 01-21 10:57

    SLAM大法之回环检测

    之所以能成为一个难点,是因为:如果回环检测成功,可以显著地减小累积误差,帮助机器人更精准、快速的进行避障导航工作。而错误的检测结果可能使地图变得很糟糕。因此,回环检测大面积、大场景地图构建上是非
    发表于 03-06 15:38

    SLAM技术目前主要应用在哪些领域

    作为辅助。  AR  AR通过电脑技术,将虚拟的信息应用到真实世界,真实的环境和虚拟的物体实时地叠加到了同一个画面或空间同时存在。这一画面的实现,离不开SLAM技术的实时定位。虽然AR行业
    发表于 12-01 14:26

    激光SLAM与视觉SLAM什么区别?

    机器人运动控制系统架构中,可分为最底层、中间通信层和决策层三大层面,最底层包含了机器人本身的电机驱动和控制部分,中间通信层是底层部分和决策层的通信通路,而决策层则是实现机器人的定位建图及导航。
    发表于 07-05 06:41

    SLAM的相关知识点分享

    小小的雀跃,千里之行始于足下,但愿能够一步一个脚印的走下去!感谢公司实验室Leonardo博士的大力支持和指导,出学校后遇到的一位良心导师,萌萌的,很负责任的领导!另外感谢来自意大...
    发表于 08-30 06:13

    基于SLAM移动机器人设计

    题目:基于SLAM移动机器人设计嵌入式PPT应具有的几个部分1、哪些硬件  1)小车  2)STM32F429开发板  3)树莓派3b+开发板  4)4g通信模块  5)GPS模块  6
    发表于 11-08 06:17

    单目视觉SLAM仿真系统的设计与实现

    实现单目视觉同时定位与建图(SLAM)仿真系统,描述其设计过程。该系统工作性能良好,其SLAM算法可扩展性强,可以精确逼近真实单目视觉SLAM过程。以方便
    发表于 04-15 08:50 82次下载

    WebServer的嵌入式实现与交互式设计_高翔

    WebServer的嵌入式实现与交互式设计_高翔
    发表于 03-19 11:28 1次下载

    在实际应用中,SLAM技术是如何实现

    SLAM作为机器人自主定位导航的重要突破口正不断引起业内重视,它是实现机器人自主行走的关键技术,可帮助机器人实现即时定位与地图构建,在实际应用中,SLAM技术究竟又是如何
    的头像 发表于 12-26 09:23 671次阅读

    为什么SLAM很重要 SLAM算法实现的4要素

    可进入的每个角落。SLAM最早由Smith、Self和Cheeseman于1988年提出。由于其重要的理论与应用价值,被很多学者认为是实现真正全自主移动机器人的关键。 词语
    的头像 发表于 08-26 16:07 6955次阅读