当前位置: 首页 > news >正文

【论文笔记】Fast3R:前向并行muti-view重建方法

        众所周知,DUSt3R只适合做稀疏视角重建,与sapnn3r的目的类似,这篇文章以并行的方法,扩展了DUSt3R在多视图重建中的能力。

abstract

        多视角三维重建仍然是计算机视觉领域的核心挑战,尤其是在需要跨不同视角实现精确且可扩展表示的应用中。当前的主流方法,如DUSt3R,采用了一种基于成对处理的方式,即对图像进行两两处理,并需要通过昂贵的全局对齐程序来实现多视角重建。我们提出了Fast3R,这是对DUSt3R的一种新颖的多视角扩展,通过并行处理多个视角,实现了高效且可扩展的三维重建。Fast3R基于Transformer的架构在一次前向传播中处理N张图像,避免了迭代对齐的需求。通过在相机姿态估计和三维重建上的大量实验,Fast3R展示了最先进的性能,在推理速度上显著提升,并减少了误差累积。这些结果表明,Fast3R是多视角应用中的一个强大替代方案,在不牺牲重建精度的前提下提供了更强的可扩展性。

1. Introduction

        传统的重建流程,例如基于运动恢复结构(SfM)[44]和多视角立体视觉(MVS)[18]的方法,主要依赖于图像对来重建三维几何。但它们需要大量的工程来实现特征提取、对应匹配、三角测量和全局对齐等顺序阶段,从而限制了其可扩展性和速度。

        DUSt3R[61通过将成对重建问题转化为点图的回归问题能够直接从RGB图像中预测三维结构。并放宽了传统投影相机模型的硬约束[61],在具有挑战性的视角下展现了令人印象深刻的鲁棒性。这代表了三维重建领域的一次根本性转变,因为端到端可学习的解决方案不仅减少了流程中误差的累积,还显著简化了操作。

        然而,DUSt3R的根本是重建两幅图像输入的场景。为了处理多于两幅图像,DUSt3R需要计算O(N²)对点图并执行全局对齐优化过程。这一过程计算成本高昂,随着图像数量的增加,其扩展性较差。例如,在A100 GPU上仅处理48个视角就可能导致内存溢出(OOM)。另外,两两重建这一过程限制了模型的上下文信息,既影响了训练期间的学习效果,也限制了推理阶段的最终精度。从这个意义上说,DUSt3R与传统SfM和MVS方法一样,面临着成对处理的瓶颈问题。

        Fast3R是一种新型的多视图重建框架,旨在克服上面提到的局限性。 FAST3R在Dust3R的基础上,利用Transformer-based架构[56]并行处理多个图像,允许在单个正向过程中重建。 每个帧可以同时参与重建过程中输入集中的所有其他帧,大大减少了误差的积累。 并且Fast3R推理的时间也大大减少。

总结:

(1)Fast3R是一种基于Transformer的多视角点图估计模型,无需全局后处理,在速度、计算开销和可扩展性方面实现了显著提升。

(2)通过实验证明,模型性能随着视角数量的增加而提升。在相机姿态定位和重建任务中,当模型在更大规模的视角集上训练时,其性能会得到改善。在推理过程中使用更多视角时,每个视角的精度会进一步提高,并且模型能够泛化到远超训练时所见视角数量的场景

(3)我们展示了在相机姿态估计任务中的最先进性能,并显著提升了推理时间。在CO3Dv2数据集[39]上,Fast3R在15度误差范围内的姿态估计精度达到99.7%,与经过全局对齐的DUSt3R相比,误差减少了14倍以上。

2. Related Work

        现代三维重建方法都是基于MVG,分为多个顺序阶段:特征提取、寻找成对图像对应关系、通过三角测量生成三维点及成对相机相对姿态,以及全局捆绑调整(bundle adjustment)。然而,任何流程化方法都容易累积误差,尤其是在手工设计的组件中。此外,顺序处理的特性阻碍了并行化,从而限制了速度和可扩展性。MVG方法自计算机视觉早期就已存在,并且至今仍在使用的理由是:当它们没有灾难性失败时,可以非常精确。最新的多视角几何流程,如COLMAP[44]或OrbSLAM2[30],融合了近60年的工程改进,但这些方法在静态场景(如ETH-3D[52])中仍然有超过40%的概率会灾难性失败,而这类场景由于图像覆盖密集,实际上可以被认为是相对简单的情况。

        DUSt3R通过点图回归来替换MVG流程中直到全局成对对齐的所有步骤。直接为成对图像在共享坐标系中预测三维点图。其他MVG组件任务,如相对相机姿态估计和深度估计,可以从生成的点图表示中恢复。然而,DUSt3R存在很大局限性,即只能完成稀疏视角重建,上述也提到了DUSt3R的局限性。

        然而,DUSt3R具有启发意义,MASt3R在每个解码器输出上添加了一个局部特征头,而MonST3R[69]则对动态场景进行了数据驱动的探索,但两者本质上仍然是成对方法。特别是MASt3R并未对全局对齐方法进行任何改动。与我们同期的工作,Spann3R[57]将图像视为有序序列(例如来自视频),并使用成对滑动窗口网络以及学习的空间记忆系统逐步重建场景。这扩展了DUSt3R以处理更多图像,但Spann3R的增量成对处理无法修复早期帧的重建,这可能导致误差累积。作者提出的Fast3R的Transformer架构使用了all-to-all注意力机制,使模型能够同时并联合地推理所有帧,而无需假设图像顺序。Fast3R消除了顺序依赖性,从而在单次前向传播中实现了跨多个设备的并行推理。

3. Model

3.1. Problem definition        

        如图2,输入N个无序无pose的RGB图像,Fast3R预测对应的pointmap)以及confidence map\sum来重建场景,不过这里的有两类,一种是全局pointmap,另一种是局部pointmap,confidence map也一样,全局置信图,局部置信图,比如,在MASt3R中,是在视角1的坐标系下,就是当前相机坐标系:

