NeRF综述

news2024/10/1 17:36:30

文章目录

  • 《Nerf: Neural radiance field in 3d vision, a comprehensive review 》
    • 一、数据集:
    • 二、基于方法的分类(Method-based Taxonomy)
    • 三、基于应用的分类(Application-based Taxonomy)
    • 四、未来展望


《Nerf: Neural radiance field in 3d vision, a comprehensive review 》

Author: University of Waterloo,

一、数据集:

\quad Realistic Synthetic 360°:从Blender软件中制作的,共8个场景,well bounded,聚焦于单个对象。视角方面,6个场景从上半球进行采样,2个场景从整个球体进行采样。
\quad LLFF: consists of 24 real-life scenes captured from handheld cellphone cameras。其中图像的pose使用COLMAP制作。视角方面,forward facing towards the central object。
\quad DTU:由一个工业机器人拍摄的,它上面绑定了一个相机和一个结构更扫描器,分别用来拍摄图像和密集点云。相机内参和pose用matlab的工具箱制作。视角方面,在以目标为中心的球体上进行采样。
\quad ScanNet:large-scale (2.5 million views of indoor scenes) real-life RGB-D数据集,语义标签非常丰富,**适用于需要利用语义信息的模型和任务,**比如场景编辑、场景分割和语义视图合成。
\quad ShapeNet:一个大规模的合成数据集,包含了3135个类别的CAD 模型,它的12个普通目标类别的子集最常被用到。当基于目标的语义标签是某个NeRF模型的特定部分时,这个数据集有时会被用到。

\quad 除了上面几个常用的数据集外,下面还有一些针对于特定场景下的数据集。

1)Building-scale Dataset

  • Tanks and Temples dataset
  • Matterport-3D dataset
  • Replica dataset

2)Large-Scale Urban Datasets:流行的自动驾驶基准数据集有多种数据模式,如图像、深度图、激光雷达点云、姿态和语义图,这些数据模式可能适用于某些希望针对城市场景的NeRF模型。

  • KITTI:原始的深度预测数据集对NeRF训练有挑战,因为它的摄像机覆盖范围相对于NeRF数据集相对稀疏,在设计模型时需要考虑稀疏视图。最近的Kitti-360数据集是对它的一个扩展,甚至包括一个NVS基准。
  • Waymo Open Dataset

3)Human Avatar/Face Dataset

  • Nerfies 和 HyperNerf:聚焦于人脸的单摄像机数据集。前者包含静止和动态的人类,后者关注拓扑变化,比如人类打开、关闭嘴巴或眼睛等。
  • ZJU-MOCap LightStage dataset:由9个动态人体序列组成的运动数据集。
  • NeuMan dataset:由6个视频组成,每10到20秒长,由手机摄像头捕捉到,跟随一个行走的人类受试者执行额外的简单动作,如旋转或挥手。
  • CMU Panoptic dataset

二、基于方法的分类(Method-based Taxonomy)

\quad 作者根据目前NeRF的方法,将所有文章分为了如下7大类。
在这里插入图片描述

\quad 1)Improvements in the Quality of Synthesized Views and Learned Geometry(这一章的工作都是提升NVS图像质量的)

\quad a) Better View Synthesis

\quad Mip-NeRF(2021.05)使用 cone tracing 而不是NeRF中的ray tracing,mipNeRF模型在本质上是多尺度的,并自动执行anti-aliasing。Mip-NeRF 360 是一项极具影响力的工作,它将Mip-NeRF直接扩展到 unbounded 场景。它对Mip-NeRF做出的改由有三点:①使用NeRF MLP来监督一个 proposal MLP;②这个proposal MLP只预测体积密度(而不是颜色),用于寻找适当的采样间隔。并且,针对Mip-NeRF中的高斯模型构造了一种新的场景参数化方法;③引入了一种新的正则化方法,防止漂浮几何伪影和背景坍塌。
\quad Ref-NeRF(2021.12)建立在mip-NeRF的基础上,被设计用于更好地建模反射表面这个方法是一个引入图形学知识比较多的方法。它根据局部法向量的观测方向的反射参数化NeRF。他们将density MLP(第一个MLP)修改为一个无方向的MLP,不仅输出 密度方向MLP的输入特征向量,而且还输出漫射颜色(diffuse color)、镜面颜色(specular color)、粗糙度(roughness)和表面法线(surface normal)。漫射颜色和镜面颜色相乘,加到镜面颜色(方向MLP的输出),得到最终的颜色。此外,他们使用从由粗糙度参数化的球面高斯分布中采样的向量的球面谐波来参数化方向向量。Ref-NeRF在反射表面上表现特别好,能够准确地建模镜面反射和高光图像。

