DreamGaussian: Generative Gaussian Splatting for Efficient 3D Content Creation解读

这篇具有很好参考价值的文章主要介绍了DreamGaussian: Generative Gaussian Splatting for Efficient 3D Content Creation解读。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


前言

太卷啦,太卷啦,视觉太卷啦,赶紧跑路吧~_~

介绍DreamGaussian: Generative Gaussian Splatting for Efficient 3D Content Creation论文方法,解释原理,本文不是机械翻译,而是尝试讲解方法原理
论文地址:https://arxiv.org/abs/2309.16653
github地址:https://github.com/dreamgaussian/dreamgaussian?tab=readme-ov-file
项目地址(可直接运行):https://huggingface.co/spaces/jiawei011/dreamgaussian


如有不对,欢迎讨论

一、基本介绍

本文提出了用于3D生成的DreamGaussian方法,仅依靠一张图片或者一段文字描述,就可以在短时间内生成高质量3D模型。3D生成的研究可以分为两大类:仅限推理的三维原生方法(One-2-3-45: Liu et al.,2023a; Shap-e:Jun & Nichol,2023)和基于优化的二维提升方法(Zero-1-to-3:Liu et al.,2023b)。

而DreamGaussian在生成质量和速度之间取得了更好的平衡,达到了与基于优化的的二维提升方法相当的质量,但仅比仅限推理的三维原生方法略慢。

具体来说,DreamGaussian 在DreamFusion的基础上,通过将三维高斯 splatting 应用到生成设置中,大大提高了3D内容的生成效率。可以在仅2分钟内从单个视图图像中生成具有显式网格和纹理贴图的逼真3D物体。

二、方法原理

1.DreamGaussian方法

DreamGaussian: Generative Gaussian Splatting for Efficient 3D Content Creation解读,3d,pytorch,深度学习
(i)DreamGaussian 应用了DreamFusion提出的分数蒸馏抽样(SDS)解决了需要大量三维数据训练的限制,同时使用了3D Gaussian Splatting的方法,更快更好的生成3D模型。 具体来说,给定一段文字描述或一张图片,输入到预训练的diffusion模型中,开始时使用较少的Gaussians,在预定机位渲染图片,将该图片和高斯噪声混合生成加噪图片,然后将加噪图片也输入到预训练的diffusion模型中,生成去噪的图片,然后和前面加噪图片做比较,得到加噪图片到去噪图片去掉的噪声。(如果难以理解,先看下文2.分数蒸馏抽样(SDS))

将该噪声和前面的与预定机位混合的高斯噪声的分布做比较来进行SDS loss的优化,迭代训练3D Gaussian Splatting的参数,让其生成的图像更符合预训练的diffusion模型输出的图像分布。

通过Densify逐渐在SDS 训练过程增加3D Gaussians的数量和密度,可以更准确地表示和捕捉生成的细节和结构。这样可以提高生成的质量和细节,并减少生成结果的模糊程度。

(ii)Efficient Mesh Extraction是从生成的3D Gaussians中提取出带有纹理的多边形网格的方法。具体方法如下:

  1. 局部密度查询(Local Density Query):首先将3D空间划分为多个局部块,然后剔除中心位于每个局部块外部的高斯函数。这样可以减少每个块中需要查询的高斯函数的总数。在每个块内部查询一个密集网格,计算每个网格位置的加权不透明度。通过Marching Cubes算法,根据经验阈值提取网格表面。
  2. 颜色反投影(Color Back-projection):根据网格的几何信息,将渲染的RGB图像反投影到网格表面,并将其作为纹理。首先对网格的UV坐标进行展开,初始化一个空的纹理图像。然后根据UV坐标将渲染的RGB图像像素反投影到纹理图像上。通过这两个步骤,可以将生成的3D Gaussians转换为带有纹理的多边形网格,并进一步优化纹理。

(iii) UV-Space Texture Refinement是纹理细化的方法, 它通过从生成的3D Gaussians中提取细节纹理的多边形网格,在UV空间中进行纹理细化,并使用多步MSE损失来细化纹理图像。与直接应用潜空间SDS损失的第一阶段相比,该方法通过在图像空间进行监督,避免了在UV图上产生过饱和的块状伪影。相比之前的纹理细化方法,该方法在保持高效率的同时实现了更好的保真度。

UV map是一种用于将2D纹理映射到3D模型表面的技术。它是一种二维坐标系统,与3D模型的顶点相对应,用于确定纹理在模型表面的位置和方向。

2.分数蒸馏抽样(SDS)

引用一张微信公众号上讲解DreamFusion的图片
DreamGaussian: Generative Gaussian Splatting for Efficient 3D Content Creation解读,3d,pytorch,深度学习
DreamFusion (DreamFusion: Text-to-3D using 2D Diffusion)提出分数蒸馏抽样(SDS)解决三维数据限制(也就是不需要辣莫多三维模型训练集),通过提取三维几何和外观从强大的2D扩散模型,激发了最近的2D提升方法的发展。为了应对SDS监督引起的不一致和模糊性,通常采用NeRF建模丰富的三维信息的能力。但由于NeRF渲染费时,优化需要数小时。用于加速NeRF的 occupancy pruning 技术在模糊SDS损失的监督下,在生成环境中是无效的。

于是便有了DreamGaussian把NeRF替换成3D Gaussian Splatting的改进,但SDS的原理依然很先进,下面结合上图解释一下SDS原理,以下讲解来源于微信公众号。