3.2. Training Objective-Fast3R的loss设计

        Fast3R的预测与GT的loss是DUST3R的一个广义版本,即归一化 3D 逐点回归损失的置信加权:

        首先,我们回顾DUST3R的点图loss:

        在此基础上,使用confidence-ajusted loss:

        我们的直觉是置信度加权有助于模型处理标签噪声。与DUST3R类似,我们在真实世界的扫描数据上进行训练,这些数据通常包含底层点图标签中的系统性误差。例如,在真实激光扫描中,玻璃或薄结构通常无法正确重建[4, 67],而相机配准中的误差会导致图像与点图标签之间的错位[66]。

3.3. Model architecture

        Fast3R的结构设计来源于DUSt3R,包括三部分:image encoding, fusion transformer,
and pointmap decoding,并且处理图片的方式是并行的。

(1)Image encoder

        与DUST3R一样,对于任意的图片,encoder部分使用CroCo ViT里面的,即分成patch提取特征,最后得到,其中,记作:

        然后,在fusion transformer之前,往patch 特征H里面添加一维的索引嵌入(image index positional embeddings),索引嵌入帮助融合Transformer确定哪些补丁来自同一图像,并且是识别的机制,而定义了全局坐标系。使模型能够从原本排列不变的标记集中隐式地联合推理所有图像的相机pose。

(2)Fusion transformer

        Fast3R 主要的计算在Fusion transformer过程中,我们使用的是与ViTB [12] 或 BERT类似的12层transformer,还可以按照比例放大,在此过程中,直接执行all-to-all的自注意力,这样,Fast3R获得了包含整个数据集的场景信息。

(3)pointmap decoding

        Fast3R的位置编码细节也很讲究,这个细节大家感兴趣可以仔细看看,可以达到训练20张图,推理1000张图的效果。最后,使用DPT-Large的decoder得到点图以及置信图,下面简单介绍一下DPT-L。

        DPT探讨了如何将视觉Transformer应用于密集预测任务(如语义分割、深度估计等)。通过引入层次化特征提取、多尺度特征融合以及专门的密集预测头,改进了ViT架构,使其能够有效处理高分辨率输入并生成像素级预测。

4. Experiments

        baseline是DUSt3R,MASt3R,Spann3R,所以,训练数据与他们保持一致,包括object-center和scene scan两类,在 64 个 A100 GPU 上训练 6.13 天

4.1. Inference Efficiency

        表2显示了随着视角数量增加,推理时间和内存使用情况的变化。Fast3R能够单次处理多达1500个视角,而DUSt3R在超过32个视角时就会耗尽内存。Fast3R的推理时间也显著更快,且随着视角数量的增加,其优势更加明显。

