目录

目录

pixelNeRF: Neural Radiance Fields from One or Few Images


<pixelNeRF> Pixelnerf: Neural radiance fields from one or few images

编者按

  • 和GRF思路类似;每个点除了空间坐标以外,还额外condition一个feature,这个feature来自于把这个点重投影到input view之后索引出的input view feature space下的feature
  • 作者评价的与GRF的区别
    • 本篇在view下操作,而不像GRF那样在canonical space下操作,因此本文方法可以适用于更一般的设定;
    • 本文方法的效果更好(笔者注:从web 视频来看,在少量view输入合成任务下的效果非常好)

Motivation

  • image-conditioned NeRF
    • To overcome the NeRF representation’s inability to share knowledge between scene

    • 为了克服NeRF这样的表达不能在scene与scene之间保留/共享知识的问题(NeRF每次都要train from scratch)
    • condition a NeRF on spatial image features
  • 在训练时不需要一个一致的标准正视图坐标系https://longtimenohack.com/posts/paper_reading/2021cvpr_yu_pixelnerf/image-20201207190826404.png

Main components

  • 全卷积图像encoder E
    • 把输入图像encode进入一个pixel aligned 特征grid
  • NeRF 网络 f
    • 给定一个空间位置、encoded feature(位于重投影后的在图片上的坐标)
    • 输出color + density
  • https://longtimenohack.com/posts/paper_reading/2021cvpr_yu_pixelnerf/image-20201207191400152.png

multi-view aggregation 方式

  • https://longtimenohack.com/posts/paper_reading/2021cvpr_yu_pixelnerf/image-20201221092641965.png
  • 在任意一个query point,对任意一个view,把query point $\boldsymbol{\rm x}, \boldsymbol{\rm d}$ 变换到input view space下
    $\boldsymbol{\rm x}^{(i)}=\boldsymbol{\rm P}^{(i)}\boldsymbol{\rm x},\quad \boldsymbol{\rm d}^{(i)}=\boldsymbol{\rm R}^{(i)}\boldsymbol{\rm d}$
  • 在任意一个query point,对任意一个view,从投影后的图像位置的feature + position embedding + view direction embedding 计算中间变量
    $\boldsymbol{\rm V}^{(i)}=f_1(\gamma(\boldsymbol{\rm x}^{(i)}), \boldsymbol{\rm d}^{(i)};\boldsymbol{\rm W}(\pi(\boldsymbol{\rm x}^{(i)})))$
  • 在任意一个query point,对于所有view,把所有中间变量过average pooling layer $\psi$ 后再过一个网络渲染出 $(\sigma, \boldsymbol{\rm c})$
    $(\sigma, \boldsymbol{\rm c})=f_2(\psi(\boldsymbol{\rm V}^{(1)},\ldots,\boldsymbol{\rm V}^{(n)}))$
  • single view就是直接 $(\sigma, \boldsymbol{\rm c})=f(\gamma(\boldsymbol{\rm x}),\boldsymbol{\rm d};\boldsymbol{\rm W}(\pi(\boldsymbol{\rm x})))$