DepthSplat 实战指南:如何用 12 张照片跑通高斯溅射场景重建与深度估计

DepthSplat 实战指南:如何用 12 张照片跑通高斯溅射场景重建与深度估计
DepthSplat 实战指南如何用 12 张照片跑通高斯溅射场景重建与深度估计【免费下载链接】depthsplat[CVPR25] DepthSplat: Connecting Gaussian Splatting and Depth项目地址: https://gitcode.com/gh_mirrors/de/depthsplat想象这样一个场景你在装修前给客厅拍了 12 张照片想生成一个可以走进去看的新视角视频。传统三维重建要么需要 GPU 渲染数小时要么对拍摄角度要求苛刻。DepthSplat这个来自 CVPR 2025 的模型把这一切压缩到了0.6 秒——在单张 A100 上从 12 张 512x960 的输入图像直接重建出可自由漫游的 3D 场景同时还能顺手输出每一帧的精准深度图。更特别的是它让深度估计和高斯溅射渲染这对曾经的上下游任务第一次互相喂饭。一句话说清它解决什么问题DepthSplat连接高斯溅射与深度估计的核心价值只有一句用深度图帮高斯溅射渲染更准再用渲染重建帮深度估计学得更好。如果你在做新视角合成NVS输入 2~12 张带位姿的图像就能实时渲染新视角。如果你在做多视图深度估计它提供一个开箱即用的深度预测模型输出尺度与相机平移对齐的稠密深度。适用人群计算机视觉研究者、3D 内容创作者、想快速搭一个三维重建 Demo 的工程师。原理白话化像量房子一样理解它先忘掉高斯溅射把它想成给场景贴 3D 光点。每一个像素投影到三维空间变成一个带颜色、大小和透明度的微小椭球Gaussian。成百上千个椭球叠加在一起就拼出了完整的场景。渲染时只需把椭球按深度排序投影到新视角就能得到画面。那深度有什么用渲染新视角最大的敌人是边缘穿帮和重影——比如桌子和墙壁交界处椭球分不清谁在前谁在后。如果模型先预测出每帧的深度就能给椭球排好队渲染立刻清晰起来。这是深度帮渲染。反向看模型先在大量视频数据集上做无监督的新视角重建训练中间被迫学出的深度表示再拿到 ScanNet、TartanAir 等带真值的深度数据上微调就能变成高精度深度估计器。这是渲染帮深度。论文里把这个互相促进的闭环叫作跨任务交互cross-task interaction而 DepthSplat 正是第一个把这个闭环完整跑通并开源的工作。它在代码里如何分工深度与匹配由 src/model/encoder/encoder_depthsplat.py 完成其中多视图匹配模块在 src/model/encoder/unimatch/mv_unimatch.py单目特征来自 ViT 骨干3D 高斯则由 src/model/decoder/decoder_splatting_cuda.py 里的 CUDA 光栅化器渲染真正做到了毫秒级。最短路径上手跑通第一次推理目标是克隆仓库 → 装环境 → 下载预训练模型 → 用现成测试子集跑出新视角视频。全程约 30 分钟。第 1 步克隆并创建虚拟环境git clone https://gitcode.com/gh_mirrors/de/depthsplat cd depthsplat conda create -y -n depthsplat python3.10 conda activate depthsplat官方开发环境为 PyTorch 2.4.0 CUDA 12.4 Python 3.10照此配置最省心。第 2 步安装依赖pip install torch2.4.0 torchvision0.19.0 --index-url https://download.pytorch.org/whl/cu124 pip install -r requirements.txt注意 requirements.txt 里包含自定义的 diff-gaussian-rasterization 扩展首次安装会编译 CUDA 算子等待 5~10 分钟属正常。第 3 步准备模型与测试数据把权重放在pretrained/目录下官方权重托管在 Hugging Face 的haofeixu/depthsplat仓库。推荐创建软链接ln -s /你的模型存放路径 pretrained同时准备官方提供的预处理好测试子集re10k_720p_test_subset.zip或dl3dv_960p_test_subset.zip各含两个场景无需下载完整数据集即可体验。第 4 步跑出第一段视频CUDA_VISIBLE_DEVICES0 python -m src.main experimentdl3dv \ dataset.test_chunk_interval1 \ dataset.roots[datasets/dl3dv_960p] \ dataset.image_shape[512,960] \ dataset.ori_image_shape[540,960] \ model.encoder.upsample_factor8 \ model.encoder.lowest_feature_resolution8 \ model.encoder.gaussian_adapter.gaussian_scale_max0.1 \ checkpointing.pretrained_modelpretrained/depthsplat-gs-small-re10kdl3dv-448x768-randview4-10-c08188db.pth \ modetest \ dataset/view_samplerevaluation \ dataset.view_sampler.num_context_views12 \ dataset.view_sampler.index_pathassets/dl3dv_start_0_distance_100_ctx_12v_video.json \ test.save_videotrue \ test.stablize_cameratrue \ test.compute_scoresfalse \ output_diroutputs/depthsplat-dl3dv-512x960这条命令来自 README.md输入 12 张图输出新视角视频。把dataset.image_shape调小、dataset.test_chunk_interval调大如 10可以显著降低显存占用先验证流程。第 5 步顺带输出深度图使用深度模型如depthsplat-depth-base-352x640-randview2-8并开启深度保存开关python -m src.main experimentre10k \ modetest \ dataset/view_samplerevaluation \ dataset.image_shape[352,640] \ model.encoder.monodepth_vit_typevitb \ train.forward_depth_onlytrue \ checkpointing.pretrained_depthpretrained/depthsplat-depth-base-352x640-randview2-8-65a892c5.pth \ test.save_depthtrue \ test.save_depth_concat_imgtrue \ output_diroutputs/depthsplat-depth-base-re10k这组参数摘录自 scripts/inference_depth.sh2 张输入即可输出尺度一致的稠密深度图。踩坑避雷新手常见问题清单症状原因解决办法装依赖时 CUDA 算子编译失败显卡驱动与 PyTorch 的 CUDA 版本不匹配严格使用 README 指定的 cu124 版本安装 torch报错缺少pretrained/权重模型文件未放置或文件名不匹配用ln -s建立软链接并核对权重的 sha256sum 前缀显存不足OOM全测试集场景太多、分辨率太高把dataset.test_chunk_interval设为 10或调小dataset.image_shape渲染视频黑屏或闪烁缺少 ffmpegapt install ffmpeg或conda install -c conda-forge ffmpeg深度尺度不对没意识到输出与相机平移尺度对齐保持dataset.ori_image_shape与训练一致避免只改一处相机内参换算混乱不理解项目相机约定内参矩阵按宽高归一化外参遵循 OpenCV camera-to-world 约定见 README 的 Camera Conventions最容易被忽视的坑训练脚本scripts/dl3dv_depthsplat_train.sh默认用 8 节点、每卡 80GB 显存个人显卡直接跑必炸。不要照搬把trainer.num_nodes改为 1并缩小data_loader.train.batch_size。效果验证为什么值得信任DepthSplat 的能力都有硬指标背书全部来自论文与官方模型库 MODEL_ZOO.md速度12 视角512x960前馈重建 0.6 秒单卡 A100 完成达到实时级。新视角质量提供 small37M/ base117M/ large360M三档模型在 RealEstate10K 与 DL3DV 上均可复现论文表 1、表 7 的指标。零样本泛化用 RealEstate10K 训练的模型直接迁移到 ACID 和 DL3DV无需重新训练这是前馈式模型feed-forward最大的价值。深度质量在 ScanNet、TartanAir、VKITTI2 上微调后的深度模型其预训练方式本身就来自高斯渲染的无监督特训论文展示了渲染预训练能让深度误差显著下降。可复用资产开启test.save_gaussiantrue即可导出.ply格式的点云配合在线查看器直接看 3D 重建结果。换句话说你不需要 8 卡集群也能验证效果——用预训练权重跑推理单张 24GB 显存的消费级显卡就足够官方也确认了在 RTX 4090 上训练结果与 A100 相差不超过 0.1dB。延伸学习下一步去哪里论文精读arXiv: 2410.13862CVPR 2025重点读方法部分的两阶段流程与跨任务交互机制。预训练模型清单MODEL_ZOO.md 列出了全部 9 个权重含训练数据、分辨率、参数量和 sha256sum。数据集准备DATASETS.md 详细说明 RealEstate10K、DL3DV、ACID 的下载与转换流程预处理脚本在 src/scripts/convert_dl3dv_train.py 等文件中。配置体系入口是 config/main.yaml实验配置在 config/experiment/re10k.yaml 与dl3dv.yaml编码器参数在 config/model/encoder/depthsplat.yaml。训练参考官方提供了 4×GH200 的训练脚本 scripts/dl3dv_depthsplat_train.sh 和re10k_depthsplat_train.sh并明确说明了如何在更小显存上复现。最新进展论文作者后续发布的 ReSplat 在更紧凑、更鲁棒的前馈高斯溅射方向继续迭代值得跟进。收尾动手比围观更有价值从克隆仓库到跑出第一段漫游视频你离用几张照片重建整个场景只差一次pip install。DepthSplat 已经把最难的深度—渲染耦合、CUDA 光栅化、数据管线全部封装好剩下的就是把命令跑起来然后替换成你自己的照片。不用等 8 卡服务器不用读完整篇论文。现在就去 clone 仓库跑通第一个推理脚本你会在outputs/目录里看到一个属于你的 3D 世界——而这只是开始。【免费下载链接】depthsplat[CVPR25] DepthSplat: Connecting Gaussian Splatting and Depth项目地址: https://gitcode.com/gh_mirrors/de/depthsplat创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

最新新闻

日新闻

周新闻

月新闻