NeRF:用深度学习完成3D渲染任务的蹿红

在知乎阅读

1 引言

NeRF是2020年ECCV论文。仅仅过去1年,关于NeRF的论文数量已经十分可观。相比于计算机视觉,尤其是相比于基于深度学习的计算机视觉,计算机图形学是比较困难、比较晦涩的。被深度学习席卷的计算机视觉任务非常之多,但被深度学习席卷的计算机图形学任务仍然尚少。

由于NeRF及其众多follow-up工作在图形学中非常重要的3D渲染任务上给出了优秀的结果,可以预见未来用深度学习完成图形学任务的工作会快速增长。今年的GIRAFFE是NeRF的follow-up工作之一,它摘下2021CVPR的最佳论文奖对整个方向的繁荣都起到极积极的推动作用。

本文希望讨论以下问题:

  • NeRF被提出的基础(2 前NeRF时代);
  • NeRF是什么(3 NeRF!);
  • NeRF的代表性follow-up工作(4 后NeRF时代);
  • 包含NeRF的更宽泛的研究方向Neural Rendering的简介(5 不止是NeRF)。

2 前NeRF时代

2.1 传统图形学的渲染

本质上,NeRF做的事情就是用深度学习完成了图形学中的3D渲染任务。那么我们提两个问题。

  • 问题1:3D渲染是要干什么?

    看2个比较官方的定义。

    MIT计算机图形学课程EECS 6.837对渲染(Rendering)的定义:

    “Rendering” refers to the entire process that produces color values for pixels, given a 3D representation of the scene.

    优秀综述论文State of the Art on Neural Rendering对渲染(Rendering)的定义:

    The process of transforming a scene definition including cameras, lights, surface geometry and material into a simulated camera image is known as rendering.

    也就是说,渲染就是用计算机模拟用照相机拍照,它们的结果都是生成一张照片。

    用照相机拍照是一个现实世界的物理过程,主要是光学过程,拍照对象是现实世界中真实的万事万物,形成照片的机制主要就是光经过镜头到传感器被记录下来。
    拍照的物理过程

    而渲染就是用计算机模拟这一过程,拍照对象是已存在的某种三维场景表示(3D representation of the scene),形成照片的机制是图形学研究人员精心设计的算法。

    关键前提:渲染的前提是某种三维场景表示已经存在。渲染一词本身不包办生成三维场景表示,但是的确与三维场景表示的形式息息相关;因此研究渲染的工作通常包含对三维场景表示的研究。

  • 问题2:3D渲染是图形学问题,那么原先大家是用什么传统图形学方法实现3D渲染的呢?

    主要就两种算法:光栅化(rasterization),光线追踪(ray tracing);都是对照相机拍照的光学过程进行数学物理建模来实现的。
    传统渲染

    传统渲染的详细原理参阅此教材

    光栅化是一种前馈过程,几何体被转换为图像域,是上世纪比较早的算法。光线追踪则是将光线从图像像素向后投射到虚拟三维场景中,并通过从与几何体的交点递归投射新光线来模拟反射和折射,有全局光照的优势(能模拟光线的多次反射或折射)。

    当下,关于传统图形学的渲染算法的少量学术研究应该主要在搞优化加速,怎么用GPU实时渲染更复杂的场景之类的事儿。而在工业界,不少游戏重度依赖渲染技术,所以应该有不少游戏公司在研究更逼真、更快速、更省算力的渲染算法。去年虚拟引擎出的新款“虚拟引擎5”效果很是震撼,光照、纹理、流体的实时渲染模拟都逼真到了前所未有的新高度,可以看下虚拟引擎官方的宣传视频,真的很不错。🤠
    在这里插入图片描述

2.2 神经网络侵略3D渲染任务:NeRF呼之欲出

隐式场景表示(implicit scene representation)

基于深度学习的渲染的先驱是使用神经网络隐式表示三维场景。 许多3D-aware的图像生成方法使用体素、网格、点云等形式表示三维场景,通常基于卷积架构。 但在 CVPR 2019 上,开始出现使用神经网络拟合标量函数来表示三维场景的工作。

DeepSDF

2019年CVPR的DeepSDF或许是最接近NeRF的前驱工作了。SDF是Signed Distance Function的缩写。DeepSDF通过回归(regress)一个分布来表达三维表面的。如下图所示,SDF>0的地方,表示该点在三维表面外面;SDF<0的地方,表示该点在三维表面里面。回归这一分布的神经网络是多层感知机(Multi-Layer Perceptron,MLP),非常简单原始的神经网络结构。
DeepSDF
NeRF比DeepSDF进步的地方就在于,NeRF用RGBσ代替了SDF,所以除了能推理一个点是否在物体表面,还能推理RGB颜色和透明度,且颜色是view-dependent的(观察视角不同,同一物点的颜色不同),从而实现功能更强大的渲染。

3 NeRF!

建议前往NeRF项目网站查看视频效果图。

2020年ECCV会议 NeRF论文效果图

3.1 Radiance Fields(RF)

NeRF是Neural Radiance Fields的缩写。其中的Radiance Fields是指一个函数、或者说映射 g θ g_\theta gθ
( σ , c ) = g θ ( x , d ) (σ,\bold{c})=g_θ (\bold{x},\bold{d}) (σ,c)=gθ(x,d)
映射的输入是 x \bold{x} x d \bold{d} d x ∈ R 3 \bold{x}∈\mathbb{R}^3 x

  • 27
    点赞
  • 133
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值