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

【论文笔记】多个大规模数据集上的SOTA绝对位姿回归方法:Reloc3r

abstract

        视觉定位旨在确定查询图像相对于姿势图像数据库的相机姿势。 近年来,直接回归相机姿势的深度神经网络由于其快速推理能力而受到欢迎。 然而,现有方法很难很好地推广到新场景或提供准确的相机姿态估计。 为了解决这些问题,我们提出了 Reloc3r,一个简单而有效的视觉本地化框架。 它由设计优雅的相​​对姿态回归网络和用于绝对姿态估计的极简运动平均模块组成。 经过大约 800 万个姿势图像对的训练,Reloc3r 取得了令人惊讶的良好性能和泛化能力。 我们对 6 个公共数据集进行了广泛的实验,一致证明了所提出方法的有效性和效率。 它实时提供高质量的相机姿态估计并推广到新颖的场景。

1. Introduction

        视觉定位,也称为相机重新定位,是计算机视觉、机器人和图形领域的一个关键挑战。 它对于许多应用至关重要,包括增强现实和机器人导航。 该过程涉及将新的查询图像注册到姿势图像或 3D 模型的数据库中。 这通常是通过估计数据库定义的世界坐标系内的 6 自由度 (6-DoF) 相机姿势来完成的。(6自由度相机姿态)是指相机在三维空间中的位置和方向,具体包括6个参数,分别描述了相机在空间中在xyz三个轴上的平移和旋转。

        传统的视觉定位方法依赖于运动结构(SfM)技术[27,78,87] 构建 3D 模型。 这些方法将查询图像中的像素匹配到 3D 场景点,然后使用几何优化解决相机pose估计。 虽然这些方法以其高定位精度而闻名,但在测试时往往效率低下,这限制了它们实时应用程序的可扩展性。 场景坐标回归方法[13-16,30,52,53]提供了像素到3D点对应关系的另一种视角。 这些方法使用神经网络来学习隐式场景表示,然后用于推断密集对应关系。 然而,它们中的大多数都面临普遍化的局限性。 此外,这些方法通常需要密集的监督,例如GT关键点匹配或 3D 点图,这使得扩大训练数据变得具有挑战性

        绝对姿态回归【Absolute pose regression(APR)】方法直接从图像回归相机位姿,提供了更快的推理时间和高精度。然而,这些方法本质上是特定于场景的,并且通常在训练时需要密集的视点覆盖,这限制了它们在实际中的应用。最近的一些尝试 [20–22, 57, 68] 通过合成数据生成来提高精度,但引入了显著的计算开销,阻碍了它们的广泛部署。相比之下,相对姿态回归【relative pose regression(RPR)】方法估计数据库图像和查询图像之间的相对姿态。这些方法减轻了每个场景的训练需求,同时保持了APR模型在测试时间的高效性。然而,即使是最先进的RPR方法 [4, 29, 99, 113] 在定位精度上仍未达到APR方法的水平。虽然一些RPR方法 [4, 48, 99, 113] 展示了在不同数据集之间泛化的能力,但这通常会导致相机姿态精度的进一步降低。因此,上述大多数方法在以下三个标准中的一个或多个方面存在困难:新场景的泛化能力、测试时间的效率和相机姿态精度

        我们提出了 Reloc3r(读作,哈哈哈!),这是一个简单却非常有效的视觉定位框架。Reloc3r 从最近的基础模型中汲取灵感。这些模型利用可扩展的网络架构(如Transformer [32, 40])和大规模训练,展示了在各种任务中的强大性能和出色的泛化能力我们采用了 DUSt3R [109] 的架构作为骨干网络,并应用了简洁而优雅的修改来构建一个相对姿态回归网络。我们的主要贡献可以总结如下:

        我们引入了 Reloc3r,一个简单却非常有效的视觉定位框架。它能够在新场景中实现优秀的泛化能力、快速的测试时间效率以及高精度的相机姿态估计。所提出的完全对称的相对姿态回归网络和运动平均模块都遵循简约原则。这种精简的方法使得大规模训练更加高效。

