IBRNet通过插值一个稀疏的附近视图集来合成复杂场景的新视图,论文方法核心是一个网络架构,它包括一个多层感知器和一个ray transformer
估计连续5D位置(三维空间位置和2D观看方向)的辐射和体积密度,从多个源视图动态绘制外观信息。通过在渲染时绘制源视图,我们的方法又回到了基于图像的渲染(IBR)上的经典工作,并允许我们渲染高分辨率的图像
IBR方法通常通过扭曲、重采样和/或将源视图混合到目标视点来操作。这种方法可以允许高分辨率的渲染,但通常需要非常密集的输入视图或显式的代理几何图形,这很难高质量地估计,从而导致渲染中的伪影
尽管像NeRF这样的神经场景表示可以忠实而紧凑地表示场景,但它们通常需要对每个新场景进行漫长的优化过程,才能合成该场景的任何新视图
论文利用IBR和NeRF的想法成为一种新的基于学习的方法,该方法从多个源视图动态生成一个连续的场景辐射场,以呈现新的视图.我们学习了一个通用的视图插值函数,它在渲染光线时同时执行密度/遮挡/可见性推理和颜色混合。这使得系统能够在没有任何特定于场景的优化或预先计算的代理几何图形的情况下运行
贡献点
为了渲染一个新的目标视图,首先识别一组相邻的源视图,并提取它们的图像特征。2)然后,对于目标视图中的每条射线,使用IBRNet计算沿着射线的一组样本的颜色和密度。具体来说,对于每个样本,从相邻的源视图中聚合其相应的信息(图像颜色、特征和查看方向),以生成其颜色c和密度特征fσ(注意,这些特征还不是标量密度值)。然后,射线变压器应用于射线上所有样本的这些密度特征,以预测标量密度。3)最后,使用体积渲染来沿着光线积累颜色和密度来渲染其颜色,可以用重建图像颜色的l2损失端到端训练。
与试图将整个场景编码为单一网络的神经场景表示不同,论文通过插值附近的源视图来合成新的目标视图,在给定有限的GPU内存,选择少量的源视图作为呈现新视图的“工作集”。为了获得一个有效的工作集,识别空间上接近的候选视图,然后选择N个视图的子集,其查看方向与目标视图最相似
IBRNet通过聚合来自多个源视图的信息并结合沿射线的长程上下文来预测连续5D位置的颜色和密度,是置换不变的permutation-invariant ,并且接受可变数量的源视图
利用源视图的相机参数将x投影到所有源视图中,并通过双线性插值提取投影像素位置的颜色和特征{fi}N i=1,同时考虑x在所有源视图中的观看方向,记为{di}N i=1
观察到表面上的3D点比自由空间中的3D点更可能在多个视图中具有一致的局部外观。因此,推断密度的有效方法是检查给定点的特征{fi}Ni=1之间的一致性,一个可能的实现是类似PointNet的体系结构,它接受多视图特性并使用方差作为全局池操作符。然而,对于存在遮挡的真实表面,这种简单的全局一致性检查可能会错误地失败。相反,我们构建了一个小网络,以实现更好的遮挡推理
利用源视图的相机参数将x投影到所有源视图中,并通过双线性插值提取投影像素位置的颜色和特征{fi}N i=1,然后计算每个元素的平均值μ∈Rd和方差v∈Rd来捕获全局信息,并将每个fi与μ和v连接起来,之后通过一个小型共享MLP,集成局部和全局信息,得到一个多视图感知特征f ’ i和一个权重向量wi∈[0,1],使用MLP映射到密度特征fσ∈Rdσ,不同与PointNet的直接平均或最大池化相比,加权池提高了网络处理闭塞的能力
在获得一个密度特征fσ之后,可以用另一个MLP直接把它变成一个单一的密度σ。然而,这种方法不能预测具有复杂几何形状的新场景的精确密度。这是因为孤立地查看单个点的特征不足以准确预测其密度,并且需要更多的上下文信息——类似于平面扫描立体方法在确定特定像素的深度之前考虑沿着整个光线匹配分数。
引入了一个Ray transformer,使射线上的样本能够在预测它们的密度之前相互关注。Ray transformer由经典转换器的两个核心组件组成:positional encoding和self-attention。给定沿射线的M个样本,Ray transformer将从近到远的样本视为一个序列,并将positional encoding和self-attention应用于密度特征序列(fσ(x1),fσ(xM))。然后根据其参与的特征预测每个样本的最终密度值σ。射线转换器模块允许可变数量的输入,并且仅引入了参数和计算开销的少量增加,同时显著提高了预测密度和最终合成图像的质量
在合成目标视图时,只考虑附近的源视图作为工作集。因此,当沿着平滑的摄像机路径生成视频时,由于摄像机移动时工作集的突然变化,可能会受到暂时不一致的密度预测和闪烁伪像的影响。
采用pooling technique,用加权的平均值μw和方差vw代替{fi}Ni=1的平均值μ和方差v,加权以便减少工作集中最远图像的影响。权重函数定义如下
其中s是可学习的参数。pooling technique平滑了相邻帧之间的全局特征的变化,通过向上加权工作集中的较近视图和向下加权较远的视图来产生更合理的全局特征。pooling technique凭经验提高了合成的稳定性和质量。
通过预测源视图中对应于5D点的图像颜色{Ci}Ni=1的混合权重来获得该点的颜色。与使用绝对观察方向的NeRF不同,相对于源视图的观察方向,即d和di之间的差异。d和di之间的差异越小,通常意味着目标视图处的颜色与视图I处的相应颜色相似的机会越大,反之亦然。
为了预测每个源颜色Ci的混合权重,将特征fi’与∆di=d−di连接起来,并将每个连接的特征输入到一个小网络中,从而产生一个混合权重wic。这个5D位置的最终颜色是通过soft-argmax运算符c = Ni = 1[Ci exp(wic)/Nj = 1 exp(wjc)]混合的。
当然,也可以用直接回归得到c,但是这样会导致性能下降
为了渲染穿过场景的光线r的颜色,我们首先查询光线上M个样本的颜色和密度,然后执行经典的体积渲染,使用数值求积来近似积分
从1到M的样本被排序为具有递增的深度值。ck和σk分别表示射线上第k个样本的颜色和密度
拥有连续的RGB-σ预测的一个好处是,它允许在空间中进行更具适应性和有效的采样。遵循NeRF,执行分层体积采样并同时优化两个网络,一个粗IBRNet和一个细IBRNet,具有相同的网络架构。在粗尺度下,以等距视差(深度倒数)对一组Mc位置(粗位置)进行采样,这导致像素空间中相邻点投影之间的间隔相等。给定粗略网络的预测,然后沿着每条射线对点进行更明智的采样,其中样本更可能位于用于渲染的相关区域。对额外的Mf位置进行采样,并使用所有Mc + Mf位置来呈现如NeRF 中的精细结果。在网络中,将Mc和Mf都设置为64。
使用粗略和精细样本集来渲染每条光线的颜色,并最小化渲染颜色和用于训练的真实像素颜色之间的均方误差
其中R是每个训练批次中的射线集。这允许我们同时训练特征提取网络以及粗略和精细IBRNet
给定一个场景的多个视图,通过首先随机选择一个目标视图,然后采样N个附近的视图作为源视图,来构建源视图和目标视图的训练对。为了选择源视图,首先识别nN个附近视图的池(n是从[1,3]中均匀随机抽样的),然后从池中随机抽样N个视图。这种采样策略在训练期间模拟了各种视图密度,因此有助于网络在视图密度之间进行归纳。在训练期间,从[8,12]中均匀随机地抽取N个样本。
使用类似U-Net的架构实现图像特征提取网络,其中ResNet34在层3之后被截断作为编码器,并且两个附加的具有卷积和跳跃连接的上采样层作为解码器。在最终解码层中解码两组特征图,分别用作粗略和精细IBRNet的输入。粗略和精细特征图都具有d = 32维,并且是原始图像大小的1/4倍。对于IBRNet,密度特征fσ的维数是16,并且使用4个头用于射线转换器中的自关注模块