目录

目录

Survey: nerf + performance/timing boost up


Preliminaries

NeRF 的稠密采样过程需要耗费大量的时间、算力资源;同时,这种不在乎物质密度分布的采样,对于实际 unconstrained 场景(比如城市场景,有近景也有非常远的背景)也有很大的问题。

Method

<DeRF> Derf: Decomposed radiance fields
 

Motivation

  • 对于NeRF这种研究,在提高网络深度、大小时,有diminishing returns(减小的回报)
  • 因此,instead of 提高单个网络深度、大小,本篇把空间分成几个voronoi cell,对应几个NeRF,来学习
    • 因为是空间分区的network,因此无论分多少部分,Infer时间是几乎不变的
    • voronoi空间分解非常合适,因为被证明与Painter’s Algorithm 兼容,可以高效GPU渲染
    • 对于现实世界场景,在相同的渲染质量情况下,比NeRF高效3倍以上

Overview

  • https://longtimenohack.com/posts/paper_reading/2021cvpr_rebain_nerf/image-20201215201013772.png
Neural sparse voxel fields
 

Review

  • 兼顾精度、速度?
  • 既然是利用形状/点云信息,加快query时的速度,那可否利用SDF?
    • 这种加速,相当于额外存储一下空间中哪些位置占用低

Motivation

  • 现有的方法,由于网络容量/寻找和scene geometry的精确intersection有困难,目前的很多方法都是blurry results
  • 提出一种新的表征,用octree结构的voxels来each 存local feature
    这样在采样时就可以跳过无关的voxels,比NeRF快10倍
    https://longtimenohack.com/posts/paper_reading/2020nips_liu_neural/image-20201221173251904.png
  • 至于每个pixel的feature,渲染结构与NeRF类似
    https://longtimenohack.com/posts/paper_reading/2020nips_liu_neural/image-20201221174122461.png

Overview

  • self-pruning
    把占用小于阈值的网格直接剪枝掉
    https://longtimenohack.com/posts/paper_reading/2020nips_liu_neural/image-20201221174308274.png
  • 一个voxel上的feature有顶点补间得来
    https://longtimenohack.com/posts/paper_reading/2020nips_liu_neural/image-20210106152320554.png

Results

  • https://longtimenohack.com/posts/paper_reading/2020nips_liu_neural/image-20201221173910965.png
  • 因为用的是显式的sparse voxel 表征,可以轻松用于scene composition
    • https://longtimenohack.com/posts/paper_reading/2020nips_liu_neural/image-20201221174604849.png
  • 还可以在 ScanNet 上直接进行尝试:首先用注册后的深度图提取点云
    https://longtimenohack.com/posts/paper_reading/2020nips_liu_neural/image-20210106151555886.png
  • 还可以做scene editing:因为用的是显式的voxel
    • https://longtimenohack.com/posts/paper_reading/2020nips_liu_neural/image-20210106151644456.png
<AutoInt> Autoint: Automatic integration for fast neural volume rendering
 

Motivation

  • 初版NeRF需要离散采样数值积分,计算非常费时:millions of rays,每个ray上hundreds of forward passes,用蒙特卡洛采样来近似积分
  • 本文用了一种快速自动积分的算法,应对这种对一个隐式神经场的积分
    • training: grad net来表征多视角图片
    • testing: integral net来迅速evaluate per-ray integrals
    • https://longtimenohack.com/posts/paper_reading/2021cvpr_lindell_autoint/image-20201216203510708.png

overview

  • 把grad network的parameters reassembled to form integral networks
  • 用一个sampling network 预测ray上的piecewise sections的位置,用于计算定积分
  • https://longtimenohack.com/posts/paper_reading/2021cvpr_lindell_autoint/image-20201216204202712.png

neural volumetric rendering

  • automatic integration支持高效地用closed-form solution来evaluate 定积分
  • 不过volume rendering不能直接应用AutoInt,因为包含嵌套的积分:ray上的radiance加权 累积transmittance 以后的积分
  • 因此,把这个积分近似为piecewise sections来用AutoInt高效地积分
    • \(\boldsymbol{\rm C}(\boldsymbol{\rm r})=\int_{t_n}^{t_f} T(t) \; \cdot \; \sigma(\boldsymbol{\rm r}(t)) \; \cdot \; c(\boldsymbol{\rm r}(t),\boldsymbol{\rm d}) \quad {\rm d}t\)
    • \(T(t)=\exp(-\int_{t_n}^t \sigma(\boldsymbol{\rm r}(s))) \; {\rm d}s\)
  • 近似为
    • \(\tilde{\boldsymbol{\rm C}}(\boldsymbol{\rm r})=\sum_{i=1}^N \overline{\sigma}_i \overline{\boldsymbol{\rm c}}_i \overline{T}_i, \qquad \overline{T}_i=\exp(-\sum_{j=1}^{i-1}\overline{\sigma}_j)\)
    • 其中 \(\overline{\sigma}_i=\delta_i^{-1}\int_{t_i-1}^{t_i}\sigma(t)\;{\rm d}t, \qquad \overline{\boldsymbol{\rm c}}_i = \delta_i^{-1} \int_{t_i-1}^{t_i}\boldsymbol{\rm c}(t)\;{\rm d}t\)
      • 每段的 \(\overline{\sigma}_i\) 由这段上的 \(\sigma(t)\) 积分求出,每段的 \(\overline{\boldsymbol{\rm c}}_i\) 由这段上的 \(\boldsymbol{\rm c}(t)\) 积分求出
        • 这里用AutoInt近似
      • 解释 \(\overline{T}_i=\exp(-\sum_{j=1}^{i-1}\overline{\sigma}_j)\) :每段的累积transimittance \(T(t)\) 则由这段之前的那些段的累加 \(\overline{\sigma}_i\) 的负指数幂近似
        • 这里是真正的数值近似,把一段上的所有T(t)都用这段起始的T(t)近似
        • https://longtimenohack.com/posts/paper_reading/2021cvpr_lindell_autoint/image-20201216214526084.png
  • 由于目前的autoint是两阶段的,训练很慢;本篇用了一个pytorch custom implementation of AutoDiff
Nerf++: Analyzing and improving neural radiance fields
 
目录
https://longtimenohack.com/posts/paper_reading/2020arxiv_zhang_nerf++/nerf++_truck.gifhttps://longtimenohack.com/posts/paper_reading/2020arxiv_zhang_nerf++/nerf++_playground.gif

Motivation

  • 面对unbounded scenes时,用一种球内 / 球外 \(\frac {1}{r}\) 的参数化来更好的处理foreground / background