2. Related Work

        Structure-based visual localization:基于结构的定位流程是一种通过多视角几何 [38] 解决相机姿态的成熟方法。现代方法 通常包括两个主要步骤:1) 建立图像之间或像素与预建3D模型之间的对应关系,2) 从噪声对应关系中稳健地求解相机姿态。这些对应关系是通过特征点匹配或场景坐标回归获得的。然后应用稳健估计器来估计最终的相机姿态。尽管这些方法非常有效,但它们通常具有较慢的推理时间,这限制了它们在实时应用中的使用。最近,提出了一些以效率为导向的变体 [59, 110] 以加速匹配过程。然而,复杂的系统设计和稳健估计的高计算成本仍然是瓶颈。这些方法通常需要GT对应关系或3D点云图来进行监督,这限制了它们在大规模训练中的扩展性。为了解决这些挑战,我们选择了一种直接的相机姿态回归方法。该方法允许高效的大规模训练,同时简化系统,从而实现更快且更可扩展的视觉定位解决方案

        相机姿态回归端到端的相机姿态回归由于其实时推理能力而受到欢迎。这些方法大致可以分为两类:绝对姿态回归(APR)和相对姿态回归(RPR)APR 方法直接从图像中回归出世界坐标系中的相机位置和方向,耗时仅需几毫秒但这些方法在定位精度上仍不如基于结构的方法,通常更像是通过图像检索进行姿态近似 [86]。

        RPR 方法通过学习图像对之间的相对姿态来实现跨不同场景的泛化定位是通过回归查询图像与最相似(或前K个)数据库图像之间的相对姿态来实现的相对平移的度量尺度(metric scales)可以从单个数据库查询对中近似估计 [1, 4, 7, 35],而通过多视角三角测量可以实现更精确的绝对定位然而最佳的 RPR 方法仍然显著落后于 APR 方法此外,现有 RPR 模型的泛化能力仍然有限

        以前的方法主要侧重于技术设计,而不是在更大、更多样化的数据集上进行扩展训练。 在本文中,我们提出了第一个在以对象为中心、室内、室外数据集的不同混合上训练的姿势回归方法。 与之前的工作[126]相反,表明姿态回归的不准确源于粗略的特征定位,我们发现训练有素的补丁级回归网络可以实现,有时甚至超越像素级特征匹配的性能

3. Method

        首先剧透式的一句话总结一下方法,大概就是在有绝对pose的数据集上,在dust3r的网络后面加了一个出相对位姿的head,因为dust3r是一对一对输入的,作者是固定一个查询图像,然后和K个数据集里面的图片送入dust3r,得到K个相对pose,然后又因为数据集是有GT的pose,通过pose变换公式估计出K个查询图像的绝对pose,再通过一些数值优化方法优化的好一点。

        问题陈述: 给定一个数据库来自场景的姿势图像,以及来自同一场景的查询图像 Iq,视觉定位的任务是估计可以注册 Iq 到由数据库图像定义的世界坐标系的 6-DoF 相机位姿 P ∈ R3×4 。 P 由相机旋转 R ∈ R3×3 和平移 t ∈ R3 表示。

        方法概述: 图 2 概述了方法。 它包含两个主要组件:相对位姿回归网络和运动平均模块。 使用现成的图像检索方法 [3] 将查询图像 Iq 与前 K 个数据库图像配对,创建一组图像对相对位姿回归网络独立地处理来自Q的每个图像对以确定它们的相对姿势然后利用数据库图像自身已知的pose,从上面的相对pose计算出查询图像 Iq的绝对pose。可以参考PhotoReg论文中的相机变换过程是相机坐标系c1和c2的相对变换,就是一个世界坐标到相机坐标的绝对变换

        然而,这些估计是有噪声的,并且平移向量的度量尺度(metric scales)仍然不确定为了解决这些问题,运动平均模块执行旋转平均和相机中心三角化,最终得到查询图像的绝对度量姿势

