跳转至

iLRM: An Iterative Large 3D Reconstruction Model

会议: CVPR 2026
论文: CVF Open Access
代码: https://gynjn.github.io/iLRM/ (项目页)
领域: 3D视觉
关键词: 前馈式三维重建、3D 高斯泼溅、迭代精修、可扩展注意力、视点嵌入

一句话总结

iLRM 把前馈式 3D 高斯重建从"一次性把所有图像 token 映射成像素对齐高斯"改写成"用低分辨率视点嵌入做载体、逐层用多视图图像做反馈迭代精修",靠表示解耦 + 两阶段注意力把算力压下来,在 RE10K / DL3DV 上同时刷高画质和速度(32 视图 540×960 推理仅 0.5 秒,对标优化法的 8 分钟)。

研究背景与动机

领域现状:3D 高斯泼溅(3DGS)火了之后,前馈式三维重建成为主流——训练一个大网络,把多视图图像一次性映射成高斯参数,单次前向就能重建场景,接近实时。其中"像素对齐高斯"(pixel-aligned Gaussian,如 GS-LRM、PixelSplat、MVSplat)是事实标准:直接从每个像素回归一个高斯。

现有痛点:像素对齐范式有两个硬伤。其一,高斯数量被图像分辨率绑死——1K 分辨率 × 200 视角会产出 2 亿个高斯,而同样场景其实 50 万个高斯就够表达,冗余巨大。其二,多视图交互的算力爆炸——GS-LRM 对所有视图的所有图像 token 做全注意力,复杂度随视图数和分辨率二次增长;MVSplat / DepthSplat 还要为每个视图构建代价体。想降分辨率或减视图来省算力,又会丢掉重建必需的几何与外观信息。

核心矛盾:现有前馈方法把 3D 重建当成"序列到序列"的一次性生成问题,而真正高质量的优化法(per-scene 3DGS)走的是另一条路——迭代精修:每步渲染当前估计、量误差、更新表示,逐步抠出细节并保证 3D 一致性。前馈模型恰恰缺这种"反馈驱动"特质。

本文目标:在前馈架构里既要 1) 引入反馈驱动的迭代精修,又要 2) 干掉像素对齐范式的算力负担和表示冗余。

切入角度:把网络重新解释成一个"优化器"——每一层类比一个优化步,视点 token 类比待更新的 3DGS 表示,多视图图像 token 类比梯度信号。这样在前馈架构内部就模拟出了优化过程。

核心 idea:把场景表示从输入图像中解耦出来(用低分辨率视点嵌入承载场景),再让它逐层通过与高分辨率图像的交叉注意力被"反馈式"迭代精修,最后解码成紧凑的 3D 高斯。

方法详解

整体框架

iLRM 的输入是 \(N\) 张多视图图像 \(\{I_i\}\) 和对应相机位姿 \(\{C_i\}\),输出是一组 3D 高斯(均值、不透明度、协方差、颜色)。整条管线的关键转变是:不再从图像像素直接回归高斯,而是先初始化一批"视点 token"作为场景的可学习载体,再让它们在 12 个 update block 里被多视图图像逐层精修,最后解码成高斯。视点 token 的分辨率与输入图像分辨率解耦,所以可以用低分辨率视点表示产出紧凑高斯,同时仍用高分辨率图像做细节引导。

%%{init: {'flowchart': {'rankSpacing': 24, 'nodeSpacing': 28, 'padding': 6, 'wrappingWidth': 400}}}%%
flowchart TD
    A["输入:N 个多视图 + 相机位姿"] --> B["视点 token 化(Plücker 射线)<br/>+ 图像 token 化(RGB+射线)"]
    B --> C["视点-图像解耦表示<br/>低分辨率视点 token 承载场景"]
    C --> D["逐层迭代精修(×12 update block)"]
    D --> E["两阶段可扩展注意力<br/>逐视图交叉注意力 → 视点自注意力"]
    E --> F["Token uplifting 与 mini-batch 交叉注意力<br/>降算力 + 补细粒度对应"]
    F -->|未到末层| D
    F -->|末层| G["解码为 3D 高斯 + 渲染监督"]

