|
发表于 2023-9-30 14:50:43
|
显示全部楼层
谢谢大家对我们工作的关注!
自我介绍一下:我是清华计算机系TSAIL组直博4年级的路橙,最近几年一直在研究diffusion model相关的理论与算法,也是ProlificDreamer的共同一作(主要是共同一作王征翊 @王征翊 带我飞。王征翊是我们组博士二年级的学生,能力非常强,我狠狠抱大腿)。在做3D之前,我研究了很多diffusion model本身的训练理论、采样算法及在强化学习的应用等,其中最自豪的是DPM-Solver[1](Neurips 2022 Oral),可以在无需额外训练的前提下10到25步获得高质量的采样,目前也是stable-diffusion在huggingface下官方demo的默认采样算法(基于我为Diffusers库实现的DPMSolverMultistepScheduler);在stable-diffusion-webui中,所有“DPM”开头的算法都是基于我提的DPM-Solver[1]和DPM-Solver++[2],其中大家用的最多的应该是"DPM++2M Karras",即2阶、multistep版本、基于Karras提出的timestep spacing的DPM-Solver++[2]。欢迎大家在使用stable-diffusion的时候尝试DPM-Solver!
在这个回答中,我将从以下几点介绍和澄清一些关于我们工作的理解:我们研究什么问题、我们做了什么以及为什么能达到这个效果、我们有哪些限制、未来有哪些可能的研究方向、离商业落地有多大距离。
1. ProlificDreamer针对的问题
2022年,基于diffusion model和多模态数据,text-to-image(即所谓的“AI作画”)突然变成了现实。其中,开源的stable-diffusion为整个领域都带来了巨大的影响,其后续的改进(包括LoRA、controlnet等)都极大地推动了AI作画的发展。除了AI技术本身的进步以外,这背后的成功同样离不开海量的互联网文本-图像数据。然而,与图像不同,3D数据的收集是一件非常昂贵的事情,这直接导致了目前3D生成很难将已有的2D方法直接迁移过来。因此,这个领域的一大研究热点就是:如何在不需要3D数据的前提下生成逼真的3D物体(如NeRF或Mesh)?
去年,由Google提出的Dreamfusion (Score Distillation Sampling, SDS)[3]和TTI-Chicago的研究者们提出的Score Jacobian Chaining (SJC)[4]发现,可以仅仅基于2D的预训练diffusion model(例如,stable-diffusion)的先验知识来优化出一个3D物体!从直观上理解,其实是因为2D的diffusion model其实见过了海量的图片,已经有了潜在的能力来生成不同视角下的2D图片,我们要做的就是挖掘它的能力:不断去优化一个3D物体,使得这个物体在不同视角的投影都和这个2D diffusion model能匹配。当然,这个匹配是通过数学算法来保证的,这里就不赘述了。这样的好处是,我们可以不需要任何3D数据,仅仅利用一个预训练好的2D diffusion model就可以生成3D数据了。
然而,这一领域目前最大的问题是优化出的3D物体的视觉效果远远低于原始2D diffusion model采样得到的图片,这也是之前这一领域不温不火的主要原因。
2. ProlificDreamer的原理
之前很多研究都在研究3D物体的表示(representation),即如何设计好的3D的算法。然而,大家针对diffusion model的优化算法仍然停留在上面提到的SDS/SJC,这方面优化算法其实还是有很大的改进空间。我们组之前一直有做贝叶斯推断相关的采样算法,我们其实是把传统贝叶斯推断里的方法搬到了diffusion model领域,即论文里提出的称为Variational Score Distillation(VSD)的算法。这其中实现细节我也不赘述了,感兴趣的同学可以参考我做的一个PPT,放在了项目主页:ProlificDreamer: High-Fidelity and Diverse Text-to-3D Generation with Variational Score Distillation 。
直观来理解,以前SDS/SJC其实是“mode-seeking”,即针对单个物体进行优化;而我们的算法VSD其实是“sampling”,即近似地获得3D分布的一个采样。正因为我们更像采样,所以我们获得的物体的质量也很像2D stable-diffusion本身的采样质量,我们也可以用2D上常用的CFG(7.5)。
此外,我们也提出了很多其它的3D实现上的改进,进一步提高了最终的优化结果的质量。我们在论文中也对这些技术做了ablation study,发现它们确实可以一步一步地改进最终结果的质量。
3. ProlificDreamer的局限
相信大家对我们工作的关注主要是因为我们展示的结果。说实话,在我第一次看到这些结果时我自己内心也被深深地震撼到了(也被合作者们的强大深深震撼到了),因为之前从没有这样的采样质量。尽管如此,我仍然想强调,我们的工作只是这一研究领域发展路上的一小步,仍然有非常多的局限:
- 我们优化的时间仍然远远慢于传统2D图片生成的速度。
一般而言,使用stable-diffusion生成一张图片在PC上只需要几秒钟,哪怕微调LoRA也很快;然而,我们生成一个3D物体需要数个小时,尤其是分辨率越高越慢。这主要是因为我们本质上还是借助于随机梯度下降来优化3D表示(NeRF或Mesh)的参数,这样的优化过程需要很多步的迭代,并且对GPU的显存也有一定要求。我们最终展示的效果是512分辨率的结果,这些结果的优化确实非常耗时,所以目前个人使用者还是很难在PC上直接使用我们的算法。
2. 我们优化的成功率极大地受限于2D预训练diffusion model的能力。
这一点其实非常好理解,因为我们所有的信息都来自于预训练的diffusion model。如果这个diffusion model本身在text-to-image时就很难理解输入的text prompt,那它生成3D的成功率也就非常低。我们目前用的是开源的stable-diffusion v2.1,这个模型对text的理解能力确实有很大的局限性,这也导致我们优化的成功率与所有基于stable-diffusion复现的3D生成的baseline都差不太多(不过我们的优势是,一旦能理解这个prompt,成功优化后得到的细节效果非常逼真)。此外,我们也会遇到和baseline一样的“multi-face”的问题,这也是2D生成3D的一大本质问题。我们的算法确实是一种更好的训练算法,但仍然有非常多的open problem没有被解决。
因此,我们优化的上限一定会受限于这个2D diffusion model的上限。我最近经常幻想,如果手头有一个开源的MidJourney那样的diffusion model,我们的算法的表现该会如何,又能为科技发展带来怎样的变化。
3. 我们对3D representation的研究非常初步。
我们目前主要的提升还是来自于优化算法(VSD),没有太多地研究3D representation本身,这方面的技术大多还是来自于baseline。事实上,我们3D部分非常多地借助了前人的优秀工作,包括Dreamfusion[1], Magic3D[5], Fantasia3d[6]。我相信借助3D领域的很多最新技术,马上就会有更多效果比我们更惊艳的算法和结果出来。我也非常期待和领域内的其他研究者一起共同努力,一起推动人类科技的进步。
4. 未来可能的研究方向
对于一个3D行业的研究者而言,其实能研究的太多了(比如把之前所有基于SDS/SJC的论文全都换成VSD)。此外,VSD的质量提升其实也给很多之前无法想象的下游任务有了可能性,可以探索的方向非常多,与产业的落地结合也有了很多的可能性。我认为这一定是未来一两年内diffusion model领域的研究热点,欢迎大家和我们一起探索!
5. ProlificDreamer离商业落地的距离
我个人目前主要的兴趣还是在于科研与技术探索,其实个人并不太关注商业落地。不过,和几位朋友聊下来,我们目前的共识是,这一系列的技术为商业落地打开了一扇可能性的门,但离商业落地仍然还有不少的距离。这主要体现在:
1. 生成速度慢、生成成功率受限。(见上文)
2. 生成的3D物体很难直接被3D建模师直接使用,修改难度大。
这主要是因为生成的mesh和布线都是神经网络优化出来的,完全不符合3D建模师的建模逻辑和操作方式,修改难度极大。因此,这一领域并不像AI作画那样可以直接拿去PS精修,离提高3D建模师的生产力都有一定的距离,更别说取代3D建模师了。因此,我觉得大家目前不要过分担心“又要被AI取代了”。
3. 生成的3D物体也很难直接用在游戏或虚拟现实中。
哪怕未来有一天生成的质量非常高了,它仍然难以用在实际落地中。这是因为生成的mesh的三角面片数量可能会非常多,放在游戏引擎里可能直接导致风扇转满甚至GPU带不动。
6. 后续
我们目前正在努力整理代码,后面会放出我们的代码。
此外,我目前主要重心还是在研究上,暂时不会见投资人。推动技术的进步比快速赚一些钱更重要 : )
参考文献
[1] Lu, C., Zhou, Y., Bao, F., Chen, J., Li, C., & Zhu, J. (2022). Dpm-solver: A fast ode solver for diffusion probabilistic model sampling in around 10 steps.arXiv preprint arXiv:2206.00927.
[2] Lu, C., Zhou, Y., Bao, F., Chen, J., Li, C., & Zhu, J. (2022). Dpm-solver++: Fast solver for guided sampling of diffusion probabilistic models.arXiv preprint arXiv:2211.01095.
[3] Poole, B., Jain, A., Barron, J. T., & Mildenhall, B. (2022). Dreamfusion: Text-to-3d using 2d diffusion.arXiv preprint arXiv:2209.14988.
[4] Wang, H., Du, X., Li, J., Yeh, R. A., & Shakhnarovich, G. (2023). Score jacobian chaining: Lifting pretrained 2d diffusion models for 3d generation. InProceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition(pp. 12619-12629).
[5] Lin, C. H., Gao, J., Tang, L., Takikawa, T., Zeng, X., Huang, X., ... & Lin, T. Y. (2023). Magic3d: High-resolution text-to-3d content creation. InProceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition(pp. 300-309).
[6] Chen, R., Chen, Y., Jiao, N., & Jia, K. (2023). Fantasia3d: Disentangling geometry and appearance for high-quality text-to-3d content creation.arXiv preprint arXiv:2303.13873. |
|