3.1. Relative Camera Pose Regression(DUSt3R review)

       首先使用DUSt3R一样的结构即endoer-decoder,然后在后面接一个输出相对pose的head。

        相对相机位姿回归网络采用DUSt3R一样的方法,用图像对 I1、I2 作为输入。该网络将图像划分为patch,并通过 Vision Transformer (ViT) 编码器将它们作为token进行处理。 然后,ViT 解码器使用交叉注意机制在两个分支的token之间交换信息。 接下来是预测相对位姿的回归头。 

        ViT encoder-decoder architecture类似于 DUSt3R , 我们首先将每个输入图像 Ii 划分为 T 个token,每个token的维度为 d然后我们计算每个token的 RoPE positional embeddings [93],以编码它们在图像中的相对空间位置最后处理 m个ViT encoder blocks,每个encoder blocks包含自注意力层和前馈层,以生成编码的特征token F1 和 F2

        解码器包含 n个ViT decoder blocks,每个decoder blocks使用相同的 RoPE 位置嵌入。 与编码器块不同,每个解码器块在其自注意力层和前馈层之间包含一个额外的交叉注意力层。 这种结构使模型能够推理两组特征标记之间的空间关系。 我们获得解码后的token为:

        Pose regression head我们的姿势回归head由h个前馈层组成然后是average pooling并有额外的层来回归相对旋转和平移。 旋转最初使用 9D 表示法来表示[51]。 然后使用 SVD 正交化将其转换为 3×3 旋转矩阵 该矩阵与 3D 平移向量连接以形成最终的变换矩阵。 相对位姿的最终输出为,细节是:3*3矩阵连接平移3*1就是3*4的矩阵

        监督信号:我们的网络预测的pose包括:1)旋转,测量相机朝向的相对变化;2)平移,指示相机中心移动的相对位移。 这两个量都可以表示为相对角度。 因此,我们通过最小化这些预测的相对角度与其真实值之间的差异来训练网络:,其中:

        tr(·)表示矩阵的迹, 表示预测的旋转和平移,而R和t表示它们各自的真​​实值。这个预测pose和真实pose之间的loss计算方法值得借鉴。

        与 DUSt3R 用于坐标对齐的非对称分支不同,我们使用完全对称的架构,也就是说两个图片输入的两个神经网络配准完全一样,它本质上更适合相对位姿估计。 这种设计消除了图像排序的偏差,从而简化了训练。 它还允许跨分支共享权重,从而降低计算复杂性和存储要求。DUSt3R结构如下。便于对比,再放一下本文结构:

        近期关于相对位姿回归的研究 [4, 113] 倾向于学习一个度量位姿。度量位姿指的是在空间中直接学习物体的位置和姿态的具体数值,通常包括三个旋转角度和三个平移距离。这种方法在许多情况下能够提供更为精确的位姿估计但也会带来一些挑战,特别是在不同数据集之间度量尺度(metric scales)的平衡问题上

        我们选择只学习平移的方向,而将度量尺度(metric scales)的问题交给运动平均方法来解决在下一节,我们通过将平移表示为角度的形式,而不是具体的距离值。

3.2. Motion Averaging

        为了保持效率和简单性,我们将我们的姿势回归网络与最低限度运动平均模块集成在一起。给定一个网络预测的高精确度,我们不应用robust estimation。对于每个图像对,回归网络产生两个相对姿势:,理论上它们应该是互逆的。从经验上看,我们观察到这两种姿势的精确度相似。默认情况下,我们使用将查询图像映射到图像数据库的转换作为运动平均的输入。该模块分别处理旋转和平移,如下所述。

        Rotation avgeraging给定来自数据库-查询图像对的相对旋转估计,通过公式计算查询图像的绝对旋转运动平均模块通过聚合来自所有可用对的绝对旋转估计来降低预测噪声具体执行是使用四元数表示法计算平均旋转[126]。我们观察到,计算中值旋转可以进一步增强对噪声的稳健性,而额外的计算代价最小。

        Camera center triangulation绝对相机中心位置可以从两个图像的数据库与查询对进行三角测量[39]。 与旋转平均类似,我们使用所有有效对来计算平均交点。 虽然交集的几何中位数无法通过分析求解并且通常需要迭代优化,但我们选择了更有效的方法。 我们使用简单的最小二乘法来最小化从相机中心到从相对位姿估计得出的每个平移方向的距离平方和。 通过矩阵的SVD求解。

