近期读了一篇NeRF相关的论文。NeRF在过去的两三年里实在是太火爆了,相关的一系列工作也如同雨后春笋一般,今天记录一下阅读Plenoctree的一些想法和笔记。
文章做了什么?
这篇文章主要做了如下工作:
1. 实时渲染,且能够达到和原生NeRF相似甚至更好的结果(文章中号称是第一个实时渲染的方法)
2. 在NeRF模型中引入球谐函数(在GitHub上搜索plenoctree可以得到这部分的代码,但是这部分代码没有和神经网络连接,仅仅是将训练好的模型中引入了球谐函数,如果我理解错了欢迎指正)
3. 用八叉树的数据结构来存储NeRF的模型
4. 用训练好的模型加速NeRF的训练,通过直接对八叉树中的值进行微调
方法
球谐函数
为了使得更直接地转化为八叉树的结构,文章当中提出了引入球谐函数的NeRF,换句话说,将原生NeRF输出为RGB的步骤变成了输出球谐函数系数。
引入了这个球谐函数之后,输入图片可以不要视角方向。
没有正则化的时候,模型对于观察不到(被遮挡)的部分的几何图形的生成是随意的,虽然没直接影响视觉效果,但是影响转化到八叉树进行存储的过程。为了解决这个问题,文章提出一个稀疏优先级(这我没太读懂):
基于八叉树的神经辐射
从八叉树结构中的线交点穿过射线,这样确保了边界清晰,能够一步将大体积分离且不丢失小体积的元素