低成本采集
使用手机视频而非专用阵列设备,通过移动路径和帧间重叠保障几何可恢复性。
以叶卡捷琳堡库比雪夫街建筑立面为对象,用普通手机视频与开源/轻量工具,贯通视频采集、SfM 位姿恢复、3D Gaussian Splatting 训练、噪声清理和 Web 实时展示。
项目重点是一条低成本三维数据生产链:采集策略、特征匹配、几何初始化和后期清理必须连起来,否则单纯增加训练迭代不能解决错误结构。
使用手机视频而非专用阵列设备,通过移动路径和帧间重叠保障几何可恢复性。
先用 SfM 恢复相机内外参与稀疏点云,为高斯场提供合理初始位置。
在 Brush 中完成训练和“雕刻式”清理,再导出到 SuperSplat 进行场景裁剪与网页浏览。

沿建筑立面平稳移动,保持连续视差,避免大幅度跳角度和突然改变曝光。
目标重叠度高于 70%,让窗框、砖缝等稳定特征能跨多帧建立匹配。
用 Python / OpenCV 按 2 FPS 生成图像序列,在视角变化与重复帧之间取平衡。
训练前需剔除明显模糊、重复或遮挡严重的帧,避免将采集问题带入几何恢复。

cap = cv2.VideoCapture(video_path)
fps = cap.get(cv2.CAP_PROP_FPS)
step = max(1, round(fps / 2))
while cap.isOpened():
ok, frame = cap.read()
if not ok: break
if frame_id % step == 0:
cv2.imwrite(output / f"{saved:04d}.jpg", frame)从 138 张图像中检测稳定局部特征,建立多视角对应关系;错误匹配会在后续表现为飘浮点或拉裂结构。
通过束调整联合优化相机位姿和空间点,使同一特征在多张图像中的重投影误差收敛。
输出 109,180 个稀疏点与已注册相机,这些几何结果成为 3DGS 中高斯位置与相机观测的初始条件。
如果相机轨迹不连续或稀疏点云出现多个分裂群,应先回到帧质量、特征匹配和建图参数,而不是直接进入 3DGS 训练。

每个 3D 高斯包含位置 μ、协方差 Σ、透明度 α 与球谐颜色系数,用连续椭球代替传统三角网格表示外观。
将高斯投影到图像平面,按深度排序后 alpha blending;比较渲染图与真实帧,通过梯度更新位置、尺度、方向、透明度与颜色。
Brush 在细节不足区域增加或分裂高斯,使窗框、砖缝和立面边界获得更密集的表达。
原项目材料记录的训练迭代范围为 7k–30k。迭代数是计算预算,不能取代训练视图检查和噪声清理。


手机视频 → OpenCV 抽帧 → COLMAP 位姿/点云 → Brush 3DGS 训练与清理 → SuperSplat Web 展示。这条流程同时覆盖摄影测量、神经渲染和三维数据交付。