0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

NeRF入门基础知识详解

新机器视觉 来源:小样本视觉与智能前沿 2024-02-21 14:21 次阅读

NeRF 在2020年ECCV上名声大噪,作为best paper展示作者在网上收罗了NeRF的相关评说,汇总如下,内容可能杂乱,可作为对NeRF初步认识的资料

Vanilla NeRF

什么是NeRF?

NeRF所要做的 task 是 Novel View Synthesis,一般翻译为新视角合成任务

在已知视角下对场景进行一系列的捕获 (包括拍摄到的图像,以及每张图像对应的内外参),合成新视角下的图像

NeRF 不需要中间三维重建的过程,仅根据位姿内参和图像,直接合成新视角下的图像。

NeRF 引入了辐射场的概念,这在图形学中是非常重要的概念。

渲染方程式的定义:

78274acc-d06f-11ee-a297-92fbcf53809c.png

方程表示了空间点$ xin R^3 $在方向 $d in R^3$ 上的辐射$L_o$.

等式右边第一项 表示 x 为光源点时,自身在d方向释放的辐射。

等式右边第二项 表示该点折射在方向d 上的辐射,其中 $Omega$ 为入射方向 $omega_i$的半球集合。

$fr(cdot)$为散射函数,$Li$为从 $omega_i$方向接收到的辐射

辐射和颜色的关系

光就是电磁辐射, 或振荡的电磁场

光又有波长和频率,二者乘积为光速

光的颜色是由频率决定的

大多数光是不可见的,人眼可见的光谱称为可见光谱,对应的频率就是我们认为的颜色

7838c626-d06f-11ee-a297-92fbcf53809c.png

*NeRF表示3D场为可学习的,连续的辐射场 $F_{ heta}$ *

785aed46-d06f-11ee-a297-92fbcf53809c.png

78687114-d06f-11ee-a297-92fbcf53809c.png

788f68fa-d06f-11ee-a297-92fbcf53809c.png

Positional Encoding

deep networks 更倾向于学习低频的函数,实际场景的神经辐射场基本上都是高频的

