社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  机器学习算法

SLAM有哪些地方可以用深度学习做优化?用DL给SLAM优化, SLAM需要掌握到什么程度?

3D视觉工坊 • 1 周前 • 28 次点击  

点击上方“3D视觉工坊”,选择“星标”

干货第一时间送达

内容来自知乎,「3D视觉工坊」整理,如有侵权请联系删除 https://www.zhihu.com/question/487033245

SLAM有哪些地方可以用深度学习做优化?用DL给SLAM优化, SLAM需要掌握到什么程度?

作者 Chao Lu

目前深度学习在SLAM上的应用可以分为三类,一类是end2end,输入连续帧图像,经过网络直接得到pose信息,例如DeepVO,D3VO;

第二类是还是利用slam前后端的整体框架,用DL来替换某一模块,例如Magicleap团队用SuperPoint和SuperGlue进行特征点的提取和匹配,普林普顿Jia Deng团队的RAFT光流,DroidSLAM主要用学习的方法进行BA,类似工作还有BANet;还有一些工作用深度学习来做场景识别,可以用来SLAM中的回环检测阶段。

第三种则是利用深度学习的其他模块来提取一些更高级的语义特征,也就是语义SLAM,例如Yang Shichao的CubeSlam,利用图像检测出图像的语义信息例如车,然后恢复出三维Box,加入到系统中一起优化,提升鲁棒性。

我认为即使是想用DL来做slam,那基于几何方法的SLAM也是必须掌握的,尤其是后端的优化部分,cost function需要自己设计吧,光流或者描述子的网络也得自己设计吧,这些如果几何方法不懂又何谈用学习的方法替代,或者说如果不知道传统法在这个场景不好的原因,那又如何说服别人学习就一定可以呢。总之,个人的观点是不太看好直接前后端在一起来一个大的网络,把中间完全当成黑箱,这种不是SLAM的初衷,SLAM的后端是一个有明确数学模型的阶段,相信很多企业也不敢这么用。反之按照前后端的思路,进行模块的替换,或者说几何和学习一起来用,提升系统的性能,这才是应该注意的地方。

作者 王小二

深度学习和slam的结合,我倒是做过一点,不过都是视觉slam方向。就以我知道的做一个讨论吧。我们以视觉slam的基本组件作为脉络来进行梳理。

  • 数据采集:单目,双目,深度图,这块儿和深度学习结合的话可以考虑。单目深度图估计,双目深度图估计,双目匹配参数估计(用于计算深度图),动态物体提取,语义物体提取(为后续建立语义地图做基础),图像降噪,运动模糊恢复。不过这些东西其实和slam不是强绑定的,你做不做都能扯一波。

  • 前端里程计:这块视觉一般叫做VO,可以完成基本的位姿信息输出,很多没做过slam的人就会认为slam的功能就是vo+建图就搞定了,不太知道后端优化和回环检测的作用。这里的化可以做的就包括。图像特征点提取,图像特征描述子生成,图片映射参数估计,局部优化(BA)参数估计,映射矩阵求解,直接位姿预测。比较好做的还是图像的特征点和描述子部分,这块我们自己也是成功实现了。王小二:UnsuperPoint阅读和踩坑记录

  • 后端优化:感觉和深度学习没啥结合点,虽然可以去学习优化,强行上深度学习就是为了用而用。

  • 回环检测:回环的话和特征提取部分也有关系,可以考虑一些方向。全局+局部的回环确认(先用图像帧搜索定位范围,然后精细匹配)图像搜索就可以用深度学习做,语义地图,表述意义更好的描述子,搜索加速(比如用dhash去替换高维特征)。

  • 建立地图:做目标检测,语义分析最火了。想办法去除动态信息,有用而且很火的方向,我们只做了简单的分割去已知目标的部分。

所以用啥或者怎么结合就看是为了应付领导,还是真的想在系统里面用了。如果真的想用,可以考虑的点:深度估计,特征提取,描述子生成,目标检测,语义分割,动态目标去除,搜图全局定位。这几个点我们基本都尝试过,有坑但是可以用。

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/175291
 
28 次点击