当3D高斯溅射学会“边走边看”:聊聊On-the-Fly GS背后的巧思与未来

摘要: 笔者最近读到一篇非常有意思的论文,名为《Gaussian On-the-Fly Splatting: A Progressive Framework for Robust Near Real-Time 3DGS Optimization》(论文ID: arXiv:2503.13086)。这篇工作巧妙地解决了3D高斯溅射(3DGS)技术一个长期以来的痛点,让人眼前一亮。笔者想和大家聊聊这篇论文讲了一个什么样的故事,它背后有哪些聪明的想法,特别是它如何巧妙地运用了HNSW这项技术。同时,也想斗胆畅想一下,如果这类技术背后再得到强大的向量数据库(Vector Database)的加持,未来可能会演变成什么样激动人心的形态。希望能给大家带来一些启发。

1 “急性子”的3DGS:我们想立刻看到结果!

熟悉3DGS的朋友们可能都知道,它是一种非常强大的三维场景表示技术。用它渲染出来的画面,不仅质量逼真,而且速度飞快,可以做到实时交互。但它背后有一个让很多“急性子”感到头疼的问题——训练过程太“慢”了。

传统的3DGS工作流,就像一位严谨但固执的老派摄影师冲洗胶卷:

  1. 拍照阶段:你得先拿着相机,把你想重建的场景前前后后、上上下下拍个遍,收集好所有的照片。一张都不能少。
  2. “暗房”处理:然后,你把所有照片(成百上千张)一股脑地交给一个叫做COLMAP的“暗房大师”(一个经典的SfM工具)。这位大师会把自己关在“小黑屋”里,埋头苦干好几个小时,甚至更久。他会帮你分析每张照片是在哪个位置、哪个角度拍的,并构建出场景的稀疏骨架。
  3. 最终“冲印”:等到“暗房大师”终于出来了,你才能拿着他处理好的成果,开始进行3DGS的优化训练,最终“冲印”出那个可以实时渲染的三维模型。

整个过程,最磨人的就是第二步。在它完成之前,你对最终的模型长什么样一无所知。这在很多需要即时反馈的场景里,体验非常糟糕。想象一下,你在用AR眼镜扫描一个房间,你当然希望边走边看到模型一点点“长”出来,而不是扫描完了,回家等一晚上,第二天才能看到结果。

这篇论文的核心,就是想把这位“慢性子”的大师,改造成一个能“边走边看”、即时反馈的现代化数字流程。

2 On-the-Fly GS的“三板斧”:它是如何变快的?

为了实现这个目标,作者们提出了一套名为“On-the-Fly GS”的渐进式框架。在笔者看来,它的成功主要靠的是三招非常聪明的“组合拳”。

2.1 第一招:找个“快枪手”来替代“暗房大师”

既然传统的SfM处理太慢,那就换掉它。作者们引入了一个名为“On-the-Fly SfM”的技术。这个技术就像一个反应神速的“快枪手”,每当你拍下一张新照片,它几乎是瞬间就能完成两件事:

  1. 快速定位:立刻计算出这张新照片的相机位置和姿态。
  2. 更新骨架:将新照片带来的信息,无缝地融入到已经构建好的场景稀疏骨架中。

这一下就从根本上解决了“必须等所有照片拍完才能开始”的问题。

2.2 第二招:区别对待,“偏心”的训练策略

有了即时更新的相机位姿,我们就可以开始增量式地训练3DGS模型了。但新的问题也随之而来:新加入的区域,因为刚开始训练,模型效果肯定很粗糙;而已经训练了很久的老区域,效果则非常精细。这就像一块画布,有的地方画得细致入微,有的地方才刚打了草稿,看起来非常不协调。

怎么办呢?作者们没有“一视同仁”,而是搞了一套非常“偏心”的训练策略,叫做“局部与半全局优化”。

  • 重点关照“新生儿”:每当一张新照片进来,系统会把绝大部分的计算资源都倾斜给它,以及和它在空间上重叠的“邻居”们。确保新加入的区域能够被快速、高质量地重建出来。
  • 偶尔“雨露均沾”:在重点关照“新生儿”的同时,系统也会随机地、少量地去训练一下那些很早以前就加入的老区域。这就像是“复习功课”,防止模型因为只顾学习新知识而“忘记”了老场景的样子。

2.3 第三招:因材施教,给每张照片定制“学习计划”

传统的学习率调整策略,通常是看整个模型的整体表现来决定是“快点学”还是“慢点学”。但这在增量学习的场景下显然不合适了。

于是,作者们设计了一套自适应的学习率机制。简单来说,就是为每张照片量身定制学习计划:

  • 新照片(差等生):刚加入,模型对你一无所知,给你一个很高的学习率,让你赶紧“补课”,快速提升效果。
  • 老照片(优等生):已经训练得很好了,给你一个很低的学习率,让你在现有基础上做一些精细的“微调”即可,别学过头了。

通过这三招的巧妙结合,On-the-Fly GS成功地将一个漫长的离线流程,改造成了一个可以渐进式、近乎实时地进行三维重建的在线系统。

3 幕后英雄:HNSW是如何撑起半边天的?

读到这里,一些熟悉技术的朋友可能会有一个疑问:第一招里那个“快枪手”On-the-Fly SfM,它凭什么能那么快?

我们知道,SfM的核心之一是特征匹配。当一张新照片进来,它需要快速地从成千上万的历史特征点中,找到与自己匹配的那些。如果用暴力搜索,计算量会随着照片数量的增加而爆炸式增长,根本不可能“快”起来。

