远超VGGT!浙大开源π3等变视觉几何学习:姿态估计、深度估计、3D重建新SOTA!

点击下方卡片,关注「3D视觉工坊」公众号
选择星标,干货第一时间送达

来源:3D视觉工坊

「3D视觉从入门到精通」知识星球(点开有惊喜) !星球内新增20多门3D视觉系统课程、入门环境配置教程、多场顶会直播、顶会论文最新解读、3D视觉算法源码、求职招聘等。想要入门3D视觉、做项目、搞科研,欢迎扫码加入

图片

“学习总是胜过归纳偏置。”——乔纳森·T·巴伦,《辐射场与生成媒体的未来》

0. 论文信息

标题::Scalable Permutation-Equivariant Visual Geometry Learning

作者:Yifan Wang, Jianjun Zhou, Haoyi Zhu, Wenzheng Chang, Yang Zhou, Zizun Li, Junyi Chen, Jiangmiao Pang, Chunhua Shen, Tong He

机构: Shanghai AI Lab、ZJU、SII

原文链接:https://arxiv.org/pdf/2507.13347

代码链接:https://github.com/yyfz/Pi3

1. 导读

我们提出π³,这是一种前馈神经网络,为视觉几何重建提供了一种新方法,打破了传统固定参考视图的依赖。先前的方法通常将重建结果锚定在指定的视点上,这种归纳偏置在参考视点不佳时会导致不稳定和失败。相比之下,π³采用了一种完全置换等变架构,无需任何参考坐标系即可预测仿射不变的相机位姿和尺度不变局部点图。这种设计使我们的模型对输入顺序具有内在的鲁棒性,并且具有高度的可扩展性。这些优势使我们的简单且无偏置的方法在相机位姿估计、单目/视频深度估计和稠密点图重建等广泛任务上取得了最先进的性能。代码和模型已公开可用。

2. 效果展示

π³以一种前馈的方式有效地重建了开放域中的多种图像,这些图像涵盖了室内、室外和俯视等多种场景,以及包含动态和静态内容的图像。

不同参考框架之间的性能比较。虽然以前的方法,即使与DINO为基础的选择,显示不一致的结果,π3一贯提供卓越和稳定的性能,证明了其鲁棒性。

3. 引言

视觉几何重建是计算机视觉领域长期存在的一个基础性问题,在增强现实、机器人技术和自主导航等应用中具有巨大潜力。

虽然传统方法使用迭代优化技术(如光束平差法(Bundle Adjustment,BA))来解决这一挑战,但最近前馈神经网络在该领域取得了显著进展。像DUSt3R及其后续模型这样的端到端模型已经展示了深度学习从图像对、视频或多视图集合中重建几何图形的强大能力。

尽管取得了这些进展,但经典方法和现代方法都存在一个关键局限性:依赖选择单个固定参考视图。所选视图的相机坐标系被视为全局参考坐标系,这种做法源自传统的运动恢复结构(Structure-from-Motion,SfM)或多视图立体(Multi-view Stereo,MVS)。我们认为,这种设计选择引入了一种不必要的归纳偏置,从根本上限制了前馈神经网络的性能和鲁棒性。正如我们通过实证所证明的,对任意参考视图的依赖使得包括最先进(SOTA)的VGGT在内的现有方法对初始视图选择高度敏感。选择不当会导致重建质量急剧下降,阻碍了鲁棒且可扩展系统的开发。

为了克服这一局限性,我们提出了π³,这是一种鲁棒、可扩展且完全置换等变的方法,消除了视觉几何学习中基于参考视图的偏置。π³接受各种输入,包括来自静态或动态场景的单张图像、视频序列或无序图像集,而无需指定参考视图。相反,我们的模型为每个帧预测一个仿射不变的相机位姿和一个尺度不变局部点图,所有这些都相对于该帧自身的相机坐标系。通过避免使用像帧索引位置嵌入这样依赖于顺序的组件,并采用一种在视图级和全局自注意力之间交替的变换器架构,π³实现了真正的置换等变性。这保证了视觉输入与重建几何图形之间的一致的一对一映射,使模型对输入顺序具有内在的鲁棒性,并且不受参考视图选择问题的影响。推荐课程:机械臂6D位姿估计抓取从入门到精通

我们的设计带来了显著的优势。首先,它展示了卓越的可扩展性,随着模型规模的增加,性能持续提升(图2和图9)。其次,它实现了显著更快的训练收敛速度(图2和图9)。最后,我们的模型更加鲁棒;与先前的方法相比,当参考帧改变时,它的性能下降最小,标准差较低。

通过广泛的实验,π³在众多基准测试和任务上建立了新的最先进水平。例如,它在单目深度估计方面取得了与现有方法(如MoGe)相当的性能,并在视频深度估计和相机位姿估计方面优于VGGT。在Sintel基准测试中,π³将相机位姿估计的绝对轨迹误差(ATE)从VGGT的0.167降低到0.074,并将尺度对齐的视频深度绝对相对误差从0.299提高到0.233。此外,π³既轻量又快速,推理速度达到57.4 FPS,而DUSt3R为1.25 FPS,VGGT为43.2 FPS。它能够重建静态和动态场景的能力使其成为现实世界应用的鲁棒且最优的解决方案。

4. 主要贡献

本工作的贡献如下:

• 我们是第一个系统地识别并挑战视觉几何重建中对固定参考视图的依赖的研究,证明了这种常见的设计选择引入了一种有害的归纳偏置,限制了模型的鲁棒性和性能。

• 我们提出了π³,这是一种新颖的、完全置换等变的架构,消除了这种偏置。我们的模型以纯相对的、逐视图的方式预测仿射不变的相机位姿和尺度不变点图,完全消除了对全局坐标系的需求。