\quad Reg-NeRF(2021.12)的目的是解决NeRF训练时稀疏输入的问题,大多数之前的方法通过使用预训练网络的图像特征作为调节NeRF体积渲染的先验,与此不同,RegNeRF采用了额外的深度和颜色正则化

\quad b) Depth Supervision and Point Cloud

\quad 通过使用从LiDAR或SfM获得的点云来监督深度,这些模型的收敛速度更快,最终质量更高,并且比baseline NeRF模型需要更少的训练视图。**这些模型大多是 few-shot / sparse views NeRF。**在本节的最后,介绍了其他几何改进的方法。

\quad DS-NeRF(2021.07),Depth-Supervised NeRF,除了使用颜色监督之外,还使用了用COLMAP [2]从训练图像中提取的稀疏点云来进行深度监督。在这个文章中,深度被建模为由稀疏点云记录的一个正态分布。增加了一个KL散度项来最小化ray分布和这个噪声深度分布的散度。

\quad 与此同时,另一项有影响力的工作 dense_depth_priors_nerf(2021.04) 先使用COLMAP提取稀疏点云,并由一个Depth Completion Network来处理生成深度和不确定性图。除了标准的volumetric loss外,作者还引入了一种基于预测的深度和不确定性的depth loss。这个工作的效果很好,比DS-NeRF、NerfingMVS的效果好很多。

\quad PointNeRF(2022年1月)使用特征点云作为体素渲染的中间步骤。point-nerf也可以选择 per-scene optimization 和 no per-scene optimization 两种模式,但它的泛化效果不好,还没有MVSNeRF、IBRNet的好。

\quad 2)Few Shot / Sparse Training View NeRF

\quad 原始NeRF需要大量的训练图像,它的一个常见失败案例是:训练样本太少或样本在姿态上变化不够。这种情况下原始NeRF对个别视图过拟合,并对场景几何不敏感。然而,a family of NeRF methods利用预先训练的图像特征提取网络(一般是CNN),以大大降低NeRF训练所需的样本数量。一些作者称这样的过程为“image feature conditioning”(其实做sparse views的工作大多同时做generalization),一些工作(如pointnerf)使用depth/3D geometry监督也可以实现这样的效果。增加深度或其他正则化的方法也可以降低对训练样本数量的需求。

\quad 这个系列的工作有:PixelNeRF(2020.12);MVSNeRF(2021.03);DietNeRF(2021.06,引入CLIP并提出语义一致性损失);NeuRay(2021.07);GeoNeRF(2021.11);LOLNeRF(2021.11,few-shot 人脸视图合成,类似于 π \pi π-GAN,但是使用Generative Latent Optimization而不是对抗学习);NeRFusion(2022.03,相当于MVVSNeRF+RNN);SinNeRF(2022.04)尝试通过整合多种技术从单个图像中进行NeRF场景重建,它利用 image warping 和相机内参和pose来制作 reference depth,以对 unseen views进行监督,还利用一个CNN 判别器来提供patch-wise的纹理监督,还使用预训练的ViT从参考补丁和unseen补丁中提取全局图像特征,并将其与L2损失项和全局结构先验进行比较。GeoAug(2022.10)用new noisy camera poses渲染新的训练图像,利用数据增强的方式来解决few-shot问题。

\quad 3)Generative and Conditional Models

\quad 生成式NeRF模型通常使用二维生成模型来创建“场景”的图像,然后用于训练NeRF模型。

\quad 4)Unbounded Scene and Scene Composition

\quad 将NeRF应用于室外场景,一个需求就是将前景与背景分离。在室外场景下还有另外一个挑战,那就是image-by-image的外貌和光线变化。为了解决这个问题,许多方法采用 image-by-image的外貌编码来制作latent condition。

\quad 场景耦合这个方向,一般都是用两个MLP,一个用于前景,一个用于背景。这两个MLP中,为了保证不同视图下的区别,可能会用condition NeRF。这种分别表征的架构,有可借鉴之处,或许可以把这种架构用在泛化性NeRF中,用来表征不变和变的组件。

