-
笔记:从NeRF->GRAF->GIRAFFE
-
NeRF:
-
输入的数据为一个场景和这角度图像和相应的相机参数来提高观测角度,得到5D数据((x,y,z),(θ,φ)),以MLP的参数来表征该场景,输出((r,g,b),σ)。注:σ是一定的,只与position有关,但是color根据不同的视角不同不一样,所有由((x,y,z),(θ,φ))共同决定。
-
volume rendering:T(t)为透光率,σ(r(t))是点的体密度,c(r(t),d)是点的颜色
-
提出了两个优化:位置编码(因为神经网络对微小的变化不敏感,通过傅里叶变换,可以优化高频的细节)。分层采样:coarse层是均匀采样,fine层是根据预测的体密度采样。
-
-
GRAF:
- 因为NeRF需要大量的相机位姿标注,而且无法自由编辑生成物体。结合了GAN的使用, 实现了使用2D监督的方式来进行3D重建,也就是不要相机的位姿标定,让GAN去判别位姿是什么样的。
- 提出sample patch来提高训练速度。
- 提出了条件辐射场的表示场景方式,因为输入中加入了zs和za来添加对外形和形状的控制。
-
GIRAFFE
-
实现了对单个物体的操作和对背景的分离,对特征的解耦。因为GARF只能对一个场景表示,GIRAFFE可以看作是多个GARF的组合。首先GIRAFFE对每个object提出了结合仿射变换的特征场(可以对object旋转,平移,缩放的原因)。从局部物体到场景的转换如下:
然后通过类似NeRF和方法表征每个单独的object:
-
场景的合成:对于N个实体(N-1个object,一个background),对于一个坐标点,σ求和,特征向量f则是N个实体的f和σ加权求和再平均:
-
渲染场景:
- 将组合了多个object和background的隐式三维场景表达用2D的CNN网络解码为2D图片。
-
整个训练框架采用的GAN的框架,损失函数如下:
-
-
总结:
- 个人认为,GIRAFFE就是在GARF的基础上,提出了一个结合可以对每个object的仿射变换的特征场,然后提出了一个可以将这个每个object和background的特征场操作完之后合并的方法,从而实现了从单目标到多目标的进步。但是根据我测试的效果好像并不是很逼真。(分享学习,望指正)
-
笔记:从NeRF->GRAF->GIRAFFE
最新推荐文章于 2023-12-31 00:51:56 发布