4.2. Pose Estimation

        受DUSt3R[61]的启发,我们从预测的全局点图中估计焦距、相机旋转和相机平移。我们首先基于图像分辨率初始化一组随机焦距猜测,然后使用RANSAC-PnP根据猜测的焦距和全局点图估计相机的旋转和平移RANSAC-PnP的离群点数量用于对每个猜测的焦距进行评分(越低越好),并选择得分最高的焦距来计算相机的内参和外参矩阵

        表1中显示了15°阈值下的相对旋转精度RRA(预测的相机旋转与真实旋转之间的误差小于15°的比例)和相对平移精度(RTA),30°阈值下的平均精度mAA(多个误差阈值(通常从0°到30°)下的平均精度),以及模型的每秒帧数(FPS)。在Co3D数据集上,Fast3R在RRA和mAA指标上超越了所有其他方法,实现了接近完美的RRA,同时在RTA上保持竞争力。重要的是,速度比DUSt3R快200倍,比MASt3R快700倍。

        图4和图5显示,Fast3R的预测随着视角数量的增加而改进,表明该模型能够利用多张图像的额外上下文信息。

4.3. 3D Reconstruction

        在场景级基准测试(7-Scenes [47] 和 Neural RGB-D [3])以及物体级基准测试(DTU [1])上评估了Fast3R的三维重建性能。

        使用ICP(迭代最近点算法)将每张图像的局部点图独立对齐到全局点图,并使用对齐后的局部点图进行评估。Fast3R在与DUSt3R和MASt3R等其他点图重建方法的比较中表现出了竞争力,同时速度显著更快,如表3和表4所示。我们相信,随着更好的重建数据、更多的计算资源以及更优的训练策略,Fast3R的性能将进一步提升。

5. Conclusion

        我们提出了Fast3R,这是一种能够在单次前向传播中直接预测所有像素在统一参考系中三维位置的Transformer模型。通过用端到端训练的通用架构取代整个SfM(运动恢复结构)流程,Fast3R及类似方法有望受益于Transformer的常规扩展规律:随着数据质量的提升和参数规模的增加,性能持续改进。由于Fast3R采用全局注意力机制,它避免了现有系统中因瓶颈而导致的两个潜在人为扩展限制。首先,图像对重建的瓶颈限制了模型可用的信息量。其次,成对全局优化只能部分弥补这一问题,且无法通过增加数据来改进。

        通过我们的高效实现,Fast3R能够以超过250 FPS的速度运行,并在一次前向传播中处理1500张图像,远超其他方法,同时在三维重建和相机姿态估计基准测试中取得了具有竞争力的结果。另外,Fast3R继承了未来工程改进的优势,能够高效地服务于和训练基于Transformer的大型模型。例如,像Deepspeed-Inference [38]和FlashAttention [7, 8]这样的工具包提供了融合内核、模型并行化和数据并行化功能。这些功能加速了推理并减少了内存需求,使每个设备能够处理更多图像,且图像数量随设备数量的增加而扩展。

        Fast3R的架构允许并行处理多个视角,其位置嵌入设计使得在视角上下文长度上能够实现“短训练,长测试”。然而,我们观察到,对于重建区域非常大的场景,当视角数量变得极端(例如超过200个)时,某些视角的点图(特别是那些置信度得分较低的视角)开始表现出漂移行为。目前解决这一问题的一种方法是丢弃置信度得分较低的帧。在密集重建中,这种方法通常不会对重建质量造成太大影响。

相关文章:

【论文笔记】Fast3R:前向并行muti-view重建方法

众所周知,DUSt3R只适合做稀疏视角重建,与sapnn3r的目的类似,这篇文章以并行的方法,扩展了DUSt3R在多视图重建中的能力。 abstract 多视角三维重建仍然是计算机视觉领域的核心挑战,尤其是在需要跨不同视角实现精确且可…...

谈谈你所了解的AR技术吧!

深入探讨 AR 技术的原理与应用 在科技飞速发展的今天,AR(增强现实)技术已经悄然改变了我们与周围世界互动的方式。你是否曾想象过如何能够通过手机屏幕与虚拟物体进行实时互动?在这篇文章中,我们将深入探讨AR技术的原…...

upload labs靶场

upload labs靶场 注意:本人关卡后面似乎相比正常的关卡少了一关,所以每次关卡名字都是1才可以和正常关卡在同一关 一.个人信息 个人名称:张嘉玮 二.解题情况 三.解题过程 题目:up load labs靶场 pass 1前后端 思路及解题:…...

搜索引擎友好:设计快速收录的网站架构

本文来自:百万收录网 原文链接:https://www.baiwanshoulu.com/14.html 为了设计一个搜索引擎友好的网站架构,以实现快速收录,可以从以下几个方面入手: 一、清晰的目录结构与层级 合理划分内容:目录结构应…...

基于 oneM2M 标准的空气质量监测系统的互操作性