\quad NeRF-W(2020.08)这篇论文解决了传统NeRF的两个问题。由于光照条件的变化,同一个场景的 real-life photographs 可能包含图片之间的外貌变化,这就像每张图片中的transient objects是不同的那样。基于这样的观点,在NeRF-W中,对于一个场景的所有照片(视图),密度应当都是一样的,所以 density MLP都是一样的但是,不同视图下的外貌是不一样的。所以NeRF-W制作了一个per-image appearance embedding作为 color MLP的condition,网络架构如下图所示。在这样的结构下,NeRF-W在速度上并没有提升,但是在这个数据集上的效果却提升很大。
在这里插入图片描述
\quad NeRF++(2020.10)是被设计用来在unbounded scene中进行NVS的。它用一个sphere将场景分开,内部包含所有的前景目标,外部包含背景,内部和外部分别用一个MLP进行训练。此外,这篇文章更有意思的是,对NeRF模型如何强大进行了评价,即对NeRF模型如何解决shape-radiance ambiguitiy进行了评价。这个ambiguity简单来说就是sigma和rgb重点学哪一个的问题,即在给定训练数据下,网络在拟合相对准确场景view-dependent appearance的同时,可能其对场景几何预测不准确。根据这篇文章的观点,错误的密度配置往往会导致具有高频成分的颜色配置与视角有关。然而,通过它的构造(使用低频分量和在MLP的后期阶段引入视角),NeRF模型倾向于产生更平滑的颜色配置。NeRF++的分析中,指出NeRF建模的其实是一个球面,它将外貌拟合为球面上的surface light field。具体细节看原文,值得一看。

\quad GIRAFFE(2020.11)与NeRF-W的方式很像,基于GRAF,使用 latent code,用两个MLP分割前景和背景用于场景耦合。

\quad NeRFReN(2021.11)将辐射场分为transmitted 和reflected两部分,解决了NVS的NeRF的reflective surfaces问题

\quad 5)Others Neural Volume Rendering

\quad 其他神经体素渲染的方法,主要是用Transformer来代替,代表性的文章有IBRNet(2021.02)、SRT(2021.11)等。

三、基于应用的分类(Application-based Taxonomy)

\quad 作者根据应用场景,将NeRF的工作分为以下几类:
在这里插入图片描述

\quad 1)urban场景
\quad 随着对自动驾驶和城市摄影测量(Photogrammetry,摄影测量是通过捕捉并拼接图像信息来创建物理世界的数字模型的过程)的兴趣提升,最近来看,urban NeRF模型在street-level和remote-level的发展上已经激增。在这个过程中,urban场景的以下几个挑战逐渐突显:①户外场景是unbounded;②相机的pose通常缺乏多样性;③需要大规模的场景。

\quad Urban Radiance Fields(2021.11)在激光雷达的深度损失的辅助下,进行urban场景的重建。Block-NeRFs(2022.02)从280万张street-level街景图片进行城市级别的重建,这样的大规模户外数据集带来了瞬态外观和物体等问题。 每个单独的BlockNeRF都是建立在mip-NeRF 上,使用其IPE和NeRF-W,以及使用其外观latent code优化。作者在NeRF训练中使用语义分割来掩盖行人和汽车等瞬态物体。A visibility MLP也被平行训练,用于丢弃能见度低的block-nerf

\quad 2)Human Faces and Avatars, and Articulated Objects
\quad 这一个方向也有很多文章,以后有兴趣再看。

\quad 3)Image Processing
\quad DeblurNeRF(2021.11)、NeRF-SR(2021.12)、NaN(2022.04)、RawNeRF(2022)等文章关注low-level CV的一些方向,比如denoising, deblurring,super-resolution等,目的是从低质量的训练图像合成高质量的视图。

\quad 4)Surface Reconstruction
\quad NeRF模型的scene geometry是隐式的,并且隐藏在神经网络中。然而,对于某些应用而言,更显式的表示是需要的,如三维网格。对于baseline NeRF,可以通过评估和阈值化密度MLP来提取一个粗略的几何形状。一些典型的工作有:Neural Surface (NeuS)(2021.06),SparseNeus(2022.06)等。

四、未来展望

\quad 在过去的两年中,NeRF模型取得了巨大的进展,并解决了基线NeRF的一些缺点。未来,NeRF有一些几个方向需要去努力。

