3D生成重建3D 生成重建007-Fantasia3D和magic3d
文章目录
- 0 论文工作
- 1 论文方法
- 1.1 magic3d
- 1.2 Fantasia3D
- 2 效果
- 2.1 magic3d
- 2.2 fantasia3d
0 论文工作
两篇论文都是两阶段法进行文生3d,其中fantasia3D主要对形状和外表进行解耦,然后先对geometry进行生成,在结合几何对texture进行生成。在几何阶段是用DMTet形式进行表示,在纹理阶段使用的是PBR对材质进行表达,因为这篇论文使用的是 传统的渲染管线,本来应该比nerf表示的形式要快一些,但是由于使用了两个步骤的扩散,所以一正负,应该也没优势了,他最大的优势就是可以无缝衔接现有的渲染管线,在下游的任务中可以直接使用,这一点是由于nerf表示的形式的。
其中Magic3D的两阶段,是先生成一个coarse nerf,提取出mesh在第二阶段进行生成优化提升到高分辨率。不过magic3d生成风格上还是略显不足。但是相比于freamfusion的6464的低分辨率,magic3d提升到512512在高频信息和细节这个点上,magic3d还是提供一个优化思路的。速度上由于粗体低分使用更高效的instantNGP和第二阶段使用的传统渲染的优势,在速度上较dreamfusion还是提升了2倍左右。论文还讨论了使用dreambooth 这个Personalized 文生图扩散模型进行更加细致的3d生成,因为文本的描述是不同图像中的细节丰富。dreambooth3d也是使用想的思路进行的。
他们的共同的另外一个优势是,因为是最终的形态是以mesh形式表示,所以即使生成更高分辨率的时候计算量也不会比nerf形式的表达增加的多。
他们在两个阶段都是使用sds损失,这一点上并没有变化。有趣的是,fantasia3d使用的dmtet表达形式是magic3d作者他们组的前期工作,这篇论文时间线也是在magic3d之后,应该又受到magic3d的启发。此前学习magic3d作者的一些其他工作比如GET3D等,膜拜,心向往之。
参考
magic3D
fantasia3d
1 论文方法
1.1 magic3d
这个论文应该是围绕003dreamFusion中提到生成的结果分辨率比较低的问题的一种解答方式。前面虽然提到他的风格问题,但是由于分辨率的提升他的细节确实更加丰富。
如上图所示,第一个阶段等价于dreamfusion不过它采用的是InstantNGP表达形式(一个更快速的nerf方案),他实在一个低分辨率的阶段进行的,一方面可以节省算力,一方面是因为nerf的表达形式先天具有一个一致性优势,所以在coarse阶段用nerf表达还是能带来很多优势。
经过第一个阶段对mesh进行提取,采用的是DMtet这种mesh表达形式。在第二阶段中会额外增加了一个编码器在隐空间进行,所以在接下来有利于提升到高分辨率。
整体来说,先用nerf在视角一致性的优势,第二阶段使用mesh管线的速度优势,使得该方法在速度和结果上面都取得一定的效果。
1.2 Fantasia3D
如上图所示,fantasia3d采用的是一种解耦的思路,将3d物体解耦为geometry和appearance,然后先进行geometry进行生成,在生成外观。在第一阶段,直接用一个dmtet形式表示一个初始化的球,然后进行渲染,得到mask和法线,将二者输入到扩散模型中进行优化,可以对geometry进行优化。第二阶段是用PBR进行材质标识,然后基于几何进行外表的优化。得益于伦恩使用的PBR表示appearance的形式,他的材质标识结果确实更加真实一些。
比较有意思的点就是论文是将法线和mask作为扩散模型的输入,虽然在controlnet中作者证明了可以使用法线和深度作为条件进行扩散,但是直接用发现作为输入也是很震惊。