论文标题 英文标题: Interoperability of Air Quality Monitoring Systems through the oneM2M Standard 中文标题: 基于 oneM2M 标准的空气质量监测系统的互操作性 作者信息 Jonnar Danielle Diosana, Gabriel Angelo Limlingan, Danielle Bryan Sor…...

春晚舞台上的人形机器人:科技与文化的奇妙融合

文章目录 人形机器人Unitree H1的“硬核”实力传统文化与现代科技的创新融合网友热议与文化共鸣未来展望:科技与文化的更多可能结语 2025 年央视春晚的舞台,无疑是全球华人目光聚焦的焦点。就在这个盛大的舞台上,一场名为《秧BOT》的创意融合…...

零基础学习书生.浦语大模型-入门岛

第一关:Linux基础知识 Cursor连接服务器 使用Remote - SSH插件即可 注:46561:服务器端口号 运行指令 python hello_world.py端口映射 ssh -p 46561 rootssh.intern-ai.org.cn -CNg -L 7860:127.0.0.1:7860 -o StrictHostKeyCheckingno …...

Gurobi基础语法之 addConstr, addConstrs, addQConstr, addMQConstr

在新版本的 Gurobi 中,向 addConstr 这个方法中传入一个 TempConstr 对象,在模型中就会根据这个对象生成一个约束。更重要的是:TempConstr 对象可以传给所有addConstr系列方法,所以下面先介绍 TempConstr 对象 TempConstr TempC…...

数据结构---图的遍历

图的遍历(Travering Graph):从图的某一顶点出发,访遍图中的其余顶点,且每个顶点仅被访问一次,图的遍历算法是各种图的操作的基础。 复杂性:图的任意顶点可能和其余的顶点相邻接,可能在访问了某个顶点后,沿某条路径搜索…...

Qwen 模型自动构建知识图谱,生成病例 + 评价指标优化策略

关于数据库和检索方式的选择 AI Medical Consultant for Visual Question Answering (VQA) 系统:更适合在前端使用向量数据库(如FAISS)结合关系型数据库来实现图像和文本的检索与存储。因为在 VQA 场景中,你需要对患者上传的图像或…...

.Net Web API 访问权限限定

看到一个代码是这样的: c# webapi 上 [Route("api/admin/file-service"), AuthorizeAdmin] AuthorizeAdmin 的定义是这样的 public class AuthorizeAdminAttribute : AuthorizeAttribute {public AuthorizeAdminAttribute(){Roles "admin"…...

项目架构调整,切换版本并发布到中央仓库

文章目录 0.完成运维篇maven发布到中央仓库的部分1.配置server到settings.xml2.配置gpg 1.架构调整1.sunrays-dependencies(统一管理依赖和配置)1.作为单独的模块2.填写发布到中央仓库的配置1.基础属性2.基本配置3.插件配置 3.完整的pom.xml 2.sunrays-f…...

考试知识点位运算

深入理解位运算 在C编程的世界里,位运算作为一种直接对二进制位进行操作的运算方式,虽然不像加减乘除等算术运算那样广为人知,却在许多关键领域发挥着至关重要的作用。从底层系统开发到高效算法设计,位运算都展现出其独特的魅力与…...

matlab快速入门(2)-- 数据处理与可视化

