基于RGBD和惯性输入的实时室内场景重建

news2024/9/21 16:43:12

来源:投稿 作者:小灰灰
编辑:学姐

论文标题:《REAL-TIME INDOOR SCENE RECONSTRUCTION WITH RGBD AND INERTIA INPUT》

论文链接:https://arxiv.org/pdf/2008.00490.pdf

代码链接:https://github.com/CWanli/RecoNet

数据集:PASCAL-VOC12、PASCAL-Context、COCO Stuff、ADE20K和SIFT-FLOW

快速运动是为了增强现实,或者混合现实。

主要用于商业和公司的人,随意的运动,增强现实打cs游戏,会设计到大量的跑,运动,快速的头部旋转,这样会导致彩色的图片会发生模糊,现有的算法不能去处理这些情况。

在机器人上需要快速运动,在商用上,物流分拣,用的最多的就是慢速的运动,没有考虑到这种情况。

而摄像机运动估计是三维场景重建和同步定位与映射(SLAM)的关键技术。

为了使其切实可行,以前的工作通常假设相机运动缓慢,这限制了它在许多实际情况下的使用。

我们提出了一种端到端的三维重建系统,该系统结合了颜色、深度和惯性测量,通过快速的传感器运动实现稳健的重建。

我们的框架扩展了卡尔曼滤波器来融合这三种信息,并涉及一种迭代方法来联合优化特征对应、相机姿态和场景几何。

我们还提出了一种新的几何感知面片变形技术,以适应图像域中的特征外观,从而在快速相机运动下实现更精确的特征匹配。

研究背景

为什么会出现模糊?

一是因为相机在曝光时间内的运动所导致的,如下图可见,虚线代表上一阶段的相机,实线代表当前相机,相机看见真实场景的红色和绿色点,当我们看见相机运动时,就会出现相定区域的模糊。

二是相机到场景的距离有关。

三是与相机的运动状态有关。相机平移和相机旋转的不同。

解决图像模糊的已有的方法:

1、曝光时间,减少曝光时间,增大光圈量,这样SNR就会不好。

2、使用特征点匹配的方法,拿一张图片去提取特征点,特征描述子很难提取,最终导致相机追踪失败。

3、直接法,可以很好适应,计算的是光度误差,两帧图像运动的相对位置是相同速度的,会遇到收缩膨胀效益。如下图的黑色块就是膨胀效益。

4、ICP算法,很容易陷入局部最优解,得出相机失败,和定位错误。

此图显示了由相机运动和面片几何形状引起的面片SE效果。

网络结构

输入,我们输入的是一个彩色图像,深度图像(记录一个相机到一个场景区域或者一个三维点的距离)和IMU(记录的是传感器自身的平移加速度和角速度)

采用迭代扩展卡尔曼滤波的这样一个框架。红、绿、蓝箭头分别表示当前帧的输入、迭代操作和上一帧的patch,该方法主要由四部分组成:几何感知特征跟踪,探索滤波效果并进行斑块变形;滤波框架,解释卡尔曼预测和更新步骤;模型融合和patch更新。

首先输入IMU 通过卡尔曼预测去得到pose,预测的pose输入图3的Projection,去检测收缩膨胀效益,同时对patch去做变形,然后把变形后的patch做直接法的匹配,去计算一个光度误差,同时我们的输入有区块的几何信息,可以去计算区块的几何误差,我们有两个能量值,一个光度误差,一个几何误差,将两个误差加在一起得到一个能量值,我们把这个能量值当作更新里面估计的观测值,真实观测值为0,虚框里面去做一个卡尔曼更新,更新出更好相机的pose,我们将第二个pose重新放回虚框里面,去根据图3去做进一步的优化,更新之后我们利用pose,去做模型的融合,讲模型输入去更新patch。

结果展示

我们首先展示了我们的几何感知特征跟踪方法的有效性,该方法评估了SE效应,并对具有快速摄像机运动的序列中的精确特征跟踪进行了细分。然后,我们通过比较有无IMU的系统来评估惯性信息的好处。最后,在传感器快速运动的数据集中,将我们的三维重建方法与最先进的系统进行了比较。

这是比较了几个数据集,包括ICL数据集,TUM数据集,以及我们通过手持传感器收集的数据集。