视点 token 用 Plücker 射线嵌入构造:把每个视点的内外参编成 Plücker 坐标,切成 \(p\times p\) 的 patch,过一个线性层得到 \(V_i^{(0)}\in\mathbb{R}^{H^vW^v/p^2\times d}\)。因为 Plücker 坐标天然带空间/视角差异,作者不再额外加位置编码。图像 token 则把 RGB patch 和 Plücker 射线 patch 拼起来线性投影:\(S_{ij}=\text{Linear}(\text{concat}(I_{ij},P_{ij}))\)

关键设计

1. 视点-图像解耦表示:让高斯数量不再被图像分辨率绑死

像素对齐范式最致命的就是高斯数 = 像素数,导致冗余和算力爆炸。iLRM 的破法是把"将被转成高斯的场景表示"从输入图像直接依赖中解耦出来:场景由一批视点 token 承载,其空间分辨率 \(H^v\times W^v\) 是独立设的(实验里常用半分辨率),与输入图像分辨率无关。于是可以用低分辨率视点 token 产出紧凑高斯,同时仍把高分辨率图像作为交叉注意力的 key/value 提供细节。消融里把图像特征强行约束到视点分辨率(退回 GS-LRM/Long-LRM 的做法),PSNR 从 29.24 掉到 28.47,证明解耦是同时拿到"紧凑"与"高保真"的前提。

2. 两阶段可扩展注意力:把全注意力的二次复杂度拆成两个便宜的子步

朴素做法是对所有视图所有 token 做全注意力,算力随视图数和分辨率二次增长。iLRM 把多视图交互拆成两步:先做逐视图交叉注意力(每个视点嵌入只和它对应那张图像做注意力,得益于一对一映射,非常省);再做视点间自注意力(所有视点 token 互相交互做全局信息交换)。关键在于第二步运行在低分辨率的视点表示空间上,所以全局交互仍可承受。作者给了一组相对算力比:图 2 的 (a)全注意力 : (b)解耦 : (c)降视点分辨率 : (d)两阶段 = \(1:1:0.25:0.08\),说明两阶段方案能在显著更低算力下容纳更多视图。

3. 逐层迭代精修:把"一次性生成"改成前馈架构内的反馈式优化

这是 iLRM 名字里"iterative"的来源。模型由多个 transformer 模块串成,每个模块 = 一层交叉注意力 + 一层自注意力,视点 token 逐层被更新:

\[\tilde{V}_i^{(l-1)}=\text{cross-attn}^{(l)}(V_i^{(l-1)},S_i),\quad \{V_i^{(l)}\}=\text{self-attn}^{(l)}(\{\tilde{V}_i^{(l-1)}\})\]

注意图像 token \(S\) 在所有层固定不变,只反复给视点 token 提供"视觉证据"。作者把它解释成近似梯度下降:\(V^{(l)}\approx V^{(l-1)}-\eta\nabla_V E(V^{(l-1)};S)\),每一层是一次反馈修正而不是单纯的特征变换——这正是区别于标准堆叠自注意力(\(S^{(l)}=S^{(l-1)}+f(S^{(l-1)})\))的地方。各层用独立参数。消融里把"每层交叉注意力"换成"只在第一层做一次交叉、后面 23 层全自注意力",LPIPS 明显变差(0.109→0.127),说明持续注入图像证据对精修至关重要。

4. Token uplifting 与 mini-batch 交叉注意力:补低分辨率的细粒度对应、再把交叉注意力的算力压一档

