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

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

3天内不再提示

工程实践中VINS与ORB-SLAM的优劣分析

新机器视觉 来源: 3D视觉之心 2024-04-08 10:17 次阅读

很多公司在工程上是用VINS(VINS-Mono或VINS-Fusion)做里程计,而不是ORB-SLAM,但是好像ORB-SLAM比VINS效果更好,这是为什么呢?且看大家是怎么说的

简单回顾

ORB-SLAM是一种基于特征的单目视觉SLAM系统,广泛用于实时三维地图构建和机器人定位。该系统使用ORB特征进行高效的视觉识别和地图重建,支持关键帧技术和回环检测来优化地图的准确性。ORB-SLAM能够在多种环境下稳定工作,适用于动态场景和长时间操作,因其出色的性能和灵活性,被广泛应用于自动驾驶、增强现实等领域。

VINS(Visual-Inertial Navigation System)是一种结合视觉信息和惯性测量单元(IMU)数据的SLAM框架,能够提供高精度的实时定位和地图构建功能。VINS通过融合相机和IMU的数据,即使在视觉信息不足的情况下也能保持较高的定位精度,使其适用于快速运动或低光照条件下的场景。VINS框架因其鲁棒性和准确性,在无人机导航、移动机器人等领域得到了广泛应用。

24dc11fe-f545-11ee-a297-92fbcf53809c.png

看看大家怎么说

袁博融说

因为大部分工程师对SLAM都没有深入了解。要么是都试试,哪个能跑通效果好就用哪个,要么是跟着主流意见走。而主流意见未必就是对的,很大程度上也是受公众号自媒体影响。其实VINS和ORB-SLAM都不是适合工程使用的好方案。

工程应用首先应保证前端的鲁棒性,其次才是精度。毕竟你要先能收敛,看精度才有意义。运行时但凡飘一下,之前精度再高也是打水漂。VINS和ORB-SLAM对于corner cases是没啥特殊处理的,连ZUPT都没做,这就注定鲁棒性不足。VINS长时间运行会发散是必然的。

大家觉得VINS和ORB-SLAM精度高,那是它们在几个公开数据集上表现好。但这并不意味着它们在工程应用中也一定表现好。实际上,应用中对精度影响更大的反而是数据质量,而不是算法本身。比如传感器的标定误差、同步精度、曝光、对比度、噪点等都可能会产生显著影响。在这种情况下,算法本身的差异甚至可以忽略不计。即便你出厂标定的再好,产品在整个生命周期里的参数漂移也是要考虑的吧。这些都是工程问题。

我一直不建议SLAM研究者只拿数据集做测试。数据集的固定序列难以让我们认识算法表现的随机性。我见过在某些序列上基础的VO比VINS和ORB-SLAM精度更高。但这显然是随机性引起的,因为综合多个序列的结果还是VINS和ORB-SLAM更好。我经常手持设备去跑测试,即便走同样的线路,多次的表现也会有差异。如果一个算法多次表现起伏很大,我们至少可以说它在这个场景中没有处于合适的工作窗口。

作为开发者不能总是照顾算法的特性,而应该多创造可能产生退化的极端场景做研究。这就是为什么我之前甚至录了过山车数据来做SLAM测试。

我自己实现的VIO方案可以跑完这条序列,但我不觉得VINS或ORB-SLAM能做到。我开源这套数据后也一直没有其他人说能跑通。即便我的方案能跑通这种极端场景,也不意味着它在其它看起来更简单的场景中就不会出问题。事实上我们在其它项目中也遇到过各种挑战,也是花了几个月的时间去分析和优化,现在也还在继续迭代。

VINS和ORB-SLAM的后端其实都不算先进,应该说还不如RTAB-Map。这几个后端其实都在用BoW,但RTAB-Map还有内存管理等高级特性。我一直奇怪咋还不更新成VLAD,是因为大家跑的场景不够大吗?反正RTAB-Map很快会支持VLAD的,因为我也是它的第二大贡献者。但我并不是说RTAB-Map比VINS或ORB-SLAM更好,而是它们根本不好比。RTAB-Map最初就是个VSLAM后端框架,后来才加的前端。我前面说的基础的VO就是RTAB-Map后来加的实现。而你甚至可以在RTAB-Map中用VINS或ORB-SLAM做前端。这也是为什么我要另外做VIO方案,因为RTAB-Map本来就没提供这些,它只是预留了模板。RTAB-Map不是个算法而是个框,什么都可以往里装。

