【论文笔记】RGB-D SLAM in Dynamic Environments Using Static Point Weighting(静态权值策略)在动态环境中使用静态点加权的RGB_DSLAM

本文主要是介绍【论文笔记】RGB-D SLAM in Dynamic Environments Using Static Point Weighting(静态权值策略)在动态环境中使用静态点加权的RGB_DSLAM,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章摘要

针对动态环境,提出了一种基于实时深度边缘的RGB_D SLAM系统。这个系统与现有的最先进的动态环境方法相比,可以显著地减小跟踪误差。

研究背景与论文工作

导航定位随着相机成本的减小发展越来越快,其中在SLAM系统中扮演者很重要角色的视觉测量仍不成熟。目前最先进的研究方法都是假定环境是静态的,忽略了动态环境中经常出现的人、物等因素的影响。而视觉测量目前主要分为两大阵营,一种是上一篇文章里写道的Dense Visual SLAM for RGB-D Cameras里面提到的密集视觉测量方法,而另一种是基于特征对应的视觉测量方法。在这两种方法中为了补偿动态点,都需要进行或多或少地特征对应,这是十分耗时的。
本文提出通过深度边缘点的对应来进行视觉测量。深度边缘点的密度很低,可以进行有效得匹配;而另一方面,深度边缘点反映了环境的纹理。在这里插入图片描述如上图,这里提取的全部是环境中的深度边缘点,既反映了环境的纹理,同时也能进行有效地匹配。

基于前景边缘的视觉测量法

总述

前景边缘首先只提取图片的边缘点作为估计,然后每隔N张图选取一张作为关键帧,关键帧则是用来进行静态权值估计的。得到的静态权值则可以反映出这个点属于静态环境的可能性有多大。静态权值还可以用来与IAICP算法相结合用来削减变换估计中动态移动物体的影响。

前景边缘点与遮挡边缘点

前景边缘点是指靠近摄像机的物体的边缘的点,这些点的特征是对相机的运动比较稳定,不会随着相机的运动出现几何误差,而遮挡边缘点则会因为相机的移动而非常敏感。所以在评估相机位置时候应该要排除遮挡边缘点的干扰。

静态权值估计

在这里插入图片描述图片中第二排是识别出来的前景边缘点,第三排是通过静态权值计算得出的结果,红色为动态物体的边缘,二绿色则是静态物体的边缘。

由于具体如何评估静态权值的理论部分和闭环检测部分尚且不懂,我直接跳过,下面阐述实验结果

实验结果

此前很多前辈的实验都是通过 TUM RGB-D dataset来做的,结果都非常得棒,可是缺少了对图片中动态物体的评估。

视觉测量方法评估

在这里插入图片描述

1) Effect of Static Weighting

:The average improvement in terms of translational drift for low-dynamic sequences is 8%, and for high-dynamic sequences, the average improvement is 52%. This verifies that our static weighting strategy effectively reduces the influence of dynamic objects, especially for high-dynamic environments.

2) Effect of Static Weight Initialization:

在这里插入图片描述a图没有静态权重初始化则人身上的很多点会被当成是静态物体,b图加入了静态权重初始化,则人身上的边缘点区分得更好。

3) Comparison With Previous Methods:

Dense Visual Odometry (DVO):目前最先进的静态处理方案,但是只适用于有小部分动态点的情况。
model-based dense-visual-odometry (BaMVO):为动态环境设计的方案。
结论: Our method improves the visual odometry performance by 74.6% compared to DVO, and by 58.2% compared to BaMVO.
我们的方案基本上在所有的动态环境中表现都是最好的,甚至在静态环境中表现也最好。

结合后的SLAM系统评估

在这里插入图片描述

这篇关于【论文笔记】RGB-D SLAM in Dynamic Environments Using Static Point Weighting(静态权值策略)在动态环境中使用静态点加权的RGB_DSLAM的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

中文分词jieba库的使用与实景应用(一)

知识星球:https://articles.zsxq.com/id_fxvgc803qmr2.html 目录 一.定义: 精确模式(默认模式): 全模式: 搜索引擎模式: paddle 模式(基于深度学习的分词模式): 二 自定义词典 三.文本解析   调整词出现的频率 四. 关键词提取 A. 基于TF-IDF算法的关键词提取 B. 基于TextRank算法的关键词提取

