标题:Disentangled3D: Learning a 3D Generative Model with Disentangled Geometry and Appearance from Monocular Images
链接:https://arxiv.org/pdf/2203.15926
本文也是基于NeRF的一个衍生,可以看做GRAF的进阶版。主要做的工作是基于单图的3D重建,并在重建过程中将外观(光照和纹理的结合)与几何信息解耦,另外每个模型只能处理同一类物体,无法同时处理多个不同类物体。主要的思路是强行要求所有输入图像通过形变网络对应到同一个基准形状(比如平均脸),并共用同一套NeRF网络学习并进行渲染,从而解耦形状和外观。解耦的思路就是用形变场模拟形状,用基准空间模拟颜色。
结构主要包含四个部分:
1. 从形变空间(deformed space)到基准空间(canonical space)的转换。这里就是说我直接在形变空间中发射一个射线,找到一个坐标x,然后将其与形状语意码(shape latent code)一同输入形变网络(deformation network)来找到基准空间中对应的那个坐标x'。这样就成功的将输入图像扭曲到基准形状了。
2.从形变空间到最终颜色与密度的预测。这部分和NeRF没有什么不同,只不过作者将原本的nerf分成了两个分支:一个分支是基准形状网络(canonical shape network),这部分的输入就只有x'这个坐标,然后要求输出对应的密度。因为没有任何其余信息的输入,因此这里的形状必然不会随着输入图像的变化而变化。另一个分支是外观网络(appearance network),可以看到这里额外引入了外观语意码(appearance latent code),因此可以获得额外的外观信息用于编码输入图片的外观。
3.从基准空间到形变空间的转换。这其实和1中描述的是一样的,只不过反着做了一次重演。这么做的目的是使用cycle consistency loss来间接保证形变空间和基准空间的对应并不会太离谱(比如把下巴对应到额头上)。
4.最后加了个判别器用于提升渲染结果的真实性。
一些想法:这篇文章的立意很好,但将输入图像映射到同一个基准空间必然会导致结果的失真。而且文中给出的canonical space的图像也明显是扭曲的,并不是通常意义上的平均脸,这必然会导致映射过程中出现问题,就比如下图:
眼睛和嘴巴的语义分割做的还是比较差的,这就意味着形变网络的错误映射。但是总的来说思路还是值得借鉴。