Introduction

该方法专注于NeRF中需要消耗巨大资源的渲染过程,采用NeRF的生成器往往需要昂贵的时间和硬件成本来进行训练,因此该论文使用了隐式曲面来辅助在光线上的采样,从而在减少采样点的数量的同时,消除了蒙特卡洛模拟引入的随机噪声,使生成器可以学到更细致高质量的结果

Approach

该方法与其他方法几乎没有区别,将三维坐标点xx、方向dd和latent code zz输入网络Φ\Phi,然后输出对应的颜色和密度,再使用对抗损失进行训练

唯一不同的地方就是对于点的采样,并不像其他方法一样随机采样或者在光线上均匀采样,而是训练了一个网络M\mathcal M,生成一个标量值ss

M:xR3sR\mathcal M:x\in \mathbb R^3\rightarrow s\in\mathbb R

通过此网络获得NN个不同等级的等值面{Si}\{\mathcal S_i \}

Si={xM(x)=li}\mathcal S_i=\{x|\mathcal M(x)=l_i\}

而我们在渲染时仅对这些等值面与光线的交点进行采样,在计算上也就是采样M(x)=l\mathcal M(x)=l的点,对于光线r={o+td,t[tn,tf]}r=\{o+td,t\in[t_n,t_f]\},采样的点集为

{xi}={xx=o+td,x{Si},t[tn,tf]}\{x_i\}=\{x|x=o+td,x\in\{\mathcal S_i\},t\in[t_n,t_f]\}

为了可以计算梯度进行反向传播,使用以下线性插值的方法计算交点,对与交点附近的两个点xax_axbx_b,以及他们对应的等级sas_asbs_b,使用下面公式计算xix_i

xi=lisasbsaxa+sblisbsaxax_i=\frac{l_i-s_a}{s_b-s_a}x_a+\frac{s_b-l_i}{s_b-s_a}x_a

训练策略与其他方法一致,判别器除了判别真假还预测pose,最后计算对抗损失与姿势损失进行训练

Experiments

生成的结果如上,与其他方法结果和分数上的对比如下


分数比之前方法要高,但是低于同期的StyleSDF和eg3d

最主要的是等值面的效果,该论文给出了实验结果

训练前后等值面的变化,训练之后对等值面进行取样,结果如下

结论

StyleSDF目前还没有训练出很好的结果,我使用eg3d中的方法,将低分辨率图片上采样和高分辨率图片拼起来一起输入到判别器中,但是结果不仅训不好,而且一致性还是不高,究其原因,其实是低分辨率图像的分辨率有点过于低了。因为虽然一致性还是不好,而且还是带有StyleGAN的特点,但是结果的背景和人像都与低分辨率图像更加一致了,然而因为低分辨率图像的质量实在太低,所以导致与低分图像高度对齐的最终结果也无法获得很高的质量

所以最终还是回到了要提高第一阶段渲染图像的质量,这篇论文中的方法感觉可以一试,之前训不动的128分辨率模型应该可以减少一部分参数,而且SDF中训了一个d(x)d(x)表示xx与表面的距离,我们可以尝试只采样d(x)d(x)为整数的点,目前感觉技术上能实现,可以尝试一下

关于将第一阶段的低分辨率图像换成triplane的想法,目前除了将eg3d中的StyleGAN直接拿过来外,没有更好的想法,而且上面结论说明最终结果的质量与低分辨率图像的质量是相关的,所以如果直接搬过来效果估计会很好,但是基本都归功于eg3d,并不能做出新的贡献