鱼羊发自凹非寺
量子位报道公众号 QbitAI
这般丝滑的美食展示,是否让跟随镜头移动的你食指大动?
再看这放大镜里流畅变化的弹簧,你敢相信,这完全是用静态图像合成的吗?
没错,这样的动图并非截自视频,而是来自 AI 的合成大法。
甚至只需手机随手拍摄的十几张 2D 照片,就能实时渲染生成。
比起大名鼎鼎的谷歌前辈 NeRF,这只名为 NeX 的 AI,能直接把每秒渲染帧数从 0.02 帧提升到 60 帧。
也就是说,渲染速度能提升 3 个数量级。
细节之处,也更加接近真实效果。
这项已经入选 CVPR 2021 Oral 的研究,是怎么做到的?
像素参数与基函数结合
多平面图像(MPI)视图合成技术,使得不用 3D 建模,只用少数几张图像还原多视角逼真 3D 效果成为可能。
不过,此前的 MPI 主要采用的是标准 RBGα表示法,简单说就是把图像转换成 RGBα平面,以进行后续的计算。
这样做的局限性在于,其表示出的物体外观仅与漫反射表面有关,与视角无关。
这就极大地限制了 MPI 可以捕捉的物体和场景类型。
为此,来自泰国科学技术研究所 VISTEC 的研究人员提出:将每个像素的参数转化为基函数的系数,进行线性组合,并以此创建与视图相关的效果模型。
就如上图所示,多平面图像中每个像素都由 alpha 透明值、基色 k0 和视图相关的反射系数 k1…kn 组成。
将这些系数和神经网络预测的基函数进行线性组合,就产生了最终的颜色值。
如此一来,像金属勺子在不同视角下的反射效果这样的信息,都能在合成图像中显示出来。
具体到整个 NeX 的结构,对于输入图像,首先根据不同平面深度,对像素坐标(x,y)进行采样,以构建出 MPI 中的每个像素。
然后,把这个数据喂给多层感知机(MLP),得到 alpha 透明度,以及和视图相关的基础系数(k1,k2,…,kn)。
这些系数再与显式的 k0 一起,与另一个 MLP 预测的基函数相乘,生成 RGB 值。
输出图像,如公式 1 所示,为所有平面复合运算的结果。
而在细节效果的提升方面,研究人员人员发现,通过比较渲染图像和真实值之间的差距,对基色 k0 进行优化,就可以得到很好的效果,显著减轻网络压缩和细节重现的负担,减少迭代次数。
研究人员还补充说,NeX 可以被理解成是隐式辐射场函数的离散抽样。
至于实时渲染,论文指出,NeX MPI 中的每一个模型参数都可以转换为图像。而给定预先计算好的图像,就可以在 OpenGL/WebGL 的片段着色器中实现上述公式1,实现捕获场景的实时渲染。
实验结果
有 NeRF 珠玉在前,NeX 具体到数据上,到底有怎样的提升?
在运行时间方面,输入 17 张分辨率为 1008×756 的照片,批量大小为 1 的情况下,使用单个英伟达 V100 训练,NeX 的耗时大概为 18 小时。
使用 WebGL,此场景可以以每秒 60 帧的速度被渲染出来。
而在同一台机器上运行,NeRF 则需要大约 55 秒才能生成一帧。
也就是说,NeX 的渲染速度比 NeRF 要快 1000 倍以上。
与 SRN、LLFF 和 NeRF 相比,在峰值信噪比、结构相似性和图像感知相似度这三个指标上,NeX 都达到了最佳。
而在定性比较中,可以看到,与 NeRF 相比,在颜色均匀的区域,NeX 细节更清晰,噪声更少,更接近真实值。
LLFF 虽然细节表现也很好,但当结果以视频形式呈现时,会产生跳跃和扭曲伪影。
可上手试玩
对了,如果你对 NeX 感兴趣,还可以到项目官网亲自感受一下实时渲染 Demo。
还有手机版和 VR 版哟。
传送门
项目地址:https://nex-mpi.github.io/
论文地址:https://arxiv.org/abs/2103.05606
— 完 —
共有 0 条评论