『精华文稿』基于NeRF的三维内容生成

分享嘉宾 | 张凯

文稿整理 | 谷溢


第一讲讲座涉及的内容比较多, 包含了以下几篇工作:

Papers and resources

  • Mildenhall et al.ECCV 2020. NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis

  • Zhang et al.ArXiv 2020. NeRF++: Analyzing and Improving Neural Radiance Fields

  • Barron et al.CVPR 2021.Mip-NeRF: A Multiscale Representation for Anti Aliasing Neural Radiance Fields

  • Zhang et al.CVPR 2022.IRON: Inverse Rendering by Optimizing Neural SDFs and Materials from Photometric lmages

  • Zhang et al. ECCV 2022.ARF: Artistic Radiance Fields

  • Awesome NeRF: https://github.com/y /awesome-NeRF

若能做好三维内容生成,我们可以做许多酷炫很有意义的事情,具体可以观看公开课的demo。

那么如何产生这些三维内容呢?

以往的方法会需要一些专业人员通过专业软件进行一系列的创作,比如 Blender,这个软件非常强大,在创作好3d内容之后,可以对给定视角进行渲染,当然缺点就是创作耗时且复杂。

所以能不能把这样的过程做的尽可能的自动化,减少开销,并且做到尽可能的真实?这是我们想要解决的主要问题。

基于图像的三维内容生成就是致力于此。

(图1 逆渲染过程)

可以看到,逆渲染的过程就是从图像获取三维内容的过程。在有了三维内容之后,我们就可以渲染其他视角的图像,甚至可以对三维内容进行编辑。这是非常 promising 的。

NeRF的诞生,给了我们足够大的想象空间去做这件事。

关于 NeRF 的介绍和教程已经有很多很多了,初学者我们建议大家将 NeRF 原文和 NeRF++ 一起看,这里我们只分析 NeRF 为什么会如此成功:

1、Soft Geometry

当你训练好一个 NeRF 时,你会发现你只是知道场景或者物体大概的几何信息,而不是传统意义上十分精确的几何信息。这个几何信息是随着训练过程,一点一点得到的,相比传统的渲染方法,在几何复杂的场景相对容易失效,NeRF 并不依赖于精确的几何信息,这给了我们很大的想象空间。如果你接触多一些 NeRF 相关的文章后你会发现,有些工作甚至想用 NeRF 来取代点云地图。当然你也要区别一些概念,什么是几何信息以及什么是显示表达,在基础部分我们不细致探讨这些概念。

2、Fourier features fixes the spectral bias of MLPs

很早就有相关内容的文章,神经网络更倾向于学习信号中低频的内容,这使得没有 Fourier features 的 NeRF 的渲染结果十分模糊,在这方面有两篇经典的文章几乎同时提出,用来学习高频信息,分别是 SIREN 和 Fourier features. 后续也有许多改进但是不离本质,只是对同一问题的不同方法而已。

3、NeRF 独特的网络结构以及很多特有的性质。

首先说性质,因为是函数,所以连续。因为是用网络参数来编码场景,所以紧致。NeRF++ 也提出了一个很有意思的问题,就是为什么 NeRF 能克服 SHAPE-RADIANCE AMBIGUITY。这个问题的意思是,为什么 NeRF 可以很好的泛化到新的视角,理论上存在这样的解使得 NeRF 得到的模型只对训练视角表现好,在新视角上的表现很差,即过拟合,这样的解就存在形状和辐射场的奇异性。当然解释是 NeRF 特有的网络结构具有一定正则化能力,使其避免收敛到更为复杂的解空间上面。

(图2)

至此,我们就对 NeRF 有了一个概括性的分析。

另外一个方面许多同学问的比较多的就是,怎样做 NeRF 相关的 research,接着张博的报告,简单为大家分析一下。

其实 NeRF 并不难学,但是需要大家有一定 3D 视觉的基础。其次就是发现问题的洞察力,你会发现公开课的几讲嘉宾都是找到了一个清晰的问题,从而发了很好的文章。NeRF++ 一方面分析了 NeRF 为什么成功,另一方面找到了一个 NeRF 没有解决的问题,那就是拍摄方式的问题。

