← 返回 2026-10-07

从单张图像构建罗马城:单图完整三维场景网格生成 Building Rome from a Single Image

Jiraphon Yenphraphai, Fang Li, Tianshuo Xu, Depu Meng, Quentin Herau, Yihan Hu, Raymond A. Yeh, Wei Zhan 📅 2026-10-06 👍 8 2026-11-11 18:30
3D生成 单图像重建 合成数据 场景网格 流匹配

把物体级3D生成器改造成场景生成器:自适应分块、显式2D-3D对应与合成户外数据

前置知识

点图

点图是逐像素的3D坐标场:单目网络(如 MoGe-3)从一张图像直接回归每个像素对应的3D位置,并同时预测相机内参。它不需要多视角输入,一次前向就把2D图像映射到3D空间,是近年单目几何估计的主流表示,也是连接图像观察与3D生成的天然桥梁。

本文的分块放置、图像特征向体素的提升、以及自由空间/观测表面/遮挡区三种状态的判断,全部依赖点图提供的观测表面几何,是整个方法运转的基石。

流匹配

一类生成建模范式:学习一个速度场,把高斯噪声分布沿连续概率流连续输运到数据分布,推理时从噪声出发迭代去噪采样。与扩散模型训练目标不同但推理形式类似,训练更稳定,Trellis 2 的两个生成阶段(稀疏结构、结构化潜变量)均基于流匹配实现。

论文的自回归块生成要求把重叠区域的潜变量在每个去噪步重新施加为硬约束,只有理解流匹配的逐步采样机制,才能明白块间一致性是如何“构造性”保证的。

结构化潜变量与稀疏结构(Trellis 2 表示)

Trellis 2 用 O-Voxel 表示几何:只在表面附近的活跃体素上存储特征,空体素直接丢弃,因此不要求水密网格、支持开放表面。生成分两阶段流匹配:稀疏结构阶段先生成粗糙的体素占用网格,结构化潜变量阶段再在活跃位置生成几何潜变量,最后由预训练解码器转成网格。

本文方法的骨架就是这两阶段流程,所有条件注入(提升特征、可见性嵌入)都发生在这些阶段的 transformer 层内部,分块生成也是在这套潜变量上做自回归拼接。

LoRA(低秩适配)

一种参数高效微调方法:冻结预训练权重,只在原权重旁注入成对低秩矩阵的增量 $BA$,可训练参数量远小于全量微调。rank 越低越省显存、越不易灾难性遗忘,广泛用于把大模型适配到新任务新领域。

本文只微调 rank-32 的 LoRA 外加新引入的条件模块,而非重训 Trellis 2,这正是它能完整继承物体级形状先验、又能学会场景补全行为的关键设计。

Chamfer Distance 与 F1 分数

CD 计算预测点云与真值点云之间双向最近邻距离的均值,本文按真值中位深度归一化以获得跨场景可比性;F1 在给定距离阈值(10cm)下综合查准率与查全率,衡量多大比例的预测点落在真值表面附近。两者分别刻画整体几何误差与表面覆盖质量。

Table 1 的全部主结论都建立在这两个指标上,理解它们的定义才能读懂“CD 降低 24%、F1 提升 30%”这类提升到底意味着什么。

DINOv3 特征

DINOv3 是自监督训练的视觉基础模型,其特征携带强语义信息且无需任何标注。对输入图像前向一次即可得到空间对齐的特征图 $F$,每个像素位置对应一个语义丰富的向量,常被用作各类生成与感知任务的条件。

本文条件化的“图像侧”来源就是 DINOv3 特征图:通过投影查表把 $F(\pi(v))$ 写进对应体素,让每个3D token 带上它该看到的图像语义。

研究动机

单图像场景生成要求从一张照片恢复完整场景网格,包括相机从未观测到的表面。现有路线各有硬伤:基于2D生成先验的蒸馏方法需要逐场景优化,代价高昂;迭代补全加新视角提升的流水线中,图像修复与几何配准的误差会跨迭代累积;先合成多视角图像或视频再重建的方法,质量受制于跨视角一致性与视角选择。更根本的矛盾在前馈3D生成器本身:Trellis 2 等模型在物体居中、固定规范体积的数据上训练,直接用于场景会把整个场景生成在原点附近,布局完全错误。而训练场景级生成先验又受数据限制——ScanNet、3D-FRONT、SAGE-10k 等场景数据集以室内为主,户外场景因几何、尺度、布局变化剧烈而严重匮乏。近邻方法 GenRecon 用重叠块扩展物体先验,但由场景高度决定统一物理尺度,在局部分辨率与场景覆盖之间只能二选一。

