作者:Zhipeng Cai, Zhuang Liu, Yunyang Xiong, Zechun Liu, Vikas Chandra, Yangyang Shi

单位:Meta, Princeton University

会议:2026 Arxiv

链接:https://arxiv.org/abs/2605.30561

代码:https://github.com/facebookresearch/VLM3

研究动机

VLM3-0

这篇文章的核心问题不是再做一个 3D 专家模型,而是反过来追问:

标准 VLM 在不改架构、不加专门 3D head、不使用复杂回归损失的情况下,能否通过文本监督学会细粒度 3D 任务?

这个问题成立的背景有三层。

  1. 现有 VLM 在语义理解上很强,但 3D 理解仍然经常依赖专门模型。例如深度估计、像素对应、相机位姿估计通常需要 DPT/FPN/匹配网络/位姿回归头等任务结构。

  2. 近期 DepthLM 已经说明,标准 VLM 可以通过文本输出单点 metric depth,但它仍然依赖视觉 marker 来指定像素位置,扩展到多像素、多任务时效率不高。

  3. 很多 3D 方法默认认为“连续几何量必须回归”,但 VLM3 试图证明:只要相机尺度、像素引用和数据混合处理得当,next-token prediction 也可以承载 3D 几何输出。

因此,VLM3 的贡献更像是一组反证实验:作者不是给 VLM 加更多 3D 归纳偏置,而是尽量移除这些专门设计,观察数据规模和统一文本接口是否已经足够。

核心方法

VLM3-1

VLM3 的设计非常克制:保留标准 VLM 架构,以 Qwen3-VL-4B 为默认基座,用文本 SFT 训练多种 3D 任务。真正关键的不是新模块,而是三件事。

  1. 焦距统一

对于单目 metric depth 和物体级 3D 理解,同一个 2D 像素尺度在不同相机焦距下对应不同 3D 尺度。如果把多个数据集直接混在一起,模型会同时看到相互冲突的尺度监督。

VLM3 沿用 DepthLM 的做法,把输入图像重采样到统一虚拟焦距,论文默认使用 $f_c=1000$ pixels。可以把它理解成先用

对图像进行尺度归一化,再让 VLM 学习归一化相机下的几何关系。对于没有内参的互联网图像,作者使用预训练单图像标定模型估计内参,再做同样的焦距统一。

  1. 文本化像素和区域引用

DepthLM 需要在图像上渲染 marker 来告诉模型“问的是哪个像素”。这会带来两个问题:同一张图问多个点时要重复渲染多份图像;而像素对应任务还需要输出目标像素,marker 形式很难自然表达。

VLM3 改成纯文本坐标引用。关键不是直接输入原图像素坐标,而是把横纵坐标都归一化到固定范围,例如 $[0, 2000)$:

这样模型看到的坐标分布更接近 object detection 类 VLM 的离散坐标习惯,也避免每张图都出现不同分辨率坐标系。对物体级任务,VLM3 直接用文本中的 bounding box 坐标引用对象;对像素对应,输入和输出像素都可以是文本坐标。

  1. 数据混合和规模

作者的判断是:当相机歧义和引用方式解决后,真正限制 VLM 3D 能力的是数据混合,而不是架构复杂度。不同数据集规模差异很大,简单 uniform weighting 会让小数据集被过拟合,或者让大数据集贡献不足。

因此 VLM3 对深度估计使用非均匀数据权重;像素对应和相机位姿则按数据对数量做近似权重。这个选择看似朴素,但 Table 3 说明它比“加大模型”更关键。

VLM3 覆盖四类任务:

  1. Metric depth estimation:输入图像和文本坐标,输出该像素到相机的米制距离。
  2. Object-level 3D understanding:输入物体框坐标,回答距离、方位、宽高等物体级 3D 问题。
  3. Pixel correspondence:输入两张图和第一张图中的 query pixel,输出第二张图中的对应像素。
  4. Camera pose estimation:输入两张图,分别输出平移距离、平移方向向量、yaw/pitch/roll。

