3D Gaussian splatting 02: 快速评估

article/2025/6/8 22:21:48

目录

  • 3D Gaussian splatting 01: 环境搭建
  • 3D Gaussian splatting 02: 快速评估
  • 3D Gaussian splatting 03: 用户数据训练和结果查看
  • 3D Gaussian splatting 04: 代码阅读-提取相机位姿和稀疏点云
  • 3D Gaussian splatting 05: 代码阅读-训练整体流程
  • 3D Gaussian splatting 06: 代码阅读-训练参数
  • 3D Gaussian splatting 07: 代码阅读-训练载入数据和保存结果
  • 3D Gaussian splatting 08: 代码阅读-渲染

快速评估

以下使用 Inria 提供的数据集运行训练过程, 验证和评估重建效果, 数据输入是一组静态场景的图像以及摄像机位置, 表示为稀疏的点云, 通过colmap处理得到.

下载示例数据

在项目 GitHub 仓库 的首页找到 Running 部分, 能找到这个下载链接

You can find our SfM data sets for Tanks&Temples and Deep Blending here: https://repo-sam.inria.fr/fungraph/3d-gaussian-splatting/datasets/input/tandt_db.zip If you do not provide an output model directory (-m), trained models are written to folders with randomized unique names inside the output directory. At this point, the trained models may be viewed with the real-time viewer (see further below).

下载 tandt_db.zip 到本地并解压缩. 这个数据集里面带了4个场景, 两个室内的, 两个室外的, 都是两三百张图片, 图片比较小, 单图几百K到几千K, 适合验证测试.

每一个数据集, 都会包含一系列的目录和文件, 其中input是原始图片输入, images 和 sparse 目录是下一步训练要用到的文件.

Train 训练

用 conda 启用之前创建的 3dgs 环境, 然后在项目目录下执行

python train.py -s [素材路径]
# 例如
python train.py -s ./data/tandt/truck

执行过程中可以通过 nvidia-smi 和 nvtop 查看GPU的情况, 可以看到运行的功率, 显存的使用率, 推荐使用 nvtop, 可以实时监控. 训练时间根据显卡不同, 从十几分钟到一个多小时都有可能. 训练的输出目录在 output 目录下, 每次训练都会随机产生一个目录名, 可以通过创建时间辨别.

在结果目录中可以看到两个目录, iteration_7000 和 iteration_30000, 分别是迭代7000次和30000次的 point cloud 文件. 这个文件可以直接用于3D渲染.

View 查看

快速查看可以用第三方的网页工具, 例如 https://poly.cam/tools/gaussian-splatting, 可以注册后免费上传 ply 文件.

评估

python render.py -m [训练结果路径]
python metrics.py -m <path to trained model> # Compute error metrics on renderings

高级选项

optimizer_type 训练加速

这个功能是 2024年7月在核心模块 diff-gaussian-rasterization 的 3dgs_accel 分支加入的.

默认的导出不带这个选项, 要启用此选项, 需要将之前安装的 submodules/diff-gaussian-rasterization 模块删除, 将模块切换到 3dgs_accel 分支后重新 pip install, 而后在训练时, 可以使用参数 --optimizer_type, 可以指定default, sparse_adam两种加速方式, 使用sparse_adam实测速度提升明显, 训练时间只有未开启加速的一半. 从显卡功耗看, 比未开启加速功耗增加20%.

antialiasing: 抗锯齿

--antialiasing抗锯齿选项是 2024年8月在核心模块 diff-gaussian-rasterization 的 dr_aa 分支加入的. 来源于 mip-splatting 项目.

这个参数可以作用于训练和查看, 实测在训练中使用这个参数后效果反而变差, 边缘尖刺增加. 在SIBR Viewer中查看时, 勾选此参数可以改善远景的图像质量.

问题

显卡温度过高

长时间运行时, 建议控制显卡GPU温度在75摄氏度以下. 如果在nvtop中温度超过75, 需要使用 nvidia-smi 限制显卡频率以降低功率.

通过 nvidia-smi 查看 GPU 温度设置

nvidia-smi -q -d temperature

输出为

Attached GPUs                             : 1
GPU 00000000:01:00.0TemperatureGPU Current Temp                  : 35 CGPU T.Limit Temp                  : N/AGPU Shutdown Temp                 : 96 CGPU Slowdown Temp                 : 93 CGPU Max Operating Temp            : N/AGPU Target Temperature            : 83 CMemory Current Temp               : N/AMemory Max Operating Temp         : N/A