本文的目标是本文的目标是:给定单张图像,生成一个完整的场景网格,其中可见表面要忠实还原观测到的几何与深度,被遮挡区域则由生成先验补全出合理几何,且同一模型要同时胜任室内、室外乃至大尺度(数百米纵深)场景。方法必须保留预训练物体生成器 Trellis 2 学到的完整形状先验并继承其两阶段流匹配生成流程,同时解决三个技术挑战:(a) 场景物理尺度远超物体规范体积时的分辨率分配问题;(b) 生成几何必须与输入图像逐点对齐,模型要明确知道哪些位置该照着观测重建、哪些位置该自由生成;(c) 户外训练数据稀缺时的监督扩展问题。

与已有工作不同的是,本文的独特切入点是不从头训练场景生成器、也不把场景拆成独立物体再组合(后者对地板、墙体等连续结构不适用),而是对现成物体生成器 Trellis 2 做三项系统性改造。第一,利用透视投影下远处区域占像素更少这一几何性质,让分块的物理尺度随深度自适应增长——近处用小方块保细节,远处用大方块扩覆盖,这个自由度在以往固定尺度分块(如 GenRecon)中被完全忽视。第二,作者注意到分块后每个 3D token 的空间位置是已知的,却未被以往条件化方法利用:与其让 cross-attention 隐式学习 2D-3D 对应,不如用单目点图把图像特征按投影直接写入对应 token,并用深度残差显式编码自由空间、观测表面与遮挡区三种状态。第三,用 agentic 流水线合成约 4000 个户外场景做监督,并实验证明在这些不完美数据上训练反而让模型超越生成该数据的流水线本身。

核心方法

整体思路可概括为“分而治之 + 显式对齐 + 自回归拼接”。直觉上,一张场景照片里近处的椅子和远处的建筑需要的几何精度完全不同:把整个场景塞进一个固定分辨率体积会牺牲近处细节,切成等大小小块又需要海量次生成。于是作者把场景沿深度划分成若干区域,每个区域用不同物理尺度:近处块边长 3m,越远越翻倍(6m、12m、24m……),所有块都归一化到同一规范体积交给同一个模型。每个块由改造过的 Trellis 2 生成:先用 MoGe-3 估计点图与内参,把 DINOv3 特征按投影贴到观测表面上的体素,并用截断深度残差编码每个体素处于自由空间、表面或遮挡区;稀疏结构阶段预测活跃体素,结构化潜变量阶段补全几何。块按从近到远自回归生成,重叠区潜变量被复制并在每个去噪步重新施加约束,最后统一解码成网格。训练用 SAGE-10k 室内加约 4000 个合成户外场景(每场景 16 张 1024×1024 视图),微调 rank-32 LoRA 加新增条件模块,10 万步、16 张 A100。

核心创新是显式 2D-3D 对应条件化。与 Trellis 2 让所有 3D token 对图像特征做 cross-attention、隐式学习对应不同,本文利用 token 位置已知做几何级注入。对体素 $v$,定义深度残差 $r(v)=z_{\mathrm{cam}}(v)-D(\pi(v))$,$\pi(v)$ 为其图像投影、$D$ 为归一化单目深度图。当 $|r(v)|<\tau$($\tau$ 为 1.5 个体素宽度)时,把 DINOv3 特征 $F(\pi(v))$ 写入体素,表示有观测支撑;否则用截断符号深度残差 $s(v)=\mathrm{clamp}(r(v),-\delta,\delta)$、$\delta=1\,\mathrm{m}$ 区分三态:负值为自由空间,近零为在表面上,正值为表面后方(隐藏几何交给生成先验)。$s(v)$ 经傅里叶编码加 MLP 得 $g(v)$,两路信号以 $W^{\ell}_{\mathrm{img}}f_{\mathrm{lift}}(v)+W^{\ell}_{\mathrm{geom}}g(v)$ 的形式逐层加进隐状态,使重建与生成补全在同一模型内由几何信号显式区分。

方法步骤详情

