DOT:视觉SLAM的动态目标物跟踪

2024-08-25 06:18

本文主要是介绍DOT:视觉SLAM的动态目标物跟踪,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

点云PCL免费知识星球,点云论文速读。

文章:DOT: Dynamic Object Tracking for Visual SLAM

作者:Irene Ballester, Alejandro Fontan, Javier Civera

翻译:分享者

本文仅做学术分享,如有侵权,请联系删除。欢迎各位加入免费知识星球,获取PDF论文,欢迎转发朋友圈分享快乐。

论文阅读模块将分享点云处理,SLAM,三维视觉,高精地图相关的文章。公众号致力于理解三维视觉领域相关内容的干货分享,欢迎各位加入我,我们一起每天一篇文章阅读,开启分享之旅,有兴趣的可联系微信dianyunpcl@163.com。

论文摘要

在本文中,我们提出了DOT(dynamic object tracking,动态目标跟踪)系统,它是在现有SLAM系统的基础上增加的一个前端,可以显著提高SLAM系统在高动态环境下的鲁棒性和准确性。DOT系统结合了实例分割和多视图几何生成动态对象的mask,使基于刚性场景模型的SLAM系统在优化时避免此类mask图像区域。

为了确定哪些目标实际在移动,首先是对潜在的移动对象进行对象的实例分割,然后根据估计的相机运动,通过最小化光度重投影误差来跟踪这些对象。与其他方法相比,这种短期跟踪的方法提高了分割的准确性。最终,根据结果只生成实际的动态对象的mask。我们在三个公共数据集中用ORB-SLAM 2对DOT进行了评估。实验结果表明,该方法显著提高了ORB-SLAM 2的精度和鲁棒性,特别是在高动态场景下。

内容精华

DOT系统概述

下图显示了DOT系统的概述。DOT的输入是一定视频速率下的RGB-D或立体图像,其输出是对场景的静态和动态元素进行编码的mask,可直接用于SLAM或里程计系统。第一个模块(实例分割)对应于CNN,该CNN以像素方式分割出所有潜在的动态对象。在我们的实验中,使用自动驾驶数据集,只有汽车被分割成潜在的运动。由于DOT是从一帧到另一帧跟踪mask图像,因此不需要在每一帧都执行此操作。图像处理模块提取并分割属于图像静态区域的点和动态对象中的点。仅使用场景的静态部分用来跟踪相机位姿。

判断物体在运动吗?使用几何标准确定网络标记为潜在动态的对象是否确实在移动。此信息用于更新编码每个帧的静态和动态区域的mask,并为里程计/SLAM视觉系统提供信息。

最后,DOT动态物体的跟踪不需要对每一帧的运动进行估计(因此不需要对每一帧图像进行新的运动估计)。考虑到实例分割的巨大计算量,这可能是DOT与其他最新方法相比的一个优势所在。

实例分割

使用deep network Detectron2分割图像中所有可能移动的实例。对网络的输出进行了修改,以在一幅图像中获得所有的分割mask。未被划分为潜在移动类别的图像区域被赋予一个“背景”标签,并且在随后的块中被认为是静态的。

相机和目标跟踪

在前一步的实例分割中,我们的目标是估计摄像机和动态物体的运动。由于摄像机的运动和物体的运动在图像中是耦合的,所以我们在两步过程中进行估计。首先将摄像机的姿态作为一个相对变换,然后减去相机的运动来估计目标物的运动

跟踪的质量处理

遮挡、光照条件的变化和分割误差对目标和相机姿态的准确性有重要影响。如算法1所示,在目标跟踪步骤之后开发了几种策略,以减少它们的影响。

判断对象是否运动

这个模块主要根据相机的运动和对象的位移来判断真实的对象是否有移动。

上图为计算流程的一个部分的示例。第一排显示点估计的跟踪相机和对象。请注意,并非所有帧都需要来自网络的分割mask(黄色帧)。下面一行显示由DOT生成的分割mask,这些掩码对运动分类进行编码:运动中(彩色)、静态(黑色)和未观察到(灰色)。

mask传播

DOT系统利用每帧中可用的两个分割mask:一个由神经网络产生,另一个由前一帧传播。将两个mask进行图像映射,可以将不同帧中发现的实例对象可靠地关联到同一个3D对象中。状态传播。将新的语义实例与预先存在的对象关联起来,可以预测它们的运动(这对于快速移动的对象至关重要)。此外,在物体移动到运动不可见的位置时,可以保持运动的分类。独立分割。我们的方案允许语义分割掩码从初始种子在时间和空间上传播,消除了分割每一帧的需要。在低端平台上,以较低的频率运行神经网络使实时目标跟踪更容易。作为进一步的好处,DOT能够填补网络在连续图像之间暂时丢失对象实例化的空白。

● 实验

虽然DOT的潜在应用范围很广,从目标检测到增强现实或自动驾驶,本文中我们提供了一个深入的评估,以证明“了解物体的运动”能在多大程度上提高SLAM系统的精度。

场景内容。所研究的三种构型的样本结果。左:没有mask。中心:圆点mask。右图:所有mask。

● 总结

DOT是一种新颖的SLAM系统前端算法,它结合实例分割和多视图几何方程,对运动目标进行鲁棒检测和跟踪。用ORB-SLAM2对三个用于自主驾驶研究的公共数据集进行了评估表明,DOT生成的物体运动信息允许我们分割动态内容,显著提高了其鲁棒性和准确性。DOT与SLAM的独立性使得它成为一个多功能的前端,只需最小的集成工作就可以适应任何最先进的视觉里程计或SLAM系统。与其他系统不同,点云的mask跟踪降低了应进行分割(通常涉及高计算成本)的速率,降低了相对于现有技术的计算需求。