默认的 Target Temp 是 83, 设置 Target Temp 的命令是 sudo nvidia-smi -gtt [温度]. 在散热不佳 GPU 温度过高时, 执行这个命令可以立即观察到频率的下降, 可以用这个命令给GPU降温.


http://www.hkcw.cn/article/JkyIgnHWeG.shtml

相关文章

【系统配置与部署类】linux系统下的desktop图标文件配置

相关文章已经在个人博客网站上更新&#xff0c;欢迎访问&#xff1a; linux系统下的desktop图标文件配置http://www.turnin-blog.online/articles/%E7%B3%BB%E7%BB%9F%E9%85%8D%E7%BD%AE%E4%B8%8E%E9%83%A8%E7%BD%B2/linux%E7%B3%BB%E7%BB%9F%E4%B8%8B%E7%9A%84desktop%E5%9B%…

法国为何此时回应阵风是否被击落 服役20年首损?

法国军方首次回应“阵风”战机疑被击落事件,称如果消息属实,这将是该机服役以来首次在实战中损毁。印度空军引进了这款战斗机。5月27日,在例行记者会上,法国国防部军方发言人强调,若相关信息属实,这将是“阵风”战斗机服役20年来首次在实战中损毁。这也是法国军方就这一话…

从零开始的二三维CAD|CAE软件: 解决VTK,DICOM体素化-失效问题.

背景: 在从零开始的二三维软件开发中, 需要加载CT的dicoms影像文件, 并将其序列化之后的数据,体素化 可惜..vtk的c#库,将其体素化的时候,竟然失败... 使用vtkDicomReader ,设置 Dicom文件夹读取,竟然不停的失败...从网上找了一些版本.也没啥可用的资料... 解决办法: 直接…

Cesium快速入门到精通系列教程一

一、打造第一个Cesium应用 1、官方渠道下载Cesium&#xff08;可选择历史版本&#xff09; ​​GitHub Releases页面​​ 访问 Cesium GitHub Releases&#xff0c;此处列出了所有正式发布的版本。 通过标签&#xff08;如 v1.95.0&#xff09;选择目标版本&#xff0c;下载…

【多线程初阶】synchronized -监视器锁monitor lock

文章目录 &#x1f305;synchronized关键字&#x1f30a; synchronized 的互斥&#x1f30a; synchronized 的变种写法&#x1f3c4;‍♂️synchronized 修饰代码块 :明确指定锁哪个对象&#x1f3c4;‍♂️synchronized 修饰方法 &#x1f30a; synchronized 的可重入性&#…

C# 面向对象特性

面向对象编程的三大基本特性是&#xff1a;封装、继承和多态。下面将详细介绍这三大特性在C#中的体现方式。 封装 定义&#xff1a;把对象的数据和操作代码组合在同一个结构中&#xff0c;这就是对象的封装性。 体现方式&#xff1a; 使用访问修饰符控制成员的可见性 通过属…

[LitCTF 2024]浏览器也能套娃?

打开题目在线环境&#xff1a; 这里尝试填写一个网站回车之后是&#xff1a; 这里想到了ssrf漏洞&#xff1a;ssrf漏洞通常是由于应用程序在处理用户输入时缺乏严格的安全检查&#xff0c;错误地信任外部输入&#xff0c;或者使用的网络请求库配置不当等原因导致的。攻击者可…

明远智睿SSD2351开发板:视频监控领域的卓越之选

随着安全防范意识的提高&#xff0c;视频监控在各个领域得到了广泛应用。明远智睿SSD2351开发板凭借其出色的性能和特性&#xff0c;成为视频监控领域的卓越之选&#xff0c;为视频监控系统的升级和发展提供了有力支持。 SSD2351开发板的四核1.4GHz处理器在视频监控数据处理方面…

threejs加载外部三维模型(gltf)

1. 建模软件绘制3D场景(Blender) 这节课主要给大家科普一些三维模型创建、美术和程序员协作的相关问题。 三维建模软件作用 对于简单的立方体、球体等模型&#xff0c;你可以通过three.js的几何体相关API快速实现&#xff0c;不过复杂的模型&#xff0c;比如一辆轿车、一栋房…

【从零开始系列】Qwen2.5 Llama-Factory:开源语言大模型+训练平台——(超详细、最新版)一篇文章解决:环境搭建 => 微调训练 => 本地部署