最有意思的是相机位姿部分。传统路线通常是先匹配、再几何求解,或者联合深度、光线、轨迹、位姿等多个回归目标。VLM3 则把位姿拆成文本问答,让模型直接生成数值。这不一定说明文本生成天然优于回归,但它确实挑战了“复杂连续输出必须有专门回归头”的惯性假设。

数据集

VLM3-7

训练数据按任务分开组织。

  1. 深度估计:使用 Argoverse2、Waymo、NuScenes、ScanNet++、Taskonomy、HM3D、Matterport3D,以及 10M 内部街景数据。总训练设置是 32M samples,每个 sample 包含 10 个像素问答,也就是约 320M 个标注像素。

  2. 物体级 3D 理解:沿用 SpatialRGPT 的训练和评测数据,约 1M images。不同点在于 VLM3 不使用额外 region encoder,而是通过文本 bounding box 直接指代对象。

  3. 像素对应与相机位姿:使用约 9.9M 图像对,来源包括 BlendedMVS、DynamicReplica、SAIL-VOS 3D、ScanNet++、RealEstate-10K、DL3DV-10K、MegaDepth、TartanAirV2、Spring 等。图像对采样要求有超过 25% covisibility,并从 ScanNet++ 中留出 30 个场景做未见场景评测。

评测也覆盖四类任务:深度估计使用 DepthLM 的 9 个 VLM 对比数据集和 5 个专家模型对比数据集;物体级理解使用 SpatialRGPT-Bench;像素对应跟随 UFM 的 EPE 指标和数据集;相机位姿在 ETH3D 与 ScanNet++ 上用 AUC@30°。

算力

VLM3-6

论文给出的训练资源如下。

  1. 深度估计:32M samples,每个样本 10 个像素问答,batch size 1344,32 GPUs 训练约 3 天。

  2. 物体级 3D:1M images,batch size 640,32 GPUs 训练约 3 小时。

  3. 像素对应:80M samples,每个样本 10 个问答,batch size 2816,64 GPUs 训练约 7 天。

  4. 相机位姿:10M samples,batch size 448,32 GPUs 训练约 4 天。

实现细节上,作者使用 cosine learning rate schedule、linear warmup,AdamW,FSDP hybrid shard,gradient clipping 0.02,gradient checkpointing,bfloat16 和 Flash Attention 2。这里需要注意:虽然方法“结构简单”,但训练规模并不轻,尤其是深度估计和像素对应都依赖千万级样本。

实验结果

VLM3-2

Table 1 比较的是 VLM 系列模型。结果支持三个主要结论。

  1. 普通 VLM 的原生 metric depth 能力仍然很弱。Qwen3-VL-4B 平均 $\delta_1$ 只有 0.101,Qwen3-VL-32B 也只有 0.208,说明单纯扩大通用 VLM 并不会自动获得稳定像素级深度能力。

  2. VLM3-4B 在深度估计上把 DepthLM-7B 的平均 $\delta_1$ 从 0.838 提高到 0.904,同时模型更小、引用方式更简单。

  3. 在非深度任务上,VLM3 也不是只学到一个 narrow depth skill。它在 SpatialRGPT-Bench qualitative overall 达到 91.35,高于 SpatialRGPT-8B 的 89.80;像素对应 EPE 从 base VLM 的 153.28 降到 15.37;相机位姿 AUC@30° 从 5.4 提高到 94.0。

VLM3-3

Table 2 把 VLM3 和专家视觉模型放在一起。这里结论要更谨慎地读。

在深度估计上,VLM3 对 NuScenes 和 iBims1 很强,但在 DDAD、ETH3D、sunRGBD 上并没有全面超过 UnidepthV2、MoGe-2 等专家模型。更合理的说法是:VLM3 已经能在若干数据集上接近甚至超过专家模型,而不是对所有场景统一胜出。

在像素对应上,VLM3 的平均 EPE 为 15.37,优于 DKM 和 RoMa,但仍落后于 UFM 的 7.89。它证明标准 VLM 可以学会对应关系,但还没有证明文本化输出已经达到最强 dense matching 专家模型。

相机位姿是最惊人的部分。VLM3 的平均 AUC@30° 为 94.0,接近 DA3-Giant 的 94.7,并超过 VGGT 的 88.0。考虑到它没有显式做匹配-优化流程,这个结果是文章中最能支撑“VLM 可以成为 3D learner”的证据之一。