作者提出了 Positional Encoding (注意这里的 Positional Encoding 和 Transformer 中的 Positional Encoding 很像,但是解决问题是不一样的

78ae858c-d06f-11ee-a297-92fbcf53809c.png

78c41d66-d06f-11ee-a297-92fbcf53809c.png

78dcd55e-d06f-11ee-a297-92fbcf53809c.png

Hierarchical volume sampling

使用体渲染积分遇到的问题:

虽然可以离散的近似计算积分,采样点过多开销过大,采样点过少近似误差有太大。

解决办法:最好尽可能的避免在空缺部分以及被遮挡了的部分进行过多的采样,因为这些部分对最好的颜色贡献是很少的

NeRF 提出分层采样训练的方式,如下图所示:

78faf48a-d06f-11ee-a297-92fbcf53809c.png

使用两个网络同时进行训练 (后称 coarse 和 fine 网络)

coarse 网络输入的点是通过对光线均匀采样得到的

根据 coarse 网络预测的体密度值,对光线的分布进行估计,然后根据估计出的分布进行第二次重要性采样

然后再把所有的采样点 [公式] 一起输入到 fine 网络进行预测。

NeRF 存在的问题

实时性不好

泛化性不强

不能处理动态场景

拍摄方式有限制

参考链接2:https://zhuanlan.zhihu.com/p/466217848

NeRF原理

NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis

NeRF主要功能:使用静态场景下的多个视角的照片(大约几十至上百张),合成出任意新视角的图片。NeRF的算法思路:

Step1 :

使用MLP学习该场景的隐式3D模型表达

790d87ee-d06f-11ee-a297-92fbcf53809c.png

MLP模型示意图。输入一个3d点x和观测方向d的高频编码向量,网络预测该点的密度sigma和颜色c

79259e60-d06f-11ee-a297-92fbcf53809c.png

Step 2:使用体渲染方程将3D场景渲染成图片

图形上的点 P(u,v,1) , 他的像素值 rgb 可以通过对该点P发出的射线上的所有的点 的 c 和体密度 进行积分得到。

794d90d2-d06f-11ee-a297-92fbcf53809c.png

796e151e-d06f-11ee-a297-92fbcf53809c.png

7978ec5a-d06f-11ee-a297-92fbcf53809c.png

-

79802088-d06f-11ee-a297-92fbcf53809c.png

Step 3:训练

从该点发出的射线在世界坐标系中的表示为79907668-d06f-11ee-a297-92fbcf53809c.png

起始点 [公式] 的世界坐标也同样可以由相机的内外参求得

然后在该射线上采样n个采样点。

使用MLP预测这n个点的体密度,和c ,然后使用体渲染方程的离散公式算出该像素点的预测值 rgb。

然后计算预测的颜色值和真实颜色值的L2距离作为loss进行监督训练。

799a631c-d06f-11ee-a297-92fbcf53809c.png

训练集是几十张或者几百张该场景不同相机位姿拍摄的图片

首先使用SFM算法求出所有图片的相机相对世界坐标系的位姿 (R,t)

每张图片的每个像素点都是一个训练样本(u,v) → rgb

以像素点(u,v)为例:

Step 4:观测方向d的作用

一个点的密度密度只能是该点位置x的函数。

但该点的颜色还取决于观测方向(我们观看空间中一个物体的某个点,从光源照射方向观看和从阴影方向观看,它的亮度是不一样的。)

Step 5:Positional encoding

直接让MLP学习映射很难,将x,d 编码为高维向量后学习会更加容易。

因此使用如下高频函数进行编码。

79adc11e-d06f-11ee-a297-92fbcf53809c.png

step 6:多层级采样策略

均匀采样方式采样射线上64个点

这64点的密度值估计出密度分布函数。

再使用逆采样算法集中对高密度的区域采样128点。

使用该策略可以提高采样的效率,不需要对射线上所有区域都进行密集的采样

NeRF加速

FastNeRF: High-Fidelity Neural Rendering at 200FPS

相关资料:https://microsoft.github.io/FastNeRF/https://ieeexplore-ieee-org-s.nudtproxy.yitlink.com/document/9710021

Instant Neural Graphics Primitives with a Multiresolution Hash Encoding

相关资料:https://nvlabs.github.io/instant-ngp/https://nvlabs.github.io/instant-ngp/assets/mueller2022instant.pdf

NeRF动态场景(人体)的拓展

HumanNeRF: Free-viewpoint Rendering of Moving People from Monocular Video

相关资料:https://www.semanticscholar.org/paper/HumanNeRF%3A-Free-viewpoint-Rendering-of-Moving-from-Weng-Curless/bd706601b75533a66a782f6229419f85b1cc5135

参考链接3:https://www.analyticsvidhya.com/blog/2021/04/introduction-to-neural-radiance-field-or-nerf/

神经辐射场(Neural Radiance Field, NeRF)是一种生成复杂场景新视图的方法。NeRF获取一组场景的输入图像,并通过在场景之间插入来渲染完整的场景。

NeRF 的输出是一个体积,其颜色和密度取决于视图的方向和在该点发射的光亮度。

对于每条光线,我们都得到一个输出体积,所有这些体积构成了复杂的场景。

静态场景被表示为如上定义的连续5D函数。

79c3a736-d06f-11ee-a297-92fbcf53809c.png

该方法使用一个全连接的神经网络-多层感知器(MLP)来表示该函数,从单个5D坐标(x, y, z, θ, φ)向后移动,输出一个体积密度(RGB颜色受视图影响)。

要渲染这个NeRF,有3个步骤:

相机光线通过场景来采样3D点

利用step1中的点及其对应的2D观察方向(θ, φ)作为输入到MLP,得到颜色(c = (r, g, b))和密度σ的输出集,

使用体绘制技术将这些颜色和密度累积到一个2D图像中[注:体绘制是指从采样的3D点创建一个2D投影]

79ce9fba-d06f-11ee-a297-92fbcf53809c.png

79e0a3e0-d06f-11ee-a297-92fbcf53809c.png

79f6bce8-d06f-11ee-a297-92fbcf53809c.png

7a10a45a-d06f-11ee-a297-92fbcf53809c.png

7a23f884-d06f-11ee-a297-92fbcf53809c.png

7a3c00dc-d06f-11ee-a297-92fbcf53809c.png

审核编辑:黄飞

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 电磁辐射
    +关注

    关注

    5

    文章

    342

    浏览量

    43356
  • 光谱
    +关注

    关注

    4

    文章

    644

    浏览量

    34586
  • 电磁场
    +关注

    关注

    0

    文章

    745

    浏览量

    46817

原文标题:NeRF入门知识汇总

文章出处:【微信号:vision263com,微信公众号:新机器视觉】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    开关电源入门基础知识

    `开关电源入门基础知识`
    发表于 03-31 13:59

    【转】变压器基础知识_制作流程_详解

    变压器基础知识_制作流程_详解
    发表于 08-05 21:35

    模拟电路入门基础知识

    模拟电路入门基础知识
    发表于 06-06 13:57

    PLC入门必看基础知识

    PLC基础知识(PLC入门必看)与C语言有什么关系_plc可以用c语言编程吗_plc的C语言编程详解
    发表于 09-09 08:39

    电子元器件基础知识详解

    电子元器件基础知识详解
    发表于 10-08 20:13 366次下载

    安防技术基础知识名词详解大全

    安防技术基础知识名词详解大全 垂直同步、彩色视频复合信号同步、外同步、直流线锁定和完
    发表于 12-29 12:19 706次阅读

    HIFI耳机基础知识入门

    HIFI耳机基础知识入门 一、耳机是如何分类的? 1、按换能原理(Transducer)分
    发表于 02-02 11:48 2966次阅读

    ADC入门_基础知识

    ADC入门_基础知识对初学者有很好的帮助。希望大家会喜欢。
    发表于 03-11 17:41 45次下载

    电感资料--电感基础知识入门

    电子专业单片机相关知识学习教材资料——电感资料--电感基础知识入门
    发表于 10-10 14:17 0次下载

    FreeRTOS基础知识详解pdf下载

    FreeRTOS基础知识详解
    发表于 03-29 14:36 45次下载

    什么是DCS系统?DCS系统基础知识入门

    什么是DCS系统?DCS系统基础知识入门
    的头像 发表于 12-02 11:14 4.4w次阅读
    什么是DCS系统?DCS系统<b class='flag-5'>基础知识</b><b class='flag-5'>入门</b>

    FPGA的入门基础知识详细说明

    本文档的主要内容详细介绍的是FPGA的入门基础知识详细说明。
    的头像 发表于 12-20 10:13 8772次阅读
    FPGA的<b class='flag-5'>入门</b><b class='flag-5'>基础知识</b>详细说明

    机器视觉基础知识详解模板

    机器视觉基础知识详解模板下载。
    发表于 05-28 14:48 12次下载

    详解射频微波基础知识

    详解射频微波基础知识
    的头像 发表于 01-29 10:28 1840次阅读

    无功补偿原理基础知识详解

    无功补偿原理基础知识详解
    的头像 发表于 08-11 09:48 530次阅读
    无功补偿原理<b class='flag-5'>基础知识</b><b class='flag-5'>详解</b>