目录 一、简介 1.Qwen2.5&#xff1a;开源模型 2. LLaMA-Factory&#xff1a;微调工具 二、环境搭建 1.Python和Pytorch版本 2.llamafactory项目克隆安装 3.其他重要库安装 三、模型微调 1.预训练模型下载 2.训练数据集 ①创建对话文本数据 ②配置dataset_info 3.配置文件与…

git 代码提交规范,feat,fix,chore都是什么意思?

写到前面 经常看到别人提交的代码记录里面包含一些feat、fix、chore等等&#xff0c;而我在提交时也不会区分什么&#xff0c;直接写下提交信息&#xff0c;今天就来看一下怎么个事&#xff0c;就拿 element-plus 举例来看一下 其实这么写是一种代码提交规范&#xff0c;当然…

Gemma 3模型:Google 开源新星,大语言模型未来探索

&#x1f407;明明跟你说过&#xff1a;个人主页 &#x1f3c5;个人专栏&#xff1a;《深度探秘&#xff1a;AI界的007》 &#x1f3c5; &#x1f516;行路有良友&#xff0c;便是天堂&#x1f516; 目录 一、引言 1、快速发展的AI世界&#xff1a;为何关注Gemma 3&#x…

2024.11最新Hexo+GitHub搭建个人博客

2024.11最新HexoGitHub搭建个人博客 一、Hexo介绍 Hexo 是一个快速、简洁且高效的博客框架&#xff0c;有丰富的主题和插件可供使用。 Hexo 使用 Markdown&#xff08;或其他标记语言&#xff09;解析文章&#xff0c;在几秒内&#xff0c;即可利用靓丽的主题生成静态网页。这…

完美解决 git 报错 “fatal: unable to access ‘https://github.com/.../.git‘: Recv failure Connection was rese

文章目录 方法一&#xff1a;取消代理设置方法二&#xff1a;设置系统代理结语 &#x1f389;欢迎来到Java学习路线专栏~探索Java中的静态变量与实例变量 ☆* o(≧▽≦)o *☆嗨~我是IT陈寒&#x1f379;✨博客主页&#xff1a;IT陈寒的博客&#x1f388;该系列文章专栏&#xf…

git 拉取Github时报错【 Recv failure: Connection was reset】

问题 当我们电脑能够正常访问Github时&#xff0c;但是git拉取代码出现 &#xff1a; Recv failure: Connection was reset原因 这是因为使用了特殊上网方法&#xff0c;电脑能够正常访问&#xff0c;但是git通过底层访问需要配置代理才能正常访问 解决办法 配置方法如下&…

【PostgreSQL系列】PostgreSQL性能优化

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

如何使用 TortoiseGit 将本地代码回退到指定版本

如何使用 TortoiseGit 将本地代码回退到指定版本 在使用 Git 进行版本控制时&#xff0c;我们可能会遇到需要回退到某个旧版本的情况&#xff0c;比如发现最近的修改引入了问题&#xff0c;或者需要恢复到某个特定的稳定状态。TortoiseGit 是一款非常流行的 Git 图形化工具&am…

航空安全警钟须长鸣 充电宝冒烟再敲警钟

5月31日,CZ6850杭州飞往深圳的航班上,一名旅客携带的相机电池和充电宝突然冒烟。乘务组迅速采取措施,排除了安全风险。为确保安全,机组决定立即返航,航班在起飞15分钟后安全降落。这次事件虽然没有造成人员伤亡,但再次提醒人们航空安全的重要性。任何微小的安全隐患都可能…

玩客云 OEC/OECT 笔记

外观 内部 PCB正面 PCB背面 PCB背面 RK3566 1Gbps PHY 配置 OEC 和 OECT(OEC-turbo) 都是基于瑞芯微 RK3566/RK3568 的网络盒子, 没有HDMI输入输出. 硬件上 OEC 和 OECT 是一样的, 唯一的区别是内存, OEC 内存 2GB 而OECT 内存是 4GB. 产品OECOEC-turboCPURK3566…

InfluxDB 高级函数详解:DERIVATIVE、INTEGRAL、SPREAD、HISTOGRAM 与 DIFFERENCE

在时序数据分析中&#xff0c;除了基础的聚合函数&#xff08;如 MEAN、SUM&#xff09;&#xff0c;InfluxDB 还提供了一系列专门针对时间序列特性的高级函数。这些函数能帮助我们挖掘数据的变化趋势、波动特征和分布规律。下面我们将逐一解析五个关键函数&#xff1a;DERIVAT…