ORB-SLAM的最大硬伤就是它用的是ORB特征。ORB特征除了性能好一些,在各类任务上都没什么优势。不知道有多少研究者仔细测试和比较过,其实传统特征描述子最好的还是SIFT(而且专利也到期了),后来的没一个能打的。但SIFT检测开销大也是众所周知的。而SIFT检测+SIFT描述子也不是最好的。我目前知道的最好的组合是GFTT(Shi-Tomasi)+SIFT描述子,回环检测能力吊打其它各种组合。CV领域就是这么神奇,最老的反而是最好的。GFTT本身开销就低,还方便做硬件加速。ORB做硬件加速都要更麻烦一些。我自己方案就是用GFTT+RootSIFT或SuperPoint(HF-Net)。不考虑后端的话,GFTT+KLT其实都非常好了。

所以如果你要问工程上哪个方案最好,我会告诉你RTAB-Map不错,但它只能做后端,你还需要一个好的前端。我们的前端方案今年会推产品,RTAB-Map这一两年也还会有重量级更新。除了VLAD部分还会有iSAM2,Gaussian Splatting等。目标就是纯视觉做超大场景(至少城市级吧)VSLAM+三维重建。

乐知者说

论文与实际有差别。

这就看你把orbslam和vinsmono用来干什么了。

先作为Vio来说,结论vinsmono优于orb3(没有了回环检测、多地图功能和重定位的orb3,不如vins一根毛)。理由如下:

1、运行资源。orb3远比vins消耗的多,不解释。

2、前段跟踪稳定性。lk光流跟踪比orb3 track跟踪稳定很多。orb3在实际场景中,tracklocalmap容易失败。orb3在室外场景中容易reset,然后新建地图。

3、后端优化这块。怎么说呢,orb3确实强,但是不符合导航要求的定位。因为你会经常看到它明开始跟飞很远,然后又给你突然拉回来。这种跟飞又来回来很蛋疼。没有vins-mono那边平滑。

4、精度这块(假设你成功运行完一个数据集),精度orb3会比vins强(vio初始化好的话,orb3可以到达1%)。然并软,因为orb3并不稳定,跑同一个书籍,你可能得到的结果都差异很大。

5、外参和实延。orb受外参数影响特别大,不如vins一根毛。

6、调试。vins参数量小于orb3,且稳定性比orb3强多了,不然你都不知道这次结果比上次好到底是什么原因导致的。

结论:

vio1 vins-mono+orb3初始化策略

vio2 msckf前段+orb后端

这两个YYDS。

作为slam (三维重建,语义地图),orb3远优越于vins。自己理解。忠告:远离vslam或者Vio,拥抱感知或者激光。

余世杰说

说下自己的理解,ORB强在是一个完整的系统,代码结构逻辑非常清晰,比较模块化,要做修改替换啥的比较方便,同时地图的部分对于需要的项目来说很省事儿,可以直接拿来用。缺点是,代码中还是存在一些致命的bug,会跑崩(程序挂了),以及作为一个VIO系统来说,稳定性不够强,若视觉失效,几乎立马就整体丢了,所以精度高的意义没那么大了又。若要求视觉必须稳定,那为啥我还要加IMU呢,这也是一个ORB3精度可能不如ORB2的一个原因。

VINS强在一个对外参依耐性没那么强,毕竟自己可以估计,导致就算初始化有点点问题,也可以很快稳定下来。而稳定性更是不用说,在视觉失效个5秒左右,系统都能比较正常的跑下来。还可以融合GPS输出个对齐结果,对于需要的项目也是一个加分项。缺点的话,大概就是缺少了地图一部分吧,自身是比较强的。

格雷茨卡说

因为VINS-Mono在真实场景中的稳定性远远好于ORB-SLAM3,虽然ORB-SLAM3在论文中的精度指标大幅度好于VINS-Mono,但是,你总不能一直在那几个数据集刷指标吧,在工程中的应用就要求一个系统必须能够鲁棒稳定,本人实测ORB-SLAM3对外参,特别是rotation,非常敏感,标定差一些直接就跑飞了,而VINS就不会有这个问题,可能虽然整体误差有一些大,但是实时性和鲁棒性足够了,ORB-SLAM3的VI初始化很耗时间,同时在自己实际设备上的有效性一般,VINS的初始化简单明了,实测也不会跑飞,而且又有一个250HZ的IMU预积分线程,能够很好的保证实时性,因此工程应用无脑VINS,会省很多事情

审核编辑:黄飞

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

    关注

    206

    文章

    27052

    浏览量

    201437
  • 移动机器人
    +关注

    关注

    2

    文章

    718

    浏览量

    33317
  • SLAM
    +关注

    关注

    22

    文章

    390

    浏览量

    31592
  • 增强现实
    +关注

    关注

    1

    文章

    664

    浏览量

    44731
  • 自动驾驶
    +关注

    关注

    773

    文章

    13060

    浏览量

    163240

