论文阅读笔记——VGGT: Visual Geometry Grounded Transformer

VGGT 论文
输入是 N 个 RGB 图像 I i ∈ R 3 × H × W I_i\in\mathbb{R}^{3×H×W} IiR3×H×W 的序列 ( I i ) i = 1 N (I_i)^N_{i=1} (Ii)i=1N,观察相同 3D 场景。
VGGT 的 Transformer 是一个映射函数,将此序列映射为一组对应的 3D 标注, f ( ( I i ) i = 1 N ) = ( g i , D i , P i , T i ) i = 1 N f\left((I_i)^N_{i=1}\right)=(g_i,D_i,P_i,T_i)^N_{i=1} f((Ii)i=1N)=(gi,Di,Pi,Ti)i=1N 。将每个图像 I i I_i Ii 映射到其相机参数 g ∈ R 9 g\in\mathbb{R}^9 gR9 (内参和外参)、深度图、点图和用于跟踪的 C 维特征网格。

  • 相机参数 g = [ q , t , f ] g=[q,t,f] g=[q,t,f] 采用旋转四元数( q ∈ R 4 q\in\mathbb{R}^4 qR4)、平移量( t ∈ R 3 t\in\mathbb{R}^3 tR3)和视场( f ∈ R 2 f\in\mathbb{R}^2 fR2)的串联。
  • 深度图将每个像素位置 y ∈ I ( I i ) y\in\mathcal{I}(I_i) yI(Ii) 与其对应深度值 D i ( y ) ∈ R + D_i(y)\in\mathbb{R}^+ Di(y)R+ 相关联;
  • 点图将每个像素与其对应的 3D 场景点相关联;
  • 关键点跟踪遵循 track-any-point,给定查询图像 I q I_q Iq 中一个固定的查询像素点 y q y_q yq,网格输出一个由所有图像 I i I_i Ii 中对应的二维点形成的轨迹 T ( y q ) = ( y i ) i = 1 N \mathcal{T}(y_q)=(y_i)^N_{i=1} T(yq)=(yi)i=1N。(此处指轨迹特征)
    预测顺序:图像在输入序列中的顺序是任意的,除了选择第一个图像作为参考帧。网络架构设计为除第一帧之外的所有帧都是置换不变(permutation equivariant) 的。
    在这里插入图片描述
    交替注意力:逐帧自注意力分别关注每帧中的 token t k I t_k^I tkI ,全局自注意力共同关注所有帧中的 token t I t^I tI 。这在集成不同图像中的信息与规范化每个图像中token的激活之间取得了平衡。默认情况下,采用 L = 24 层全局和框架级注意力。
    对每张输入图像进行token增强,添加相机 token t i g ∈ R 1 × C ′ t_i^g\in\mathbb{R}^{1×C'} tigR1×C和4个 register tokens t i R ∈ R 4 × C ′ t_i^R\in\mathbb{R}^{4×C'} tiRR4×C 来增强对应的图像标记 t i I t_i^I tiI。第一帧的相机 token 和寄存器 token 被设置与所有其他帧的不同的可学习的 token。(即第一帧独立学习,其他帧共享可学习参数——让模型知道第一帧作为基准,其他为相对于第一帧的变换)然后通过两个预测头分别输出相机参数和密集预测结果(包括深度图、点云图和跟踪特征)。相机预测头通过4层自注意力网络估计相机内参和外参,而密集预测头则采用DPT层和3×3卷积生成深度图、点云图及其不确定性。跟踪模块基于CoTracker2架构,通过特征相关和自注意力机制实现跨视图的点对应追踪,且不依赖于时序信息,可处理任意图像集合。 L = L c a m e r a ​ + L d e p t h ​ + L p m a p ​ + λ L t r a c k ​ ( λ = 0.05 ) L=L_{camera}​+L_{depth}​+L_{pmap​}+λL_{track}​(λ=0.05) L=Lcamera+Ldepth+Lpmap+λLtrack(λ=0.05) 其中 L c a m e r a ​ , L d e p t h ​ , L p m a p ​ L_{camera}​,L_{depth}​,L_{pmap​} Lcamera,Ldepth,Lpmap 的系数根据实验量级相近,认为无需加权。
  • L c a m e r a L_{camera} Lcamera 采用 Huber 损失: L c a m e r a = ∑ i = 1 N ∣ ∣ g i ^ − g i ∣ ∣ L_{camera}=\sum_{i=1}^N||\hat{g_i}-g_i|| Lcamera=i=1N∣∣gi^gi∣∣
  • L d e p t h L_{depth} Ldepth 是基于 DUSt3R 的不确定加权深度回归,并额外引入梯度约束: L d e p t h = ∑ i = 1 N ( ∣ ∣ ∑ D i ⊙ ( D i ^ − D i ) ∣ ∣ + ∣ ∣ ∑ D i ⊙ ( ∇ D i ^ − ∇ D i ) ∣ ∣ − α log ⁡ ∑ D i ) L_{depth}=\sum_{i=1}^N(||\sum_D^i\odot(\hat{D_i}-D_i)||+||\sum_D^i\odot(\nabla\hat{D_i}-\nabla D_i)||-\alpha\log\sum_D^i) Ldepth=i=1N(∣∣Di(Di^Di)∣∣+∣∣Di(Di^Di)∣∣αlogDi)
  • L t r a c k = ∑ j = 1 M ∑ i = 1 N ∣ ∣ y j , i − y j , i ^ ∣ ∣ L_{track}=\sum_{j=1}^M\sum_{i=1}^N||y_{j,i}-\hat{y_{j,i}}|| Ltrack=j=1Mi=1N∣∣yj,iyj,i^∣∣
    真值坐标归一化:如果我们缩放场景或更改其全局参考系,场景的图像完全不会受到影响,这意味着任何此类变体都是 3D 重建的合法结果。我们通过对数据进行归一化来消除这种歧义,从而做出规范的选择并让 transformer 输出这个特定的变体。首先在第一台相机 g1 的坐标系中表示所有量。然后,我们计算点图 P 中所有 3D 点到原点的平均欧几里得距离,并使用此比例对相机平移 t 、点图 P 和深度图 D 进行归一化。重要的是,不会将这种归一化应用于 transformer 输出的预测;相反,我们强制它学习我们从训练数据中选择的归一化。
    实现细节:默认情况下,我们分别采用 L = 24 层全局和框架注意力。该模型总共包含大约 12 亿个参数。我们通过使用 AdamW 优化器优化 160K 迭代的训练损失 (2) 来训练模型。我们使用一个余弦学习率调度器,峰值学习率为 0.0002,预热为 8K 次迭代。对于每个批次,从随机训练场景中随机采样 2-24 帧。输入帧、深度图和点图的大小将调整为最大尺寸为 518 像素。纵横比在 0.33 和 1.0 之间随机化。我们还对帧随机应用颜色抖动、高斯模糊和灰度增强。训练在 64 个 A100 GPU 上运行,为期 9 天。我们采用阈值为 1.0 的梯度范数裁剪来确保训练稳定性。利用 bfloat16 精度和梯度检查点来提高 GPU 内存和计算效率。