表1列出了patch的平均强度误差(AIE)。根据记录图像的质量,所有数据集分为慢数据集和快数据集。

更具体地说,由于没有明确的划分相机速度的标准,因此我们根据大多数公共数据集的统一特征,根据经验将不产生图像运动模糊的运动设置为慢速相机运动,将产生严重图像模糊的运动设为快速相机运动。

从表中,我们发现我们的方法在所有数据集中的AIE都较低,尤其是在相机快速运动的数据集中。

膨胀效应

对比直接法和本文提出算法在两个连续帧内的patch特征跟踪结果。patch尺寸10*10,并且在每一帧中提取不超过100个patch。

收缩效应

本文的方法与其他方法进行的比较。

关注下方《学姐带你玩AI》🚀🚀🚀

回复“CVPR”获取顶会必读论文合集

码字不易,欢迎大家点赞评论收藏!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/659718.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Spark01-Spark快速上手、运行模式、运行框架、核心概念

1 概述 Spark和Hadoop Hadoop HDFS(GFS:TheGoogleFileSystem)MapReduce总结:性能横向扩展变得容易,横向拓展:增加更多的计算节点来扩展系统的处理能力Hbase:分布式数据库 Spark Spark CoreSpark SQLSQL 方言(HQL)Spark Streamin…

玩转注册表,这几个windowsAPI函数就够了

注册表的结构 注册表是一个数据库,它的结构同逻辑磁盘类似。注册表包含键(Key),它类似磁盘中的目录,注册表还包含键值(Value),它类似磁盘中的文件。一个键可以包含多个子健和键值,其中键值用于存储数据,顶…

陌陌聊天数据分析 (一)

陌陌聊天数据分析(一) 目标 基于Hadoop和Hive实现聊天数据统计分析,构建聊天数据分析报表 需求 统计今日总消息量统计今日每小时消息量,发送和接收用户数量统计今日各地区发送消息数据量统计今日发送消息和接收消息用户数统计…

vue移动端手把手教你封装一个可移动悬浮窗、可移动打开扇形悬浮按钮组件

目录 概要 功能设计 技术细节-API回顾 touchstart 事件 touchmove事件 完整的代码实现(悬浮窗) 运行效果 进阶封装——可移动扇形展开悬浮按钮 实现效果演示 需求分析 代码实现 概要 悬浮窗、悬浮按钮是项目中常见的一种交互设计,特别是在移…

Linux国产操作系统,UCA-系统工程师学习必备技能,文件管理和查找、内容查找、归档的再学习

复习和巩固Linux的基础操作,对文件管理和查找、内容查找、归档以及管道和输入输出重定向进行再学习。 目录 1.文件管理 1. 1.head命令 1.2. tail命令 1.3. more/less命令 1.4. wc 统计命令 1.5. sort 排序命令 1.6. uniq 去重命令 1.7. paste合并命令 2.文…

基于matlab对现代相控阵系统中常用的子阵列进行建模分析(附源码)

一、前言 本示例说明如何使用相控阵系统工具箱对现代相控阵系统中常用的子阵列进行建模并进行分析。 相控阵天线与传统碟形天线相比具有许多优势。相控阵天线的元件更容易制造;整个系统受组件故障的影响较小;最重要的是,可以向不同方向进行电子扫描。 但是&#xff…

耗时半个月,终于把十几个大厂的python面试题整理成了PDF合集(基础+高级+web+数据库+爬虫)

大家好,最近有不少小伙伴在后台留言,近期的面试越来越难了,要背的越来越多了,考察得越来越细,明摆着就是想让我们徒手造航母嘛!实在是太为难我们这些程序员了。 这不,为了帮大家节约时间&#…

JVM垃圾回收与双亲委派模型

观前提示:本篇博客演示使用的 IDEA 版本为2021.3.3版本,使用的是Java8(又名jdk1.8) 前端使用VSCode(Visual Studio Code1.78.2) 电脑使用的操作系统版本为 Windows 10 目录 1. 什么是 JVM 2. jvm 发展史 2.1 Sun Classic VM 2.2 Exact VM 2.3 HotSpot VM 2.4 JRockit …

Docker部署——将jar包打成docker镜像并启动容器

