PointDiT: Pixel-Space Diffusion for Monocular Geometry Estimation
作者:Haofei Xu, Rundi Wu, Philipp Henzler, Nikolai Kalischek, Michael Oechsle, Fabian Manhardt, Marc Pollefeys, Andreas Geiger, Federico Tombari, Michael Niemeyer
单位:Google, ETH Zurich, University of Tübingen / Tübingen AI Center, Microsoft, KE:SAI, Technical University of Munich
会议:ICML 2026 / arXiv 2026
链接:https://arxiv.org/abs/2607.02515
研究动机
PointDiT 讨论的是单目几何估计中的一个具体表征选择:给定一张 RGB 图像,直接预测每个像素在相机坐标系下的三维点图 Point Map,而不是只预测标量深度图。深度图只给出每个像素的距离,需要相机内参才能反投影为三维结构;Point Map 则把每个像素表示为 $(X,Y,Z)$,因此更接近相机坐标系中的稠密三维几何。
论文把已有路线概括为两类:
确定性回归路线:以 MoGe、MoGe-2 等 point map estimator 为代表,通常使用 ViT + CNN 或复杂 decoder 的混合架构,再配合针对几何一致性设计的复杂损失。优点是推理直接、稳定;问题是单目几何本身具有多解性,确定性模型容易学习到条件分布的均值,在细杆、透明物体、遮挡边界等高不确定区域出现过平滑。
潜空间扩散路线:以 GeometryCrafter、Marigold 类方法为代表,把几何图压缩到 VAE latent space 中,再使用扩散模型建模。优点是可以利用生成模型处理歧义;问题是几何信号对高频边界和精确坐标非常敏感,VAE 的压缩与重建误差会成为上限,尤其是 point map 的取值范围不像 RGB 那样天然有界,构造一个高保真 tokenizer 并不简单。
PointDiT 的核心问题可以概括为:
能不能不使用复杂的混合回归架构,也不通过 VAE 压缩几何,而是直接在 point map 的像素空间中训练一个 plain ViT diffusion/flow-matching 模型,从而同时获得生成模型处理歧义的能力和 point map 空间的高频几何保真度?
这篇文章的动机并不难理解:如果 VAE 会损失几何细节,deterministic regression 又会平均掉多解结构,那么直接在原始 point map patch 上做 diffusion/flow matching,是一个很自然的折中方案。
核心方法