实验结果

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

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

相关文章

【嵌入式电机控制#11】PID控制入门:对比例算法应用的深度理解

接下来内容需要数学功底,并且有现成结论的内容不做推导,重在讲解工程实践中的方法论,建议控制类专业或学习过相关理论的人阅读 一、开闭环系统 (1)开环控制系统:被控对象输出对控制器的输出没有影响 &…

多视图几何:本质矩阵与基础矩阵

文章目录 1. 前置知识1.1. 向量叉乘1.2. 混合积1.3. 引理证明 2. 本质矩阵3. 基础矩阵4. 应用例子 1. 前置知识 1.1. 向量叉乘 假设 a ( a x a y a z ) \mathbf{a} \begin{pmatrix} a_x \\ a_y \\ a_z \end{pmatrix} a ​ax​ay​az​​ ​ 以及 b ( b x b y b z ) \mat…

Hive集群之间迁移的Linux Shell脚本

新旧 Hive 集群之前数据迁移单表脚本 migrate_hive_single_table.sh #!/bin/bash#配置参数 OLD_NAMENODE"hdfs://<old-namenode>:<old-port>" EXPORT_PATH"/tmp/hive-export/dm" NEW_DB"dm_events" TABLE_NAME"dm_usereventfi…

新时代的开始,华为开源仓颉编程语言!

