【论文解读】CVPR2024:DUSt3R: Geometric 3D Vision Made Easy

论文“”https://openaccess.thecvf.com/content/CVPR2024/papers/Wang_DUSt3R_Geometric_3D_Vision_Made_Easy_CVPR_2024_paper.pdf 

代码:GitHub - naver/dust3r: DUSt3R: Geometric 3D Vision Made Easy


            DUSt3R是一种旨在简化几何3D视觉任务的新框架。作者着重于使3D重建过程更加易于使用和高效。该框架利用深度学习和几何处理的最新进展,提高了准确性并降低了计算复杂性。 

1 摘要

        本文提出了DUSt3R,一种无需相机校准或视点位置信息即可处理任意图像集合的密集、无约束立体3D重建的全新范式。我们将成对重建问题视为点图的回归,放宽了传统投影相机模型的硬约束。这种方法统一了单目和双目重建案例。

        在提供多于两张图像的情况下,我们进一步提出了一种简单但有效的全局对齐策略,将所有成对点图表达在一个共同的参考框架中。我们基于标准Transformer编码器和解码器的网络架构,利用强大的预训练模型。       

        我们的方法直接提供了场景的3D模型以及深度信息,并且可以从中无缝地恢复像素匹配、焦距、相对和绝对相机参数。在单目和多视图深度估计以及相对姿态估计方面的广泛实验展示了DUSt3R如何有效地统一各种3D视觉任务,创造新的性能记录。总而言之,DUSt3R使许多几何3D视觉任务变得简单。

图1展示了DUSt3R的工作流程和重建效果。

  • 上半部分:DUSt3R以一组不受约束的图像为输入,输出点图(pointmaps),从这些点图可以直接推导出各种几何量。

  • 下半部分:展示了DUSt3R在没有输入相机位姿或内参的情况下进行的一致3D重建。从左到右依次是输入图像、彩色点云、带有阴影的渲染。右上角的图示例展示了DUSt3R在没有视觉重叠的情况下也能进行场景重建。

2 主要贡献

  1. 简化的流程:DUSt3R将传统的多步骤3D视觉流程简化为一个更直接的过程。这种简化有助于减少错误并提高可用性。
  2. 鲁棒性:该框架在各种数据集和场景中表现出鲁棒性,包括不同的光照条件和遮挡情况。
  3. 高效性:通过优化算法组件和实现方式,DUSt3R在不牺牲准确性的情况下,实现了显著的计算效率提升。

3 核心算法: 

         DUSt3R算法结合了现代深度学习技术和传统几何方法,通过高效的点云生成和三维重建技术,提供高精度和高鲁棒性的三维重建结果。 

4  DUSt3R网络的架构及其主要组件

图2展示了DUSt3R网络的架构及其主要组件。这张图形象地说明了网络如何处理输入的两张RGB图像(I1和I2),并生成对应的点云图(Pointmap)和置信度图(Confidence Map)。

网络架构
  1. 输入图像

    输入是两张RGB图像,分别表示为I1和I2。I1表示由第一个相机拍摄的图像,I2表示由第二个相机拍摄的图像。

  2. ViT编码器(ViT Encoder)

    输入图像I1和I2首先经过一个共享权重的ViT编码器进行特征提取。ViT编码器是一种基于视觉Transformer(ViT)的模型,用于将图像转化为Token表示(Token Representation)。编码后的特征表示分别为F1和F2。

  3. Patchify

    编码器输出的Token表示F1和F2会被划分成小块(Patchify),每个块表示图像的一部分。

  4. Transformer解码器(Transformer Decoder)

    经过Patchify处理后的特征表示F1和F2分别输入到两个Transformer解码器中,这两个解码器通过交叉注意力机制不断交换信息。交叉注意力机制允许解码器在解码过程中综合两张图像的信息,从而提高点云图的精度。

  5. 回归头(Regression Head)

    Transformer解码器的输出结果传递给两个回归头,分别对应输入的两张图像。回归头负责生成最终的点云图(X1,1和X2,1)和置信度图(C1,1和C2,1)。

  6. 输出

    最终输出的点云图(X1,1和X2,1)和置信度图(C1,1和C2,1)都以第一张图像(I1)的坐标系为基准。这种设计简化了后续的处理步骤,使得点云图可以直接在同一坐标系下进行操作和分析。

训练过程
  • 损失函数
    • 网络使用简单的回归损失函数(公式4)进行训练。损失函数基于预测的点云图和真实点云图之间的欧几里得距离进行计算。
    • 为了应对尺度模糊性,网络对预测和真实的点云图进行归一化处理,通过计算所有有效点到原点的平均距离来确定缩放因子。
    • 网络还会学习为每个像素预测一个置信度分数,这个置信度分数表示网络对该像素预测的可靠程度。最终的训练目标是置信度加权的回归损失。

5 实验评估