\quad 1)提升速度

\quad 2)关于质量
\quad **一种已被证明有效的方法是:使用per-image的transient latent code和appearance code,**像在NeRF-W、GARF中。这些code允许NeRF模型控制每幅图像的照明和颜色变化,以及场景内容的小变化。

\quad 3)关于sparse views
\quad sparse views 和 few-shot 的NeRF模型通常使用依赖于2D/3D特征提取技术,依赖于预训练的CNN。一些模型还合并了来自SfM的点云数据,以进行额外的监督。目前的这些方法其实已经实现了few-shot(2-10 views)的目标,即使再用更先进的backbone,也只能带来性能上微小的改进。 未来稀疏视图的NVS有以下两个方向需要努力:
\quad 一个方向是:将 sparse view 方法与 fast 方法相结合,以实现在可移动设备上的NeRF模型的快速训练和推理。
\quad 另一个方向是:使用扩散方法和图像-字符串标识符微调实现 single-shot NeRF。未来,将 few-shot NeRF基于文本的扩散模型 进行结合,是一个趋势。

\quad 4)关于应用
\quad NeRF目前有两个可行性的应用:urban环境 或 human avatars 的重建。从密度MLP中提取三维网格、点云或SDF,或者探索更快的NeRF模型,这些方向都是有必要的。diffusion-guided human avatar generation也是一个热门方向。

\quad 2D扩散模型最近使具有场景和对象编辑功能的text-to-3d NeRF模型的开发成为可能,这允许从文本提示中生成3D网格和纹理,在3D图形学中具有巨大的应用潜力。diffusion-powered NeRF目前仍处于起步阶段,在不久的将来这一领域会取得重大进展。基于NeRF的生成式3D模型 或 具有显式/混合场景表示的神经渲染,将对3D图形行业产生重要的影响

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1129066.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

盘点网安最好入手的10大岗位,最高月薪30K!

前段时间,知名机构麦可思研究院发布了《2022年中国本科生就业报告》,其中详细列出近五年的本科绿牌专业,信息安全位列第一。 对于网络安全的发展与就业前景已经说过很多,它是收入较高的岗位之一,在转行领域也占据着热…

番外8.1 Task

---------系统中有两个账号,分别是alex与arod,这两个账号除了支持自己的组,还共同支持一个名为project的组。如这两个账号需要共同拥有/srv/ahome/目录的开发权,且该目录不允许其他账号进入查阅,请问该目录的权限应如何…

动手学深度学习—含并行连结的网络GoogLeNet(代码详解)

目录 1. Inception块3. GoogLeNet模型3. 训练模型 GoogLeNet吸收了NiN中串联网络的思想,并在此基础上做了改进,并且在2014年的ImageNet图像识别挑战赛中获得了不错的效果。 1. Inception块 GoogLeNet论文解决了多大的卷积核最合适的问题。 Inception块…

yolo数据增强,同时旋转txt标签文件

github https://github.com/vkdx/vkdx_cnn-.git YOLO格式txt文件分析 标注好的txt文件中有对应每个标注框的信息,从左到有分别是: class:类别 x_center:标注框中心相对于图像的x坐标 y_center:标注框中心相对于图像的y坐标 w:标…

Day09字符流缓冲流序列化流IO框架

字符流 FileReader(文件字符输入流) 使用文件字符输入流,有啥好处? 读取中文不会出现乱码问题 FileWriter(文件字符输出流) 利用字符流将一个文本文件复制到E:盘下,例如:D:/1.txt复制到E:/2.txt 请使用…

C语言每日一题(17)数组匹配

牛客网 BC156 牛牛的数组匹配 题目描述 描述 牛牛刚学会数组不久,他拿到两个数组 a 和 b,询问 b 的哪一段连续子数组之和与数组 a 之和最接近。 如果有多个子数组之和同样接近,输出起始点最靠左的数组。 输入描述: 第一行输…

如何在不损失质量的情况下调整图像大小

如何在不损失质量的情况下调整图像大小 如果您在线工作,就会知道图像质量对于呈现干净专业的外观有多么重要。 库存图像和免版税图像很容易找到,但是如何在不损失质量的情况下调整图像大小以使其适合您的目的? 无论您是想将图片用于博客文…