这正是HNSW(Hierarchical Navigable Small World)登场的时刻。

在论文中,作者明确提到,On-the-Fly SfM正是利用HNSW来实现了高效的在线特征匹配。

  • 构建“特征点宇宙”:系统将所有已经处理过的照片中的特征点(每个点都是一个高维向量,可以理解为这个点的“数学指纹”),预先构建成一个HNSW索引。这个索引就像一个为所有特征点精心编织的、带有“高速公路”和“本地小路”的巨大关系网络。
  • 闪电般的“寻亲”:当一张新照片带着几千个新的特征点向量进来时,系统不再需要让它们去和历史库里的所有点一一比对。而是把它们扔进HNSW这个“宇宙”里。HNSW会利用其巧妙的分层图结构,像GPS导航一样,为每个新特征点在毫秒之间找到它在宇宙中“血缘”最近的几个亲戚(近似最近邻)。

可以说,HNSW是整个系统能够做到“On-the-Fly”的关键性能基石。它就像是系统后台那个不为人知,却默默撑起半边天的效率引擎。没有它,所谓的“即时反馈”可能就成了一句空话。

4 畅想:当Vector Database成为背后的大脑

这篇论文的思路,给笔者带来了非常大的启发。它完美地展示了如何将一个复杂的3D空间智能系统,通过巧妙的解耦和引入HNSW这样的高效组件,来实现在线化和实时化。

这让笔者不禁思考一个更宏大的问题:如果我们将这个思想再往前推一步,让强大的向量数据库(Vector Database)成为这类系统背后真正的“大脑”,世界会变成什么样?

向量数据库,本质上就是将HNSW这类高效的ANN算法,与成熟的数据库技术(如数据管理、过滤、扩展性、持久化等)完美结合的产物。

4.1 4.1 从“特征点宇宙”到“万物皆可向量”的3D场景图

在论文里,HNSW管理的是视觉特征点。但在一个更通用的3D智能系统中,我们可以将场景中的一切都向量化,并存入一个统一的向量数据库中:

  • 物体的语义向量:用CLIP这样的多模态大模型,将场景中的每个物体(一张椅子、一个杯子)都转换成一个向量,这个向量代表了“它是什么”。
  • 物体的几何/外观向量:物体的3D模型、材质、颜色等信息也可以被编码成向量。
  • 空间关系向量:甚至,物体之间的关系(“杯子在桌子上”、“书在椅子左边”)也可以被学习和表示为向量。

这样,我们的向量数据库就从一个简单的“特征点寻亲引擎”,升级为了一个包罗万象的、活生生的3D场景图(3D Scene Graph)。

4.2 4.2 实现真正的“3D空间HNSW”

有了这样一个数据库,我们就能实现之前与朋友探讨过的那个激动人心的构想——一个原生的、支持空间语义搜索的3D HNSW。

当用户提出一个复杂的查询,比如“帮我找到书房里,那盏台灯和笔记本电脑之间的那个红色马克杯”时,系统不再是先做一次粗糙的语义搜索,再做一次几何后处理。

整个过程将变成一次在向量数据库中由智能引导的主动导航:

  1. 多路召回:系统同时在数据库中检索“台灯”、“笔记本电脑”、“马克杯”的候选对象。
  2. 在图上“行走”:以“台灯”和“笔记本电脑”为起点,系统开始在场景图(这个图的连接关系本身就隐含了可导航性)上进行搜索。
  3. 智能“指南针”:搜索的每一步,都会由一个智能模块来引导。这个模块会告诉搜索算法:“走这边,离满足‘之间’这个空间关系更近一些!”
  4. 精准锁定:最终,搜索路径会收敛到那个同时满足“在书房”、“是红色马克杯”并且“在台灯和电脑之间”的唯一目标上。

4.3 4.3 面向动态世界,实现“活”的索引

向量数据库强大的数据管理能力,也让我们能够更好地应对动态世界。当机器人移动了一个物体,我们不再需要重建整个世界的索引。我们只需要:

  • 更新节点:在数据库中更新那个被移动物体的几何元数据。
  • 更新局部连接:利用一个“学习型导航成本预测器”和“局部优先”策略,只重新计算并更新它与周围邻居的“距离”和关系。

数据库的事务和索引更新机制,可以保证这个过程的鲁棒性和一致性。整个3D世界地图,就成了一个可以被实时、增量式更新的“活”索引。

5 写在最后

从On-the-Fly GS这篇论文出发,我们看到了一个将复杂3D重建流程在线化的精彩范例,也看到了HNSW在其中扮演的关键角色。笔者认为,这不仅仅是一次技术上的优化,更是一种思想上的转变——从离线的、批处理的思维,转向在线的、增量式的、服务化的思维。

而当这种思维与向量数据库强大的“连接万物、管理万物”的能力相结合时,我们离构建一个真正能够理解、并实时响应动态三维世界的通用智能体,或许就又近了一步。当然,这其中还有无数的技术挑战需要克服,但笔者相信,这无疑是一个值得我们持续探索和努力的方向。

以上是笔者的一些浅见,观点难免有失偏颇,欢迎大家在评论区一起交流探讨!

当3D高斯溅射学会“边走边看”:聊聊On-the-Fly GS背后的巧思与未来

https://nerozac.com/2025/10/14/on-the-fly-3DGS/

作者

Jiawei Li

发布于

2025-10-14

更新于

2025-10-14

许可协议