BakedSDF: Meshing Neural SDFs for Real-Time View Synthesis 论文阅读

(水一篇博客)
在这里插入图片描述

项目主页

BakedSDF: Meshing Neural SDFs for Real-Time View Synthesis

作者介绍

  • 是 Mildenhall 和 Barron 参与的工作(都是谷歌的),同时一作是 Lipman 的学生,VolSDF 的一作。
  • 本文引用了很多其他文章的方法,Mildenhall 和 Barron 等的论文Mip-NeRF 360,以及VolSDF的方法。
  • 采用了 Instant-NGP 为中介来学习处于顶点位置的参数然后再固定到顶点上。

任务

重建大型无界现实世界场景的高质量网格,适用于逼真的新颖视图合成。(新视图合成,还是与NeRF有关,事实上本文基于Mip-NeRF 360的方法实现)

方法

  • 首先优化混合神经体积-表面场景表示,设计为具有与场景中的表面相对应的表现良好的水平集。(结合VolSDF的方法)
  • 然后,将这种表示烘焙成高质量的三角形网格,并为其配备基于球形高斯的简单且快速的依赖于视图的外观模型。
  • 最后,优化这个烘焙表示以最好地再现捕获的视点,从而产生一个可以利用加速多边形光栅化管道在商用硬件上进行实时视图合成的模型。

要点

提出了一种新方法 BakedSDF,用于重建大型无界真实世界场景的高质量网格,以进行实时视图合成;
用混合神经体-表面场景表示法,为准确的表面重建进行了优化,然后 bake 成具有与视图相关的外观模型的三角形网格;
BakedSDF 在精度、速度和功耗方面优于之前的实时渲染场景表示,可产生高质量的网格,使下游应用如外观编辑和物理模拟成为可能;
该系统可以在消费级设备上以实时帧率进行渲染,产生的网格准确而详细,可以实现标准的图形应用。

实现过程

  1. 第一阶段是把 Mip-NeRF 360 塞进了 VolSDF 中然后加了很多实现上的细节,其中 VolSDF 还做了改进,融合了 Ref-NeRF[9] 的 appearance 处理,实现了更好的高亮效果。

    这里是用了VolSDF的方法,把密度用SDF表示。

  2. 第二阶段就是从训好的 VolSDF 中提取 mesh,作者意识到了 VolSDF 中有偏的问题,所以在做 Marching Cubes 的时候调整了一下阈值 (0 -> 0.001)。此外,BakedSDF 也考虑了可视的问题,所以做了 visibility culling 策略避免在看不见的区域生成不必要的 mesh。而对于不可视区域产生的空洞,BakedSDF 则用区域生长策略将其补全。具体细节见章节 4.2,同时还有细节请参考附录 B。

  3. 最后一步则是利用 spherical Gaussian lobes 构建 view-dependent appearance。BakedSDF 为mesh 的每个顶点都设置了漫反射颜色项 c d c_d cd,( c d c_d cd应该可以查询参考了 Ref-NeRF[9] 的 VolSDF 直接获得,或者作为一个初始化)和一组 spherical Gaussian lobes (单位球内区域每个顶点三个 lobes,单位球外则为一个 lobe)。因此每个顶点的着色写作:
    C = c d + ∑ i = 1 N c i e x p ( λ i ( μ i ∗ d − 1 ) ) C=c_d+\sum^N_{i=1}c_iexp(\lambda_i(\mu_i*d-1)) C=cd+i=1Nciexp(λi(μid1))

    然后根据上述顶点着色,固定 mesh,仅优化每个顶点的着色参数 c d , c i , λ i , μ i c_d,c_i,\lambda_i,\mu_i cd,ci,λi,μi,其中梯度反传需要考虑像素在三角面片上的重心坐标,反传到相应的顶点上。

    由于 mesh 的顶点数量过多,不可能全部放进 GPU 中同时优化,BakedSDF 也采用了 Instant-NGP 为中介来学习这些处于顶点位置的参数然后再固定到顶点上。

参考文献

