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 逐层被更新:
注意图像 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 + 感知损失监督:
其中 \(\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 优化法、紧凑高斯 + 强扩展性,对实时前馈三维重建有实用价值