MeshSplatting 数据准备指南:如何为自己的场景准备COLMAP、Depth Anything v2深度与Metric3D法线监督 【免费下载链接】mesh-splatting项目地址https://gitcode.com/gh_mirrors/me/mesh-splatting点击查看免费下载MeshSplatting 是一个基于不透明网格Opaque Meshes的实时可微分渲染项目CVPR 2026通过三角形 Splatting 实现高质量场景重建与实时渲染。想在自己的场景上复现效果数据准备是关键一步你需要一份 COLMAP 重建结果可选地再补充Depth Anything v2 深度图与Metric3D 法线图作为优化监督信号。本文将手把手带你完成这三类数据的准备让你快速上手训练自己的场景。一、先认识标准目录结构MeshSplatting 数据准备的核心MeshSplatting 基于 COLMAP 数据集格式加载逻辑在 scene/dataset_readers.py 中实现。一个完整的场景目录应如下所示my_scene/ ├── images/ # RGB 图像默认读取此文件夹 │ └── *.jpg ├── sparse/ │ └── 0/ │ ├── cameras.bin # 相机内参 │ ├── images.bin # 相机外参 │ ├── points3D.bin # 稀疏点云 │ └── depth_params.json # 可选深度标定参数 ├── depth/ # 可选Depth Anything v2 生成的深度图 │ └── *.png └── normals/ # 可选Metric3D 生成的法线图 └── *.png 三个关键约定深度图文件夹名必须叫depth法线图文件夹名由图像文件夹名替换而来images→normalsimages_2→normals_2所有文件以图像同名无扩展名为基准。二、COLMAP 场景准备第一步也是必选项用相机围绕场景拍摄照片360° 环绕拍摄效果最佳参考 MipNeRF-360 的采集方式。运行 COLMAP 完成特征提取、匹配与稀疏重建SfM输出sparse/0/目录。支持bin与txt两种格式程序会优先读取二进制文件cameras.bin、images.bin读取失败时自动回退到文本格式。注意仅支持PINHOLE与SIMPLE_PINHOLE相机模型无畸变带畸变模型的图会在加载时报错。训练命令详见 README.mdpython train.py -s path_to_scenes -m output_model_path --eval室内场景需追加--indoor参数。若图像存放在非默认文件夹如images_2、images_4可通过-i参数指定。三、Depth Anything v2 深度图生成4步完成深度监督深度图作为先验参与优化损失权重定义在 arguments/init.py 的depth_lambda_init/depth_lambda_final能显著提升重建质量。生成步骤如下第 1 步准备 Depth Anything v2 仓库按 Depth Anything v2 官方说明克隆仓库并将Depth-Anything-V2-Large权重下载放入Depth-Anything-V2/checkpoints/目录。第 2 步批量生成深度图python Depth-Anything-V2/run.py --encoder vitl --pred-only --grayscale \ --img-path path to input images --outdir output path第 3 步把深度图放进depth文件夹新建名为depth的文件夹与 RGB 图像文件夹并排放置例如MipNeRF360/Garden/depth/。每张深度 PNG 的文件名必须与对应图像同名仅扩展名为.png。第 4 步生成depth_params.json标定文件python utils/make_depth_scale.py --base_dir path to colmap --depths_dir path to generated depths该脚本utils/make_depth_scale.py会利用 COLMAP 稀疏点的深度与单目深度图做逐图仿射对齐scale offset结果写入sparse/0/depth_params.json。训练时加载器会据此把相对深度换算为米制深度并对离群图scale 偏离中位数过多时自动屏蔽其深度监督保证鲁棒性。四、Metric3D 法线监督一条命令提取法线图法线监督用于约束网格表面的朝向正确性提取脚本为 extract_normals.py内部调用 Metric3Dvit_smallFP16 推理python extract_normals.py -s path_to_dataset常用参数说明参数说明-s/--scene场景根目录如.../MipNeRF360/bicycle-i/--images_folder图像子文件夹名默认images高分辨率数据集可填images_2或images_4脚本会自动创建对应的输出目录images→normals遍历文件夹内所有 jpg/jpeg 图像将法线预测缩回原始分辨率并保存为 PNG。法线监督是可选的加载器 scene/dataset_readers.py 会在images同级查找normals文件夹存在即启用不存在则跳过因此你也可以替换为其他法线估计器。五、训练与验证检查数据是否准备正确数据准备完成后直接运行训练即可验证python train.py -s path_to_scenes -m output_model_path --eval训练日志中如果出现xxx not found in depths_params之类提示说明某张图像的命名与depth_params.json中的键对不上请检查深度图文件名。训练完成后渲染验证python render.py -m path_to_model生成视频python create_video.py -m path_to_model -s path_to_scenes导出 PLYpython create_ply.py output_model_path六、常见坑位清单MeshSplatting 数据准备排错指南深度文件夹名不对必须是depth不是depths或其他名称否则深度监督不生效。深度图是彩色或 8 位灰度加载器按 16 位除以 2¹⁶解析灰度 PNG请使用 Depth Anything 官方--grayscale输出。--indoor会关闭深度正则化室内预设update_indoor将depth_lambda_init/depth_lambda_final置 0这是官方针对室内场景的调参策略属正常行为。图像文件夹用了降采样版本如用images_2训练与法线提取-i images_2两处都要保持一致。COLMAP 有畸变仅支持 PINHOLE / SIMPLE_PINHOLE拍摄与标定阶段就应避免畸变模型。首次加载会转换点云程序首次打开场景时会将points3D.bin转换为points3D.ply并缓存属正常提示。总结完成 COLMAP 重建后你的场景就能直接训练再按本文补充depth/深度图 depth_params.json与normals/法线图即可获得最完整的监督信号组合。整套流程的核心脚本只有三个utils/make_depth_scale.py、extract_normals.py 以及训练入口 train.py照着目录结构准备一次就能跑通。赞分享【免费下载链接】mesh-splatting项目地址https://gitcode.com/gh_mirrors/me/mesh-splatting点击查看免费下载相关推荐Depth-Anything-V2深度估计终极指南如何快速实现室外场景精准测距Depth Anything V2深度估计终极指南如何快速实现室外场景精准测距 Depth Anything V2是当前最先进的单目深度估计基础模型能够在各人工智能计算机视觉深度学习Depth-Anything-V2终极指南如何用Transformer实现精准单目深度估计Depth Anything V2终极指南如何用Transformer实现精准单目深度估计 Depth Anything V2是一个更强大的单目深度估计基础模人工智能计算机视觉深度学习深度估计革命如何用Depth-Anything-V2实现精准度量深度训练深度估计革命如何用Depth Anything V2实现精准度量深度训练 深度估计技术正在经历一场革命性的变革从传统的相对深度估计迈向更精准的度量深度估计。人工智能计算机视觉深度学习上一篇5 分钟解锁中兴光猫工厂模式zteOnu 一条命令激活并永久开启 Telnet下一篇Nucleus Co-Op 分屏多人游戏工具完整指南一台电脑实现本地双人联机创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考