【Java变量】 局部变量、成员变量(类变量,实例变量)、方法参数传递机制

个人简介:Java领域新星创作者;阿里云技术博主、星级博主、专家博主;正在Java学习的路上摸爬滚打,记录学习的过程~ 个人主页:.29.的博客 学习社区:进去逛一逛~ 变量 1. 局部变量与成员变量的区别&#xff1a…

小白必看,手把手教你安装Python

目录 一,Python介绍 二,安装 Python 三,各种疑难杂症: 一,Python介绍 Python 是这两年来比较流行的一门编程语言,主要卖点是其相对简单的语法以及丰富的第三方库,下面我来带大家安装、配置 P…

【七】SpringBoot为什么可以打成 jar包启动

SpringBoot为什么可以打成 jar包启动 简介:庆幸的是夜跑的习惯一直都在坚持,正如现在坚持写博客一样。最开始刚接触springboot的时候就觉得很神奇,当时也去研究了一番,今晚夜跑又想起来了这茬事,于是想着应该可以记录一…

Redis数据类型——list类型介绍及基本操作

1.list类型介绍 redis中的list就是一个双向链表的结构 2.list类型数据基本操作

己知一棵有 2011 个结点的树,其叶结点个数为 116,该树对应的二叉树无右孩子的结点个数是

前言 树转二叉树的规则:每个结点左指针指向它的第一个孩子,右指针指向它在树中相邻的右兄弟,即“左孩子右兄弟“。 拓展:树中一个叶子节点在转化为二叉树的时候,如果它有右兄弟,那么它右指针会指向其兄弟节…

【软件安装】Linux系统中安装MySQL数据库服务

这篇文章,主要介绍如何在Linux系统中安装MySQL数据库服务。 目录 一、Linux安装MySQL 1.1、下载MySQL安装包 1.2、解压MySQL安装包 1.3、更改存放目录 1.4、创建用户组和用户 1.5、创建数据目录data 1.6、创建my.cnf配置文件 1.7、初始化数据库 1.8、添加m…

报告从root到sink的clock tree物理长度的脚本

我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧? 拾陆楼知识星球入口 距离clock root物理距离最远的sink未必是latency最大的,但是往往clock path的长度受其影响,比如一些寄存器放在距离clock root很远的channel里,与其balance的reg就需要垫 delay detour buffer,即…

【Maven教程】(九):使用 Maven 进行测试 ~

目录 1️⃣ account-captcha 1.1 account-captcha 1.2 account-captcha 的主代码 1.3 account-captcha的测试代码 2️⃣ maven-surefire-plugin 简介 3️⃣ 跳过测试 4️⃣ 动态指定要运行的测试用例 5️⃣ 包含与排除测试用例 6️⃣ 测试报告 6.1基本的测试报告 6.…

鸿蒙应用开发之环境搭建

一、环境搭建 正所谓“工欲善其事,必先利其器”。在正式学习一门课程之前,我们首先需要做的就是搭建开发环境。首先,我们需要下载DevEco Studio,DevEco Studio支持Windows系统和macOS系统,在开发HarmonyOS应用/服务前…

力扣每日一题64:最小路径和

题目描述: 给定一个包含非负整数的 m x n 网格 grid ,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。 说明:每次只能向下或者向右移动一步。 示例 1: 输入:grid [[1,3,1],[1,5,1],[4,2…

高通Quick Charge快速充电原理分析

1 三段式AC充电器 涓流、恒流、恒压。 2 QC 2.0 2.1 高通Quick Charge 2.0 快速充电原理分析 QC 2.0快速充电需要手机端和充电器都支持才行。 当将充电器端通过数据线连到手机上时,充电器默认的是将D和D-短接的,这样手机端探测到的充电器类型是DCP&#…

【前端】Webpack5中Html和CSS的压缩打包

1.Webpack5简介 1.1.Webpack简介 (1)webpack的发展历程 2012.3—webpack(问世) 2014.2—webpack1 2016.12—webpack2 2017.6—webpack3 2018.2—webpack4 2020.10—webpack5(要求node版本10.13) &a…

iview项目中,radio选中值回显问题

问题描述:iviewvue项目中,数据从路由传参进入编辑页面,页面的radio选中状态首次显示,浏览器刷新后不显示: 1、首次进入: 2、浏览器手动刷新后: 经查,路由传参的值为字符串&#xff…