百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 热门文章 > 正文

实时单目追踪和稠密建图的算法框架:TANDEM算法

bigegpt 2024-10-12 05:36 5 浏览

01

概述


最近在研究TANDEM算法,是一个实时单目追踪和稠密建图的算法框架。TANDEM的算法框架可以概括为如下的几个部分:

1、位姿计算----在关键帧实施基于滑窗的像素级集束优化;

2、追踪前端----实施直接稠密图片配准,基于全局模型得到的深度图;

3、CVA-MVSNet----使用全部关键帧来预测稠密深度图;

4、全局地图----使用预测的深度图融合成全局地图,表示为TSDF体素表格。

TANDEM的整体架构图如下所示:

02

模块介绍


相关工作这里就不赘述了,主要涵盖了三维重建、RGB-D SLAM和单目SLAM三个方向的方法介绍和一般流程。这里,我们直接给出TANDEM算法框架中几个关键组件的介绍,也即是单目视觉里程计、使用CVA-MVSNet进行稠密深度估计和体素建图。

2.1单目视觉里程计

最近的一些方法,例如:DSO、ORB-SLAM,都是在多帧图像中使用一组稀疏点来追踪,最后计算出相机的位姿。虽然,使用更多的点来联合优化可以带来性能方面的优化,但是这回造成运行时间的显著提高。因此,在TANDEM中提出的视觉里程计,借鉴了DSO中所描述的----直接稀疏窗口优化后端。但是,TANDEM中还用了全局的TSDF模型来获取稠密深度图,这个深度图主要是用在前端的直接图像配准。

简单总结,TANDEM使用了稠密追踪前端和稀疏后端优化相结合的方式来提高追踪性能。

2.2稠密前端追踪

TANDEM前端的特点:

  • 提供实时相机帧频的追踪
  • 作为后端窗口优化的初始化输入
  • 实现前端稠密点追踪(相较于DSO而言)

DSO的前端做法是,一张新的输入帧,基于过去n个关键帧来实施直接配准,而这n帧构建了一个稀疏深度图 ,这个深度图是由优化窗口中所有的点生成而来的。DSO的做法是得到一个稀疏深度图,所以鲁棒性较差。

TANDEM的做法是,构建一个稠密深度图---- ,来自于构建的TSDF模型。具体做法是,对于当前关键帧的每个像素,我们都给它们赋予一个深度值,这个深度值来自于DSO中稀疏VO点深度图,或者就是来自于稠密深度图。这样做的好处,就是相对而言,前端配准是,是稠密追踪实现的。

2.3CVA-MVSNet

首先,可以给出一个简单的分析,CVA-MVSNet就是一个输入是关键帧,输出是对应长宽的深度图(注意,这里输出是一维的),中间使用到具体的模型为U-Net和3DU-Net,这样一说的话,就很好理解这一块的架构。

那么,我们给出输入关键帧的定义---- ,这里 表示的是尺度为的图像,而 就是由前端的视觉里程计计算出来的全局位姿。

CVA-MVSNet的突出点----克服了深度MVS消耗大量内存的问题,简单来说,就是通过多级层次结构实现的,同时还使用了一个自适应的可视增强模块。具体的CVA-MVSNet的模型架构图如下所示:

2.3.1单阶段深度计算

因为CVA-MVSNet使用了多阶段的方式来解决了内存损耗的问题,并且不同阶段之间大同小异,因此我们选取一个阶段进行详细分析,然后就可以熟知整个网络模型的作用和功能。

在分析之前,我们先给出模型输入和输出的一些变量的定义。

首先输入的原始图像就是我们获得关键帧的特征信息---- ,这里是从关键帧图像直接通过2D U-Net计算得到的特征信息,需要注意的是,特征信息的下标i表示特征信息的空间维度,而s的范围在1和3之间,表示的是尺度信息,这也体现了不同层次的论文思想。那么,我们可以用一个三维向量来表示 为 ,其中 表示为尺度因子为s的特征维度, ,。

接着就是,由 经过文中可微Warp操作,为3D U-Net提供输入数据----,具体的操作如下:

  • 为参考帧的每个像素定义一个深度假设向量----;
  • 对于每帧获得到的深度特征,通过可微的warp操作,这步操作同样使用到深度假设、相对位姿和相机内参;
  • 经过上面两步操作,为每帧计算一个特征卷。
  • 为了增强多视几何图特征卷,并最终得到,这一步又分为传统方法和本文的改进方法:
    • 一般的MVS方法将不同的视图平等看待,然后使用基于差异的计算指标:,其中,,
    • 本文中,基于滑窗SLAM的设置,关键帧在优化窗口中并不是均匀分布的,新关键帧一般要比旧关键帧的距离小,因此本文优化后的自适应视觉增强方法为:

03

数据集和结果


1、训练集

本文训练了两个CVA-MVSNet的模型:一个使用实际的ScanNet数据集、另一个使用拟合数据集Replica数据集,一些结果如下图所示:

对于不可见的序列,本文的训练结果如下图所示:

2、测试集

本文中使用了ICL-NUIM数据集和EuRoc数据集中的Vicon室内序列来评估稠密3D重建和追踪的结果。具体的一些结果如下:

04

结论


TANDEM是一个实时稠密单目SLAM系统,使用了直接像素里程计和多视图几何。尤其提出了CVA-MVSNet使用整个关键帧窗口,预测高质量的深度图;然后提出稠密追踪模式连接相机位姿估计和稠密3D重建,针对于TSDF融合创建的全局3D模型。结果表明,TANDEM获得更好的性能。

本文,我们对TANDEM论文进行了简单的讲解和分析,后续系列我们进一步深入分析论文的细节,以及后面的代码讲解分析。

相关推荐

得物可观测平台架构升级:基于GreptimeDB的全新监控体系实践

一、摘要在前端可观测分析场景中,需要实时观测并处理多地、多环境的运行情况,以保障Web应用和移动端的可用性与性能。传统方案往往依赖代理Agent→消息队列→流计算引擎→OLAP存储...

warm-flow新春版:网关直连和流程图重构

本期主要解决了网关直连和流程图重构,可以自此之后可支持各种复杂的网关混合、多网关直连使用。-新增Ruoyi-Vue-Plus优秀开源集成案例更新日志[feat]导入、导出和保存等新增json格式支持...

扣子空间体验报告

在数字化时代,智能工具的应用正不断拓展到我们工作和生活的各个角落。从任务规划到项目执行,再到任务管理,作者深入探讨了这款工具在不同场景下的表现和潜力。通过具体的应用实例,文章展示了扣子空间如何帮助用户...

spider-flow:开源的可视化方式定义爬虫方案

spider-flow简介spider-flow是一个爬虫平台,以可视化推拽方式定义爬取流程,无需代码即可实现一个爬虫服务。spider-flow特性支持css选择器、正则提取支持JSON/XML格式...

solon-flow 你好世界!

solon-flow是一个基础级的流处理引擎(可用于业务规则、决策处理、计算编排、流程审批等......)。提供有“开放式”驱动定制支持,像jdbc有mysql或pgsql等驱动,可...

新一代开源爬虫平台:SpiderFlow

SpiderFlow:新一代爬虫平台,以图形化方式定义爬虫流程,不写代码即可完成爬虫。-精选真开源,释放新价值。概览Spider-Flow是一个开源的、面向所有用户的Web端爬虫构建平台,它使用Ja...

通过 SQL 训练机器学习模型的引擎

关注薪资待遇的同学应该知道,机器学习相关的岗位工资普遍偏高啊。同时随着各种通用机器学习框架的出现,机器学习的门槛也在逐渐降低,训练一个简单的机器学习模型变得不那么难。但是不得不承认对于一些数据相关的工...

鼠须管输入法rime for Mac

鼠须管输入法forMac是一款十分新颖的跨平台输入法软件,全名是中州韵输入法引擎,鼠须管输入法mac版不仅仅是一个输入法,而是一个输入法算法框架。Rime的基础架构十分精良,一套算法支持了拼音、...

Go语言 1.20 版本正式发布:新版详细介绍

Go1.20简介最新的Go版本1.20在Go1.19发布六个月后发布。它的大部分更改都在工具链、运行时和库的实现中。一如既往,该版本保持了Go1的兼容性承诺。我们期望几乎所...

iOS 10平台SpriteKit新特性之Tile Maps(上)

简介苹果公司在WWDC2016大会上向人们展示了一大批新的好东西。其中之一就是SpriteKitTileEditor。这款工具易于上手,而且看起来速度特别快。在本教程中,你将了解关于TileE...

程序员简历例句—范例Java、Python、C++模板

个人简介通用简介:有良好的代码风格,通过添加注释提高代码可读性,注重代码质量,研读过XXX,XXX等多个开源项目源码从而学习增强代码的健壮性与扩展性。具备良好的代码编程习惯及文档编写能力,参与多个高...

Telerik UI for iOS Q3 2015正式发布

近日,TelerikUIforiOS正式发布了Q32015。新版本新增对XCode7、Swift2.0和iOS9的支持,同时还新增了对数轴、不连续的日期时间轴等;改进TKDataPoin...

ios使用ijkplayer+nginx进行视频直播

上两节,我们讲到使用nginx和ngixn的rtmp模块搭建直播的服务器,接着我们讲解了在Android使用ijkplayer来作为我们的视频直播播放器,整个过程中,需要注意的就是ijlplayer编...

IOS技术分享|iOS快速生成开发文档(一)

前言对于开发人员而言,文档的作用不言而喻。文档不仅可以提高软件开发效率,还能便于以后的软件开发、使用和维护。本文主要讲述Objective-C快速生成开发文档工具appledoc。简介apple...

macOS下配置VS Code C++开发环境

本文介绍在苹果macOS操作系统下,配置VisualStudioCode的C/C++开发环境的过程,本环境使用Clang/LLVM编译器和调试器。一、前置条件本文默认前置条件是,您的开发设备已...