NeRF Baking 系列工作个人总结
VolSDF(Volume Rendering of Neural Implicit Surfaces)论文阅读笔记
Nvidia最新三维重建技术Instant-ngp初探

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/701622.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

五分钟“手撕”时间复杂度与空间复杂度

目录 一、算法效率 什么是算法 如何衡量一个算法的好坏 算法效率 二、时间复杂度 时间复杂度的概念 大O的渐进表示法 推导大O阶方法 常见时间复杂度计算举例 三、空间复杂度 常见时间复杂度计算举例 一、算法效率 什么是算法 算法(Algorithm):就是定…

24/05/14总结

签到2: 签到界面上有时间显示,签到码输入框,开始签到,当倒计时结束,老师端和学生端都会显示签到结果,所以签到结果需要建表:(签到了的学生和未签到的学生, 这次签到的时间…

Elasticsearch优化手段

ES 的默认配置已经提供了良好的开箱即用的体验,但是仍有一些优化手段去继续提升它的使用性能。 一 General recommendations 通用建议。 01 Dont return large result sets 不要返回大量的结果集。ES 是一个搜索引擎,擅长于返回匹配度较高的几个文…

1.柔性数组

1.柔性数组 我们先来介绍一下什么是柔性数组: 在C语言中,柔性数组(Flexible Array)并不是一个标准的术语,但它通常指的是结构体中最后一个元素是一个没有指定大小的数组。这种结构体设计允许在运行时动态分配数组的大…

ES6之正则扩展

正则表达式扩展 u修饰符(Unicode模式)y修饰符(Sticky或粘连模式)s修饰符(dotAll模式)Unicode属性转义正则实例的flags属性字符串方法与正则表达式的整合 javascript的常用的正则表达式 验证数字邮箱验证手机…

Linux 第三十一章

🐶博主主页:ᰔᩚ. 一怀明月ꦿ ❤️‍🔥专栏系列:线性代数,C初学者入门训练,题解C,C的使用文章,「初学」C,linux 🔥座右铭:“不要等到什么都没有了…

TortoiseGit的安装

TortoiseSvn和TortoiseGit都是针对代码进行版本管理的工具,又俗称小乌龟,简洁而可视化的操作界面,免去繁琐的命令行输入。只需要记住常用的几个操作步骤就能快速上手。 TortoiseGit安装 1、TortoiseGit作为git的版本管理工具 ,但…

零基础10 天入门 Web3之第3天

10 天入门 Web3之第3天 什么是以太坊,以太坊能做什么?Web3 是互联网的下一代,它将使人们拥有自己的数据并控制自己的在线体验。Web3 基于区块链技术,该技术为安全、透明和可信的交易提供支持。我准备做一个 10 天的学习计划&…

粮油码垛机:自动化与智能化仓储的关键角色

在快速发展的现代化仓储物流领域,粮油码垛机正逐渐成为自动化与智能化仓储的关键角色。它以其高效、精准、节省人力的特点,赢得了众多粮油生产企业的青睐,成为仓储管理升级换代的明星产品。 一、粮油码垛机的技术革新 随着科技的发展&#…

【C语言】4.C语言数组(2)

文章目录 6. 二维数组的创建6.1 ⼆维数组的概念6.2 ⼆维数组的创建 7. 二维数组的初始化7.1 不完全初始化7.2 完全初始化7.3 按照⾏初始化7.4 初始化时省略⾏,但是不能省略列 8. 二维数组的使用8.1 ⼆维数组的下标8.2 ⼆维数组的输⼊和输出 9. 二维数组在内存中的存…

string功能介绍(普及版)

目录 1。初始化(好几种方式),npos和string的使用说明 2。string的拷贝,隐式类型转换,[],size,iterator,begin,end,reverse,reverse_iterator&am…

网络安全快速入门(十二)(下) 目录结构相关命令补充

12.4 补充命令 我们已经了解了linux的目录结构,接下来我们大概看一下针对目录及文件的一些相关命令, 我们本章只讲三个目录及文件相关的命令,分别是tree,find及校验文件命令,我们一个一个来看这些命令。 12.4.1 tree命…