解耦带来的副作用是视点 token 分辨率低、交叉注意力时难以充分吸收高分辨率图像的细节。Token uplifting 的做法是:用一个线性 query 层把每个低分辨率视点 token 的特征维扩 \(k\) 倍(实验 \(k=2\)),reshape 成 \(k\) 个更细粒度的 query token 去和高分辨率图像 token 做交叉注意力,之后再投影回原维度。去掉它各项指标都掉(29.24→28.90),因为模型抓不住细粒度空间对应。Mini-batch 交叉注意力则借鉴 mini-batch 梯度下降的思路:交叉注意力的算力瓶颈在高分辨率图像 token,于是每层只采样图像/视点 token 的一个子集来算(如 Quarter Cross-attention,每次取四分之一)。它把训练单步从 1.51s/62.5GB 降到 0.94s/39.0GB,PSNR 仅从 30.39 微降到 30.08,是一个划算的算力—质量权衡。

损失函数 / 训练策略

从视点 token 解码出的 3D 高斯经光栅化得到渲染图 \(\hat{I}_t\),对真值 \(I_t\) 用 MSE + 感知损失监督:

\[\mathcal{L}_\text{total}=\sum_{t\in\mathcal{T}}\mathcal{L}_\text{MSE}(\hat{I}_t,I_t)+\lambda\mathcal{L}_\text{perceptual}(\hat{I}_t,I_t)\]

其中 \(\lambda=0.5\)。模型含 12 个 update layer,隐藏维 \(d=768\),patch size \(p=8\),12 头注意力,采用 pre-norm + QK-Norm(RMSNorm)。

实验关键数据

主实验

在 RealEstate10K(RE10K,256×256)上与前馈法及优化法对比(推理时间在 RTX 4090 上测):

方法 #Param(M) PSNR ↑ SSIM ↑ LPIPS ↓ #高斯 时间(s)
pixelSplat 125 25.89 0.858 0.142 131,072 0.101
MVSplat 12 26.39 0.869 0.128 131,072 0.047
GS-LRM* 300 28.10 0.892 0.114 131,072
DepthSplat 354 27.47 0.889 0.114 131,072 0.065
Ours (2, F, F) 171 28.65 0.900 0.110 131,072 0.025
Ours (8, H, F) 185 31.57 0.935 0.082 131,072 0.029

注:配置记号 \((V, H/F, F)\) 表示视图数、视点 token 分辨率(H 半 / F 全)、图像 token 分辨率。即便最小的 (2,F,F) 也在更少参数、更快速度下超过 GS-LRM。增加到 8 视图能进一步把 PSNR 推到 31.57。

宽覆盖、零样本设置(未失真 DL3DV,540×960,模型用 32 视图训练)下与优化法的对比:

方法 视图 时间 ↓ PSNR ↑ SSIM ↑ LPIPS ↓
3D-GS(优化法,30k 步) 32 8 min 24.43 0.827 0.191
Long-LRM 32 0.84 s 23.97 0.778 0.267
Ours (32, H, F) 32 0.53 s 24.30 0.803 0.256
Ours (Unseen) (48, H, F) 48 1.04 s 24.78 0.820 0.240

iLRM 用 0.53 秒拿到接近优化法(8 分钟)的画质,且能泛化到训练时没见过的 40/48 视图长上下文。

消融实验

架构组件消融(12 层 baseline,RE10K):

配置 PSNR ↑ SSIM ↑ LPIPS ↓ 说明
Baseline (12 layers) 29.24 0.907 0.109 完整模型
w/o 迭代精修 28.58 0.893 0.127 仅首层 1 次交叉 + 23 层自注意力
w/o 分辨率解耦 28.47 0.891 0.123 图像特征约束到视点分辨率
w/o token uplifting 28.90 0.901 0.113 去掉 LR→细粒度扩展

mini-batch 交叉注意力的算力—质量权衡(训练时测):

配置 PSNR ↑ LPIPS ↓ 单步(s) 显存(GB) GFLOPs
Baseline(全交叉) 30.39 0.095 1.51 62.5 3.83
w/ Half Cross-attn 30.25 0.096 1.13 47.4 1.71
w/ Quarter Cross-attn 30.08 0.098 0.94 39.0 0.81