原文标题:为什么工程上选择VINS而不是ORB-SLAM?

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

收藏 人收藏

    评论

    相关推荐

    ORB_FPGA单层图像金字塔的ORB特征提取方案分析

    ORB特征是一种图像识别、追踪和匹配中常用的特征,大名鼎鼎的ORB-SLAM就是使用的这一特征。它提取FAST特征点,并通过特征点附近的窗口矩计算特征点的方向,含方向的FAST特征也被称为oFAST
    的头像 发表于 09-26 11:43 4850次阅读
    <b class='flag-5'>ORB</b>_FPGA单层图像金字塔的<b class='flag-5'>ORB</b>特征提取方案<b class='flag-5'>分析</b>

    请问用树莓派运行ORB-SLAM2算法可行吗?

    最近想用树莓派3B跑ORB-SLAM2,现在的问题就是Pangolin无法执行,每次执行都报错 Pangolin X11: Unable to retrieve framebuffer
    发表于 03-15 22:30

    视觉SLAM特征点法与直接法对比分析

    视觉SLAM——特征点法与直接法对比以及主流开源方案对比 ORB LSD SVO DSO
    发表于 06-02 16:56

    如何理解SLAM用到的传感器轮式里程计IMU、雷达、相机的工作原理与使用场景?精选资料分享

    视觉惯性里程计 综述 VIO Visual Inertial Odometry msckf ROVIO ssf msf okvis ORB-VINS VINS-Mono gtsam目录里程计
    发表于 07-27 07:21

    基于视觉的机器人SLAM入门实践

    嵌入式系统开发与应用——基于视觉的机器人SLAM入门实践1一、OpenCV的安装与配置1. 下载OpenCV3.4.1并解压到ubuntu相应目录上2. 下载安装依赖库和编译工具cmake(1)更新
    发表于 12-16 08:16

    ADμC812 芯片实践中几点注意

    ADμC812 芯片实践中几点注意
    发表于 05-16 14:16 10次下载

    机器人SLAM实现

    针对复杂环境下机器人的同时定位与地图构建( SLAM)存在实时性与鲁棒性下降等问题,将一种基于ORB特征点的关键帧闭环检测匹配算法应用到定位与地图构建巾。研究并分析了特征点提取与描述符建立
    发表于 03-26 10:57 6次下载

    光纤涂覆机在科研及工程实践中详细应用步骤(图文)

    光纤涂覆机在科研及工程实践中详细应用步骤(图文)国产光纤涂覆机
    发表于 02-27 14:30 516次阅读

    SLAM还是存在许多开放性的问题

    我看来,vslam得发展也就是从MonoSLAM->PTAM->图优化SLAM->ORB-SLAM为代表的现代slam,其中可能还有许多内容,不过这些开源SLAM一定程度上体现了
    的头像 发表于 06-18 10:40 1391次阅读
    <b class='flag-5'>SLAM</b>还是存在许多开放性的问题

    基于ORB特征的三维定位与地图构建算法

    SLAM框架上面我肯定自己写不了,这里研究了一下午,使用了ORB-SLAM
    的头像 发表于 08-16 10:57 961次阅读

    ORB SLAM中涉及的一些基础概念

    ORB-SLAM 3提供了多地图的存储和拼接功能,在跟踪丢失后可以尝试将现有地图和历史地图进行匹配、融合,并更新当前的活跃地图(Active Map)
    的头像 发表于 10-28 14:28 985次阅读

    基于视觉传感器的ORB-SLAM系统的学习

    视觉SLAM是一种基于视觉传感器的 SLAM 系统,与激光传感器相比,视觉传感器具有成本低、保留环境语义信息的优点,能够与深度学习进行大量结合。
    的头像 发表于 11-02 15:02 790次阅读

    OV2SLAM(高速视觉slam)简析

    视觉里程计最近几年越来越受到学术界以及工业界的认可,以ORBVINS为代表的视觉SLAM已经可以满足绝大多数场景,而OV2SLAM在其他VSLAM中脱颖而出,其实时性以及具体的回环性
    的头像 发表于 03-21 17:16 885次阅读

    ORB-SLAM3整体流程详解

    ORB-SLAM2相比,ORB-SLAM3在处理大视差和长时间未观测到的场景时效果更好。它还提供了更准确的帧间运动估计和更快的处理速度。
    的头像 发表于 06-19 09:28 2158次阅读
    <b class='flag-5'>ORB-SLAM</b>3整体流程详解

    科研及工程实践中光纤涂覆机详细操作步骤(图文)

    电子发烧友网站提供《科研及工程实践中光纤涂覆机详细操作步骤(图文).pdf》资料免费下载
    发表于 11-02 15:07 0次下载