阅读 · ArtiFixer · SIGGRAPH 2026 · NVIDIA Toronto AI Lab
从 3DGRUT 到 ArtiFixer3D:一个“先重建、再生成、再蒸馏回 3D”的闭环
我对这篇的兴趣不在“又一个修 artifact 的模型”,而在它把两个一直互相看不顺眼的东西——显式 3D 重建和生成式先验——用一个闭环缝在了一起。重建的强项是 3D 一致,弱项是没见过的地方只能瞎填;生成模型正好反过来,能脑补但帧间对不上。ArtiFixer 让它们轮流出手:重建出一个有瑕疵但一致的底,生成模型把它修干净,再把修过的帧蒸馏回一个新的 3D 表示里强行对齐,然后再修一遍。
核心问题
稀疏视角重建在训练视角附近好看,相机一走开就开始飘 floater、糊、破洞。原因很朴素:重建是拟合,没有“世界本来该长什么样”的先验。纯 3DGS/NeRF 是 3D 一致但不会脑补;纯逐帧 2D 修复会脑补但换个角度就闪。ArtiFixer 不二选一,让两者轮流。
推理闭环:重建 → 生成 → 蒸馏回 3D
主轴 ①→⑥ 是一次推理;真正的题眼是 ⑤ 回到 ④ 的那条发光曲线——3D 与 2D 来回振荡,越修越干净。下面一排 ⑦→⑩ 是训练三阶段,把权重以虚线喂给 ④。
Stages
输入与评测
3D 重建底座 / Stage 1
条件与 2D 修复 / Stage 3
3D 仲裁 / Stage 2
输出
数据引擎
Links
Data flow (inference)
Train-time only
Closed loop
View as tablesame content, no interaction needed
| Stage | Input | Logic | Output | Why / role |
|---|---|---|---|---|
| ① Capture / COLMAP Start | 随手拍图像/视频,视角稀疏 | COLMAP 跑稀疏位姿与点云 | 相机内外参 + 稀疏点 | 把“随手拍”接进 3D 流水线 |
| ② 3DGRUT 重建(底座) Base | COLMAP 结果 | 3DGRUT/3DGUT 优化(MCMC,默认 10k 步) | 有瑕疵但 3D 一致的渲染 + opacity + depth | 提供“一致但不干净”的底 |
| ③ Conditioning(条件) Condition | 渲染 + opacity + depth | MoGe 估单目深度做 metric scale,写 caption 文本嵌入 | 几何 + 语义条件 | 让生成“有据可依” |
| ④ ArtiFixer(自回归扩散 · 2D 修复) Core · 2D Repair | 重建渲染 + 条件 | Wan2.1 14B 视频扩散,沿相机轨迹自回归生成 | 干净且帧间一致的修复帧 | 给重建装上“想象力” |
| ⑤ ArtiFixer3D(蒸馏回 3D) 3D Arbiter | 真实锚点帧 + ArtiFixer 生成帧 | 重新优化一个 3DGRUT,把两者揉进同一个 3D | 干净且 3D 一致的重建 | 用 3D 当“仲裁”,强行让 2D 生成自洽 |
| ⑥ ArtiFixer3D+ / Output Output | ArtiFixer3D 的新渲染 | 把 ArtiFixer 再跑一次 | 进一步精修的漫游 / 一致 3D | 闭环迭代,越修越干净 |
| ⑪ Evaluation Eval | — | 四行对比 3DGUT / ArtiFixer / ArtiFixer3D / ArtiFixer3D+ | DL3DV + NerfBusters 上评测 | 把“每一步到底有没有用”拆开看 |
| ⑦ 数据引擎 Data Engine | — | DL3DV 用少视角(2/3/6/12)重建造退化样本,留出视角当 GT;half-covisibility 切分 | (有瑕疵渲染, 干净 GT) 配对 | 不用人工标注白嫖监督对 |
| ⑧ Stage 1 SFT Train · S1 | — | 监督微调,学 render→clean 的条件映射 | 会基本修复的底模 | — |
| ⑨ Stage 2 Diffusion Forcing Train · S2 | — | 每帧独立噪声等级,自回归 rollout | 能拉长轨迹、保持一致的模型 | — |
| ⑩ Stage 3 DMD 蒸馏 Train · S3 | — | 分布匹配蒸馏成少步生成器;s2 当 student、s1 当 critic | 跑得快的生成器 | — |
三条贡献
把生成先验装进 3D 重建
来源 ④ + ⑤
没观测到的区域也能补出合理内容
3D 仲裁带来视角一致
来源 ⑤
比逐帧 2D 修复更不闪、几何更稳
闭环可迭代精修
来源 ⑤ → ④ → ⑥
ArtiFixer3D+ 在更干净的底上再修
结果
只用三张原图,绑在对应模块上:teaser 是输出 ⑥,方法总览是核心 ④,去噪步骤挂在评测旁——悬停图里的节点也会浮出同一张图。
我的判断 / 后续
- 这套“想象力来自生成、一致性来自显式表示、两者轮流”的范式不止能修重建。任何“先有个粗结构、再补全/精修”的活都能套:粗 mesh → 生成贴图 → 烤回 mesh;粗动作 → 生成补全 → 约束回骨架。
- 要小心的地方:生成先验会“合理地编错”——纹理几何看着对、其实不是真值。3D 仲裁能压一部分,但压不干净。做数字孪生、检测这类要测量精度的活,得对这点有数。
- 我自己会怎么用:当成“随手拍 → 干净漫游”的工具链。COLMAP → prepare → ArtiFixer → ArtiFixer3D 这条线,基本就是一个 capture-to-clean-3D 的成品。