3D Gaussian Splatting for Real-Time Radiance Field Rendering(论文中代码复现)

这篇具有很好参考价值的文章主要介绍了3D Gaussian Splatting for Real-Time Radiance Field Rendering(论文中代码复现)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


前言

3D Gaussian Splatting for Real-Time Radiance Field Rendering

https://repo-sam.inria.fr/fungraph/3d-gaussian-splatting/

3D Gaussian Splatting for Real-Time Radiance Field Rendering(论文中代码复现),3d

主要研究方法是使用3D高斯光点绘制(3D Gaussian Splatting)方法进行实时光辐射场渲染。该方法结合了3D高斯场表示和实时可微分渲染器,通过优化3D高斯场的属性和密度控制,实现了高质量的光辐射场渲染。同时,该方法还采用了基于瓦片的光斑渲染技术,实现了对多个数据集的实时渲染。通过这种方法,该研究在保持最佳质量的同时,大大提高了场景优化和新视图合成的速度。

项目github地址:

https://github.com/graphdeco-inria/gaussian-splatting


训练3D Gaussian Splatting模型步骤

安装Anaconda

Anaconda是一种数据科学和机器学习的开发环境,它包含了大量的Python包、工具和库,以及可视化界面和集成开发环境。(Anaconda可以方便地管理Python环境和安装第三方软件包,同时也支持多个操作系统和平台)

地址:https://www.anaconda.com/download

安装过程不再赘述

安装Pycharm

地址 https://www.jetbrains.com/pycharm/download/#section=windows
安装过程不再赘述

安装git

地址:https://git-scm.com/
安装过程不再赘述

拉取github项目

项目github地址:https://github.com/graphdeco-inria/gaussian-splatting

3D Gaussian Splatting for Real-Time Radiance Field Rendering(论文中代码复现),3d3D Gaussian Splatting for Real-Time Radiance Field Rendering(论文中代码复现),3d

注意:submodules/diff-gaussian-rasterization和submodules/simple-knn是有内容的,如果没有看看是否网速有问题,或者通过这个:git clone https://github.com/graphdeco-inria/gaussian-splatting --recursive 进行拉取,或者自己导入。

数据制作

需要场景的各个角度的图片,推荐200张以上。数量过少会导致模型质量不够,数量过多会导致过长的训练时间。为了保持更好的效果,每张照片需保持一致的曝光。 也可以录制视频提取单帧。

#若采用视频录制可采用以下代码转成批量的单帧图片
import cv2

def VideotoPicture():
    # 视频地址  创建一个VideoCapture对象,指定读取的视频文件
    cap = cv2.VideoCapture(r'E:\aa_video\v1.mp4')
    # 通过摄像头的方式
    # cap = cv2.VideoCapture(1)

    fps = cap.get(cv2.CAP_PROP_FPS)  # 获取帧率 每一秒的视频帧数
    width = int(cap.get(cv2.CAP_PROP_FRAME_WIDTH))  # 获取宽度
    height = int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT))  # 获取高度

    # 判断视频是否读取成功  成功返回True  失败返回False
    sucess = cap.isOpened()

    frame_count = 0
    # 视频得到的图片名字img_name
    img_name = 0
    while sucess:
        frame_count += 1
        # 读取视频每一帧图像
        sucess, frame = cap.read()
        # TODO 每隔2帧存储一张图片
        if (frame_count % 2 == 0):
            img_name += 1
            cv2.imwrite(r'E:\aa_video\a\%d.png' % img_name, frame)

    print("帧率(每秒视频的帧数):", fps)
    # 释放视频资源
    cap.release

if __name__ == '__main__':
    VideotoPicture()  # 视频转图像

3D Gaussian Splatting for Real-Time Radiance Field Rendering(论文中代码复现),3d在项目中创建data文件夹,下级目录如图所示:
3D Gaussian Splatting for Real-Time Radiance Field Rendering(论文中代码复现),3d
将照片放入input文件夹

获取相机位姿

使用COLMAP获取相机位姿

地址:https://github.com/colmap/colmap/releases/tag/3.8

3D Gaussian Splatting for Real-Time Radiance Field Rendering(论文中代码复现),3d解压,将colmap添加到环境变量
3D Gaussian Splatting for Real-Time Radiance Field Rendering(论文中代码复现),3d

终端输入:

python convert.py -s data

自动完成相机位姿和点云的建立
查看可视化相机姿势,可以打开 COLMAP.bat,然后选择File->Import model 并选择路径data/sparse/0

模型训练

CUDA搭建

cuda的下载及安装
确定自己应该下载什么版本的cuda,打开nvidia(桌面右键)->选择左下角的系统信息->组件
3D Gaussian Splatting for Real-Time Radiance Field Rendering(论文中代码复现),3d
我下的是CUDA Toolkit 11.8

地址:https://developer.nvidia.com/cuda-toolkit-archive

