【4DGS】4DGS论文讲解与4DGS实验复现 Real-time Photorealistic Dynamic Scene Representation and Rendering 4DGS

在这里插入图片描述


项目相关资源:

Real-time Photorealistic Dynamic Scene Representation and Rendering with 4D Gaussian Splatting


简介

4D Gaussian Splatting (4DGS) 是由复旦大学团队提出的一种高效动态场景建模与渲染技术,已发表在 ICLR 2024。它在实时动态场景渲染领域取得了革命性突破,解决了传统方法难以应对动态场景的复杂性和实时性问题。

主要特点:

  • 动态场景建模:使用4D高斯原语(包含时间维度)统一表示时空特性。
  • 实时高效渲染:结合GPU友好的光栅化方法,实现了每秒114帧的实时渲染速度。
  • 高质量视觉效果:生成复杂动态场景中的高保真图像和视频。

核心创新:

  1. 4D高斯建模:通过联合参数化空间和时间维度捕获动态场景本质特性。
  2. 4D球柱谐函数:建模时间和视角依赖的外观变化,适应动态光影效果。
  3. 端到端训练:支持全流程训练和任意时间点的高效渲染。

应用场景:

  • AR/VR:实时动态场景交互。
  • 影视制作:动态场景的真实感建模。
  • 机器人与自动驾驶:用于动态环境的感知与决策。

论文解读

以下是对文章《REAL-TIME PHOTOREALISTIC DYNAMIC SCENE REPRESENTATION AND RENDERING WITH 4D GAUSSIAN SPLATTING》的详细解读,包括背景、贡献、创新、方法、实验结果、优点及局限性。

1. 背景
  1. 任务定义:

    • 重建动态三维场景并生成任意时间的多视角图像,是计算机视觉和图形学领域的重要任务,广泛应用于AR/VR。
    • 现有方法在静态场景渲染上(如NeRF)取得显著成果,但在动态场景中,物体运动和时间动态性增加了复杂性。
  2. 现存问题:

    • 6D全光函数直接建模动态场景时存在时空结构不足的问题。
    • 对场景运动或形变的显式建模在复杂场景下难以扩展。
2. 贡献
  1. 提出了一种以4D高斯为核心的动态场景建模方法:
    • 通过优化一组4D高斯原语,统一建模动态场景的时空特性。
    • 支持任意时间点的视角合成。
  2. 提出了新的时间与空间联合表示:
    • 使用4D旋转捕获动态场景的本质运动。
    • 引入4D球柱谐函数(4D Spherindrical Harmonics)表示时间和视角依赖的颜色变化。
  3. 在多种基准数据集上实现了实时、高质量的动态场景渲染,显著提升了性能。
3. 创新点
  1. 4D高斯建模:

    • 动态场景被视为4D时空体,使用4D高斯(包含时间分量)表示几何和外观。
    • 引入4D旋转矩阵参数化高斯的协方差矩阵,从而支持时空统一优化。
  2. 时间演化外观建模:

    • 使用4D球柱谐函数建模颜色的时间演化和视角变化。
    • 结合傅里叶级数和球谐函数,保证计算效率。
  3. 实时性:

    • 结合GPU友好的光栅化方法和稀疏高斯密度控制,优化了渲染效率。
4.方法介绍

在这里插入图片描述

  1. 核心概念:

    • 场景由一组4D高斯原语表示,每个高斯由位置、协方差矩阵和时间依赖的外观系数表示。
    • 渲染时,通过条件分布投影到2D平面。
  2. 优化流程:

    • 端到端训练,通过渲染损失监督优化。
    • 实施动态的高斯稠密化与稀疏化,以自适应场景变化。
  3. 4D高斯参数化:

    • 均值向量包含三维空间位置和时间维度。
    • 协方差矩阵包含空间和时间的联合旋转和缩放参数,增强了动态运动的建模能力。
  4. 训练策略:

    • 跨时间批量采样优化,避免时序抖动。
    • 在时间维度上引入高斯分裂控制,改善密度分布。
5. 实验结果
  1. 数据集:
    • Plenoptic Video(多视图真实场景)。
    • D-NeRF(单视图合成场景)。
  2. 性能对比:
    • 在Plenoptic Video数据集上,PSNR达到32.01,比现有方法更高,同时渲染速度远超实时(114 FPS)。
    • 在D-NeRF数据集上,PSNR达到34.09,同样优于所有对比方法。
  3. 定性结果:
    • 合成结果保留了动态区域的精细细节,如火焰纹理和运动中的手指。
    • 对光影和体积效果有良好表现。
    • 在这里插入图片描述
      在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

总结

1. 优点
  1. 高质量和高效率:
    • 渲染速度显著优于现有方法,可实时生成高保真动态视频。
  2. 统一的时空建模:
    • 消除了时间与空间独立建模的局限性,能够捕获复杂的场景运动。
  3. 易用性:
    • 方法简单、模块化,可直接应用于不同类型的动态场景。