无人叉车3d激光slam多房间建图定位异常处理方案-墙体画线地图切分方案

墙体画线地图切分方案 针对问题:墙体两侧特征混淆误匹配,导致建图和定位偏差,表现为过门跳变、外月台走歪等 ·解决思路:预期的根治方案IGICP需要较长时间完成上线,先使用切分地图的工程化方案,即墙体两侧切分为不同地图,在某一侧只使用该侧地图进行定位 方案思路 切分原理:切分地图基于关键帧位置,而非点云。 理论基础:光照是直线的,一帧点云必定只能照射到墙的一侧,无法同时照到两侧实践考虑:关

使用SecondaryNameNode恢复NameNode的数据

1)需求: NameNode进程挂了并且存储的数据也丢失了,如何恢复NameNode 此种方式恢复的数据可能存在小部分数据的丢失。 2)故障模拟 (1)kill -9 NameNode进程 [lytfly@hadoop102 current]$ kill -9 19886 (2)删除NameNode存储的数据(/opt/module/hadoop-3.1.4/data/tmp/dfs/na

Hadoop数据压缩使用介绍

一、压缩原则 (1)运算密集型的Job,少用压缩 (2)IO密集型的Job,多用压缩 二、压缩算法比较 三、压缩位置选择 四、压缩参数配置 1)为了支持多种压缩/解压缩算法,Hadoop引入了编码/解码器 2)要在Hadoop中启用压缩,可以配置如下参数

Makefile简明使用教程

文章目录 规则makefile文件的基本语法:加在命令前的特殊符号:.PHONY伪目标: Makefilev1 直观写法v2 加上中间过程v3 伪目标v4 变量 make 选项-f-n-C Make 是一种流行的构建工具,常用于将源代码转换成可执行文件或者其他形式的输出文件(如库文件、文档等)。Make 可以自动化地执行编译、链接等一系列操作。 规则 makefile文件

第10章 中断和动态时钟显示

第10章 中断和动态时钟显示 从本章开始,按照书籍的划分,第10章开始就进入保护模式(Protected Mode)部分了,感觉从这里开始难度突然就增加了。 书中介绍了为什么有中断(Interrupt)的设计,中断的几种方式:外部硬件中断、内部中断和软中断。通过中断做了一个会走的时钟和屏幕上输入字符的程序。 我自己理解中断的一些作用: 为了更好的利用处理器的性能。协同快速和慢速设备一起工作

使用opencv优化图片(画面变清晰)

文章目录 需求影响照片清晰度的因素 实现降噪测试代码 锐化空间锐化Unsharp Masking频率域锐化对比测试 对比度增强常用算法对比测试 需求 对图像进行优化,使其看起来更清晰,同时保持尺寸不变,通常涉及到图像处理技术如锐化、降噪、对比度增强等 影响照片清晰度的因素 影响照片清晰度的因素有很多,主要可以从以下几个方面来分析 1. 拍摄设备 相机传感器:相机传

阿里开源语音识别SenseVoiceWindows环境部署

SenseVoice介绍 SenseVoice 专注于高精度多语言语音识别、情感辨识和音频事件检测多语言识别: 采用超过 40 万小时数据训练,支持超过 50 种语言,识别效果上优于 Whisper 模型。富文本识别:具备优秀的情感识别,能够在测试数据上达到和超过目前最佳情感识别模型的效果。支持声音事件检测能力,支持音乐、掌声、笑声、哭声、咳嗽、喷嚏等多种常见人机交互事件进行检测。高效推

动态规划---打家劫舍

题目: 你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。 给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内能够偷窃到的最高金额。 思路: 动态规划五部曲: 1.确定dp数组及含义 dp数组是一维数组,dp[i]代表

在JS中的设计模式的单例模式、策略模式、代理模式、原型模式浅讲

1. 单例模式(Singleton Pattern) 确保一个类只有一个实例,并提供一个全局访问点。 示例代码: class Singleton {constructor() {if (Singleton.instance) {return Singleton.instance;}Singleton.instance = this;this.data = [];}addData(value)