在代码编写完成即将部署的时候,如果采用docker容器的方法,需要将jar包打成docker镜像并通过镜像将容器启动起来。具体的步骤如下。 一、首先下载java镜像 先使用docker search java命令进行搜索。 然而在拉取镜像的时候要注意不能直接去选择pull java ,…

在线DDL操作踩坑记录

官方地址:GitHub - github/gh-ost: GitHubs Online Schema-migration Tool for MySQL 使用ghost方式在线对mysql表进行ddl ghost原理: 要对表A进行DDL,在主库建立一个ghost表 A1在表A1上进行alter操作伪装成一个mysql的从库,监…

Java集合框架:队列、Queue和Deque详解

目录 一、普通队列 1. 概念 2. Queue(Java集合框架的接口) 3. Queue中的方法 4. 方法使用演示 5. 队列的模拟实现 6. 顺序普通队列的缺点: 二、循环队列 1. 循环队列也是一种数据结构。基于上述队列的缺点,此时就有了循环…

为什么我不建议你入行网络安全,因为99.9%的人都绕不过这三个坎

前言 我一个朋友老赵,老赵在一家大型互联网公司做高级网络安全工程师,从实习生到工程师整整呆了六年。去年他们公司为了缩减成本,做了裁员,他也在其中,取而代之的是一个只有三年工作经验的 “新人” … 老赵想着&…

Windows10下安装Oracle19c提示“无法将 **\** 安装用户添加到 ** 组“解决办法

问题描述 操作系统:window10 数据库版本:Oracle19c 本机在安装Oracle19c提示无法将 ZHOUQUAN\zhouquan 安装用户添加到 %2% 组。 问题原因 根据安装的对话框中的日志,找到并打开 日志报错信息: 信息: WindowsSecurityExcep…

时序预测 | Matlab实现INFO-ELM向量加权算法优化极限学习机时间序列预测

时序预测 | Matlab实现INFO-ELM向量加权算法优化极限学习机时间序列预测 目录 时序预测 | Matlab实现INFO-ELM向量加权算法优化极限学习机时间序列预测效果一览基本介绍程序设计学习总结参考资料 效果一览 基本介绍 Matlab实现INFO-ELM向量加权算法优化极限学习机时间序列预测 …

skywalking 源码

源码核心是SkyWalkingAgent 找到一堆插件,来对符合条件的类来代理 通过AbstractClassEnhancePluginDefine.define方法来。 如果有很多版本的插件,spring有2.0版本,3.0版本,4.0版。 具体使用哪个版本,看被增加的类使用的是哪个版本的spring …

vue基础--计算商品的总价格

计算商品的总价格: 1、在 父组件中 通过计算属性 动态把总价格计算出来, 2、通过 父向子传值,通过自定义属性,把值传给 子组件 父组件: 1、使用计算属性computed 计算总价格: 1.1、先用filter 过滤出 数…

Unity UGUI5——图集

一、Drawcall ​ 字面理解 DrawCall,就是绘制呼叫的意思,表示 CPU(中央处理器)通知 GPU(图形处理器-显卡) (一)DrawCall 概念 就是 CPU (处理器)准备好渲染…

基于Web的停车场管理系统(Java)

目录 一、系统介绍 1.开发的环境 2.本系统实现的功能 3.数据库用到的表 4.工程截图 二、系统展示 1、登录页面 2、首页 3、系统信息管理模块 4、车位信息管理模块 5、IC卡信息管理模块 ​编辑6、固定车主停车管理模块 7、临时车主停车管理模块 8、系统功能操作模块 …

unity3d:小地图UV,UGUIshader毒圈挖孔,缩圈

运行效果 场景中缩圈 小地图中挖孔 大地图中挖孔 小地图 方案1使用Mask 给了一个方形的mask组件,然后根据玩家位置计算出地图左下角的位置进行移动。这种实现方式虽然简单,但是会有两个问题: 1.Overdraw特别大,几乎很多时候会有…

【LLMs 入门实战 】Vicuna 模型学习与实战

UC伯克利学者联手CMU、斯坦福等,再次推出一个全新模型70亿/130亿参数的Vicuna,俗称「小羊驼」,小羊驼号称能达到GPT-4的90%性能。 欢迎使用小羊驼🦙环境搭建权重下载下载 Vicuna Weight下载 LLAMA Weight构建真正的 working weigh…