2. 局限性
  1. 背景场景建模的不足:
    • 在远背景区域,尤其是初始点云稀疏时,容易出现欠拟合现象。
  2. 对初始数据的依赖:
    • 静态和动态部分需要初始点云的较高质量输入。
  3. 在极端动态场景中的表现:
    • 对快速复杂运动的处理仍有提升空间,可能需要更高的时间采样密度。

实验记录

https://github.com/fudan-zvg/4d-gaussian-splatting?tab=readme-ov-file#environment
参阅这个进行实验配置
在这里插入图片描述

Get started
Environment

The hardware and software requirements are the same as those of the 3D Gaussian Splatting, which this code is built upon. To setup the environment, please run the following command:

git clone https://github.com/fudan-zvg/4d-gaussian-splatting
cd 4d-gaussian-splatting
conda env create --file environment.yml
conda activate 4dgs
Data preparation

DyNeRF dataset:

Download the Neural 3D Video dataset and extract each scene to data/N3V. After that, preprocess the raw video by executing:

python scripts/n3v2blender.py data/N3V/$scene_name

DNeRF dataset:

The dataset can be downloaded from drive or dropbox. Then, unzip each scene into data/dnerf.

Running

After the installation and data preparation, you can train the model by running:

python train.py --config $config_path

实验复现

拿coffee_martini举例
首先借助chatgpt安装好其他需要的环境(上面没提到的),主要是openh264
然后正常运行

python train.py --config configs/dynerf/coffee_martini.yaml

可以在configs/dynerf/coffee_martini.yaml里进行实验设置的修改,比如我这里为了加快实验显示,修改了点的数量30_000–>10_000
还有batch_size从4改到了2
在这里插入图片描述
在这里插入图片描述
得到结果chkpnt_best.pth 还有 chkpnt_7000.pth

对于可视化结果问题,可以参考这个https://github.com/fudan-zvg/4d-gaussian-splatting/issues/12
在这里插入图片描述

就是运行

 python render.py --model_path output/N3V/coffee_martini/ --loaded_pth=output/N3V/coffee_martini/chkpnt_best.pth

然后等待结果
在这里插入图片描述
下面是渲染结果和GT对比
在这里插入图片描述

在这里插入图片描述


总结

4D Gaussian Splatting 为动态场景建模和渲染提供了一种全新的解决方案,结合高效率和高质量的特点,在多领域具有广阔的应用前景。

### Compact 3DGS 复现方法 #### 准备工作环境 要成功复现 Compact 3DGS (3D Gaussian Splatting),首先需要配置适当的工作环境。这通常涉及安装必要的依赖库和工具链。 由于遇到了 `fatal error C1083: 无法打开包括文件: "glm/glm.hpp": No such file or directory` 错误[^3],表明缺少 GLM 库。GLM 是一个用于执行矢量和矩阵运算的头文件只读库,在许多图形应用程序中广泛使用。解决此问题的方法是在项目中正确集成 GLM: ```bash # 使用包管理器安装 glm pip install pyglm ``` 或者下载源码并将其路径添加到编译选项中。 #### 获取代码仓库 Compact 3DGS 的官方实现可能托管于 GitHub 或其他版本控制系统上。建议从原始作者处获取最新版代码库,以确保兼容性和功能性。 假设已经克隆了包含 diff-gaussian-rasterization 子模块在内的整个项目结构,则下一步是构建 CUDA 后端部分。 #### 构建调试 针对 CUDA 后端遇到的具体错误,除了上述提到的 GLM 安装外,还需要确认以下几点: - 确认已安装适合当前系统的 CUDA 工具包; - 设置正确的环境变量以便编译器能够找到 CUDA 和 GLM 文件夹位置; - 如果使用的是 Windows 平台,还需注意 Visual Studio 版本的选择及其对应的 MSVC 编译器版本应匹配所使用的 CUDA 版本。 完成这些准备工作之后,尝试重新编译项目。如果仍然存在未解析的问题,可以通过阅读项目的 README.md 文档获得进一步的帮助和支持信息。 #### 示例代码片段 下面是一个简单的 Python 调用示例,展示如何加载预训练好的紧凑型 3D 高斯分布模型,并对其进行可视化操作: ```python import torch from diff_gaussian_rasterization import rasterize_gaussians def visualize_compact_3dgs(model_path, output_image_size=(512, 512)): device = 'cuda' if torch.cuda.is_available() else 'cpu' # 加载模型参数 model_params = torch.load(model_path).to(device) # 执行光栅化过程 image = rasterize_gaussians( means=model_params['means'], opacities=model_params['opacities'], colors=model_params['colors'], img_size=output_image_size, bg_color=torch.tensor([0., 0., 0.], dtype=torch.float32), camera_to_world_matrix=None, near=0.1, far=10., t_step=0.01, max_num_points_per_voxel=64, voxel_resolution=[128]*3, jitter=True ) return image.cpu().numpy() if __name__ == "__main__": result_img = visualize_compact_3dgs('path/to/pretrained_model.pth') plt.imshow(result_img) plt.show() ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值