初学者做 NeRF 一定要搞清楚我们说的拍摄方式是指什么:

(图3 拍摄方式)

图3为 Peter Hedman 博士论文插图。原版 NeRF 只用了 Forward-facing 和 360 outward-facing 两种方式拍摄,因此留给张博的机会来了。张博在剩下两种拍摄方式种选择了 360 Inward-facing 做了自己的研究课题,于是诞生了 NeRF++。

其实就是一种很简单的参数化方式,将“无限远”的点变成 computable 的点,如果你熟悉 NeRF 的话你会发现这是和 NDC 坐标参数化类似的方法,但是他非常有效。重点在于这是一个明确的问题。

另一个问题我们用 Mip-NeRF 来介绍。Mip-NeRF 是 ICCV 2021 Best Paper Honorable Mention 获得者,解决的是一个 Anti-Aliasing,也就是我们常说的抗锯齿问题

举个例子就是,你把一张图像一直放大就会发现大部分边缘和纹理丰富的地方会出现锯齿状,对于NeRF 而言,训练的分辨率都是一样的,测试也是一样的,如果不一样呢?此时NeRF 渲染的结果会出现严重的锯齿。

(图4 不同分辨率测试结果对比)

比如这张图第一行,用相同分辨率训练和测试,NeRF 的效果不会有任何异常。但是到了第二行就出现问题了,如果测试的分辨率降低,会出现明显的锯齿

一个简单的方法是使用多分辨率图像进行训练,其实就是对空间进行不同频率的采样,但是结果还是不够好,并且单分辨率的结果会下降,这样的取舍显然是不划算的。那么问题就来了,是否可以使用单分辨率训练,在任意分辨率下推理都能得到理想的结果呢。Mip-NeRF 就是解决这一问题的。

Mip-NeRF 其实对于新手来说并不是很友好,方法可能不是那么好懂,但是我们希望借这篇文章为大家来介绍如何找问题,如何定义问题。至少在我接触 NeRF 是时候,我没想过用其他分辨率去合成新视角下的图像。

对 Mip-NeRF 能看懂的同学,建议立刻追 Mip-NeRF 360 (CVPR 2022). 就像追小说电视剧一样,你会发现许多有意思的故事。

张博在最后讲解了 IRON 和 ARF,ARF 是刚刚中的 ECCV 2022,目前 arxiv 已经可以看到,Meta 也在近期发表了一篇非常类似的工作(SNeRF: Stylized Neural Implicit Representations for 3D Scenes),感兴趣的大家可以自行浏览。可以看到,editing 是兵家必争之地了。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
项目介绍 基于NeRF进行手机拍摄照片的三维重建python源码.zip 该资源内项目源码是个人的毕设,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到94.5分,放心下载使用! 该资源适合计算机相关专业(如人工智能、通信工程、自动化、软件工程等)的在校学生、老师或者企业员工下载,适合小白学习或者实际项目借鉴参考! 当然也可作为毕业设计、课程设计、课程作业、项目初期立项演示等。如果基础还行,可以在此代码基础之上做改动以实现更多功能。 训练的准备工作 自建数据集 拍摄的物体图片压缩包 https://pan.baidu.com/s/13DWlJgmLqqrlGUWiJMqRYw?pwd=kp7b 注意解压后所有图片放在 "./data/COLMAP_test/images/" 路径下 生成位姿和点云 ``` python imgs2poses.py "./data/COLMAP_test" ``` Install requirements: ``` pip install -r requirements.txt ``` 更改配置文件 打开 ./configs/COLMAP_test.txt 进行更改, 由于使用的是自建数据集,因此需将`dataset_type` 设置为 `llff`. 训练 ``` python run_nerf.py --config configs/COLMAP_test.txt ``` It will create an experiment directory in `./logs`, and store the checkpoints and rendering examples there. 测试 Once you have the experiment directory (downloaded or trained on your own) in `./logs`, - to render a video: ``` python run_nerf.py --config configs/COLMAP_test.txt --render_only ``` The video would be stored in the experiment directory.

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值