【开源分享】VIDO-SLAM:一种视觉惯性动态物体SLAM系统

2024-08-25 06:08

本文主要是介绍【开源分享】VIDO-SLAM:一种视觉惯性动态物体SLAM系统,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章:Inertial-Only Optimization for Visual-Inertial Initialization

作者:Carlos Campos, Jose M.M. Montiel and Juan D. Tard ´ os´

代码:https://github.com/bxh1/VIDO-SLAM.git

编译:点云PCL

本文仅做学术分享,如有侵权,请联系删除。欢迎各位加入免费知识星球,获取PDF论文,欢迎转发朋友圈。内容如有错误欢迎评论留言,未经允许请勿转载!

公众号致力于分享点云处理,SLAM,三维视觉,高精地图相关的文章与技术,欢迎各位加入我们,一起每交流一起进步,有兴趣的可联系微信:920177957。本文来自点云PCL博主的分享,未经作者允许请勿转载,欢迎各位同学积极分享和交流。

摘要

VIDO-SLAM是一种视觉惯性动态物体SLAM系统,能够估计相机姿态,使用单目相机进行视觉惯性SLAM,跟踪动态物体,算法无论是否使用IMU,都可以提供了使用单目相机在Kaist数据集中运行SLAM系统。

历史文章:【开源分享】VDO-SLAM:基于视觉的动态SLAM感知系统

实现了功能包括:

(1)将MonoDepth2、FlowNet和MaskRcnn与可在基于ROS的SLAM系统中实时运行

(2)实现了室外场景中的视觉惯导SLAM

(3)跟踪和估计动态对象的运动


主要内容及贡献

这篇文章在视觉惯导SLAM初始化中的工作的主要贡献有:

(1)考虑IMU噪声的概率模型的情况下,将视觉-惯性初始化问题表述为只考虑惯的最优估计问题。

(2)一次性求解了所有的惯性参数,避免了解耦估计所产生的不一致性,这使得所有的估计都是一致。

(3)不做任何初始速度和姿态的假设,这使得该方法适用于任何初始情况。

(4)不假设IMU偏差为零,且将它们的已知信息编码为被我们的MAP估计所利用的概率先验。

根据不同传感器初始化方法可以分为三个步骤:

仅视觉的最大后验估计:使用BA初始化并运行短时间的单目ORB-SLAM,以获得一个纯视觉MAP估算的 up-to-scale,同时,计算关键帧间的IMU预积分及其协方差。

仅惯导的最大后验估计:仅针对惯性的优化,使IMU轨迹与ORB-SLAM轨迹对齐,找到尺度,关键帧的速度、重力方向和IMU偏差 biases。

视觉-惯导的联合最大后验:将上一步的解作为完整VI-BA的种子,得到联合最优解。

具体细节可查看原文:

https://arxiv.org/pdf/2003.05766.pdf

实验

下表展示了EuRoC数据集中每0.5s进行一次初始化的结果统计:

视觉惯性BA前后,通过不同初始化方法沿EuRoC数据集的所有序列获得的比例因子(估计和真值比例之间的比率)的实验分布,总共启动了2248次初始化。如下图:

与原始ORBSLAM-VI和VINS Mono的比较结果。

代码依赖:

  • ROS

  • PyTorch (Version: 1.4.0)

  • GPU (at least 8GB of memory)

  • OpenCV

  • Pangolin

  • g2o

  • Eigen

相关文章:

Jun Zhang, Mina Henein, Robert Mahony and Viorela Ila. VDO-SLAM: A Visual Dynamic Object-aware SLAM System. Submitted to The International Journal of Robotics Research. IJRR (Under Review).

Carlos Campos, J. M. M. Montiel and Juan D. Tardós, Inertial-Only Optimization for Visual-Inertial Initialization, ICRA 2020.

总结

所提出的初始化方法比大多文献中的方法更精确,计算时间非常短,这证实了最优估计理论能够正确利用传感器噪声的概率模型,获得比求解线性方程组或使用非加权最小二乘法更精确的结果。

资源

三维点云论文及相关应用分享

【点云论文速读】基于激光雷达的里程计及3D点云地图中的定位方法

3D目标检测:MV3D-Net

三维点云分割综述(上)

3D-MiniNet: 从点云中学习2D表示以实现快速有效的3D LIDAR语义分割(2020)

win下使用QT添加VTK插件实现点云可视化GUI

JSNet:3D点云的联合实例和语义分割

大场景三维点云的语义分割综述

PCL中outofcore模块---基于核外八叉树的大规模点云的显示

基于局部凹凸性进行目标分割

基于三维卷积神经网络的点云标记

点云的超体素(SuperVoxel)

基于超点图的大规模点云分割

更多文章可查看:点云学习历史文章大汇总

SLAM及AR相关分享

【开源方案共享】ORB-SLAM3开源啦!

【论文速读】AVP-SLAM:自动泊车系统中的语义SLAM

【点云论文速读】StructSLAM:结构化线特征SLAM

SLAM和AR综述

常用的3D深度相机

AR设备单目视觉惯导SLAM算法综述与评价

SLAM综述(4)激光与视觉融合SLAM

Kimera实时重建的语义SLAM系统