资源

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

【点云论文速读】基于激光雷达的里程计及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方法介绍

往期线上分享录播汇总

第一期B站录播之三维模型检索技术

第二期B站录播之深度学习在3D场景中的应用

第三期B站录播之CMake进阶学习

第四期B站录播之点云物体及六自由度姿态估计

第五期B站录播之点云深度学习语义分割拓展

第六期B站录播之Pointnetlk解读

[线上分享录播]点云配准概述及其在激光SLAM中的应用

[线上分享录播]cloudcompare插件开发

[线上分享录播]基于点云数据的 Mesh重建与处理

[线上分享录播]机器人力反馈遥操作技术及机器人视觉分享

[线上分享录播]地面点云配准与机载点云航带平差

点云PCL更多活动请查看:点云PCL活动之应届生校招群

扫描下方微信视频号二维码可查看最新研究成果及相关开源方案的演示:

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

扫描二维码

                   关注我们

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

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

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

这篇关于DOT:视觉SLAM的动态目标物跟踪的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

python+opencv处理颜色之将目标颜色转换实例代码

《python+opencv处理颜色之将目标颜色转换实例代码》OpenCV是一个的跨平台计算机视觉库,可以运行在Linux、Windows和MacOS操作系统上,:本文主要介绍python+ope... 目录下面是代码+ 效果 + 解释转HSV: 关于颜色总是要转HSV的掩膜再标注总结 目标:将红色的部分滤

一文详解SQL Server如何跟踪自动统计信息更新

《一文详解SQLServer如何跟踪自动统计信息更新》SQLServer数据库中,我们都清楚统计信息对于优化器来说非常重要,所以本文就来和大家简单聊一聊SQLServer如何跟踪自动统计信息更新吧... SQL Server数据库中,我们都清楚统计信息对于优化器来说非常重要。一般情况下,我们会开启"自动更新

mybatis-plus 实现查询表名动态修改的示例代码

《mybatis-plus实现查询表名动态修改的示例代码》通过MyBatis-Plus实现表名的动态替换,根据配置或入参选择不同的表,本文主要介绍了mybatis-plus实现查询表名动态修改的示... 目录实现数据库初始化依赖包配置读取类设置 myBATis-plus 插件测试通过 mybatis-plu

基于Canvas的Html5多时区动态时钟实战代码

《基于Canvas的Html5多时区动态时钟实战代码》:本文主要介绍了如何使用Canvas在HTML5上实现一个多时区动态时钟的web展示,通过Canvas的API,可以绘制出6个不同城市的时钟,并且这些时钟可以动态转动,每个时钟上都会标注出对应的24小时制时间,详细内容请阅读本文,希望能对你有所帮助...

Vue中动态权限到按钮的完整实现方案详解

《Vue中动态权限到按钮的完整实现方案详解》这篇文章主要为大家详细介绍了Vue如何在现有方案的基础上加入对路由的增、删、改、查权限控制,感兴趣的小伙伴可以跟随小编一起学习一下... 目录一、数据库设计扩展1.1 修改路由表(routes)1.2 修改角色与路由权限表(role_routes)二、后端接口设计

前端 CSS 动态设置样式::class、:style 等技巧(推荐)

《前端CSS动态设置样式::class、:style等技巧(推荐)》:本文主要介绍了Vue.js中动态绑定类名和内联样式的两种方法:对象语法和数组语法,通过对象语法,可以根据条件动态切换类名或样式;通过数组语法,可以同时绑定多个类名或样式,此外,还可以结合计算属性来生成复杂的类名或样式对象,详细内容请阅读本文,希望能对你有所帮助...

Nginx实现动态封禁IP的步骤指南

《Nginx实现动态封禁IP的步骤指南》在日常的生产环境中,网站可能会遭遇恶意请求、DDoS攻击或其他有害的访问行为,为了应对这些情况,动态封禁IP是一项十分重要的安全策略,本篇博客将介绍如何通过NG... 目录1、简述2、实现方式3、使用 fail2ban 动态封禁3.1 安装 fail2ban3.2 配

Vue3中的动态组件详解

《Vue3中的动态组件详解》本文介绍了Vue3中的动态组件,通过`component:is=动态组件名或组件对象/component`来实现根据条件动态渲染不同的组件,此外,还提到了使用`markRa... 目录vue3动态组件动态组件的基本使用第一种写法第二种写法性能优化解决方法总结Vue3动态组件动态

Android 悬浮窗开发示例((动态权限请求 | 前台服务和通知 | 悬浮窗创建 )

《Android悬浮窗开发示例((动态权限请求|前台服务和通知|悬浮窗创建)》本文介绍了Android悬浮窗的实现效果,包括动态权限请求、前台服务和通知的使用,悬浮窗权限需要动态申请并引导... 目录一、悬浮窗 动态权限请求1、动态请求权限2、悬浮窗权限说明3、检查动态权限4、申请动态权限5、权限设置完毕后

Java使用POI-TL和JFreeChart动态生成Word报告

《Java使用POI-TL和JFreeChart动态生成Word报告》本文介绍了使用POI-TL和JFreeChart生成包含动态数据和图表的Word报告的方法,并分享了实际开发中的踩坑经验,通过代码... 目录前言一、需求背景二、方案分析三、 POI-TL + JFreeChart 实现3.1 Maven