完整流程分六步。(1) 几何估计:MoGe-3 从输入图像预测内参与点图,作为全程 2D-3D 桥梁。(2) 自适应分块:以相机正下方地面点为原点建地面坐标系,沿深度划分区域,区域 $i$ 尺度因子 $a_i\geq 1$,块物理边长 $L_i=a_iL$($L=3\,\mathrm{m}$),体素尺寸 $\Delta_i=a_iL/N$;近处尽量用 3m 块,若某区域 99 分位高度超 2.8m 则增大尺度,深度每推进一排尺度至少翻倍,相邻块重叠 0.5$a_i$ 米。(3) 归一化:坐标、深度与相机平移同除以 $a_i$,投影不变,同一模型适用所有尺度。(4) 逐块两阶段生成:稀疏结构阶段以提升特征加可见性嵌入为条件预测活跃体素,结构化潜变量阶段仅以提升特征为条件生成几何潜变量。(5) 自回归拼接:从最近块开始按序生成,重叠区潜变量复制进新块并在每个去噪步重新施加;跨深度区域时对上区潜变量三线性重采样后同样约束。(6) 解码输出:拼接潜变量经预训练解码器输出完整网格。推理约 5 分钟,峰值显存 26GB。

技术新颖性

技术新颖性有三点。其一,自适应分块重新参数化了“如何把物体生成器扩展到场景”:此前 GenRecon 由场景高度决定统一尺度,本文让块的物理尺度成为随深度和局部高度变化的函数,同一分辨率网格在近处对应更细的物理体素。大尺度实验(纵深 280m、高 10m)中固定 3m 块需约 200 块并在 80GB A100 上爆显存,自适应方案只用 4 个深度区域、15 块、约 5 分钟,快 3 倍。其二,条件化把 2D-3D 配准从学习问题简化为几何计算:投影查特征表是解析操作,模型只需学“如何用”而非“在哪找”,消融显示优于 SAM 3D 式几何 token(室内 CD 4.38 vs 3.54)和仅投影条件化(4.74)。其三,不完美监督的自提升效应:模型在 agentic 流水线(GPT-5.6 规划、Ideogram 4 参考图、Nano Banana 补全、布局求解器)合成的户外数据上训练后,质量反而优于流水线自身输出(Fig. 4),且同时提升室内指标(CD 3.99→3.54),说明合成数据的监督价值与几何保真度部分解耦。

Overview of our method.
Fig. 2: Overview of our method.
Scene chunking strategies.
Fig. 3: Scene chunking strategies.
Learning from imperfect synthetic data.
Fig. 4: Learning from imperfect synthetic data.
Chunk allocation.
Fig. A1: Chunk allocation.

实验结果

与七类基线在三个评测集全面对比。Tanks and Temples(7 场景):CD 1.99,比该指标最强基线 VolFill 的 2.63 降低 24%;F1(10cm 阈值)0.506,比最强基线 Lyra 2.0 的 0.388 提升 30%。ScanNet++(32 场景):CD 5.01、F1 0.702 均最优(次优 World Tracing 5.21/0.690)。121 张 in-the-wild 图像:DreamSim 0.221、CLIP-N 0.870 均最优,用户研究对每个基线胜率至少 73%。消融验证:分块上(Table 2)自适应方案室内 CD 2.86/F1 0.792、户外 CD 37.4/F1 0.240,比固定 3m 块快 3 倍(5 vs 15 分钟),单块方案户外 CD 高达 49.9;条件化上(Table 3)完整方法室内 CD 3.54/F1 0.793,优于 SAM 3D 式 4.38,去掉可见性信号户外 F1 从 0.501 降到 0.464;数据上(Table 4)加户外数据使户外 CD 10.75→6.90、F1 0.317→0.501,室内也受益(3.99→3.54)。

Quantitative comparison on Tanks and Temples, ScanNet++ and In-the-wild images.
Table 1: Quantitative comparison on Tanks and Temples, ScanNet++ and In-the-wild images.
Comparison of chunking strategies.
Table 2: Comparison of chunking strategies.
Ablation of conditioning mechanisms.
Table 3: Ablation of conditioning mechanisms.
Visual comparisons.
Fig. 5: Visual comparisons.
Comparison of chunking strategies.
Fig. A2: Comparison of chunking strategies.
Additional qualitative comparisons on diverse scenes.
Fig. A3: Additional qualitative comparisons on diverse scenes.
Additional qualitative comparisons on diverse scenes.
Fig. A4: Additional qualitative comparisons on diverse scenes.
查看结构化数据
任务指标本文基线提升
单图像场景网格重建(Tanks and Temples,7 场景) Chamfer Distance ↓ 1.99 VolFill 2.63(该指标最强基线) 降低 24%
单图像场景网格重建(Tanks and Temples,7 场景) F1(10cm 阈值)↑ 0.506 Lyra 2.0 0.388(该指标最强基线) 提升 30%
单图像场景网格重建(ScanNet++,32 场景) CD ↓ / F1 ↑ 5.01 / 0.702 World Tracing 5.21 / 0.690 两项指标均为全场最优
In-the-wild 图像一致性(121 张,53 室内 68 室外) DreamSim ↓ / CLIP-N ↑ 0.221 / 0.870 World Tracing 0.237 / 0.859 均为最优;用户研究对每个基线胜率 ≥73%
户外消融(验证集,加/不加合成户外数据) CD ↓ / F1 ↑ 6.90 / 0.501 仅用现有数据 10.75 / 0.317 CD 降低 36%,F1 提升 58%

