当前位置:   article > 正文

3D Gaussian Splatting学习记录11.3_3dgaussian splatting与传统三维重建的对比

3dgaussian splatting与传统三维重建的对比

论文细节

参考了论文讲解

  • 思想:就像泼溅(splatting)的水球(gaussian)。从已有的点云模型出发,以每个点为中心,建立可学习的3D高斯表达,用splatting 方法进行渲染,实现高分辨率的实时渲染,推动了NeRF加速方向的进展。
  • 优点:很快,很好的GPU,100FPS;效果很好,纹理细节,超过很多NeRF;显存占用小,方便实用;可以随机初始化点云,即可以不提供点云,在训练时进行点云的生长和修剪
  • COLMAP - 相机位姿 - 点云
  • 缺点:重建室内场景很差,因为技术比较原始,之后会有更多改进(可能是借鉴NeRF中的一些方法可能是新方法)。墙壁没有纹理,很难获取深度,所以重建出来从旁边看会有一团雾。反光的表面也重建的不好。
  • 可以应用到unreal engine,unity,polycam,luma AI等
  • 贡献:(1)各向异性,即各个方向看都不一样

  • 为什么要用CUDA:CUDA编程的最大意义在于可以加速,高效运行,因为python是解释型语言,CUDA是编译型语言,一般先天python就比CUDA要慢。这是AI的回答:

有的编程语言选择使用CUDA而不是Python的原因主要是因为CUDA提供了更直接的GPU并行计算支持,而Python作为一种高级编程语言,对于GPU的并行计算支持相对较弱。

虽然Python有一些库和框架(如TensorFlow、PyTorch)可以利用CUDA进行GPU加速,但是Python本身是解释性语言,相对于底层的CUDA,其执行效率较低。此外,Python的语法和动态类型特性也限制了其在性能密集型计算任务上的表现。

相比之下,CUDA是专门为GPU并行计算而设计的平台和编程模型。CUDA提供了底层的并行计算功能和优化工具,可以直接利用GPU的强大计算能力,从而在性能上有更大的优势。此外,CUDA提供了丰富的库函数和工具,简化了并行程序的编写和调试过程。

需要注意的是,Python作为一种通用的高级编程语言,拥有广泛的应用领域,特别是在数据处理、科学计算和机器学习等领域。对于这些领域的任务,Python具有较高的开发效率和灵活性,因此在选择编程语言时需要根据具体任务的需求来进行权衡和选择。

  • 其他方法:图片+深度预测,得到点云,再得到mesh
  • 相关方法:和Point-NeRF都是用到点云,但避开了对点云抽象特征的学习,且用splatting代替Point-NeRF的体渲染。Point-NeRF有些浪费了点云携带的精确几何信息,但本文可以最大程度用点云。Plenoxels用到体素、三线性插值、体渲染,抛弃MLP和隐式特征,用到更显式的球谐函数,思想类似,都是用传统高效的方法提高模型表达的下限,结合可微可学习思想拉高模型拟合的上限。

  • inputs:g_rgb 颜色(3)、g_points 3D位置(3)、g_scale 三轴长度(3)、g_rotation 旋转(4)、g_opacity 透明度(1)等
  • output:p_rgb 颜色(P, 3)

  • 反向传播回所有参与渲染的gaussian,链锁率,在backward.cu中 - “反向微分那里知道怎么回事就可以了,如果需要动这一块的时候再说,因为这一块梯度回传是已经完全写好了,可以理解为,这一块的代码已经打包成一个模块,可以和一般的深度学习模块是一样的,知道在哪是干什么的就可以了。”
  • 优化和自适应密度控制

  • tile-based光栅化

ps:一个很好的交互式学习网站:brilliant.org/cloud

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/115146
推荐阅读
相关标签
  

闽ICP备14008679号