点击下方
卡片
,关注
「3DCV」
公众号
选择
星标
,干货第一时间送达
编辑:3DCV
添加小助理:dddvision,备注:方向+学校/公司+昵称,拉你入群。文末附行业细分群
扫描下方二维码,加入
3D视觉知识星球
,星球内凝聚了众多3D视觉实战问题,以及各个模块的学习资料:
近20门视频课程(星球成员免费学习)
、
最新顶会论文
、
3D视觉最新模组
、
3DGS系列(视频+文档)
、
计算机视觉书籍
、
优质3D视觉算法源码
等。想要入门3D视觉、做项目、搞科研,欢迎扫码加入!
来源:zhihu.com/question/650407644
编辑:3DCV
本人做无人机自主导航,发现很多公司在工程上是用VINS(VINS-Mono或VINS-Fusion)做里程计,而不是ORB-SLAM,但是据我了解ORB-SLAM比VINS效果更好,这是为什么呢?
袁博融
因为大部分工程师对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一根毛)。理由如下:
-
-
前段跟踪稳定性。lk光流跟踪比orb3 track跟踪稳定很多。orb3在实际场景中,tracklocalmap容易失败。orb3在室外场景中容易reset,然后新建地图。
-
后端优化这块。怎么说呢,orb3确实强,但是不符合导航要求的定位。因为你会经常看到它明开始跟飞很远,然后又给你突然拉回来。这种跟飞又来回来很蛋疼。没有vins-mono那边平滑。
-
精度这块(假设你成功运行完一个数据集),精度orb3会比vins强(vio初始化好的话,orb3可以到达1%)。然并软,因为orb3并不稳定,跑同一个书籍,你可能得到的结果都差异很大。
-
外参和实延。orb受外参数影响特别大,不如vins一根毛。
-
调试。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,会省很多事情.
本文仅做学术分享,如有侵权,请联系删文。
3DCV技术交流群
目前我们已经建立了3D视觉方向多个社群,包括
2D计算机视觉
、
大模型
、
工业3D视觉
、
SLAM
、
自动驾驶
、
三维重建
、
无人机
等方向,细分群包括:
2D计算机视觉:
图像分类/分割、目标/检测、医学影像、GAN、OCR、2D缺陷检测、遥感测绘、超分辨率、人脸检测、行为识别、模型量化剪枝、迁移学习、人体姿态估计等
大模型:
NLP、CV、ASR、生成对抗大模型、强化学习大模型、对话大模型等
工业3D视觉:
相机标定、立体匹配、三维点云、结构光、机械臂抓取、缺陷检测、6D位姿估计、相位偏折术、Halcon、摄影测量、阵列相机、光度立体视觉等。
SLAM
:
视觉SLAM、激光SLAM、语义SLAM、滤波算法、多传感器融合、多传感器标定、动态SLAM、MOT SLAM、NeRF SLAM、机器人导航等。
自动驾驶:
深度估计、Transformer、毫米波|激光雷达|视觉摄像头传感器、多传感器标定、多传感器融合、自动驾驶综合群等、3D目标检测、路径规划、轨迹预测、3D点云分割、模型部署、车道线检测、BEV感知、Occupancy、目标跟踪、端到端自动驾驶等。
三维重建:
3DGS、NeRF、多视图几何、OpenMVS、MVSNet、colmap、纹理贴图等
无人机:
四旋翼建模、无人机飞控等
除了这些,还有
求职
、
硬件选型
、
视觉产品落地
、
最新论文
、
3D视觉最新产品
、
3D视觉行业新闻
等交流群
添加小助理: dddvision,备注:
研究方向+学校/公司+昵称
(如3D点云+清华+小草莓)
, 拉你入群。
▲长按扫码添加助理
3D视觉技术星球
3D视觉从入门到精通知识星球、国内成立最早的3D视觉学习交流社区。包括:
星球视频课程近20门(价值超6000)
、
项目对接
、
3D视觉学习路线总结
、
最新顶会论文&代码
、
3D视觉行业最新模组
、
3D视觉优质源码汇总
、
书籍推荐
、
编程基础&学习工具
、
实战项目
&作业
、
求职招聘&面经&面试题
等等。欢迎加入3D视觉从入门到精通知识星球,一起学习进步。
▲长按扫码加入星球
3D视觉课程官网:
www.3dcver.com
3DGS、NeRF、结构光、相位偏折术、机械臂抓取、点云实战、Open3D、缺陷检测、
BEV感知、Occupancy、Transformer、模型部署、3D目标检测、深度估计、多传感器标定、规划与控制、
无人机仿真、三维视觉C++、三维视觉python、dToF、相机标定、ROS2、机器人控制规划
、
LeGo-LAOM、多模态融合SLAM、LOAM-SLAM、室内室外SLAM、VINS-Fusion、ORB-SLAM3、
MVSNet三维重建、colmap、线面结构光、硬件结构光扫描仪,无人机等