7月30日&#xff0c;华为即将开源自研的仓颉编程语言。 仓颉这个名字很有意思。传说中的仓颉创造了汉字&#xff0c;开启了中华文明的文字时代。华为用这个名字&#xff0c;体现了对中华文化的致敬。从2020年开始研发&#xff0c;到去年首次亮相&#xff0c;再到现在的全面开源…

【python实用小脚本-128】基于 Python 的 Hacker News 爬虫工具:自动化抓取新闻数据

引言 在技术社区中&#xff0c;Hacker News 是一个汇聚最新技术文章和讨论的热门平台。许多开发者和技术爱好者依赖它来获取行业动态和前沿资讯。然而&#xff0c;手动浏览和筛选这些文章可能耗时且低效。本文将介绍一个基于 Python 的 Hacker News 爬虫工具&#xff0c;它能够…

mac 电脑安装Homebrew来安装npm与node成功后,安装nvm的流程

文章目录 前言一、卸载node(如果没下载可以忽略这步)1.官网下载安装包的2. homebrew安装的 二、安装Homebrew(1) 命令安装&#xff08;2&#xff09;出现上面提示&#xff0c;执行对应的命令&#xff08;3&#xff09;校验是否安装成功 三&#xff1a;安装node&#xff08;Home…

根据无人机倾斜摄影osgb做的3dmax模型3dtiles制作,导出.b3dm加载到谷歌地图cesiumlab

根据无人机倾斜摄影osgb做的3dmax模型3dtiles制作&#xff0c;导出.b3dm加载到谷歌地图cesiumlab 根据无人机倾斜摄影osgb做的3dmax模型3dtiles制作&#xff0c;导出.b3dm加载到谷歌地图cesiumlab

Yocto项目:嵌入式Linux开发的“万能烹饪手册”

目录 一.Yocto是什么? 二.Yocto如何运作&#xff1f; 2.1 三大核心工具 2.2 实例 三.为什么开发者爱用Yocto&#xff1f; 3.1 ​自由定制&#xff0c;拒绝“全家桶”​​ 3.2 跨平台支持&#xff1a;从x86到火星芯片​ 3.3 工业级可靠性​ PetaLinux是Xilinx官方推出的…

【nosql】有哪些非关系型数据库?

非关系型数据库Nosql 分类 键值存储 (Key-Value Store): 代表: Redis, DynamoDB, RocksDB, etcd核心优势: 极致简单、超高读写性能&#xff08;尤其内存型&#xff09;、高吞吐。场景: 缓存、会话存储、配置、计数器、分布式协调、简单消息队列。 列式 / 宽列存储 (Wide-Colu…

Redis存储Cookie实现爬虫保持登录 requests | selenium

前言 前面已经介绍了requests和selenium这两种方式的基础知识和模拟登录,但是我们需要每次都进行登录,这明显是很麻烦并且不合理的,所以这次我分享一下怎么可以让我们的程序进行一次登录之后,和普通浏览器一样下次不进行登录直接进行对网站数据的爬取 下面的我分享的内容需要…

leetcode:474. 一和零[01背包][动态规划]

学习要点 给定背包容量&#xff0c;装满背包最多有多少个物品深入理解01背包深入理解动态规划 题目链接 474. 一和零 - 力扣&#xff08;LeetCode&#xff09; 题目描述 解法:01背包 class Solution { public:int findMaxForm(vector<string>& strs, int m, int …

