一 写在前面
未经允许,不得转载,谢谢~~~
开始尝试一下论文简记,简单记录论文的精华,对于真的非常需要细读的文章后续再扩充,立一个每周可以输出两篇简记的flag (赶论文除外嘻嘻)(๑>ڡ<)☆
- 文章来源: CVPR2019 oral
- 文章链接:https://arxiv.org/pdf/1812.01024.pdf
- 项目主页:http://von.csail.mit.edu/
- 代码链接:https://github.com/junyanz/VON
二 主要内容
2.1 motivation
1. 关于GAN
- GAN生成网络已经在各种图像修复、图像生成上做的很好了;但是为同个场景生成不同视角下的图像还是一个很具有挑战性的任务。
- 这就要求网络能够学习到latent 3D representation(潜在的3D特征表示)来支持变换角度等3D操作;
2. 关于3D deep learning
- 3D deep learning主要是对物体进行三维重建,这几年兴起了相应的研究;
- 但大多数的网络模型和方法都依赖于人工标注的3D数据,这个对于数据集的要求就很高,常见的标注数据有:
- grid;
- signed distance fields;
- point clouds;
- mesh; - 利用这个信息及模型可以重构出三维的几何形状,但是确不能生成彩色图,因为不知道如何将颜色信息表示在高分辨率的三维形状下。(即恢复出来的3D形状就仅仅是shape而已,丢失了原图的纹理信息)
除了这两点,也有学习如何将地位的图像特征解码到novel view下,但是对于生成效果并不好。
2.2 related work
以前不会可以记录相关工作,但是自己尝试写过论文以后觉得这块其实很重要,记录下来也是为了方便有兴趣的同学检索相关论文~
- neural image synthesis;
- 3D deep learning;
- deep learning for view synthesis;
- model-based rendering;
- image-based rendering;
2.3 main work
网络结构示意图:
本文将3D operations引入到2D生成模型中,来学习几张multi-view图像中包含的潜在3D特征,主要的阶段如下:
- 训练阶段:接受multi-view的图像输入,然后用global optimization模型进行编码学习到 latent 3D voxel presentation;
- 测试阶段:从学习到的latent 3D voxel presentation潜在3D特征表示中进行2D rendering,得到各个novel view下的新图像;
这样的好处是不需要3D数据的监督信息,利用2D re-rendering的loss来指导网络进行参数更新即可。
总结来说,整篇文章的想法就是通过在2D网络中引入3D操作学习潜在的3D特征表示,但学习到的也仅仅是feature,这就不需要数据集具有精准的3D形状标注数据,也不需要构建出物体的准确几何信息,然后用2D rendering网络来生成新的图像,利用新生成新生成图像与原有图像之间的2D rerendering loss进行迭代更新。
三 所需数据集
整个网络是scene-specific的,即适用于特定的一个scene,所以相应的训练语料也是遵守这个原则。
训练语料表示:
- 共有M个samples;
- 每个sample由{S,T0,T1}三张不同view的image构成,其中S表示source image(图像+camera pose),T0,T1表示target views;
- 训练过程中的语料是动态生成的:
- <T0,T1> 是随机集N个registered multi-view images中选出来的两张图像;
- 然后再source images中选择相机角度与T0最接近的5张,在这top-5中随机选择一张作为S,构成{S,T0,T1}
-这样做的目的是让S中的点大部分都能在T0中可见,然后有鼓励网络生成的新图也能与相对ramdon view的T1保持一致。
四 实现细节
目前的内容只是从宏观的角度简单记录了一下,整体网络结构图:
整体来说,输入一张S经过整个网络得到两张新生成的图,然后通过与T0,T1比较,得到一个L1 loss,通过判别器得到一个对抗loss,两个loss共同作用促进网络更新。
这篇文章应该会再回读,到时候再更新细节信息。
网友评论