City-Level 3D Surface Reconstruction with Viewpoint Orientation Partitioning and Scene Completion¶
会议: ECCV2026
论文: ECCV 原文
项目: VOP-GS
领域: 3D 视觉
关键词: 城市级表面重建、视点朝向分区、初始点云补全、多视图一致性、高斯泼溅
一句话总结¶
本文先把有利于相互重建的相机视图分到同组,再按关键点分布熵选择性补全初始点云,最后用多视图一致性优化高斯表示,将 MatrixCity 的表面重建 F1 从 CityGS-X 的 0.581 提高到 0.803。
研究背景与动机¶
城市级重建需要从大量多视图照片恢复建筑立面、道路和其他场景表面,而不只是合成一张看起来真实的新视角图像。 3D Gaussian Splatting(3DGS,高斯泼溅)用显式高斯基元提高了渲染效率,但城市规模仍会带来显存压力、漫长优化以及复杂遮挡。 常见办法是把空间切成若干块,给每块分配照片并独立训练,再组织成完整场景。 这种划分对计算很自然,却不一定对几何估计有利:位置相近的相机可能朝向相反,而边界相机所需的遮挡物或支持视图可能在块外。 因此,局部模型即使能拟合颜色,也可能在边界处恢复出不连续或错误的深度。
本文把分区标准从“空间上放在哪里”转向“哪些照片能为彼此提供可靠几何约束”。 相机朝向相近通常意味着更容易获得较大的图像重叠,再辅以位置细分,便能把有用的局部观测组织到一起。 不过,分组只能改善已有观测的利用方式,不能自动修复初始化里完全缺点的区域。 COLMAP 在低纹理或视角覆盖不足处可能没有可靠三维点,依赖已有高斯进行分裂和克隆的增密机制也就难以从这些空白处长出正确表面。 对全城所有图像运行稠密重建又太昂贵,因此需要先找出真正值得补点的照片。
两项设计分别处理“监督是否互相支持”和“优化是否有几何起点”,之后仍复用成熟的表面重建框架。 核心 idea:以视点朝向组织几何一致的训练组,以关键点分布熵筛选缺失区域的补点需求,让有限的多视图约束和初始化计算优先服务于可靠表面恢复。
方法详解¶
整体框架¶
输入为多视图图像、相机位姿、COLMAP 稀疏点云,以及与已重建三维点关联的有效二维关键点。 方法依次执行视点朝向分区、初始点云补全和多视图一致性优化,最终得到城市级表面重建结果。 分区产生的是允许共享支持视图的相机组,而不是互斥的空间网格;补全产生的是优化前使用的几何初始化,而不是训练后的网格修补。 各组在多张 GPU 上分别训练,预训练匹配网络只参与补点阶段,不承担最终场景的逐像素渲染。
%%{init: {'flowchart': {'rankSpacing': 24, 'nodeSpacing': 28, 'padding': 6, 'wrappingWidth': 400}}}%%
flowchart TD
INPUT["图像、位姿与<br/>COLMAP 稀疏点云"] --> PART["视点朝向分区"]
PART --> FILL["初始点云补全"]
FILL -->|补全点云初始化各组| OPT["多视图一致性优化"]
PART -->|扩展相机组与支持视图| OPT
INPUT -->|观测图像监督| OPT
OPT --> OUT["城市级表面重建"]
图中的箭头区分了几何初始化与训练监督:新增点提供高斯的起始位置,原始观测和支持视图约束后续优化。 论文正文主要解释分组、补点和损失,没有充分交代最终网格提取及组间融合的实现细节,不能据此补写成某种特定融合算法。
关键设计¶
1. 视点朝向分区:先保证观测方向兼容,再控制局部规模
第一步对单位化相机朝向使用 DBSCAN,距离定义为两个方向向量点积与 1 的差,即余弦距离。 它优先把朝向相近的照片放在一起,避免仅凭相机位置把相反立面的观测混进同一个几何优化单元。 朝向相似仍可能覆盖很远的区域,因此大组还需要按三维相机位置再次划分。 对包含 \(n\) 个相机的组,论文取 \(K=\lceil n/M_{\max}\rceil\),再以位置进行 K-means,默认 \(M_{\max}=200\)。 这样让位置充当第二层约束:既缩小局部跨度,也降低单组训练的资源需求。 需要注意,普通 K-means 本身不严格保证每组都不超过容量上限,正文没有给出额外的容量约束步骤。
仅完成细分仍会损伤组边界上的观测关系,因此论文为每个参考视图从全体视图中寻找有利于重建的支持视图,并将这些视图并入所属组。 实现设置为每个参考视图选择 4 个源视图;这一步让训练组能够重叠,而不是把边界硬切开。 其意图是保留“同组方向相近”的主体结构,同时为局部匹配提供足够观测。 这也意味着扩展后的实际组大小可能超过细分阶段的名义上限,不能把 200 当成最终显存占用的严格保证。 正文没有完整说明源视图的评分和筛选规则,因此这里不推断具体的重叠率阈值。 本设计的收益来自监督组织方式,而不是新增一种高斯基元或替换渲染器。
2. 初始点云补全:先检测覆盖不均,再对候选视图定向补点
作者利用 COLMAP 已有的有效二维关键点,避免再次把全部三维点投影到所有图像。 这些关键点与成功重建的三维点对应,因此它们在图像中的覆盖可作为几何初始化是否充分的代理信号。 每幅图划为 \(N\times N\) 网格,默认 \(N=10\);统计每个格子占该图有效关键点总数的比例 \(p_j\)。 比例越集中,说明点主要落在少数区域,其他区域可能缺少几何支撑。 论文以 Shannon 熵衡量这一均匀性,并用最大熵归一化,便于不同照片使用同一阈值。 按正文定义,可将归一化熵整理为以下表达;这是统一符号后的说明式,缓存原式存在 \(E/H\) 符号混用:
当 \(E_{\mathrm{norm}}<\tau\) 时,该图进入候选集,默认 \(\tau=0.7\)。 对每幅候选图,与其邻近源视图组成图像对,送入预训练匹配网络获得稠密对应,再通过三角化生成三维点。 正文引用的匹配方法是参考文献 [36] MINIMA,不能把相关工作中提及的 MASt3R 当成本文实际使用的补全网络。 新增点经过几何一致性过滤和去重后,与原 COLMAP 点云拼接,成为高斯训练的初始化。 因此,补全依赖图像中可恢复的跨视图对应,不是生成模型凭空合成被遮挡的城市结构。
这一筛选比全场景稠密初始化节省计算,但熵只反映相对空间分布,并不直接等同于点数或几何质量。 极少量却分布均匀的点仍可能得到较高熵;完全没有有效点时,比例如何定义也需要实现额外处理,正文未说明。 这些是读者对检测器适用边界的分析,不是论文已经验证过的失败实验。 作者观察到大部分图像的归一化熵位于 0.6 至 1.0,因此用统一阈值选择较差的那部分覆盖。 提高阈值会让更多照片参与补点,改善表面完整性,也会增加匹配耗时和初始化显存。
3. 多视图一致性优化:让分组和补点真正作用到几何学习
方法基于 PGSR 实现,在各相机组中训练高斯表示,而不是再训练一个跨城市泛化的重建网络。 除了颜色重建和深度法线一致性,优化还使用 PGSR 的多视图光度一致性与几何一致性约束。 光度项取参考图像的小块,利用单应变换对应到源视图,计算归一化互相关 NCC,并惩罚与完全相关之间的差距。 这种局部块匹配提供跨视图监督,要求一个表面解释不只拟合当前图片,也能与邻近观测相容。 几何项约束多视图几何的一致性,深度法线项则约束恢复形状的局部一致程度;正文没有展开前者的完整计算式。
方向相近且相互重叠的组为这些约束提供更可靠的匹配条件,补全点云则让缺失区域拥有可以被优化的基元。 两者不能互相替代:初始点多不代表监督一致,而良好监督也不能保证完全没有起始点的区域自动恢复。 匹配网络给出的点仍须过滤,避免把错误对应直接带入后续几何优化。 训练完成后使用优化后的场景表示恢复表面;本文没有提出测试时再对输入照片运行熵检测的独立推理阶段。
一个完整示例¶
以航拍城市中某片低纹理建筑立面为示意,以下描述机制,不新增实验测量。 首先,相机根据朝向形成组;若某组包含大量照片,再按位置细分到较小的局部区域。 位于分组边缘的一张立面照片,会把适合匹配的 4 个支持视图带入扩展训练组。 随后,在它的 \(10\times10\) 网格中统计有效关键点;若点只集中在屋顶边缘,分布熵可能低于 0.7,于是触发补点。 匹配网络对候选图和支持视图建立对应,三角化并过滤后的点填入原先稀疏的立面区域。 这些点初始化高斯,原始照片及其相邻观测再共同约束训练,使新加入的几何服从真实图像,而不只是把空洞填满。
损失函数 / 训练策略¶
每组训练 30K 次迭代,实验平台为 8 张 RTX 3090。 总目标组合颜色重建、块级光度一致性、几何一致性和深度法线一致性;后三项权重依次为 0.15、0.03、0.05。 缓存中的总损失公式缺少部分运算符,因此这里保留文字定义与权重,不把损坏公式当作可直接复现的精确表达。 实现段写朝向阈值 \(\epsilon_{\mathrm{dir}}=0.71\) 对应 \(45^\circ\),但前面的余弦距离定义给出 \(1-\cos45^\circ\approx0.2929\)。 这一冲突可能涉及相似度与距离约定,原文不足以确定;下文角度消融按表格原值记录,不替作者修正参数。 PGSR 和 2DGS 基线训练 100K 次迭代,并将球谐阶数降为 1 以避免显存不足,因此并非所有方法采用同一训练配置。
实验关键数据¶
主实验¶
实验覆盖 GauU-Scene 的 6 个场景、MatrixCity 的一个小城市航拍区域,以及 UrbanScene3D 的 Residence 和 Sci-Art。 GauU-Scene 每场景约 400 至 1,200 张图,UrbanScene3D 每场景超过 2,500 张图,MatrixCity 超过 5,000 张图。 前两类真实数据图像缩小 4 倍;MatrixCity 图像长边调整为 1,600 像素。 下表选取原文表 1(第 10 页)和表 2(第 12 页)的城市级方法;指标越高越好,F1 为精确率与召回率的调和平均。 几何精确率衡量重建点与真值的接近程度,召回率衡量真值几何被重建覆盖的程度;缓存正文没有给出距离判定阈值。
| 方法 | GauU-Scene 平均 F1 | MatrixCity 精确率 | MatrixCity 召回率 | MatrixCity F1 |
|---|---|---|---|---|
| CityGaussian-V2 | 0.506 | 0.441 | 0.752 | 0.556 |
| CityGS-X | 0.527 | 0.444 | 0.840 | 0.581 |
| 本文 | 0.560 | 0.713 | 0.920 | 0.803 |
在 MatrixCity 上,本文相对 CityGS-X 的 F1 绝对提高 0.222;精确率和召回率同时改善,不能把收益仅理解为多补了一些点。 GauU-Scene 平均 F1 提高 0.033,但并非每个场景都最好:HAV 上 PGSR 为 0.573,本文为 0.554。 作者指出 HAV 只有 424 张图片,较小场景中不分块优化仍可能更有优势。 GauU-Scene 的真值 LiDAR 边缘不完整,评价沿用 CityGaussian-V2 的中央区域裁剪,F1 不代表整场景所有边界的质量。 UrbanScene3D 在正文中主要给出定性比较,没有可据此补写的对应 F1 表。
消融实验¶
原文表 4(第 13 页)改变朝向角阈值,保持名义相机容量 \(M_{\max}=200\);组数是 GauU-Scene 全部场景的总和,不是单个场景的组数。
| 朝向角阈值 | 总组数 | 平均 F1 |
|---|---|---|
| 15° | 36 | 0.534 |
| 30° | 35 | 0.544 |
| 45° | 27 | 0.560 |
| 60° | 27 | 0.532 |
45° 与 60° 都产生 27 组,但 F1 相差 0.028,说明质量差异不能只归结为组数或并行预算。 较小阈值也不是越小越好:15° 的组更多却更差,支持“保留足够共同观测”的设计动机。 原文表 5(第 13 页)改变补全熵阈值,记录重建 F1;“不补全”保留分组与其余训练设计。
| 补全阈值 | GauU-Scene F1 | MatrixCity F1 |
|---|---|---|
| 不补全 | 0.546 | 0.772 |
| 0.6 | 0.551 | 0.797 |
| 0.7 | 0.560 | 0.803 |
| 0.8 | 0.561 | 0.805 |
| 0.85 | 0.563 | 0.806 |
| 0.9 | 0.565 | OOM |
默认 0.7 相对不补全,在 GauU-Scene 和 MatrixCity 分别提高 0.014 和 0.031。 MatrixCity 从 0.7 提高至 0.85 仅再增加 0.003,到 0.9 则显存不足,说明补点量并非越大越实用。
关键发现¶
- 无补全的 MatrixCity F1 已为 0.772,高于 CityGS-X 的 0.581;这是其余设计组合的结果,不能当成严格隔离后的分区单项贡献。
- 原文表 6(第 15 页)中,给 PGSR 换用补全点云后平均 F1 从 0.333 增至 0.382,说明初始化改进可复用于其他重建器;不代表每个场景都提升。
- 原文表 3(第 12 页)报告 GauU-Scene 训练时间为本文 2 小时、CityGS-X 3 小时、CityGaussian-V2 6.5 小时。
- MatrixCity 对应为 6.5、5、13 小时;本文优于 CityGaussian-V2,但慢于 CityGS-X,不能概括成全面最快。
- MatrixCity 分为 30 组,在 8 张 GPU 上分 4 轮训练;正文没有将匹配补全开销单独列出,因此训练时间不能直接当作完整端到端成本。
亮点与洞察¶
- 分区不仅用于节省显存,也决定哪些照片共同约束几何。把监督兼容性纳入分区,比仅根据空间位置组织任务更贴近表面重建目标。
- 关键点分布熵是低成本的补点触发器。它复用 SfM 的中间结果,把预训练匹配计算集中到覆盖较差的局部图像。
- 完整性与精确性需要一起看。MatrixCity 两项指标同步提高,支持“更可靠地恢复表面”的结论,而不只是扩大几何覆盖。
局限与展望¶
- 作者实验证实过量补点会耗尽显存,且增益逐渐变小。更有针对性的候选优先级和点数预算,是比直接调高阈值更值得检验的扩展方向。
- 朝向接近不保证无遮挡重叠,熵较高也不保证几何充分。结合可见性和绝对点数可能改善筛选,但属于读者建议,本文未验证。
- 朝向距离阈值与角度的对应冲突、K-means 的容量约束、源视图选择和空关键点处理,均需要实现层面澄清。
- 几何评价的距离阈值、中央区域裁剪和 CityGS-X 在 MatrixCity 上与其原论文不一致的重建现象,限制了跨论文直接比较的强度。
- 本笔记依据提供的正文缓存;没有读取补充材料或代码,也未核验其中承诺提供的 PSNR、SSIM、LPIPS 与网格融合细节。
相关工作与启发¶
- 与 PGSR 对比:本文复用其表面表示和一致性约束,主要改变大规模场景中的视图组织与初始化;HAV 的反例也说明分组并非小场景的默认最优选择。
- 与 CityGaussian-V2 对比:空间分块和多阶段训练有利于扩展规模,本文则把方向兼容性放在分区首位,并用支持视图扩展缓解边界观测不足。
- 与 CityGS-X 对比:后者强调体素级并行效率,本文在 MatrixCity 上用更多训练时间换取更高几何质量,适合按任务目标而非单一排名选择。
- 可迁移启发:稀疏重建系统可把“是否需要更多初始化证据”作为显式决策,再调用昂贵匹配器;迁移时应同时校验覆盖熵、点数和可见性,而不是原样照搬 0.7。
评分¶
- 新颖性: 4/5。将朝向优先分组与选择性点云补全用于城市级表面恢复,设计简洁,但多数底层组件来自已有方法。
- 实验充分度: 4/5。包含多个数据集、角度与熵阈值消融及跨方法初始化实验,仍缺部分复现细节和完整成本拆分。
- 写作质量: 3/5。核心动机清晰,参数定义不一致及缓存公式损坏增加了复现歧义。
- 价值: 4/5。为大规模高斯表面重建提供可借鉴的视图调度和初始化策略,适用范围需结合场景规模判断。