3D Gaussian Splatting for Real-Time Radiance Field Rendering(论文中代码复现),3d解压,自定义安装,默认选择即可。
验证是否安装成功:运行cmd,输入nvcc --version 即可查看版本号

cuDNN下载及安装

cuDNN地址:https://developer.nvidia.com/rdp/cudnn-download

不过要注意的是,我们需要注册一个账号,才可以进入到下载界面,可放心注册。

查看适配的 cuDNN:https://developer.nvidia.com/rdp/cudnn-archive

3D Gaussian Splatting for Real-Time Radiance Field Rendering(论文中代码复现),3dcuDNN配置,先把下载的 cuDNN 解压。
3D Gaussian Splatting for Real-Time Radiance Field Rendering(论文中代码复现),3d
复制到CUDA 的安装目录中,有和 cuDNN 解压缩后的同名文件夹,这里注意,不需要担心,直接复制即可。
添加环境变量(看自己的安装目录)

C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8\bin
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8\include
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8\lib
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8\libnvvp

3D Gaussian Splatting for Real-Time Radiance Field Rendering(论文中代码复现),3d

配置完成后,我们可以验证是否配置成功,主要使用CUDA内置的deviceQuery.exe 和bandwidthTest.exe。首先win+R启动cmd,cd到安装目录下的 …\extras\demo_suite,然后分别执行bandwidthTest.exe和deviceQuery.exe(进到目录后需要直接输“bandwidthTest.exe”和“deviceQuery.exe”)

3D Gaussian Splatting for Real-Time Radiance Field Rendering(论文中代码复现),3d

Anaconda Prompt虚拟环境搭建

#查看环境
conda env list

#创建新的环境
conda create -n gs python=3.8
#其中【gs】是环境的名字,【python=3.8】是使用的Python版本
#注意:如果你的CUDA版本是11.8,要选择Python3.8版本,
#    我当时用过CUDA11.8+Python3.7版本后续的一些配置不上,版本不支持。
#    用CUDA11.6版本的话我当时配出现submodules/diff-gaussian-rasterization与submodules/simple-knn无法完成配置

#激活环境
conda activate ps

Pytorch环境配置

地址:https://pytorch.org/get-started/previous-versions/

如果忘记自己电脑的CUDA版本,可在终端中输入nvcc --version 进行查询
3D Gaussian Splatting for Real-Time Radiance Field Rendering(论文中代码复现),3d
根据自己CUDA版本进行选择
3D Gaussian Splatting for Real-Time Radiance Field Rendering(论文中代码复现),3d

pip install torch==2.0.0 torchvision==0.15.1 torchaudio==2.0.1 --index-url https://download.pytorch.org/whl/cu118
#如果出现问题,查查是不是Pyhton的版本不匹配,或者其他的版本冲突

pip install plyfile tqdm

#下面这两步卡了我好久,配置一直出错,用CUDA11.6出错,
#例如这个ERROR: Failed building wheel for diff-gaussian-rasterization
#换成CUDA11.8解决了这个问题,之前的版本一定要卸载干净
pip install submodules/diff-gaussian-rasterization
pip install submodules/simple-knn

3D Gaussian Splatting for Real-Time Radiance Field Rendering(论文中代码复现),3d

训练

完成配置后就可以在终端开始训练了

python train.py -s data -m data/output

#如果你的场景是白色背景,可以添加-w选项。这将告诉训练脚本基本背景颜色应该是白色(而不是默认的黑色)

python train.py -s data -m data/output -w

模型可视化

模型的文件夹结构如下
3D Gaussian Splatting for Real-Time Radiance Field Rendering(论文中代码复现),3d

在windows中,模型可视化工具地址:https://repo-sam.inria.fr/fungraph/3d-gaussian-splatting/binaries/viewers.zip
将该文件解压到工程文件夹中即可完成安装

3D Gaussian Splatting for Real-Time Radiance Field Rendering(论文中代码复现),3d
安装完成,在终端输入

.\viewers\bin\SIBR_gaussianViewer_app -m data/output 

3D Gaussian Splatting for Real-Time Radiance Field Rendering(论文中代码复现),3d
3D Gaussian Splatting for Real-Time Radiance Field Rendering(论文中代码复现),3d

参考:https://www.bilibili.com/read/cv26465887/?spm_id_from=333.1007.0.0文章来源地址https://www.toymoban.com/news/detail-771393.html

