AI笔记之2——NeRF网络初窥

 是的,我知道你们很着急,所以第二课,我们来讲NeRF的网络。

回到我们一开始的问题:

一个数据A:(23,45,67),作为一个tensor而言,具有(1,3)的shape

通过多层Linear得到一个新的数据B,tensor具有(1,4)的shape。

如果A的三个数据代表物理世界的三维坐标,那么B代表什么?


在最简单的NeRF里(非原版),网络可以设计为接受(n,3)的输入,并产生(n,4)的输出,聪明的同学知道,这是一个映射过程。

n-为采样点的数目。

3-对应每个采样点的三维坐标。

4-设计为每个点的颜色color和贡献sigma(可以当成不透明度)

神经网络的输出本身不具备物理含义,只是网络的输入经过运算得到的结果,但是当你制定了Loss之后,网络就会朝着Loss减小的方向学习,最终这个运算过程被确定。而输出,也就有了含义。

这个网络输出的(n,4),我们假定是color和sigma,并通过积分的方式将其积起来,得到一个最终的结果,这个结果和GroundTruth对比得到loss,从而优化网络,逐渐的,最终的输出就是每个点对应的color和sigma啦。

为了更清楚的解释,还是让我们先忽略采样点是怎么得到的,忽略Loss是什么,忽略GT是什么,忽略积分的过程,忽略sigma。

我们把这个网络任务进行抽象,假定空间中有且仅有一个点,这个点的坐标是(1,1,1),且这个点是白色的。

NeRF会通过相应的采样方式(数学方法),得到一个坐标(1,1,1)。(实际采样不是这么简单)。

总而言之,通过数学方法得到一个坐标,是我们的采样点。其shape为(1,3)。

如何让网络学习到这一点的颜色呢?

答案就是把这个(1,1,1)input进网络,网络会首先ouput一个shape(1,3)的数据,这个数据未必是白色的, 但我们知道GT是(255,255,255),因此可以计算output和GT的Loss,来让网络不断的学习,最终当你输出(1,1,1)的时候,网络会输出(255,255,255)。一个nerf的网络(映射过程)就学好啦!





评论