PointDiT 的方法非常简洁:输入 RGB 图像 $c$ 和带噪 point map $z_t$,输出干净 point map $x$。网络本体是 plain ViT,输入 point map patch token,同时用冻结的 DINOv3 提取图像 token 作为条件。除了 DINOv3 这个 image encoder 以外,Transformer backbone 和 prediction head 都是从头训练。
1. Point Map 作为几何空间
目标是预测:
其中每个像素保存相机坐标系下的三维坐标 $(X,Y,Z)$。这一步可以看成把深度估计任务从 scalar depth prediction 改写为 dense camera-coordinate geometry prediction。
这个选择的直接好处是:预测结果本身就是三维点云,不需要额外知道相机内参才能把标量深度提升到三维结构。它也继承了 MoGe 系列工作的一个核心设定:让模型直接学习相机坐标系中的稠密几何,而不是只学习深度图。
2. Flow Matching 路径
论文采用 flow matching 的线性插值路径:
其中 $t=0$ 是纯噪声,$t=1$ 是干净数据。对应的速度场为:
但 PointDiT 的关键不是直接做常规的 $v$-prediction,而是预测干净 point map,也就是 $x$-prediction。论文认为这一点继承自 JiT:在高维像素空间中,直接预测 clean data 比预测 velocity 更稳定。PointDiT 把这个结论从 RGB 图像生成迁移到了三维 point map 生成。
3. Point Map Normalization
Point map 的坐标范围和场景尺度强相关。室内、街景、航拍场景的坐标尺度差异很大,如果直接使用标准高斯噪声 $\epsilon$ 和原始 point map $x$ 做插值,数据尺度会压过噪声尺度,导致低 $t$ 区域也无法真正破坏几何结构。
因此论文对每张 point map 做归一化:
其中 $\mu$ 是点图中心,$s$ 是所有点到中心的平均欧氏距离。这样 point map 被放到和标准高斯噪声接近的尺度上,flow matching 训练才更稳定。代价是模型预测的是仿射不变的 point map,即尺度和 shift 需要后处理恢复或对齐。
对于室外天空区域,论文不直接让无限远深度参与统计,而是排除天空点计算 $\mu$ 和 $s$,再把天空投影到半径为 3 的虚拟球面上,并在训练损失中降低 sky pixel 权重。这个设计本质上是给“无限远背景”一个有限的监督代理,避免天空区域主导训练。
4. Plain ViT + DINOv3 条件
PointDiT 的架构没有复杂 decoder:
- noisy point map $z_t$ 被 patchify 成 point tokens;
- RGB 图像经过冻结 DINOv3 得到 image tokens;
- point tokens 和 DINOv3 tokens 经过线性投影后输入 Transformer blocks;
- prediction head 输出 clean point map patches;
- unpatchify 得到完整 point map。
论文比较了多种 image patch embedding:plain linear embedding、DINOv2、DINOv3、MoGe-2 特征、Depth Anything 3 特征。结果显示,即使只用 linear embedding,模型也能工作;但使用 DINOv3 多层特征显著提升边界指标 BF1。值得注意的是,MoGe-2 和 DA3 特征在部分精度指标上更强,但论文主结果仍采用 DINOv3,以避免把收益归因到已经为几何任务调过的特征上。
5. 训练目标
PointDiT 使用 flow matching 的速度损失,但模型输出为 $x$-prediction,训练时由预测的 $\hat{x}$ 推回速度:
然后与真实速度 $v_t=x-\epsilon$ 做匹配。论文还加入了 point map 相对损失,进一步约束几何结构,但从消融来看,主收益来自 x-prediction、DINOv3 多层条件和 patch size 选择。
数据集
训练全部使用合成数据,真实数据只用于 zero-shot evaluation。
Stage 1:256 × 256 预训练
- SceneNet-RGBD:约 535.95 万样本,室内合成数据。
- 目的:低分辨率下先学习一个便宜、稳定的 image-to-point prior。
Stage 2:512 × 512 微调
论文使用 11 个合成数据集混合训练,总量约 621.77 万样本:
- Hypersim
- Virtual KITTI 2
- UrbanSyn
- Synscapes
- TartanAir
- OmniWorld-Game
- EDEN
- IRS
- Dynamic Replica
- MVS-Synth
- TartanGround
每个数据集使用独立采样权重,而不是按原始样本数量自然采样。例如 TartanGround 样本量很大,但采样权重只设为 0.15;一些小规模高质量数据集则被上采样。这个策略避免大数据集在训练中完全主导。
Evaluation:真实世界 zero-shot 测试
- DIODE
- KITTI
- NYUv2
- ETH3D
- HAMMER
- iBims-1
- Booster
其中 HAMMER、iBims-1、Booster 被用于额外评估边界清晰度 BF1,因为这些数据包含透明、镜面、平面边界或深度 discontinuity,对几何边界更敏感。
算力
论文报告了三个模型规模:PointDiT-B、PointDiT-L、PointDiT-H。
| 模型 | 参数量 | 256×256 预训练 | 512×512 微调 |
|---|---|---|---|
| PointDiT-B | 223M | 16 × H100,30 epochs,12h | 64 × H100,8 epochs,2.5h |
| PointDiT-L | 771M | 16 × H100,30 epochs,21h | 64 × H100,5 epochs,7h |
| PointDiT-H | 1807M | 64 × H100,30 epochs,22h | 128 × H100,3 epochs,5.5h |
这个算力配置说明 PointDiT 虽然架构上“简单”,但并不是一个低成本方法。尤其是 PointDiT-H 使用 128 张 H100 做 512×512 微调,这种资源配置本身已经说明它更像是大模型 scaling 路线下的几何估计系统,而不是轻量级 monocular depth estimator。
实验结果
1. 主结果
论文在 7 个真实测试集、共 3444 个样本上比较了 GeometryCrafter、PPD、Depth Pro、UniDepthV2、DA3、MoGe、MoGe-2 和 PointDiT。
关键结果如下:
| 方法 | Relp↓ | δp1↑ | Reld↓ | δd1↑ | BF1↑ | 参数量 | 时间 |
|---|---|---|---|---|---|---|---|
| GeometryCrafter | 5.45 | 96.75 | 3.52 | 97.84 | 4.64 | 1937M | 1178ms |
| PPD | 5.54 | 96.59 | 3.88 | 97.78 | 9.28 | 804M | 402ms |
| DA3 | 4.77 | 96.63 | 3.22 | 97.81 | 6.33 | 1356M | 82ms |
| MoGe | 4.21 | 97.45 | 3.10 | 98.01 | 5.61 | 314M | 34ms |
| MoGe-2 | 4.53 | 97.46 | 2.90 | 98.45 | 7.40 | 326M | 24ms |
| PointDiT-H 1 step | 4.45 | 97.93 | 2.81 | 98.51 | 9.79 | 1807M | 72ms |
| PointDiT-H 4 steps | 4.40 | 98.02 | 2.75 | 98.54 | 10.49 | 1807M | 204ms |
| PointDiT-L 4 steps | 4.85 | 97.55 | 3.09 | 98.25 | 10.50 | 771M | 131ms |
几个观察比较重要:
- PointDiT-H 在 depth metric 上最强,PointDiT-L/PointDiT-H 在 BF1 边界指标上明显强于 MoGe/MoGe-2。
- MoGe 在 Relp 上仍然最好,说明 PointDiT 并没有在所有 point map 指标上全面压倒 deterministic regression。
- PointDiT 的 one-step 已经足够强,多步采样主要改善 BF1 和局部细节,对 Rel / δ1 的提升相对有限。
- 相比 GeometryCrafter,PointDiT 的速度优势很大;但相比 MoGe-2,PointDiT 仍然更慢、更大。
2. 单步推理与多步采样
论文强调 PointDiT 虽然按 flow matching 训练,但可以 one-step feed-forward inference。更有意思的是,单步推理时把初始噪声设为随机噪声或全零,结果几乎不变。论文据此认为模型已经学到了从 DINOv3 image token 到 point map 的鲁棒映射。
这点很关键:如果 one-step + all-zero noise 也能工作,那么 PointDiT 在实际推理时很接近一个条件回归器,只是训练方式来自 generative flow matching。换句话说,它的“生成性”主要体现在训练范式和多步 refinement 能力上,而不是一定要在推理阶段表现为强随机采样。
3. Flow Matching vs Deterministic Regression
论文做了一个比较干净的对照实验:保持同样架构、同样数据、同样训练流程,只把 PointDiT 的噪声和时间步固定为 0,使其退化为 deterministic regressor。
结果是 deterministic regressor 初期收敛更快,但之后出现过拟合;generative flow matching 更稳定,最终误差更低。边界指标 BF1 从 deterministic 的 10.90 提升到 generative 的 13.92。
这个实验是整篇文章最有价值的证据之一,因为它不是和外部 baseline 做不完全公平比较,而是在同一架构内隔离了“生成式训练范式”这个变量。
4. x-prediction vs v-prediction
论文的消融显示:
| 设置 | Relp↓ | δp1↑ | Reld↓ | δd1↑ | BF1↑ |
|---|---|---|---|---|---|
| v-pred | 35.44 | 30.03 | 24.07 | 58.21 | 0.46 |
| x-pred | 9.29 | 91.18 | 5.54 | 95.08 | 13.47 |
这个结果非常夸张,说明在他们的 point map flow matching 设定下,v-pred 几乎训练失败,而 x-pred 是能否工作的关键。论文把这点解释为 JiT 结论在 3D point map 任务上的延伸。
5. DINOv3 条件和 patch size
DINOv3 多层特征显著提升 BF1。消融中,DINOv3 last layer 的 BF1 为 7.24,而 DINOv3 4 layers 提升到 13.47。patch size 也重要:512×512 下 patch size 16 明显优于 patch size 32,尤其是 BF1 从 6.17 提升到 10.37。这符合直觉:point map 估计需要 pixel-perfect 几何边界,过大的 patch 会牺牲局部结构。
优势与不足
优势
范式组合清晰,验证相对干净。 论文没有在架构上堆大量复杂模块,而是把问题收束为:plain ViT 能不能直接在 raw point map patch 上做 flow matching?这一点比很多复杂 depth/geometry system 更容易分析。
去掉 VAE bottleneck 的论证有说服力。 对几何任务而言,VAE 的压缩误差确实可能比 RGB 生成更致命。PointDiT 直接在 point map 空间建模,避开 tokenizer 设计和 latent reconstruction 的上限,这个方向是合理的。
x-prediction 的消融非常强。 v-pred 和 x-pred 的差距巨大,说明训练目标不是细枝末节,而是决定方法是否成立的核心 recipe。
对边界和透明区域的改善符合任务痛点。 BF1 和可视化结果都指向同一个结论:生成式训练确实更容易保留高频几何结构,尤其是 deterministic regression 容易平均化的区域。
不足
从创新范式上看,它更像 MoGe + JiT + Pixel-Perfect Depth 的融合。 Point map 表征和 camera-coordinate geometry 的价值主要来自 MoGe / MoGe-2;plain ViT pixel-space diffusion、x-prediction、从头训练的 recipe 明确来自 JiT;pixel-space diffusion 用于 monocular depth / geometry 的方向则与 Pixel-Perfect Depth / PPD 非常接近。PointDiT 的主要变化是把 PPD 的 depth map 换成 MoGe 式 point map,再采用 JiT 式 x-prediction 和 plain ViT recipe。因此它的贡献更像一次强工程整合与任务迁移,而不是提出了全新的理论机制。
DINOv3 的引入并不是本质创新。 论文证明 DINOv3 条件有用,但这更像 foundation feature conditioning 的常规强化手段。更值得注意的是,MoGe-2 / DA3 特征在某些指标上甚至更强,这说明性能提升的一部分可以由更任务相关的视觉表征解释,而不是 PointDiT 框架本身完全决定。
多步采样的意义有限。 多步主要提升 BF1 和局部细节,但主精度指标在 one-step 时已经接近饱和。并且 all-zero 单步输入也能工作,这使得 PointDiT 在推理行为上很像一个经过 diffusion/flow matching 训练的 deterministic mapper。论文强调 generative formulation,但实际部署时未必真的依赖随机生成能力。
与 deterministic regression 的讨论还可以更深入。 论文的对照实验显示 deterministic regressor 先收敛、后过拟合,flow matching 更稳定。但这并不能完全证明“确定性回归天然不适合 point map”。一个可能的反问是:如果 deterministic 模型也引入中间时间步、噪声增强、teacher target 或者类似 DVD 中 timestep anchor 的设置,是否还能保持这种差距?论文没有系统探索这个边界。
资源成本很高。 PointDiT-H 使用 1807M 参数,训练阶段最高使用 128 张 H100。即使 one-step 推理比 latent diffusion 快,它仍然比 MoGe-2 更大更慢。因此它更像高性能几何 foundation model 的路线,而不是端侧或实时系统的直接答案。
合成到真实的泛化仍然依赖数据覆盖。 论文全部用合成数据训练,再在真实数据 zero-shot 测试,结果很好。但 outdoor 场景仍被论文自己列为有提升空间,说明 point map 的尺度、天空、远距离结构和真实传感器分布仍然是主要风险。
记忆点
PointDiT 的一句话概括: 用 plain ViT 在 raw point map pixel-space 上做 flow matching,并用 DINOv3 image token 条件化。
最核心的 recipe 是 x-prediction。 在这篇论文的设定中,v-pred 几乎失败,x-pred 才是让 point map diffusion 成立的关键。
真正有价值的不是“用了扩散”,而是同架构下 generative flow matching vs deterministic regression 的对照实验。 这个实验支持了生成式训练能缓解过平滑和边界模糊。
批判性看法: 这篇文章的范式并不神秘,基本是 MoGe 的 point map 表征、JiT 的 pixel-space plain ViT + x-pred recipe、PPD 的 pixel-space diffusion for monocular geometry 三者融合。它的价值在于把这套组合做得足够简洁、规模足够大、消融足够清楚。
可借鉴方向: 对深度估计/几何估计而言,未来可以重点研究“生成式训练是否只是更强的 regularization”,以及 deterministic regression 是否也能通过时间步、噪声扰动或中间状态训练获得类似的细节与泛化收益。