到了这里,关于3D Gaussian Splatting for Real-Time Radiance Field Rendering(论文中代码复现)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 3DGS 其一:3D Gaussian Splatting for Real-Time Radiance Field Rendering

    Reference: 深蓝学院:NeRF基础与常见算法解析 GitHub: gaussian-splatting 原文官网 A Survey on 3D Gaussian Splatting 开始弃用NeRF?为什么Gaussian Splatting在自动驾驶场景如此受欢迎? 相关文章: NeRF 其一:NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis NeRF 其二:Mip-NeRF NeRF 其三:In

    2024年01月18日
    浏览(63)
  • 3D Gaussian Splatting for Real-Time Radiance Field Rendering(论文中代码复现)

    3D Gaussian Splatting for Real-Time Radiance Field Rendering https://repo-sam.inria.fr/fungraph/3d-gaussian-splatting/ 主要研究方法是使用3D高斯光点绘制(3D Gaussian Splatting)方法进行实时光辐射场渲染。该方法结合了3D高斯场表示和实时可微分渲染器,通过优化3D高斯场的属性和密度控制,实现了高质

    2024年02月03日
    浏览(31)
  • 3D Gaussian Splatting for Real-Time Radiance Field Rendering论文中代码复现及排错过程

    graphdeco-inria/gaussian-splatting: Original reference implementation of “3D Gaussian Splatting for Real-Time Radiance Field Rendering” (github.com) 以下是最初电脑所安装的内容: Anaconda3 2022.10-Windows-x86_64 CUDA 电脑只支持11.6,所以装的是11.6版本。 使用git去克隆repository 尽管挂了梯子,但是还是需要多次刷

    2024年02月05日
    浏览(48)
  • GPS-Gaussian:Generalizable Pixel-wise 3D Gaussian Splatting for Real-time Human Novel View Synthesis

    1)仿射变换 quad 所谓仿射变换,就是向量经过一次线性变换加一次平移变换,用公式可以表示为: quad 其中,p为变换前原始向量,q为变换后目标向量,A为线性变换矩阵,b为平移变换向量。 quad 对于二维图像而言,p和q分别是某个像素点在原图和仿射变换后的图中的未知(

    2024年02月03日
    浏览(35)
  • NeRF-SLAM: Real-Time Dense Monocular SLAM with Neural Radiance Fields 论文阅读

    题目 :NeRF-SLAM: Real-Time Dense Monocular SLAM with Neural Radiance Fields 作者 :Antoni Rosinol, John J. Leonard, Luca Carlone 代码 :https://github.com/ToniRV/NeRF-SLAM 来源 :arxiv 时间 :2022 我们提出了一种新颖的几何和光度 3D 映射流程,用于从单目图像进行准确、实时的场景重建。 为了实现这一目标

    2024年02月14日
    浏览(39)
  • LiDAR SLAM 闭环——BoW3D: Bag of Words for Real-time Loop Closing in 3D LiDAR SLAM

    标题:BoW3D: Bag of Words for Real-Time Loop Closing in 3D LiDAR SLAM 作者:Yunge Cui,Xieyuanli Chen,Yinlong Zhang,Jiahua Dong,Qingxiao Wu,Feng Zhu 机构:中科院沈阳自动化研究所 来源:2022 RAL 现算法已经开源,代码链接: GitHub - YungeCui/BoW3D: [RA-L] BoW3D: Bag of Words for Real-Time Loop Closing in 3D LiDAR SLAM.      

    2024年02月12日
    浏览(34)
  • Why choose Flink for real-time processing

    Why choose Flink [1] Streaming data more truly reflects our lifestyle (real-time chat); [2] Traditional data architecture is based on limited data sets (Spark is based on micro-batch data processing); [3] Our goal: low latency, high throughput (distributed architecture, there may be confusion in the order, for example, within 1 hour of statistics, some data

    2024年03月20日
    浏览(40)
  • 【GAMES202】Real-Time Global Illumination(in 3D)—实时全局光照(3D空间)

    上篇我们介绍了PRT,并以Diffuse的BRDF作为例子分析了预计算的部分,包括Lighting和Light transport,如上图所示。 包括我们还提到了SH,可以用SH的有限阶近似拟合球面函数,然后计算。 这里和上篇的推导方式不太一样,我们上篇是把Lighting项用SH分解然后交换积分和求和符号,最

    2024年02月10日
    浏览(32)
  • Training-Time-Friendly Network for Real-Time Object Detection 论文学习

    目前的目标检测器很少能做到快速训练、快速推理,并同时保持准确率。直觉上,推理越快的检测器应该训练也很快,但大多数的实时检测器反而需要更长的训练时间。准确率高的检测器大致可分为两类:推理时间久的的训练时间久的。 推理时间久的检测器一般依赖于复杂的

    2024年02月15日
    浏览(33)
  • 实时 3D 深度多摄像头跟踪 Real-time 3D Deep Multi-Camera Tracking

    论文url https://arxiv.org/abs/2003.11753 提出了一个名为Deep Multi-Camera Tracking (DMCT)的实时3D多摄像机跟踪系统。该系统旨在解决使用多个RGB摄像机进行3D人群跟踪的挑战性任务。 多个RGB摄像机的实时视频帧,每个视频帧是一个彩色图像,具有高度和宽度的像素矩阵。 基础卷积层(Ba

    2024年04月09日
    浏览(64)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包