SLAM综述(3)-视觉与惯导,视觉与深度学习SLAM

易扩展的SLAM框架-OpenVSLAM

高翔:非结构化道路激光SLAM中的挑战

SLAM综述之Lidar SLAM

基于鱼眼相机的SLAM方法介绍

如果你对本文感兴趣,请后台发送“知识星球”获取二维码,务必按照“姓名+学校/公司+研究方向”备注加入免费知识星球,免费下载pdf文档,和更多热爱分享的小伙伴一起交流吧!

以上内容如有错误请留言评论,欢迎指正交流。如有侵权,请联系删除

扫描二维码

                   关注我们

让我们一起分享一起学习吧!期待有想法,乐于分享的小伙伴加入免费星球注入爱分享的新鲜活力。分享的主题包含但不限于三维视觉,点云,高精地图,自动驾驶,以及机器人等相关的领域。

分享及合作方式:微信“920177957”(需要按要求备注) 联系邮箱:dianyunpcl@163.com,欢迎企业来联系公众号展开合作。

点一下“在看”你会更好看耶

这篇关于【开源分享】VIDO-SLAM:一种视觉惯性动态物体SLAM系统的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1104754

相关文章

Java使用Javassist动态生成HelloWorld类

《Java使用Javassist动态生成HelloWorld类》Javassist是一个非常强大的字节码操作和定义库,它允许开发者在运行时创建新的类或者修改现有的类,本文将简单介绍如何使用Javass... 目录1. Javassist简介2. 环境准备3. 动态生成HelloWorld类3.1 创建CtC

JWT + 拦截器实现无状态登录系统

《JWT+拦截器实现无状态登录系统》JWT(JSONWebToken)提供了一种无状态的解决方案:用户登录后,服务器返回一个Token,后续请求携带该Token即可完成身份验证,无需服务器存储会话... 目录✅ 引言 一、JWT 是什么? 二、技术选型 三、项目结构 四、核心代码实现4.1 添加依赖(pom

基于Python实现自动化邮件发送系统的完整指南

《基于Python实现自动化邮件发送系统的完整指南》在现代软件开发和自动化流程中,邮件通知是一个常见且实用的功能,无论是用于发送报告、告警信息还是用户提醒,通过Python实现自动化的邮件发送功能都能... 目录一、前言:二、项目概述三、配置文件 `.env` 解析四、代码结构解析1. 导入模块2. 加载环

linux系统上安装JDK8全过程

《linux系统上安装JDK8全过程》文章介绍安装JDK的必要性及Linux下JDK8的安装步骤,包括卸载旧版本、下载解压、配置环境变量等,强调开发需JDK,运行可选JRE,现JDK已集成JRE... 目录为什么要安装jdk?1.查看linux系统是否有自带的jdk:2.下载jdk压缩包2.解压3.配置环境

Python内存优化的实战技巧分享

《Python内存优化的实战技巧分享》Python作为一门解释型语言,虽然在开发效率上有着显著优势,但在执行效率方面往往被诟病,然而,通过合理的内存优化策略,我们可以让Python程序的运行速度提升3... 目录前言python内存管理机制引用计数机制垃圾回收机制内存泄漏的常见原因1. 循环引用2. 全局变

Linux查询服务器系统版本号的多种方法

《Linux查询服务器系统版本号的多种方法》在Linux系统管理和维护工作中,了解当前操作系统的版本信息是最基础也是最重要的操作之一,系统版本不仅关系到软件兼容性、安全更新策略,还直接影响到故障排查和... 目录一、引言:系统版本查询的重要性二、基础命令解析:cat /etc/Centos-release详

更改linux系统的默认Python版本方式

《更改linux系统的默认Python版本方式》通过删除原Python软链接并创建指向python3.6的新链接,可切换系统默认Python版本,需注意版本冲突、环境混乱及维护问题,建议使用pyenv... 目录更改系统的默认python版本软链接软链接的特点创建软链接的命令使用场景注意事项总结更改系统的默

Linux从文件中提取特定内容的实用技巧分享

《Linux从文件中提取特定内容的实用技巧分享》在日常数据处理和配置文件管理中,我们经常需要从大型文件中提取特定内容,本文介绍的提取特定行技术正是这些高级操作的基础,以提取含有1的简单需求为例,我们可... 目录引言1、方法一:使用 grep 命令1.1 grep 命令基础1.2 命令详解1.3 高级用法2

在Linux系统上连接GitHub的方法步骤(适用2025年)

《在Linux系统上连接GitHub的方法步骤(适用2025年)》在2025年,使用Linux系统连接GitHub的推荐方式是通过SSH(SecureShell)协议进行身份验证,这种方式不仅安全,还... 目录步骤一:检查并安装 Git步骤二:生成 SSH 密钥步骤三:将 SSH 公钥添加到 github

使用IDEA部署Docker应用指南分享

《使用IDEA部署Docker应用指南分享》本文介绍了使用IDEA部署Docker应用的四步流程:创建Dockerfile、配置IDEADocker连接、设置运行调试环境、构建运行镜像,并强调需准备本... 目录一、创建 dockerfile 配置文件二、配置 IDEA 的 Docker 连接三、配置 Do