4. Experiments(we focus on pose  estimatation、ablation)

        训练数据。 为了构建具有GT相对姿势的大规模训练对,类似于 DUSt3R [109],我们处理来自 7 个公共数据集的~800 万个图像对。 这些数据集涵盖了从以对象为中心到室内和室外环境的一系列场景。如表 1:

        默认的 Reloc3r 使用 m = 24 个编码器块、n = 12 个解码器块,后面是具有 h = 2 个卷积层的姿态回归头。  我们使用 DUSt3R 预训练的 512DPT 权重初始化 Reloc3r。 对于解码器初始化,我们使用 DUSt3R 解码器 2 的权重,因为它经过预先训练以执行坐标变换。 完整模型在 8 个 AMD MI250x-40G GPU 上进行训练,批量大小为 8,学习率从 1e-5 开始,逐渐衰减到 1e-7。 补充材料中提供了更多详细信息。

        对于视觉定位(visual localization)任务,按照文献 [77, 99],我们应用 NetVLAD [3] 进行图像检索,并使用前 10 个相似图像对。 我们直接使用这些检索到的图像对,而不进行基于距离的聚类。 所有评估均在 24GB NVIDIA GeForce RTX 4090 GPU 上进行。

4.1. Relative Camera Pose Estimation

        我们评估 Reloc3r 的相对姿态回归模块。 涵盖两种场景:ScanNet1500 [26, 78]、RealEstate10K [127] 和 ACID [61] 数据集上的成对相对姿态,以及 Co3dv2 [74] 数据集上的多视图相对姿态

        成对相对姿态:

        我们的评估测试集与训练数据中的场景不重叠并且 Reloc3r 在训练期间完全看不到 ACID。 采用三个指标:AUC@5/10/20。 这些指标使用 τ = 5/10/20 度的阈值计算姿态精度曲线下的面积,以获得最小旋转和平移角度误差。由于没有专门为这些数据集设计现有的姿势回归(PR)方法,因此我们主要将我们的方法与非 PR 方法进行比较结果如表 3 所示。Reloc3r 在所有三个数据集上均明显优于其他 PR 方法。 

        在宽度为 512 的图像分辨率下,Reloc3r 的运行推理时间仅为 42 毫秒。 这比许多非 PR 方法(例如 NoPoSplat [119](>2000 ms)和 ROMA [34](300 ms))要快得多,并且与 PR 方法相当。

        多视图相对位姿

        我们评估 Co3dv2 [74] 数据集上的多视图相对姿势。 该数据集由使用内向相机轨迹捕获的对象级场景组成。 该数据集的主要挑战包括视觉对称性、无纹理对象以及图像之间的宽基线。我们在 41 个类别的测试集上评估 Reloc3r。 对于每个序列,我们随机采样 10 帧并制定所有 45 对进行评估。 这些相对位姿通过三个指标进行评估:15度以内的相对旋转精度(RRA@15)、15度以内的相对平移精度(RTA@15)和平均精度(mAA@30,也称为AUC@30) )。虽然我们将评估称为多视图,但实际上我们仅使用成对评估,类似于 DUSt3R(w/ PnP)和 MASt3R。定量结果如表 2 所示。与现有方法相比,所提出的 Reloc3r 在多个指标上实现了 SoTA 性能。

