我们需要这样的一个 cli 程序:

  • 能够使用输入图片训练3D高斯模型

  • 能够利用图片中的拍摄信息,输出的模型是与现实中尺寸位置完全对应的

  • 输出有 LOD 的模型。

  • 分块生成,以分块加载和利用有限硬件资源训练任意大的模型

gsplat

这是一个很主流的工具,但是目前 (2026.7.25)它的官方预编译轮子是不能在 50 系显卡上面跑的。

费了九牛二虎之力也没编译出来。

让AI试了一下,每次都会回退到CPU,根本不能使用。

LichtFeld-Studio

LichtFeld-Studio 是个开源的,有图形界面的高斯泼溅建模软件。看到一个帖子说手动编译的能够支持50系显卡。

像这种又是C++又是Python的东西,在我本地还从来没有编译出来过,如果能编译出来的话,虽然它不是 Cli 的,但毕竟源码我都能动,可以拿来用。

而且可视化也有可视化的好处,先前测试 gsplat 的时候就存在可视化的问题。

于是我决定让 AI 试一试能不能编译出来。

Codex 不负众望,编译了一天,编译出来了。

魔改

然后我在 LichtFeld-Studio 原本的基础上做了一些修改:

  • 增加了预装插件这个东西,将一个生成数据集的插件作为预装插件。

  • 删除了不必要的东西。

切块和优化建模

社区里面有一个使用 colmap 对齐照片生成数据集的插件,我将这个插件作为预装插件,直接编译进安装包,这样就可以直接输入图片建模了。

但众所周知图片对齐是一个很费时间的事情,需要两两照片匹配。图片越多,越费时间。还很难与现实中的尺度对齐。

又众所周知,无人机拍摄的图片中是由 EXIF 信息的,我这里包括了 拍摄点经纬度、高程、云台角度信息以及视口正中心的经纬度和高程。

于是就有了基于 EXIF 的分块算法:

这样一来,时间复杂度就变为了线性的,只要时间够多,建一个城市也是完全可以做到的。

同时 colmap 的对齐只在EXFI的基础上做微调,对齐也会相当迅速。

分块都建完之后会合并和裁剪,交界处会栅格评估,取质量更好的分块建的模型:

陶片化

一个几百万点的高斯模型在现代计算机面前,即使是浏览器的地图上也是可以轻松渲染的。

但一张地图上往往不止有一个几百万点的模型,而且很多时候并不会近距离观察,不需要将这几百万点都渲染出来。

于是就需要做一些小优化了。

说到地图,那优化就是 陶片化 + LOD 了, 陶片化把大模型拆成很多小模型,LOD 在不同距离加载不同清晰度的模型。

3DGS-PLY-3DTiles-Converter 可以很好的做到这一点,它是一个 nodejs 的 cli 工具。

于是再增加一个插件,这个插partition_map.png件将 Nodejs 和 各种需要的依赖都打包进去,可以做到安装好软件就能直接使用。

在前端就直接使用 3D-Tiles-RendererJS-3DGS-Plugin 来渲染到地图上。

自动化

目前各种要素齐全,但仍然需要手动操作,我希望软件启动后能自动在我的某平台上拉取任务。

得益于 LichtFeld-Studio 强大的插件系统,于是又写了一个插件,会连接服务器取任务,然后自动下载媒体,调用各个插件和软件本体重建,自动上传结果。

我能想到的,最大的成功就是无愧于自己的心。