关键发现

  • 分辨率解耦掉点最多(−0.77 PSNR),是同时拿"紧凑高斯 + 高保真"的根;其次是迭代精修(−0.66,LPIPS 退化尤其明显),说明持续注入图像证据比单纯堆自注意力更有效。
  • 层数即优化步数:3→6→9→12 层 PSNR 单调上升(28.04→28.68→29.01→29.24),与"更深精修 = 更多优化步"的直觉一致。
  • 注意力可视化显示,随层数加深,参考视点 query patch 在其他视点中 top-3 被注意的 token 逐渐移向几何/语义对应区域,印证了"渐进迭代精修"的设计动机。

亮点与洞察

  • 把前馈网络重解释成优化器是全文最"啊哈"的地方:层 = 优化步、视点 token = 待更新表示、图像 token = 固定的梯度信号,于是优化法的"迭代精修"优点被搬进了前馈架构,还能用 \(V^{(l)}\approx V^{(l-1)}-\eta\nabla_V E\) 给出梯度下降式解释。
  • "解耦表示分辨率"这个 trick 可迁移:任何"输出数量被输入分辨率绑死"的回归任务(如点云上采样、体素生成)都可借鉴——用独立分辨率的可学习载体承载输出,输入只做引导。
  • mini-batch 注意力把优化里的随机采样思想搬到注意力算力上,是个简单且通用的省算力手段,对长序列/多视图场景尤其有价值。

局限与展望

  • 作者承认的主要局限:视图数极多时自注意力仍是瓶颈。虽然紧凑视点嵌入大幅降了算力,但视点自注意力随视图数增长仍会吃紧,未来需要更可扩展的全局交互替代方案。
  • 自己观察:mini-batch 交叉注意力的"结构化采样"(Half/Quarter)是为工程实现方便而设计的近似,理论最优的随机采样反而难高效实现 ⚠️——这意味着当前方案可能还没榨干迭代精修的潜力。
  • 论文主要在室内/前向场景数据集(RE10K/DL3DV/ACID)验证,对大尺度室外、动态场景的适应性尚未充分检验。

相关工作与启发

  • vs GS-LRM / Long-LRM:它们对所有图像 token 做全分辨率注意力、生成像素对齐高斯,是一次性生成;iLRM 解耦表示 + 两阶段注意力 + 逐层迭代精修,算力更省、高斯更紧凑(4× 更少)、画质更高。
  • vs MVSplat / DepthSplat:它们靠代价体/深度先验保证多视图一致;iLRM 不依赖显式 3D 先验,靠数据驱动的迭代精修,扩展性更好(视图数增多时算力优势明显)。
  • vs G3R / Gen-Den(迭代精修法):它们用真实梯度更新表示,但每次训练迭代要渲染多张图、算力更重,且只用梯度可能忽略原始图像里的信息;iLRM 在前馈层内用交叉注意力注入图像证据,不显式渲染算梯度。
  • vs LRM / Lara / Quark(嵌入式 3D 表示):LRM/Lara 仅限物体级表示,Quark 的表示困在目标视图、缺乏持久 3D;iLRM 从视点嵌入构建场景级、显式、持久的 3D 表示。

评分

  • 新颖性: ⭐⭐⭐⭐⭐ "前馈网络 = 优化器"的重解释 + 表示解耦 + 两阶段注意力,是一套自洽且有洞察的新范式
  • 实验充分度: ⭐⭐⭐⭐ 三数据集、多视图/分辨率配置、算力—质量权衡和消融都到位,但缺室外/动态场景验证
  • 写作质量: ⭐⭐⭐⭐⭐ 动机推导清晰,梯度下降类比和注意力可视化把"为什么有效"讲透了
  • 价值: ⭐⭐⭐⭐⭐ 0.5s 对标 8min 优化法、紧凑高斯 + 强扩展性,对实时前馈三维重建有实用价值