4.2 Detailed Ablation Studies

       Symmetric vs. asymmetric networksDUSt3R [109] 的两个分支旨在学习不同的功能。 他们的目标是在统一的坐标系中解决场景重建问题。 为了方便起见,他们选择第一帧的局部坐标系作为统一系统。 因此,第一个分支专注于 3D 几何重建,而不需要坐标变换,而第二个分支则处理几何重建和坐标系对齐相比之下,Reloc3r 专注于学习相对姿势,这两个分支本质上是对称的。 为了利用这一特性,我们通过引入共享解码器和预测头来调整 DUSt3R 的架构,在简化模型的同时保持其有效性

        Reloc3r 的非对称版本遵循 DUSt3R 的设计 [109],它对两个输入图像采用单独的解码器和回归头。 然而,这种方法增加了可学习参数的数量,并引入了基于图像顺序的潜在偏差。 为了减轻这种偏差,DUSt3R 在训练期间合并了翻转图像对,这增加了额外的计算开销。 如表 6 所示,我们证明非对称版本在 ScanNet1500 数据集上的表现甚至比默认的 Reloc3r 还要差。

        与非对称变体相比,我们的模型(具有 0.42B 个参数)实现了卓越的精度,同时使用的参数减少了约 28%

        是否使用度量尺度(metric scales)学习相对姿势

        如果我们学习相对姿势的度量尺度,那么相当于是将网络的优化方向从主要的估计相机方向和运动方向转移了从而可能阻碍跨数据集的泛化为了研究这一点,我们将平移输出归一化为单位向量,并添加一个额外的层来回归度量平移尺度。 预测的平移向量和尺度通过 L1 损失进行监督。 我们在 ScanNet1500 [26, 78] 和 Cambridge Landmarks [44] 上评估这个版本。 相对位姿估计结果如表 6 所示。这些发现验证了非度量设计的有效性,它使网络能够专注于两个关键方面:相机方向和运动方向。        

        绝对位姿估计的结果在表8中。标注为“metric”(度量)的方法代表了学习度量相机位姿的版本。我们观察到,预测的尺度估计缺乏准确性,导致平移误差与基线方法 [4, 113] 类似。为了进一步评估,我们仅专注于平移方向,并结合前两名运动平均(top-2 motion averaging),这产生了显著改进的结果。这一发现验证了我们通过运动平均而不是直接使用神经网络学习来估计度量尺度的方法,突显了其鲁棒性和有效性

        预训练权重的比较: Reloc3r 建立在最近的基础模型 DUSt3R [109] 的基础上,利用其预训练的权重进行初始化。 在这里,我们探索网络权重初始化的不同方法:表 7 列出了这些初始化方法的测试结果。


http://www.kler.cn/a/502227.html

相关文章:

  • thinkphp 5.0 结合redis 做延迟队列,队列无法被消费
  • 学习笔记080——如何备份服务器中Docker创建的MySQL数据库数据?
  • 计算机网络 网络层 2
  • 计算机网络 | 什么是公网、私网、NAT?
  • IntelliJ IDEA 主题插件
  • Redis常见
  • 基于springboot+vue的 嗨玩-旅游网站
  • 方法引用与lambda底层原理Java方法引用、lambda能被序列化么?
  • Vue 3前端与Python(Django)后端接口简单示例
  • 74.搜索二维矩阵 python
  • HTTP 常用方法解析
  • CES Asia 2025:科技盛宴即将开启,续写辉煌篇章
  • 快速、简单的2D-6D位姿估计:Gen6D算法复现 (pytorch 1.12.1 + cu113)
  • <C++> XlsxWriter写EXCEL
  • redis——无锁的原子操作Lua
  • IOS网络协议HTTP
  • 备战蓝桥杯:树的存储与遍历(dfs和bfs)
  • lerna使用指南
  • Android中的Service
  • Docker的CMD指令
  • VMware虚拟机安装Home Assistant智能家居平台并实现远程访问保姆级教程
  • Android切换语言不退出App
  • 一个可以把玩的针对WebSocket分段的处理方案
  • 浅谈云计算07 | 云安全机制
  • 蓝桥杯历届真题 # 数字诗意(C++,Java)
  • React面试常见题目