3D-gaussian-splatting运行(免环境配置)

写在前面

        3D高斯Splatting这里不做更多介绍,本文意在提供一个配置好的环境以及源代码,如果你在参考官方readme的时候,觉得reclusive克隆原项目太慢,或者是在配置环境的时候遇到一点小问题,希望我的这篇文章能帮到你QAQ。

        3D高斯的源码: GitHub - graphdeco-inria/gaussian-splatting: Original reference implementation of "3D Gaussian Splatting for Real-Time Radiance Field Rendering"         本人在3d-gaussian-splatting的源码之外,还额外添加了两个快捷训练脚本,一个是用一段视频训练,一个是指定输入图片文件夹训练,不管是哪个使用起来都非常容易,可以一键运行

image.png

        上图为官方代码实现,训练脚本为train,py;

image.png

        我自己添加了两个训练的脚本,依次对应使用单个视频或者是图片集来进行训练与场景重建,代码也比较简单,如下:

import os
import subprocess
​
# 视频绝对路径
video_path = r"_你自己的视频,带上完整路径_"
# 切分帧数,每秒多少帧
fps = 2
​
# 获取当前工作路径
current_path = os.getcwd()
# 上一级文件夹所在路径
folder_path = os.path.dirname(video_path)
# 图片保存路径
images_path = os.path.join(folder_path, 'input')
os.makedirs(images_path, exist_ok=True)
​
ffmpeg_path = os.path.join(current_path, 'external', r'ffmpeg/bin/ffmpeg.exe')
​
# 脚本运行
# 视频切分脚本
command = f'{ffmpeg_path} -i {video_path} -qscale:v 1 -qmin 1 -vf fps={fps} {images_path}\\%04d.jpg'
subprocess.run(command, shell=True)
# COLMAP估算相机位姿
command = f'python convert.py -s {folder_path}'
subprocess.run(command, shell=True)
# 模型训练脚本,模型会保存在output路径下
command = f'python train.py -s {folder_path}'
subprocess.run(command, shell=True)

        上面那个就是使用ffmpeg进行视频的切分,然后调用train.py进行训练 下面这个脚本为使用图片作为输入,然后进行训练。

import os
import subprocess
​
# 图片集所在的绝对路径
images_path = r"_你自己的图片数据集_"
​
# 上一级文件夹所在路径
folder_path = os.path.dirname(images_path)
# 脚本运行
# COLMAP估算相机位姿
command = f'python convert.py -s {folder_path}'
subprocess.run(command, shell=True)
# 模型训练脚本,模型会保存在output路径下
command = f'python train.py -s {folder_path}'
subprocess.run(command, shell=True)

        上面两个脚本都可以一键运行,开箱即用。

实验环境

        win11,3070-laptop,拥有8G显存; 已经配制好的环境,我放在下面这个度盘链接里面,如果你不想自己配置,直接把这个环境移动到你的conda环境列表里面就好;

链接:https://pan.baidu.com/s/1Lv6zQkGhGL6s13NwFYSfmQ?pwd=fopi 
提取码:fopi 
--来自百度网盘超级会员V2的分享

具体操作如下:

        step1:下载网盘当中的压缩包,下载完的env压缩包里面包含了已经预先配制好的环境,包含这个3d_gaussian_splatting文件夹:

image.png

        里面包含的这些东西就是配制好的环境了:

image.png

        step2: 把这个3d_gaussian_splatting文件夹给挪到你自己的conda安装位置里面的env路径下面去,之后你在pycharm或者其他编译器里面,就可以直接把这个虚拟环境设置为你的解释器(interpreter)。

        举个例子,我自己的conda根目录是在E盘里面的,在安装目录下面,有一个envs文件夹,打开以后就可以看到已经安装的环境。

image.png

        接下来就把gaussian_splatting文件夹给放到env文件夹里面就好了,像下面这样:

image.png

        step3: 之后就是在pycharm里面给项目配置一下python解释器(InterPreter)就可以了,配置完成之后大概如下所示;

image.png

        到此为止环境上的配置就已经完成了。

运行过程

        你可以把你录制的视频放置在项目的data目录之下,之后只需在train_video.py脚本当中指定一下你原视频的路径就好,像下面这样:

image.png

        我自己使用的测试视频是我自己用手机录制的,就是简单围着自己的键盘拍了一圈,也有不错的场景重建效果。把视频的位置放好之后,在利用视频的训练脚本当中指定训练视频的绝对路径,然后就可以开始训练了。

image.png

        运行train_video.py的时候,首先其实是先运行了Convert.py,大概是使用Colmap的一些api进行一些早期的处理。这里不再进行更多的介绍。

        在3d-gaussian-splatting运行之前,首先是通过colmap去得到一个初始的,粗糙的稀疏点云

image.png

        使用Colmap完成了初始的稀疏点云生成之后,就可以开始对3d高斯椭球的形状进行训练与调整了。 下面是对这个模型训练三万步的一个演示

image.png

        训练完成之后的结果如下图所示,完整训练三万步在我的PC上还是需要相当长一段时间的。

image.png

        实验室的同学也运行了这个代码,在运行的过程中,我们观察到的显存占用量也是8G左右,我自己的PC也是勉强能跑的动,所以如果你想要在自己的PC上把高斯泼溅给跑起来的话,个人建议是你的显卡能达到这个3070或者以上。

运行效果

        完成训练之后,你可以在项目的output目录下看到你的训练输出结果,只是结果文件夹的名字是一段乱七八糟的字母与数字,我建议跑完一遍之后你到output下面给输出文件改个名,不然很容易搞不清这个文件夹里面放的到底是谁的重建输出结果。

        最终运行效果的查看是通过官方给定的可视化工具SIBR_viewer.py来实现的,使用的时候需要去指定输出结果的绝对路径,并将高斯点云可视化出来;

import subprocess
​
# output保存路径
model_path = r'E:\ideaprojects\gaussian-splatting\output\keyboard'
#一个示例,换成你自己的输出路径,反正肯定在output文件路径下面,找一下就好
​
# 脚本执行
command = f'SIBR_gaussianViewer_app.exe -m {model_path}'
run_path = 'external/viewers/bin'
subprocess.run(command, shell=True, cwd=run_path)

        之后即可显示重建的结果

image.png

image.png

image.png

image.png

image.png

评论 21
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值