VLM3-4

Figure 3 的可视化说明,VLM3 不只是输出孤立数字。对于深度估计,作者把多个像素查询转换成点云,可以看到 indoor/outdoor 都有较清晰结构;对于 object-level 3D,模型能回答前后、宽度等空间问题;对于 correspondence,预测线段大体贴近 GT 位置;对于 pose,文本输出的旋转和平移可以渲染成相机坐标系。

不过这些可视化也提示了边界:VLM3 仍然是在通过离散文本问答生成几何量,dense map 或 dense correspondence 需要大量 query 或打包 query 才能得到完整输出。它的接口统一性很好,但推理形态和专家模型的一次性 dense output 仍然不同。

VLM3-5

Table 3 是全文最值得记住的消融。

  1. 文本像素引用并不比视觉 marker 差。在 8M samples + 1QA 设置下,visual prompting 的 $\delta_1$ 是 0.849,text-based 是 0.853。

  2. 数据权重比盲目扩样重要。uniform weight 在 32M samples + 10QA 下只有 0.842,反而不如小规模文本引用;按数据集规模加权提升到 0.884,VLM3 的进一步调权提升到 0.904。

  3. 更大模型没有带来更好深度结果。32B 是 0.873,8B 是 0.880,4B 是 0.904。作者推测当前数据规模下大模型更容易过拟合;64M samples 的 4B 也下降到 0.880,说明继续堆数据若不改混合策略也可能过拟合。

这组结果把文章的重点从“VLM3 是一个新结构”转移到“VLM 3D 学习的瓶颈在数据组织和任务表述”。

优势与不足

优势

  1. 方法极简,论点清晰。VLM3 没有引入新的 3D encoder、dense prediction head 或多损失系统,而是用焦距统一、文本坐标、数据混合把标准 VLM 推到多类 3D 任务上。

  2. 任务覆盖面比单纯深度 VLM 更广。深度估计、物体级空间理解、像素对应、相机位姿分别覆盖单视图、多视图、像素级、对象级和相机级几何。

  3. 消融实验有实际启发。Table 3 说明 text-based reference、dataset weighting、小模型充分性这些结论并不是只靠主结果推断出来的。

  4. 对 3D foundation model 的设计有启发意义。它提示未来未必总要为每个 3D 任务设计独立 head,也可以把几何监督转化为统一的文本条件与文本输出。

不足

  1. “native 3D learner”这个表述仍需谨慎。论文证明的是标准 VLM 经过大规模 3D SFT 后可以掌握多种 3D 任务,并不等于未经训练的通用 VLM 已经自然具备可靠 3D 几何能力。

  2. 训练成本不低。方法结构简单,但深度估计、像素对应、相机位姿都需要千万级样本和 32/64 GPUs 级别训练,复现门槛仍然高。

  3. Dense 输出形态仍然不如专家模型直接。深度图和像素对应需要通过多个坐标 query 生成,虽然可以打包提问,但与一次前向输出完整 dense map/flow 的模型相比,部署方式不同。

  4. 数据和调权依赖强。Table 3 反而说明,如果数据混合不当,规模扩大可能失效甚至退化。这意味着 VLM3 的成功很大程度依赖数据工程,而不只是训练范式本身。

  5. 部分结论仍是经验性解释。例如作者把大模型效果下降归因于过拟合,这个解释合理,但还需要更系统的数据规模、训练步数、模型尺寸 sweep 才能完全坐实。

记忆点

  1. VLM3 的核心不是新网络,而是三个条件:焦距统一、文本化像素/区域引用、数据混合与规模。

  2. 把像素坐标归一化到固定文本坐标系 $[0, 2000)$,是让 VLM 理解像素引用的关键技巧。

  3. 3D 任务不一定必须用专门回归头表达;深度、对应、位姿都可以被转写成文本问答监督。

  4. 数据权重比模型尺寸更影响结果。uniform scaling 可能退化,4B 小模型在合适数据混合下反而最好。

  5. 这篇文章最有价值的地方,是迫使我们重新区分“3D 能力来自架构归纳偏置”还是“来自足够规范的数据和统一任务接口”。