局限与改进

作者明确承认的局限包括:只生成几何不生成纹理;Trellis 2 本身不保证水密网格,模型继承这一问题,偶尔产生需要额外网格处理的孔洞;依赖估计的单目深度与相机内参,其误差会影响分块放置、场景尺度和特征对齐;自回归生成会通过复用的重叠潜变量把早期块的误差传播到后续块。我的补充观察:单目深度在镜面、玻璃、水面等场景会系统性失败,而方法对点图的依赖是全局性的,一处深度崩坏可能同时破坏分块与条件化;深度区域尺度倍增意味着从 6m 区域进入 12m 区域时物理体素尺寸翻倍,中远景细节存在断崖式下降;约 5 分钟推理对 VR、机器人等实时应用仍偏慢;合成户外数据仅 20 个类别且受 Ideogram 图像分布约束,对真实街景罕见布局的泛化存疑;几何评测集偏小(T&T 仅 7 个场景),统计显著性有限。

独立分析的弱点

独立分析几个弱点。第一,无外观输出:纯几何网格对内容创作和世界模型的直接可用性有限,建议结合 3D Gaussian Splatting 或纹理生成模型做几何-外观联合补全。第二,对单目深度的脆弱性:MoGe-3 在反射、透明、重复纹理上误差大,而点图既决定分块又决定条件化,建议引入深度不确定性图,对高不确定区域收紧 $\tau$ 并放宽生成分支约束,或在重叠区做多深度假设投票。第三,自回归误差单向传播:近处块一旦生成错误会通过共享潜变量固化到远处,建议在整场景拼接后做一轮全局去噪精修,或对低置信块选择性重生成。第四,跨区域分辨率突变:尺度翻倍边界处同一物体可能呈现细节跳变(如 6m 区域边缘清晰、12m 区域同一建筑明显更糊),建议用连续增长的尺度函数或在边界带加超分细化。第五,遮挡区补全完全依赖先验,对训练分布外的结构可能产生“幻觉建筑”,可输出逐体素置信度,明确标注哪些是观测、哪些是想象,供下游安全使用。

未来方向

作者提出三个方向:带纹理的输出(如 3D Gaussian Splatting)、更精细的几何细节、以及支持多张输入图像。在此基础上有自然的延伸:其一,与世界模型结合——论文引言即指出单图转可探索 3D 世界可用于机器人仿真与学习,本方法输出的完整网格正是物理仿真需要的表示;其二,把输入从单帧扩展到视频或漫游序列,用多帧观测替代单目深度估计,从根上缓解深度误差瓶颈;其三,效率方向:对流匹配两阶段做少步蒸馏,把 5 分钟级推理压到秒级,配合 26GB 的显存占用推向实时;其四,扩展 agentic 数据流水线到动态场景与更稀有的户外类别,并系统研究合成数据规模与真实扫描数据的最优配比;其五,为生成几何引入不确定性估计与可编辑性,让用户能指定某区域“必须遵循图像”或“允许自由创作”,提升在自动驾驶、AR 等场景的实用性。

复现评估

复现难度中高。论文未提及代码开源,仅提供项目主页 build-rome.github.io 与补充视频,模型权重、训练代码与数据管线均未公开。依赖组件分两类:开源可得的 Trellis 2、MoGe-3、DINOv3、SAGE-10k、Infinigen,以及闭源依赖 GPT-5.6、Ideogram 4、Nano Banana(涉及 API 成本与版本漂移)。算力方面,训练需 16 张 A100、batch 64、10 万步,属实验室级门槛;但推理侧友好:单块生成约 8GB、整场景峰值 26GB,单张专业卡即可运行。最大的复现障碍是 agentic 户外数据流水线:VLM 场景规划、物体裁剪与补全、Trellis 2 重建、布局求解、物理仿真落地、VLM critic 精修一轮,环节多且含随机性,4000 个场景的构建成本高、可复现性差;而跳过该流水线户外指标会明显缩水(CD 10.75 vs 6.90)。

相似论文推荐