5.1 无地图视觉定位

        数据集:使用了Map-free relocalization benchmark,这是一项非常具有挑战性的测试,其中目标是在没有地图的情况下,仅凭一张参考图像确定相机在公制空间中的位置。测试集包括65个验证场景和130个测试场景。每个场景中,每帧视频剪辑的姿势必须相对于单个参考图像独立估计。

        协议:评价标准包括绝对相机姿态准确性(以5°和25厘米为阈值)和虚拟对应重投影误差(VCRE),后者测量虚拟3D点根据真实和估计相机姿态重投影误差的平均欧氏距离。

结果:DUSt3R在测试集上的表现优于所有现有方法,有时优势显著,定位误差小于1米。

5.2 恢复未知相机内参

        数据集:使用了BLUBB数据集来评估DUSt3R在没有内参信息的情况下恢复相机内参的能力。数据集提供了一系列场景,每个场景都具有已知的地面真实相机内参和3D点云。

        协议:评价标准包括相机内参的准确性和重建的3D点云的完整性。DUSt3R通过估计场景的相对姿态和尺度,结合已知的地面真实3D点云来恢复内参。

        结果:在没有先验相机信息的情况下,DUSt3R达到了平均2.7毫米的准确性,0.8毫米的完整性,总体平均距离为1.7毫米。这个精度水平在实际应用中非常有用,考虑到其即插即用的特性。

5.3 总结

        DUSt3R在多个3D视觉任务中展示了其卓越的性能,无需对特定下游任务进行微调。该模型在零样本设置下取得了令人印象深刻的结果,特别是在无地图视觉定位和未知相机内参恢复任务中表现出色。实验结果表明,DUSt3R不仅适用于3D重建任务,还能有效处理各种3D视觉任务,展示了其广泛的应用潜力和实际使用价值。

5.4 可视化

        论文包含了大量可视化内容,有助于理解概念和结果。这些包括流程图、架构细节和重建3D模型的视觉比较。

图3展示了两个场景的重建例子,这两个场景在训练期间从未见过。图像从左到右依次是:RGB图像、深度图、置信度图和重建结果。以下是对每部分的详细解析:

  1. RGB图像:

    • 这是输入的彩色图像,为网络提供了丰富的纹理和颜色信息,帮助进行3D重建。
  2. 深度图:

    • 这是网络预测的深度图,表示场景中每个像素到相机的距离。深度值越大,像素点离相机越远。深度图为重建提供了基础的几何信息。
  3. 置信度图:

    • 置信度图表示网络对每个像素深度预测的信心。高置信度区域通常表示预测较为准确的区域,而低置信度区域可能包含难以预测的部分,如天空、透明物体或反光表面。
  4. 重建结果:

    • 左边的场景显示了直接从网络f(I1, I2)输出的原始结果。可以看到,网络已经能够较为准确地重建场景的3D形状。
    • 右边的场景显示了经过全局对齐(第3.4节)的结果。全局对齐步骤进一步优化了重建结果,使其更加精确和一致。

通过展示这些结果,图3强调了DUSt3R方法在不同场景中的鲁棒性和有效性,尤其是其在未见过的场景中的表现。此外,置信度图的引入使得网络能够在不确定区域进行自适应调整,提高了重建的整体质量。

结论

        DUSt3R在几何3D视觉领域提供了显著的进步。其简化流程、结合鲁棒性和高效性,使其成为计算机视觉研究人员和从业者的宝贵工具。详细的实验评估和全面的可视化进一步加强了论文的贡献。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

002-关于Geogebra软件的介绍及与MatLab的区别

为什么要学Geogebra? 因为和MatLab的科学计算相比,GeoGebra重点突出教学展示,对于教师、学生人群来讲再合适不过了,尤其是可以融入到PPT里边呈现交互式动画,想想听众的表情!这不就弥补了看到PPT播放数学公…

邮箱smtp发送邮件失败的原因?怎么做排查?

邮箱smtp发送邮件失败的解决方法?SMTP错误代码解析! 在使用SMTP发送邮件时,我们时常会遇到各种问题,导致邮件发送失败。了解这些问题的根本原因可以帮助我们更好地解决它们。AoKSend将详细探讨邮箱SMTP发送邮件失败的几大原因&am…

在 WebGPU 与 Vulkan 之间做出正确的选择(Making the Right Choice between WebGPU vs Vulkan)

在 WebGPU 与 Vulkan 之间做出正确的选择(Making the Right Choice between WebGPU vs Vulkan) WebGPU 和 Vulkan 之间的主要区别WebGPU 是什么?它适合谁使用?Vulkan 是什么?它适合谁使用?WebGPU 和 Vulkan…

mac 上 Docker Desktop的免费开源的替代工具Colima

当谈到在macOS上运行容器时,Docker长期以来一直是首选。但是,必须解决使用适用于macOS的Docker Desktop时出现的一些限制,特别是对于大中型公司,最大的问题是需要购买许可证。另外,macOS 版Docker Desktop的性能问题也…

单调栈(左小大,右小大)

