高斯拍溅监控器
这个存储库建立在"实时辐射场渲染的3D高斯拍溅"项目的基础之上,添加了新的功能,以增强其在研究用途上的效用。原来,高斯拍溅在产生高质量渲染输出方面很出众,但受限于只能渲染RGB图像和基于RGB损失反向传播梯度。这种限制阻碍了对高斯拍溅(GS)模型的体积分析以及开发新损失函数的潜力。相比之下,从神经辐射场(NeRF)衍生的模型利用它们完全连接的MLP架构提供了更大的灵活性,可以处理各种输入和输出特征,并制定复杂的损失函数。
受到这些进步的启发,这个代码库支持附加的可微分输出,旨在激发创新的研究想法。
应用程序
欢迎使用GS监控器进行您的基于GS的项目,让我们丰富README应用程序库。👏
该存储库支持
新功能
最新更新增强了现有的高斯拍溅(GS)代码库,同时保持了兼容性:
可扩展查看器
查看器现在可以定制,允许可视化各种渲染项目。确保渲染图像符合格式(1, h, w)
或(3, h, w)
,单通道图像会自动转换为turbo色图。要配置渲染项目,请修改arguments/__init__.py
中的render_items
列表:
self.render_items = ['RGB', 'Alpha', 'Depth', 'Normal', 'Curvature', 'Edge']
然后在utils/image_utils.py
中的render_net_image()
函数中实现每个项目的计算。
指标查看器
直接在查看器中查看指标,不需要在查看器和终端之间切换来查看RGB效果和损失指标。在train.py
或view.py
中配置指标字典:
metrics_dict = {
"iteration": iteration,
"number of gaussians": gaussians.get_xyz.shape[0],
"loss": loss,
# 根据需要添加更多指标
}
实施五项新功能
我们添加了五个新功能:'Alpha'、'深度'、'法线'、'曲率'和'边缘'。这些旨在展示GS监控器的功能,并适用于所有GS模型。
设置
这个代码库建立在原始的GS存储库之上,并保持与之的兼容性。因此,如果您想顺利地设置该存储库,或者遇到一些错误,我们强烈建议您探索视频教程,查看问题,并查看常见问题解答。这可能有助于您确定您的问题是否是已知问题,并理想地找到解决方案。
安装
git clone https://github.com/RongLiu-Leo/Gaussian-Splatting-Monitor.git
cd Gaussian-Splatting-Monitor
conda env create --file environment.yml
conda activate gs_monitor
请注意,这个过程假设您已经安装了CUDA SDK 11,而不是12。
交互式查看器
远程查看器和高斯查看器集成到一个查看器中,由train.py
或view.py
驱动。
我们提供了Windows的预构建二进制文件在这里,以实现高效的设置。
如果您的操作系统是Ubuntu 22.04,您需要在本地编译查看器:
# 依赖项
sudo apt install -y libglew-dev libassimp-dev libboost-all-dev libgtk-3-dev libopencv-dev libglfw3-dev libavdevice-dev libavcodec-dev libeigen3-dev libxxf86vm-dev libembree-dev
# 项目设置
cd SIBR_viewers
cmake -Bbuild . -DCMAKE_BUILD_TYPE=Release # 添加-G Ninja可以更快地构建
cmake --build build -j24 --target install
如何使用
首先打开查看器,
<下载/编译的查看器路径>/bin/SIBR_remoteGaussian_app_rwdi.exe
然后
# 监控训练过程
python train.py -s <COLMAP或NeRF合成数据集的路径>
# 查看训练好的模型
python view.py -s <COLMAP或NeRF合成数据集的路径> -m <训练好的模型路径>
致谢
这个存储库的基础来自于原始的GS存储库,并吸收了来自diff-gaussian-rasterization的CUDArasterater代码。我们感谢原作者们开源代码库的贡献。
点星
如果您在研究中使用这个存储库,请考虑给我们一个星标。