Puffin 将相机参数视为语言模态,通过"Thinking with Camera"机制,在同一框架内统一实现相机几何理解(calibration)与可控图像生成(novel view synthesis),在 MegaDepth、TartanAir 等多个基准上超越专用方法。Puffin treats camera parameters as a language modality and, through the "Thinking with Camera" mechanism, unifies camera geometry understanding (calibration) and controllable image generation (novel view synthesis) within a single framework, surpassing specialized methods on multiple benchmarks such as MegaDepth and TartanAir.
相机几何理解(从图像估计 roll/pitch/FoV 等参数)与可控图像生成(按指定视角合成场景)是空间智能的两大基石,但长期以来被作为独立任务研究。现有方法将相机参数当作辅助数字标签,忽视了其本身作为模态的语义价值,导致模型在追求语义对齐时忽略精确的空间约束,性能次优。Camera geometry understanding (estimating parameters such as roll/pitch/FoV from an image) and controllable image generation (synthesizing a scene from a specified viewpoint) are two cornerstones of spatial intelligence, yet they have long been studied as separate tasks. Existing methods treat camera parameters as auxiliary numerical labels and overlook their semantic value as a modality in their own right, so models chasing semantic alignment neglect precise spatial constraints and remain suboptimal.
"Camera-centric understanding and generation are two cornerstones of spatial intelligence, yet they are typically studied in isolation."
核心挑战在于模态鸿沟:相机参数是抽象的数值(如 FoV=72°),缺乏视觉语义,而大型多模态模型(LMM)的训练目标是语义对齐。现有做法要么独立训练专用的几何估计器,要么将参数硬编码为辅助标签,均未能充分利用 LMM 的视觉-语言推理能力。Puffin 提出将相机参数视为一种语言,用摄影专业术语(如 "tilt-up"、"Dutch angle"、"close-up")作为中间表示,弥合数值几何与高层语义之间的差距。The core challenge is the modality gap: camera parameters are abstract numbers (e.g. FoV=72°) that carry no visual semantics, whereas large multimodal models (LMMs) are trained for semantic alignment. Existing practice either trains a dedicated geometry estimator in isolation or hard-codes the parameters as auxiliary labels, and neither fully exploits the vision-language reasoning ability of LMMs. Puffin instead treats camera parameters as a kind of language, using professional photographic terms (such as "tilt-up", "Dutch angle", "close-up") as an intermediate representation that bridges numerical geometry and high-level semantics.
Puffin 以自回归语言回归(camera understanding)和扩散模型生成(camera-controllable generation)为双主干,通过共享的"Thinking with Camera"链式推理将二者统一。整个系统基于四阶段渐进式训练策略,在 Puffin-4M 数据集上训练,共耗时约 4 天(64 A100 GPU)。Puffin rests on two backbones — autoregressive language regression (camera understanding) and diffusion-based generation (camera-controllable generation) — and unifies them through a shared "Thinking with Camera" chain of reasoning. The whole system follows a four-stage progressive training strategy and is trained on the Puffin-4M dataset, taking about 4 days in total (64 A100 GPUs).
该机制的核心思想是将三类空间先验编码进 chain-of-thought 推理链:The core idea of this mechanism is to encode three kinds of spatial prior into the chain-of-thought reasoning chain:
Puffin 由四个核心模块构成:Puffin comprises four core modules:
从约 20 万张全景图(panoramic images)出发,通过透视投影裁切构造 400 万个 vision-language-camera 三元组,覆盖室内/室外多样场景,参数范围为 roll/pitch ∈ [−45°, 45°]、FoV ∈ [20°, 105°]、yaw ∈ [0°, 360°]。每个样本包含:精确相机参数、场景文字描述、pixel-wise perspective field map、以及空间推理 caption(用于 Thinking SFT)。Starting from about 200000 panoramic images, perspective-projection cropping is used to construct 4000000 vision-language-camera triplets covering diverse indoor and outdoor scenes, with parameter ranges roll/pitch ∈ [−45°, 45°], FoV ∈ [20°, 105°] and yaw ∈ [0°, 360°]. Each sample contains precise camera parameters, a text description of the scene, a pixel-wise perspective field map, and a spatial reasoning caption (used for Thinking SFT).
评估分两大任务:(1)相机几何理解,在 MegaDepth、TartanAir、LaMAR 三个公开数据集及自建 Puffin-Und 基准上评估 roll/pitch/FoV 误差;(2)相机可控图像生成,在自建 Puffin-Gen 基准(650 个 caption-camera 对)上评估空间精度(Up Vector/Latitude/Gravity 误差)与视觉质量(FID)。The evaluation covers two tasks: (1) camera geometry understanding, where roll/pitch/FoV errors are measured on three public datasets — MegaDepth, TartanAir and LaMAR — as well as on the in-house Puffin-Und benchmark; (2) camera-controllable image generation, where spatial accuracy (Up Vector/Latitude/Gravity error) and visual quality (FID) are measured on the in-house Puffin-Gen benchmark (650 caption-camera pairs).
| 数据集Dataset | 指标Metric | GeoCalib | Perspective Fields | Puffin (Ours) |
|---|---|---|---|---|
| MegaDepth | Roll↓ | 0.36° | 0.49° | 0.32° |
| MegaDepth | Pitch↓ | 1.94° | 2.09° | 1.08° |
| MegaDepth | FoV↓ | 4.46° | — | 2.42° |
| TartanAir | Roll↓ | 0.73° | 0.49° | 0.40° |
| TartanAir | Pitch↓ | 1.89° | 1.36° | 0.95° |
| LaMAR | Roll↓ | 0.43° | 0.62° | 0.38° |
| LaMAR | Pitch↓ | 1.08° | 1.75° | 0.71° |
| 方法Method | Up Vector↓ | Latitude↓ | Gravity↓ | FID↓ |
|---|---|---|---|---|
| GPT-4o | 34.55° | 21.25° | 33.48° | 95.92 |
| PreciseCam | 18.66° | 12.49° | 18.39° | 90.91 |
| Puffin (Ours) | 11.94° | 6.34° | 6.79° | 69.46 |
消融实验在自建 Puffin-Und 基准上进行,验证 Thinking with Camera 机制及架构选择的重要性:The ablation study is conducted on the in-house Puffin-Und benchmark to verify the importance of the Thinking with Camera mechanism and of the architectural choices:
| 配置Configuration | Roll↓ | Pitch↓ | FoV↓ |
|---|---|---|---|
| InternVL3(通用 VLM 直接微调)InternVL3 (general-purpose VLM, directly fine-tuned) | 0.91° | 1.72° | 2.96° |
| Qwen2.5-VL(通用 VLM 直接微调)Qwen2.5-VL (general-purpose VLM, directly fine-tuned) | 0.79° | 1.61° | 2.91° |
| Vision Encoder Only(仅视觉编码器)Vision Encoder Only | 0.55° | 1.00° | 1.87° |
| Puffin(base,无 Thinking)Puffin (base, no Thinking) | 0.47° | 0.91° | 1.48° |
| Puffin(+ Thinking with Camera)Puffin (+ Thinking with Camera) | 0.41° | 0.74° | 1.21° |
消融结论:(1)直接 fine-tune 通用 VLM(InternVL3、Qwen2.5-VL)由于视觉特征经过语义压缩,反而不如专用视觉编码器;(2)Thinking with Camera 机制在所有三个指标上均带来稳定提升;(3)统一训练(理解+生成)相比各自独立训练存在正向互促。Ablation conclusions: (1) directly fine-tuning general-purpose VLMs (InternVL3, Qwen2.5-VL) is in fact worse than a dedicated vision encoder, because their visual features have been semantically compressed; (2) the Thinking with Camera mechanism brings consistent gains on all three metrics; (3) unified training (understanding + generation) is positively mutually reinforcing compared with training each task separately.
"Because our training dataset is constructed at a fixed resolution of 512×512, Puffin's image generation is currently restricted to a single scale."训练数据全部以 512×512 构建,导致生成模块目前只能输出单一分辨率,限制了在需要更高分辨率的场景中的实用性。作者指出可通过构建多尺度训练集解决,"these limitations are orthogonal to our main focus.""Because our training dataset is constructed at a fixed resolution of 512×512, Puffin's image generation is currently restricted to a single scale." The training data is built entirely at 512×512, so the generation module can currently output only a single resolution, which limits its usefulness in scenarios requiring higher resolutions. The authors note that this can be solved by constructing a multi-scale training set, and that "these limitations are orthogonal to our main focus."
对非方形输入,Puffin 采用中心裁切后缩放的策略,当实际图像长宽比与方形差异较大时,边缘内容被丢弃,可能导致几何估计性能下降。For non-square inputs, Puffin adopts a center-crop-then-resize strategy; when the actual aspect ratio deviates substantially from square, peripheral content is discarded, which may degrade geometric estimation performance.
"The calibration errors it reports can be ambiguous, especially for generated images exhibiting only subtle spatial differences."相机可控生成的定量评估依赖于对生成图像再做离线相机标定(反算参数),这本身存在估计误差,对空间差异细微的生成图像尤为明显,评估结果可能低估实际控制精度。"The calibration errors it reports can be ambiguous, especially for generated images exhibiting only subtle spatial differences." Quantitative evaluation of camera-controllable generation relies on running offline camera calibration on the generated images to recover their parameters, which itself carries estimation error, most notably for generated images with only subtle spatial differences, so the reported results may underestimate the actual control accuracy.
当前版本尚未建模镜头径向畸变(radial distortion),对于广角镜头或鱼眼镜头拍摄的图像,几何估计精度会受影响。The current version does not yet model lens radial distortion, so geometric estimation accuracy is affected for images captured with wide-angle or fisheye lenses.