MATLAB的数据处理 1. 数据导入与导出 (1) 从文件读取数据 Excel 文件:data readtable(data.xlsx); % 读取为表格(Table)CSV 文件:data readtable(data.csv); % 自动处理表头和分隔符文本文件:data load(data.t…...

Kafka中文文档

文章来源:https://kafka.cadn.net.cn 什么是事件流式处理? 事件流是人体中枢神经系统的数字等价物。它是 为“永远在线”的世界奠定技术基础,在这个世界里,企业越来越多地使用软件定义 和 automated,而软件的用户更…...

Python-列表

3.1 列表是什么 在Python中,列表是一种非常重要的数据结构,用于存储一系列有序的元素。列表中的每个元素都有一个索引,索引从0开始。列表可以包含任何类型的元素,包括其他列表。 # 创建一个列表my_list [1, 2, 3, four, 5.0]…...

51单片机开发:定时器中断

目标:利用定时器中断,每隔1s开启/熄灭LED1灯。 外部中断结构图如下图所示,要使用定时器中断T0,须开启TE0、ET0。: 系统中断号如下图所示:定时器0的中断号为1。 定时器0的工作方式1原理图如下图所示&#x…...

【HarmonyOS之旅】基于ArkTS开发(三) -> 兼容JS的类Web开发(二)

目录 1 -> HML语法 1.1 -> 页面结构 1.2 -> 数据绑定 1.3 -> 普通事件绑定 1.4 -> 冒泡事件绑定5 1.5 -> 捕获事件绑定5 1.6 -> 列表渲染 1.7 -> 条件渲染 1.8 -> 逻辑控制块 1.9 -> 模板引用 2 -> CSS语法 2.1 -> 尺寸单位 …...

算法【混合背包】

混合背包是指多种背包模型的组合与转化。 下面通过题目加深理解。 题目一 测试链接:1742 -- Coins 分析:这道题可以通过硬币的个数将其转化为01背包,完全背包和多重背包。如果硬币的个数是1个,则是01背包;如果硬币的…...

WordPress eventon-lite插件存在未授权信息泄露漏洞(CVE-2024-0235)

免责声明: 本文旨在提供有关特定漏洞的深入信息,帮助用户充分了解潜在的安全风险。发布此信息的目的在于提升网络安全意识和推动技术进步,未经授权访问系统、网络或应用程序,可能会导致法律责任或严重后果。因此,作者不对读者基于本文内容所采取的任何行为承担责任。读者在…...

docker详细操作--未完待续

docker介绍 docker官网: Docker:加速容器应用程序开发 harbor官网:Harbor - Harbor 中文 使用docker加速器: Docker镜像极速下载服务 - 毫秒镜像 是什么 Docker 是一种开源的容器化平台,用于将应用程序及其依赖项(如库、运行时环…...

树莓派超全系列教程文档--(61)树莓派摄像头高级使用方法

树莓派摄像头高级使用方法 配置通过调谐文件来调整相机行为 使用多个摄像头安装 libcam 和 rpicam-apps依赖关系开发包 文章来源: http://raspberry.dns8844.cn/documentation 原文网址 配置 大多数用例自动工作,无需更改相机配置。但是,一…...

DockerHub与私有镜像仓库在容器化中的应用与管理

哈喽,大家好,我是左手python! Docker Hub的应用与管理 Docker Hub的基本概念与使用方法 Docker Hub是Docker官方提供的一个公共镜像仓库,用户可以在其中找到各种操作系统、软件和应用的镜像。开发者可以通过Docker Hub轻松获取所…...

遍历 Map 类型集合的方法汇总

1 方法一 先用方法 keySet() 获取集合中的所有键。再通过 gey(key) 方法用对应键获取值 import java.util.HashMap; import java.util.Set;public class Test {public static void main(String[] args) {HashMap hashMap new HashMap();hashMap.put("语文",99);has…...

vscode(仍待补充)

写于2025 6.9 主包将加入vscode这个更权威的圈子 vscode的基本使用 侧边栏 vscode还能连接ssh? debug时使用的launch文件 1.task.json {"tasks": [{"type": "cppbuild","label": "C/C: gcc.exe 生成活动文件"…...

解锁数据库简洁之道:FastAPI与SQLModel实战指南

在构建现代Web应用程序时,与数据库的交互无疑是核心环节。虽然传统的数据库操作方式(如直接编写SQL语句与psycopg2交互)赋予了我们精细的控制权,但在面对日益复杂的业务逻辑和快速迭代的需求时,这种方式的开发效率和可…...

【第二十一章 SDIO接口(SDIO)】

第二十一章 SDIO接口 目录 第二十一章 SDIO接口(SDIO) 1 SDIO 主要功能 2 SDIO 总线拓扑 3 SDIO 功能描述 3.1 SDIO 适配器 3.2 SDIOAHB 接口 4 卡功能描述 4.1 卡识别模式 4.2 卡复位 4.3 操作电压范围确认 4.4 卡识别过程 4.5 写数据块 4.6 读数据块 4.7 数据流…...

【单片机期末】单片机系统设计

主要内容:系统状态机,系统时基,系统需求分析,系统构建,系统状态流图 一、题目要求 二、绘制系统状态流图 题目:根据上述描述绘制系统状态流图,注明状态转移条件及方向。 三、利用定时器产生时…...

vue3 定时器-定义全局方法 vue+ts

1.创建ts文件 路径&#xff1a;src/utils/timer.ts 完整代码&#xff1a; import { onUnmounted } from vuetype TimerCallback (...args: any[]) > voidexport function useGlobalTimer() {const timers: Map<number, NodeJS.Timeout> new Map()// 创建定时器con…...

3403. 从盒子中找出字典序最大的字符串 I

3403. 从盒子中找出字典序最大的字符串 I 题目链接&#xff1a;3403. 从盒子中找出字典序最大的字符串 I 代码如下&#xff1a; class Solution { public:string answerString(string word, int numFriends) {if (numFriends 1) {return word;}string res;for (int i 0;i &…...