droid_SLAM代码注记

本文介绍了droid-SLAM,一种在ANIPS2021上发表的端到端可微的SLAM系统,使用RAFT和DBA模块实现高精度定位。它在3090硬件上实现实时推理,并探讨了硬件需求、流程原理、代码结构和坐标转换。文章还涉及光流估计、后端处理和回环检测方法。

droid-SLAM 简介

droid-SLAM,DORID(Differential Recurrent Optimized-Inspired Design)实现了端到端可微的SLAM系统,于21年发表在Advances in neural information processing systems,仅使用仿真数据集Tartan Air训练就达到了SOTA精度,同时说明算法的泛化性能很强。

运行速度及硬件要求:

根据论文,使用两台3090,一台用于前端,一台用于后端,将图像降采样并适当降低帧率,可以在Euroc、TUM-RGBD数据集上实时推理,如果仅适用前端,则可以在一台1080Ti上跑,但需注意内存可能不足。

流程及原理:

通过在光流估计模块(RAFT)后添加可微的DBA(Dense Bundle Adjusr)模块,实现了端到端可微的SLAM系统。在DBA模块通过RAFT的光流估计优化图像序列状态(包括位置姿态和深度估计),并根据现有图像序列的状态重新计算光流,再将新计算的光流传入RAFT中更新纠正,通过多次迭代更新,光流趋于真值,通过光流迭代更新的图像序列状态也得到高精度解算。

光流估计网络的loss使用了位姿和光流,通过DBA模块计算得到以上两个loss,即DBA模块也参与了后向传播(back propogation)过程,使得网络参数权重朝着使DBA模块残差降低的方向学习。在深度学习网络中融入了几何约束,实现了传统算法与深度学习算法的结合。

在论文的Appendix B中也补充说明了如果在训练过程中没有包含DBA模块,也即直接拼接RAFT和DBA,结果会不稳定并产生较大误差。

代码结构:

目前只看完了推理部分。训练部分大同小异。

主要结构:

depth_video: 存储视频序列各帧的状态,包括位姿、深度、内参等。同时包含了帧间距离计算以及BA函数,方便因子图时调用。</

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值