当前位置: 首页 > news >正文

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

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

【免费下载链接】depthsplat[CVPR'25] 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 python=3.10 conda activate depthsplat

官方开发环境为 PyTorch 2.4.0 + CUDA 12.4 + Python 3.10,照此配置最省心。

第 2 步:安装依赖

pip install torch==2.4.0 torchvision==0.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.zipdl3dv_960p_test_subset.zip,各含两个场景),无需下载完整数据集即可体验。

第 4 步:跑出第一段视频

CUDA_VISIBLE_DEVICES=0 python -m src.main +experiment=dl3dv \ dataset.test_chunk_interval=1 \ dataset.roots=[datasets/dl3dv_960p] \ dataset.image_shape=[512,960] \ dataset.ori_image_shape=[540,960] \ model.encoder.upsample_factor=8 \ model.encoder.lowest_feature_resolution=8 \ model.encoder.gaussian_adapter.gaussian_scale_max=0.1 \ checkpointing.pretrained_model=pretrained/depthsplat-gs-small-re10kdl3dv-448x768-randview4-10-c08188db.pth \ mode=test \ dataset/view_sampler=evaluation \ dataset.view_sampler.num_context_views=12 \ dataset.view_sampler.index_path=assets/dl3dv_start_0_distance_100_ctx_12v_video.json \ test.save_video=true \ test.stablize_camera=true \ test.compute_scores=false \ output_dir=outputs/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 +experiment=re10k \ mode=test \ dataset/view_sampler=evaluation \ dataset.image_shape=[352,640] \ model.encoder.monodepth_vit_type=vitb \ train.forward_depth_only=true \ checkpointing.pretrained_depth=pretrained/depthsplat-depth-base-352x640-randview2-8-65a892c5.pth \ test.save_depth=true \ test.save_depth_concat_img=true \ output_dir=outputs/depthsplat-depth-base-re10k

这组参数摘录自 scripts/inference_depth.sh,2 张输入即可输出尺度一致的稠密深度图。

踩坑避雷:新手常见问题清单

症状原因解决办法
装依赖时 CUDA 算子编译失败显卡驱动与 PyTorch 的 CUDA 版本不匹配严格使用 README 指定的 cu124 版本安装 torch
报错缺少pretrained/权重模型文件未放置或文件名不匹配ln -s建立软链接,并核对权重的 sha256sum 前缀
显存不足(OOM)全测试集场景太多、分辨率太高dataset.test_chunk_interval设为 10,或调小dataset.image_shape
渲染视频黑屏或闪烁缺少 ffmpegapt install ffmpegconda 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 完成,达到实时级。
  • 新视角质量:提供 small(37M)/ base(117M)/ large(360M)三档模型,在 RealEstate10K 与 DL3DV 上均可复现论文表 1、表 7 的指标。
  • 零样本泛化:用 RealEstate10K 训练的模型直接迁移到 ACID 和 DL3DV,无需重新训练,这是前馈式模型(feed-forward)最大的价值。
  • 深度质量:在 ScanNet、TartanAir、VKITTI2 上微调后的深度模型,其预训练方式本身就来自高斯渲染的"无监督特训",论文展示了渲染预训练能让深度误差显著下降。
  • 可复用资产:开启test.save_gaussian=true即可导出.ply格式的点云,配合在线查看器直接看 3D 重建结果。

换句话说,你不需要 8 卡集群也能验证效果——用预训练权重跑推理,单张 24GB 显存的消费级显卡就足够,官方也确认了在 RTX 4090 上训练结果与 A100 相差不超过 0.1dB。

延伸学习:下一步去哪里

  • 论文精读:arXiv: 2410.13862(CVPR 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[CVPR'25] DepthSplat: Connecting Gaussian Splatting and Depth项目地址: https://gitcode.com/gh_mirrors/de/depthsplat

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

http://www.jsqmd.com/news/1393523/

相关文章:

  • 用户体验细节设计:从加载反馈到表单交互的避坑指南
  • AMD显卡也能开DLSS?DLSS-Enabler免费解锁超采样,帧率最高提升50%
  • 2026年长春市佳森教育单招培训班 吉林考生高职升学全程服务指南 - 爱说大实话121
  • 混合P2P分发架构实践:解决大文件下载瓶颈
  • mdBook 安装零门槛指南:三种方式让文档站点生成器快速就位
  • 2026年唐山3-8岁幼儿思维启蒙机构挑选攻略 宁贤培训等优质品牌梳理 - 拜了拜了
  • GitSuggest源码解读:文本清洗与令牌化技术实现
  • 深入解析Apollo tools_platform:自动驾驶工具链的架构设计与工程实践
  • 2026杭州注册公司推荐:初创老板代办避坑实用攻略 - 商业新知
  • 3步告别B站弹幕刷屏:pakku.js免费神器安装与实战指南
  • GNU Emacs 从入门到进阶:一篇吃透这个可编程编辑器的完整实战指南
  • 看美剧学英语总半途而废?这6个功能让DashPlayer帮你把“追剧“变成“精学“
  • Claude AI在得物数仓的深度集成实践:从SQL开发到数据治理
  • 不开游戏,也能把《流放之路》的角色算得明明白白——Path of Building 免费离线 Build 规划器上手指南
  • 图智能AI模型快速上手:10分钟跑通GraphGPT,让大模型看懂图数据
  • pico框架核心优势解析:为何它比Viola-Jones快3倍且无需图像预处理?
  • Transformer FFN激活函数演进:从ReLU到SwiGLU的工程实践与选择
  • 已使用金蝶云星空的企业如何选择OA系统 - 企业IT选型笔记
  • I wrote a free, story-driven Python book – The Python Codex
  • 公认靠谱!4家口碑炸裂的优质GEO优化公司,品牌入局首选 - 品牌测评鉴赏家
  • 3步批量获取网易云、QQ音乐LRC歌词完整教程:一次给数百首歌曲配上歌词
  • E4GL30S1NT高级使用技巧:结构化输出与调查会话管理
  • 加药装置/加药设备/加药系统/加药撬知名公司推荐3家(基于口碑与交付能力) - 品牌推荐大师1
  • 一文读懂规范驱动开发:用 Spec Kit 落地全流程实战指南
  • 2026 年至今,河西有实力的小型喷码机工厂联系电话,车间里那个巴掌大的小设备,居然能帮老板省下近半万元的打码开销?-科朗喷码机 - 实业推荐官
  • 免费开源的视觉小说翻译器 LunaTranslator:三步上手,让日文游戏畅玩无阻
  • 线上给猫猫狗狗看病的平台哪个靠谱?2026年这几点筛选标准要记牢 - 养宠博世
  • Bow Effects完全指南:轻松管理Swift中的副作用
  • ArcadeMaker:开源 2D 跨平台游戏引擎,邀你共塑未来!
  • 环保农药买对了还得用对:河北沧州科学用药的技术支持渠道参考 - 市场沸点