• 我们通过广泛的实验证明,π³在相机位姿估计、单目/视频深度估计和点图重建等广泛基准测试上建立了新的最先进水平,优于先前的领先方法。

• 我们表明,我们的方法不仅对输入视图顺序更加鲁棒,并且随着模型规模的扩大更具可扩展性,而且在训练期间收敛速度显著更快。

5. 方法

与先前通过拼接特殊标记(A型)或添加可学习嵌入(B型)来指定参考视图的方法不同,π³通过完全消除这一要求来实现置换等变性。相反,它采用相对监督,使我们的方法对输入视图的顺序具有内在的鲁棒性。

6. 实验结果

7. 总结

在这项工作中,我们引入了π3,它通过消除对固定参考视图的依赖为视觉几何重建提供了一种新的范式。通过利用完全排列等变结构,我们的模型对输入顺序具有固有的鲁棒性和高度可伸缩性。这种设计选择消除了在以前的方法中发现的一个关键的诱导偏差,使我们简单而强大的方法在广泛的任务上实现国家的最先进的性能,包括相机姿态估计,深度估计和密集重建。π3证明了无参考系统不仅可行,而且可以导致更稳定和多功能的3D视觉模型。

对更多实验结果和文章细节感兴趣的读者,可以阅读一下论文原文~

本文仅做学术分享,如有侵权,请联系删文。

3D视觉硬件,官网:www.3dcver.com

3D视觉学习圈子

「3D视觉从入门到精通」知识星球(点开有惊喜) !星球内新增20多门3D视觉系统课程、入门环境配置教程、多场顶会直播、顶会论文最新解读、3D视觉算法源码、求职招聘等。想要入门3D视觉、做项目、搞科研,欢迎扫码加入

3D视觉全栈学习课程:www.3dcver.com

3D视觉交流群成立啦,微信:cv3d001

添加微信:cv3d001,备注:方向+单位,邀你入3D视觉交流群!
04-03
### VGG 深度学习模型架构特点 VGG 是一种经典的卷积神经网络 (Convolutional Neural Network, CNN),最初由牛津大学视觉几何组 (Visual Geometry Group) 提出并因此得名。它以其简洁而优雅的设计成为深度学习领域的重要里程碑之一。 #### 架构设计 VGG 的核心设计理念是通过堆叠多层小型卷积核(通常是 \(3 \times 3\) 卷积核),逐步增加网络的深度,而不是单纯扩大每一层的感受野或参数数量。这种设计使得 VGG 能够更有效地提取图像的空间特征[^1]。 具体来说: - **卷积层**:每层通常采用 \(3 \times 3\) 小型卷积核,并配合 ReLU 激活函数。 - **池化层**:每隔若干卷积层之后加入最大池化操作 (\(Max Pooling\)) 来降低空间维度。 - **全连接层**:在网络末端使用几层全连接层完成最终分类任务。 #### 主要版本 VGG 定义了两种主要体——VGG16 和 VGG19,分别表示有 16 层和 19 层权重层(不计池化层)。这两种结构仅在层数上有所差异,在实际应用中表现相近但各有优劣[^5]。 --- ### 技术特点 1. **统一的小尺寸卷积核** - 使用 \(3 \times 3\) 的小卷积核代替更大的卷积核(如 \(7 \times 7\) 或 \(5 \times 5\)),可以减少参数总量,同时保留足够的表达能力。 2. **深层网络的优势** - 随着网络加深,能够捕捉到更加复杂的模式和抽象特征。实验表明,较深的网络(如 VGG16/19)相较于浅层网络表现出更好的泛化能力和更高的精度。 3. **简单的模块化设计** - 整个网络几乎完全由相同的组件构成,便于理解和扩展。这一特性也使 VGG 成为许多后续研究的基础平台[^2]。 4. **计算成本较高** - 尽管采用了较小的卷积核,但由于其极高的深度以及大量连续卷积运算的存在,导致内存占用较大、推理时间较长等问题。这些问题可以通过一些优化手段缓解,比如知识蒸馏或其他轻量化技术[^4]。 --- ### 使用方法 以下是利用 Python 中流行的深度学习框架 PyTorch 实现 VGG16 的代码示例: ```python import torch.nn as nn import torch.nn.functional as F class VGG16(nn.Module): def __init__(self, num_classes=1000): super(VGG16, self).__init__() # Conv layers configuration self.features = nn.Sequential( *self._make_layers([64, 64, 'M', 128, 128, 'M', 256, 256, 256, 'M', 512, 512, 512, 'M', 512, 512, 512, 'M']) ) # Fully connected layers self.classifier = nn.Sequential( nn.Linear(512*7*7, 4096), nn.ReLU(True), nn.Dropout(), nn.Linear(4096, 4096), nn.ReLU(True), nn.Dropout(), nn.Linear(4096, num_classes) ) def forward(self, x): out = self.features(x) out = out.view(out.size(0), -1) out = self.classifier(out) return out @staticmethod def _make_layers(cfg): layers = [] in_channels = 3 for v in cfg: if v == 'M': layers += [nn.MaxPool2d(kernel_size=2, stride=2)] else: conv2d = nn.Conv2d(in_channels, v, kernel_size=3, padding=1) layers += [conv2d, nn.ReLU(inplace=True)] in_channels = v return nn.Sequential(*layers) # Example usage of the model model = VGG16(num_classes=10).cuda() print(model) ``` 上述代码定义了一个标准版的 VGG16 结构,支持自定义类别数 `num_classes` 参数调整适应不同数据集需求。 如果希望进一步提升效率,则可通过迁移学习加载预训练权重文件或将原生 VGG 替换为经过压缩处理后的简化版本。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值