UE5 使用过程遇到的问题

切换缓存位置 进入界面&#xff0c;选择-编辑-编辑器偏好设置搜索缓存&#xff0c;找到通用全局&#xff0c;修改本地DCC路径到要切换的位置 闪退报错 Fatal: Failed to get dll export function: cuvidGetDecoderCaps [NVDEC] 因为NVIDIA驱动没有卸载干净&#xff0c;使用D…

2025 BSidesMumbaiCTF re 部分wp

XORyy 附件拖入ida。明文 idkwhattonamethis 附件拖入ida 前三个函数都是检查环境&#xff0c;跳过即可 长度为5&#xff0c;可以根据flag格式求解。脚本。尽管多解但是可能的结果很少 Diff_EQ 附件拖入ida z3求解等式&#xff0c;脚本。无反调试的情况下本地可以验证&#xff…

图灵完备之路(数电学习三分钟)----逻辑与计算架构

经过前面几节的学习&#xff0c;我们已经有了简单的数电知识&#xff0c;下面&#xff0c;我们将正式进入设计简单图灵完备机的工作&#xff0c;首先&#xff0c;我们要设计出具有逻辑运算与计算功能的简单结构&#xff1a; 1.逻辑架构 首先&#xff0c;该架构能实现多种逻辑…

【C++笔记】AVL树的深度剖析

【C笔记】AVL树的深度剖析 &#x1f525;个人主页&#xff1a;大白的编程日记 &#x1f525;专栏&#xff1a;C笔记 文章目录【C笔记】AVL树的深度剖析前言一. AVL树的概念二.AVL树的实现2.1 AVL树的结构2.2 AVL树的插入2.3 平衡因子更新三.旋转3.1旋转的原则3.2右单旋3.3左单…

支持向量机(SVM)在肝脏CT/MRI图像分类(肝癌检测)中的应用及实现

&#x1f9d1; 博主简介&#xff1a;CSDN博客专家、CSDN平台优质创作者&#xff0c;高级开发工程师&#xff0c;数学专业&#xff0c;10年以上C/C, C#, Java等多种编程语言开发经验&#xff0c;拥有高级工程师证书&#xff1b;擅长C/C、C#等开发语言&#xff0c;熟悉Java常用开…

DeepSeek扫雷游戏网页版HTML5(附源码)

用DeepSeek帮忙生成一个网页版的扫雷游戏&#xff0c;效果非常棒&#xff0c;基于HTML5实现&#xff0c;方便运行。 提示词prompt 帮我做一个网页版的 html5 扫雷游戏游戏功能说明 游戏难度&#xff1a; 1 简单&#xff1a;1010 格子&#xff0c;10个地雷 2 中等&#xff1a;16…

Day53GAN对抗生成网络思想

生成对抗网络&#xff08;GAN&#xff09;是深度学习领域的一种革命性模型&#xff0c;由Ian Goodfellow等人于2014年提出。其核心思想源于博弈论中的零和博弈&#xff0c;通过两个神经网络&#xff08;生成器和判别器&#xff09;的对抗性训练&#xff0c;实现数据的高质量生成…

meilisearch-轻量级搜索引擎

meilisearch是一款开源的轻量级搜索引擎&#xff0c;相比于elasticsearch等重量级搜索引擎&#xff0c;meilisearch注重数据搜索&#xff0c;从而而省去了其它不必要的功能&#xff08;如支持聚合分析、分布式搜索等特性&#xff09;&#xff0c;以便于快速上手开发和构建应用。…

51c大模型~合集150

我自己的原文哦~ https://blog.51cto.com/whaosoft/14034001 #原来Scaling Law还能被优化 Meta这招省token又提效 2017 年&#xff0c;一篇《Attention Is All You Need》论文成为 AI 发展的一个重要分水岭&#xff0c;其中提出的 Transformer 依然是现今主流语言模型…