先用NeRF在预定的机位渲染图片,然后将这张图片和高斯分布ε~Ν(0,Ι)混合,就得到了一张加噪图片Zt 。 然后,将这张加噪图片和文字信息y(图中案例是“a DSLR photo of a peacock on a surfboard”,即冲浪板上的孔雀)一起,输入到已经训练好的Imagn模型中,得到去噪后的图片Xθ(Zt|y;t)。 此时,这张Xθ并非直接使用,而是和前面的加噪图片Zt做比较,就可以得到,Imagen在生成Xθ的过程中,从前面的加噪图Zt上去掉的预测噪声εθ(Zt|y;t)。

这时,因为我们前面增加的噪声是已知的,即ε,那么我们就可以将预测的噪声和实际增加的噪声做比较。 这里一个主要推论是,如果NeRF生成的图像的分布,和Imagen根据文字输入生成的图像的分布是完全一致的,那么我们增加的噪声和Imagn在去噪时候将被去除的预测噪声ε^θ(Zt|y;t),也应该完全一致。
于是,我们就可以以最小化 || ε^θ(Zt|y;t) - ε || 为目标,在冻结Imagen模型参数的情况下,去迭代训练NeRF的参数,让其生成的图像越来越符合Imagne根据文字预测的图像分布。 除此之外,DreamFusion中还用了对NeRF渲染的图片做各种增强的方法。

简单来说,就是预训练Imagen模型知道孔雀长啥样,我从你NeRF刚开始随机机位渲染的某一个方向上的孔雀图片看一下,哎呦你这个不像,还需要训练,那如何训练呢,设
A是NeRF机位的图片,
B是加的高斯噪声,
C是A+B也就是把A加了B的噪声后的图片,即A+B=C
D是预训练Imagen模型减去的噪声,
E是C经过预训练Imagen模型降噪(减去D)生成的真实孔雀图片,即C-D=E
也就是A+B=D+E
SDS想办法让B==D,如果B和D越接近,则A和E越接近。

总结

文生3D是一个炙热的赛道,DreamGaussian就是一群大佬在DreamFusion和3D Gaussian Splatting的基础上设计出的方法,在最近的研究中表现很好,各位童鞋有能力就紧跟三维重建时势,设计自己的方法,能力不大ok就学会使用大佬们的方法就可以啦文章来源地址https://www.toymoban.com/news/detail-845567.html

到了这里,关于DreamGaussian: Generative Gaussian Splatting for Efficient 3D Content Creation解读的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 论文笔记《3D Gaussian Splatting for Real-Time Radiance Field Rendering》

    项目地址 原论文 最近辐射场方法彻底改变了多图/视频场景捕获的新视角合成。然而取得高视觉质量仍需神经网络花费大量时间训练和渲染,同时最近较快的方法都无可避免地以质量为代价。对于无边界的完整场景(而不是孤立的对象)和 1080p 分辨率渲染,目前没有任何方法

    2024年02月09日
    浏览(41)
  • [SIGGRAPH-23] 3D Gaussian Splatting for Real-Time Radiance Field Rendering

    pdf | proj | code 本文提出一种新的3D数据表达形式3D Gaussians。每个Gaussian由以下参数组成:中心点位置、协方差矩阵、可见性、颜色。通过世界坐标系到相机坐标系,再到图像坐标系的仿射关系,可将3D Gaussian映射到相机坐标系,通过对z轴积分,可得到对应Splatting 2D分布。 针对

    2024年02月04日
    浏览(46)
  • 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日
    浏览(46)
  • 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日
    浏览(71)
  • 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日
    浏览(55)
  • 【三维重建】DreamGaussian:高斯splatting的单视图3D内容生成(原理+代码)

    项目主页:https://dreamgaussian.github.io/ (包含论文和代码) 提示:以下是本篇文章正文内容,下面案例可供参考 常用的3D内容创建方式,主要是 利用基于优化的通过分数蒸馏采样(SDS)进行的3D生成 。该方法每个样本优化较慢,很难实际应用。本文提出了DreamGaussian,兼顾效率

    2024年02月06日
    浏览(47)
  • 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日
    浏览(40)
  • 【3D-GS】Gaussian Splatting SLAM——基于3D Gaussian Splatting的全网最详细的解析

    3D Gaussian Splatting for Real-Time Radiance Field Rendering 论文:link code:link video:link 1. 开山之作 Nerf 一切的开始都是起源于 NERF 开山之作 这里由详细的学习与拆解 【NERF】入门学习整理(一) 【NERF】入门学习整理(二) 【NERF】入门学习整理(三) 【NeRF数据集】LLFF格式数据集处理co

    2024年04月15日
    浏览(77)
  • 3D Gaussian Splatting

    本文转载于大佬~~ 这是3D Gaussian Splatting综述, 先回顾3D Gaussian的原理和应用,借着全面比较了3D GS在静态场景、动态场景和驾驶场景中的性能,最后为未来指明了研究方向! 三维 Gaussian splatting(3DGS)是近年来在显式辐射场和计算机图形学领域出现的一种变革性技术。这种创新

    2024年04月08日
    浏览(55)
  • 3D Gaussian Splatting 渲染过程

    给定一组三维高斯点,渲染步骤大致为:1.camera space转成ray space 2.对像平面进行分块,然后对高斯排序 3.正投影发出射线进行α-blending 这个步骤将NeRF中的投影过程变为了正投影,引入了ray space的概念,让3D Gaussian 变为2D Gaussian. 透视投影和正投影                    一般的渲

    2024年01月20日
    浏览(64)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包