汇总
- cache —— 预计算
- 分割成子区域
- 减少采样次数
- 加快积分过程
PlenOctrees for Real-time Rendering of Neural Radiance Fields
Info
- 会议:ICCV
- 年份:2021
Method
- 训练一个 NeRF-SH 网络
- 将原来的 color 输出改为了球谐函数
- 球谐函数可以用来表示 view-dependent 的表面
- 把该网络转化成一个八叉树
- 对场景中的点进行采样,根据网络预测的 density 构建八叉树
- 叶结点中存放当前位置的球谐函数系数
- 构建好八叉树结构后,利用训练样本优化叶结点中的值(Fine-tuning)
- 渲染时不需要经过网络,只需要访问叶结点
- 对场景中的点进行采样,根据网络预测的 density 构建八叉树
Result
- 渲染速度大概是原版 NeRF 的 3000 倍
AutoInt: Automatic Integration for Fast Neural Volume Rendering
Info
- 会议:CVPR
- 年份:2021
Method
- 用两个神经网络来求解 volume rendering 的积分过程
- integral network 用来表示积分结果
- grad network 用来拟合被积分函数
- 二者共用参数
- 训练 NeRF 时,优化 grad network
- 预测时,将 grad network 整合成 integral network 以预测积分结果
- 将光线路径分成若干 sections,分段进行积分
Result
- 渲染速度大概是原版 NeRF 的 10 倍
Neural Geometric Level of Detail: Real-time Rendering with Implicit 3D Shapes
Info
- 会议:CVPR
- 年份:2021
Method
- DeepSDF
- 额外输入一个形状编码,以学习不同形状的物体
- DeepSDF 存在的问题
- 无论形状是简单还是复杂,都使用同样的 MLP
- 不支持 LOD
- 本文思路:使用一系列特征向量,而不是只使用一个
- 这些特征向量用八叉树维护
- 物体的 LOD 由八叉树的深度决定
- 由于使用了一系列特征向量,每个特征向量表达的是较小范围内物体表面处的形状
- 因此,用一个很小的 MLP 就可以很好地拟合,从而加速渲染
Result
- 渲染速度大概是原版 DeepSDF 的 50 - 100 倍
Neural Sparse Voxel Fields
Info
- 会议:NeurIPS
- 年份:2020
Methods
- 思路:将 NeRF 场景表达为 voxels,剔除那些空的 voxels
- 训练
- 初始化网格,训练 NeRF,统计每个体素内的密度,若小于阈值则去掉
- 将剩下的 voxels 细分成 8 个 sub-voxel
- 渲染
- 在 voxels 外面不用访问 NeRF
- 在 voxel 内部做 ray marching,采样点处访问 NeRF
Result
- 渲染速度大概是原版 NeRF 的 40 倍
DeRF: Decomposed Radiance Fields
Info
- 会议:CVPR
- 年份:2021
Method
- 思路:将场景分割为几个部分,每个部分用一个小一点的 NeRF 来表达
- 分割:Voronoi diagram
- 渲染:使用画家算法,先渲染离相机较远的部分
Result
- 论文只比较了不同参数下自己的效果,未与其他方法进行比较
- 结果分析中,着重分析了图像质量
- units -> NeRF 中每一层的神经元个数,heads -> 分割的块数
DONeRF: Towards Real-Time Rendering of Compact Neural Radiance Fields using Depth Oracle Networks
Info
- 会议:EGSR(Eurographics Symposium on Rendering)
- 年份:2021
Method
思路:添加一个网络用于预测最佳采样位置,这样 NeRF 只需极少采样点就能得到结果
定义 view cell
- bounding box + 主方向 + 最大视角范围
- 可以用来分割大场景
- 将一个 view cell 里方向相同的光线映射到同一 origin
- 将深度转换到非线性的空间,即采样时使用非线性的深度值
- 由 Oracle network 预测深度的位置
- 将预测的位置映射到 view cell 里
- 在 NeRF 中采样这些位置的结果,获得最后的像素值
Result
渲染速度提升大概 50 倍
FastNeRF: High-Fidelity Neural Rendering at 200FPS
Info
- 会议:ICCV
- 年份:2021
Method
将 NeRF 分解为两个网络
- position 网络输出一组 radiance
- direction 网络输出一组 weight
最终结果为两个网络输出的乘积
加速 —— cache
- 在包围盒内,均匀地取若干个采样点,每个采样点上取一组相机方向
- 将所有采样点的网络输出储存下来
- 渲染时,在这些值里面进行插值
Result
- 渲染速度大概是原版 NeRF 的 3000 倍
然而需要大量的 cache 空间
KiloNeRF: Speeding up Neural Radiance Fields with Thousands of Tiny MLPs
Info
- 会议:ICCV
- 年份:2021
Method
将场景均匀分割,每个小块对应一个简化版的 NeRF
简化版的网络结构
Result
渲染速度大概是原版 NeRF 的 2000 多倍
Light Field Networks: Neural Scene Representations with Single-Evaluation Rendering
Info
- 会议:NeurIPS
- 年份:2021
Method
- 引入光场,使得渲染时只需要采样一次
- 输入
- 6 维的 Plücker 坐标,用来表示某一条光线
- 对场景编码得到的特征向量 z
- 输出
- 当前光线对应的颜色值
Result
- 渲染时间比 volume rendering 减少了 3 个数量级