①寻找每个数左边第一个比它小的数 给定一个长度为 N 的整数数列,输出每个数左边第一个比它小的数,如果不存在则输出 −1。 输入样例: 3 4 2 7 5 输出样例: -1 3 -1 2 2 从左到右遍历,用单调递增(栈底到栈顶…

c->c++(二):class

本文主要探讨C类的相关知识。 构造和析构函数 构造函数(可多个):对象产生时调用初始化class属性、分配class内部需要的动态内存 析构函数(一个):对对象消亡时调用回收分配动态内存 C提供默认构造和析构,…

行人检测技术:思通数科大模型在自动驾驶安全中的应用

在自动驾驶技术飞速发展的今天,行人检测已成为确保道路交通安全的关键技术之一。本文将探讨如何结合思通数科大模型和计算机视觉技术,实现在城市交通环境中对行人的高效检测,为自动驾驶车辆提供必要的行人安全保障。 引言 行人检测技术是利…

Dubbo内部通信流程

我当时在学习的过程中搭建过demo,具体流程就是,我先定义了一个api接口模块,还定义一个服务提供者模块,然后服务提供方实现该接口,定义该方法具体的实现impl类,服务提供方启动时,将要暴露的服务和…

【架构-20】死锁

什么是死锁? 死锁(Deadlock)是指两个或多个线程/进程在执行过程中,由于资源的互相占用和等待,而陷入一种互相等待的僵局,无法继续往下执行的情况。 产生死锁的四个必要条件: (1)互斥条件(Mutual Exclusion):至少有一个资源是非共享…

跨阻放大器

#创作灵感# 最近涉及到微电流的监测项目,而里面的核心就是跨阻放大器,所以这里做一个简单的介绍,后续等项目完成了,再做一个实例的介绍。 #正文# 跨阻放大器(Transimpedance Amplifier, TIA)是一种将输入电…

Windows编程之多线程事件对象(Event Object)用法详解

目录 一、前言 二、基础用法 三、API详解 1.创建事件对象 2控制事件状态 3.等待事件对象: 四、实战案例 1.案例描述 2.代码设计 3.总设计代码 4.运行结果 一、前言 事件对象(Event Object)是我们在大型项目中,进行多线…

股价持续低迷,业绩颓势不减,冀光恒难救平安银行?

文|新熔财经 作者|宏一 周一一上班,就听到旁边的同事感慨今年股市行情很不错,尤其是银行股,上半年累计上涨了17.02%,是涨幅最大的板块。 听到这里,我美滋滋地打开自己的账户,结…

如何对低代码平台进行分类?

现在市面上的低代码平台就像雨后春笋一样冒出来,而且源源不绝,但总结下来,大致的也就以下三类。 一、 aPaaS多引擎类(有很多成熟引擎、做好东西要一起用) 这类产品包括:织信Informat(国内&…

照明物联网:基于网关的智能照明云监控系统解决方案

智能照明系统就是利用物联网技术,将同一空间的照明、空调、新风、排风等系统共同接入物联网平台,实现了“设备互联、数据互通”的智慧物联能力。照明数据、环境监测数据通过网关上传云端,在云端进行统计分析并将结果通过各种终端共享&#xf…

MySQL—常用的数据类型

数据类型 整型 1.创建一个含有无符号/有符号整型的字段的表 CREATE TABLE L1(id tinyint unsigned #无符号 ) CREATE TABLE L2(id tinyint #默认为有符号 ) 数值型(bit) 2.数值型(bit)的使用 小数 3.数值型(小数)的基本使用 字符串 4.字符串的基本使用 #演示字符串类型…

REGX52.H报错

keil cannot open source input file "REGX52.H": No such file or directory 选择下面这个目录 Keil\C51\INC\Atmel

AI绘画Stable Diffusion 新手入门教程:万字长文解析Lora模型的使用,快速上手Lora模型!

大家好,我是设计师阿威 今天给大家讲解一下AI绘画Stable Diffusion 中的一个重要模型—Lora模型,如果还有小伙伴没有SD安装包的,可以看我往期入门教程2024最新超强AI绘画Stable Diffusion整合包安装教程,零基础入门必备&#xff…

【软件测试】Selenium自动化测试框架 | 相关介绍 | Selenium + Java环境搭建 | 常用API的使用

文章目录 自动化测试一、selenium1.相关介绍1.Selenium IDE2.Webdriverwebdriver的工作原理: 3.selenium Grid 2.Selenium Java环境搭建3.常用API的使用1.定位元素2.操作测试对象3.添加等待4.打印信息5.浏览器的操作6.键盘事件7.鼠标事件8.定位一组元素9.多层框架定…

手把手家教你进行ChatGPT私有化部署

背景 随着AI技术的不断成熟,加上ChatGPT如火如荼的发布新版本迭代更新,人工智能的热度也升温到史无前例的高度。 我们有理由相信,现在身边还不愿主动去接触这项技术,深入了解的小伙伴,在不久的将来,一定会…

网络攻防——kali操作系统基本使用

1.阅读前的声明 本文章中生成的木马带有一定的攻击性,使用时请遵守网络安全相关的法律法规(恶意攻击操作系统属于违法行为)。 2.环境安装 生成木马主要需要如下工具:kali操作系统,VMware15(搭建kali操作…