找回密码
 加入怎通
查看: 220|回复: 0

Taichi NeRF (下): 关于 3D AIGC 的务实探讨

[复制链接]
3065236092@qq.c 发表于 2023-09-10 23:37:49 | 显示全部楼层 |阅读模式
  上一篇文章中,Taichi团队介绍了基于Taichi实现的NeRF在3D重建场景的应用(代码库):从多个视角的2D图片重建出3D内容。作为自然延伸,如果我们能够将NeRF与生成式AI(Generative AI,国内一般称为“AIGC”),或许可以将大红大紫的2D AIGC拓展到3D。目前这个问题并没有被很好地解决,除了一些学术论文以外,我自己也暂时没找到专门讨论这个问题的文章。
1 h! t; p' l; |- ^$ N& P
  因此,在系列的下篇,我想先聊聊(Taichi)NeRF在3D AIGC的应用以及其他团队的学术研究。随后,作为一个创业者,我会花更大的篇幅探讨一下3D AIGC在产品化和商业化的挑战和机遇。

% f* S6 G' Z4 ^% a1 p  w+ _
  当然,关于3D数字资产的AIGC,大家都处于探索阶段,我们团队目前也只是浅浅尝试(产品在meshy.ai),还没有大投入去做,这样决策的具体的原因后面会分析到。所以,本文的定位更多是分享一些不成熟的早期想法,以讨论为主,很多问题目前我自己也没有答案。一些不足之处欢迎大家批评指正!

4 w& ]9 K! L) P
  选择一个好问题

; w' d/ f% E3 F
  2D AIGC基本上只有一种选择:生成图片。但是3D资产比2D内容复杂,因为3D资产有很多种:模型、贴图、骨骼、(关键帧)动画等等。这里我们只考虑最主流的资产,也就是3D模型。而3D模型的表示又分为网格(Mesh)、体素(Voxel)、点云、SDF、甚至上文提到的NeRF等等。一旦考虑到实际落地到渲染管线中,基本上只有一种主流表示可以选择:Mesh。
+ H' V3 U9 h& U( X/ m# B% ^
  三角网格。这个模型没有带贴图,所以看着是灰色,也就是下文提到的“白模”。

. w+ N  f: n5 _0 x5 B  D% X( Z
  从CG工作流程来看,从文字生成3D模型分两步:

2 A1 ]: U3 L7 ]6 e/ X* ]$ U9 H0 |
  AI建模:给定文字输入,产出3D白模(即无贴图的模型);

* M0 l4 h# ^" r
  AI画贴图:给定文字和白模,画上diffuse贴图或者PBR贴图组合(base color,metallic,roughness等)。

$ F% u" G( E3 n
  从工业生产可控性的角度来说,用户会希望两步能够分离。而在学术界,大家更喜欢一步到位,对于可控性和PBR追求不高。
% \3 ^0 d& ?5 H" b) U6 ?
  Part I.学术研究

4 j( {3 N& d- n8 m: M! s4 t: b
  学术界通常不太考虑AI建模和AI贴图的分离,往往会一步到位,输入文字,得到带贴图的3D模型。这部分工作有两个“流派”,下面我简单梳理一下。
  d; @2 S  t4 N' N# M2 }0 D. c
  注意这部分不是文献综述,我也没有花大量的时间去调研全部工作,远达不到学术论文“Related work”的标准。不过如果有什么特别有意思的工作我看漏了,还请大家在评论区留言讨论~
8 j* k4 y# F  D; r. W  z1 x
  “原生3D派”

2 i8 y0 ~; t1 X5 f7 w
  这一流派的特点是直接在ShapeNet等3D数据集上进行训练,从训练到推理都基于3D数据。一些有趣的工作如下:
( K/ M0 ~% W- j$ f4 A* I
  3D-GAN是NIPS 2016比较经典的早期工作了。比较直观,就是GAN的3D版本,以voxel为单位,生成3D模型。用ShapeNet dataset,输入是一个Gaussian noise,2016年的时候还没实现text conditioning。

1 g7 ^/ }2 j) r; P9 P
  3D GAN的原理和生成效果

- u8 a3 D! |& T3 R! S' L6 X& {# y
  GET3D:通过differentiable rasterizer(NVDiffRast)加上类似GAN的架构,分别生成mesh和texture,质量看起来也挺不错的,后面也会提到differentiable rasterizer会是3D AIGC很重要的基础算法。

6 B# M7 g0 c0 V: s
  GET3D训练架构。

6 d* e3 b' L, N9 ^4 i7 j- W8 i* k, O  U
  这一类基于3D数据的工作还包括TextCraft(实现了text conditioning)、AutoSDF、MeshDiffusion等等。这类方法生成速度往往较快,但是也有比较直接的问题:由于3D数据集往往相对LAION等巨型数据集都小至少3个数量级(后续有讨论),这一类方法比较难实现数据多样性。比如说,生成数据集中存在的汽车、家具、动物等完全没问题,但是生成需要“想象力”的模型,比如“一只骑在马背上的兔子”、“带着皇冠的鹦鹉”、“手持大锤、生气的牛头怪”等,就比较有挑战了。由于Stable Diffusion等2D AIGC模型的想象力完全可以描述后者,用户自然也会期待在3D空间的AIGC也能做到类似的效果:给出各种奇奇怪怪的文字,AI能够得到高质量的3D模型。这种“想象力”(本质上是在多样的训练数据集中插值)是AIGC的核心价值所在,但是目前3D数据集却较难提供。

0 q: s% K3 W9 j: V6 t
  “2D升维派”

0 L5 H6 [1 m8 v2 I# |' r+ O2 I3 g
  既然3D数据集无法满足数据多样性的要求,不妨曲线救国,借助2D生成式AI的想象力,来驱动3D内容的生成。这个流派的工作在最近乘着Imagen、Stable Diffusion等2D AIGC基础模型的突破取得了很多进展,因此本文着重讨论。

/ F1 n- Z2 _. E
  OpenAI Point·E论文链接)只需要1-2分钟就可以在单块GPU上生成点云。第一步是以文字为输入,用2D diffusion模型(选择了GLIDE)生成一张图片,然后用3D点云的diffusion模型基于输入图片生成点云。

4 E& k6 `+ w% f2 A7 E8 @
  Point-e的算法和生成的效果
8 k  D7 v% m8 S1 ?  d
  DreamFusion:很有意思的工作,大体思路是通过2D生成模型(如Imagen)生成多个视角的3D视图,然后用NeRF重建。这里面有个“鸡生蛋蛋生鸡”的问题:如果没有一个训练得比较好的NeRF,Imagen吐出的图会视角之间没有consistency;而没有consistent的多视角图,又得不到一个好的NeRF。于是作者想了个类似GAN的方法,NeRF和Imagen来回迭代。好处是多样性比较强,问题也比较明显,因为需要两边来回迭代15,000次,生成一个模型就需要在4块TPUv4上训练1.5小时。
$ M3 j" d: B2 a+ U
  DreamFusion:3D NeRF和2D生成模型来回迭代优化
! N/ d  M; V5 I- O# i/ ?2 |
  Magic3DreamFields的升级版本,巧妙之处在于将重建过程分为了两步。第一步仅采用NeRF(具体来说,是上一篇提到的InstantNGP)进行比较粗糙的模型重建,第二步则采用一个可微的光栅化渲染器。NeRF比较适合从0到1、粗糙重建,更多的表面细节还需要更加特定的算法,比如说differentiable rasterizer。
9 N6 |! O. A! g( V
  Magic3D从text生成的3D模型
: X& }  V/ I# Y" `, R
  目前DreamFusion/Magic3D这一类算法的性能瓶颈有两点:一是NeRF,二是依赖的Imagen/e-diffI/SD等2D生成模型。如果沿着这个算法思路进行优化,可能有下面两点机会:
% C0 R3 H  t% z' S7 J, S
  NeRF是否是最佳的differentiable renderer?从直觉上来说,并不是。NN在NeRF中一开始只是作为一个universal function approximator,如Plenoxel等工作其实说明了NN在NeRF中甚至不是必要的。还有个思路是直接不用NeRF,直接用differentiable rasterizer,比如说nvdiffrast,一方面能够提速,另一方面由于直接在三角网格上优化,能够避免NeRF的结果转化到生产过程中需要用的三角网格的损失。
5 U) F1 A8 m1 U' T$ u
  2D生成式模型,如Stable Diffusion生成速度如果能够更快,那么对提速会相当有价值。GigaGAN让我们看到了希望,生成512x512的图只需要0.13s,比SD快了数十倍。

; W# G8 h$ [( u# H$ ]/ }
  当然,SDF也是可微性(differentiability)比较好的一种表示。Wenzel Jakob组在这方面有一篇很棒的工作,重建质量非常棒,不过还没有和AIGC结合:
& O* w) _; l* ^; L  w3 H0 T& \4 O
  另外,除了生成通用资产,数字人的生成也是一个独立的有科研、商业价值的方向。taichi影眸科技做的ChatAvatar、MSRA的Rodin,都是最近有代表性的工作。taichi https://taichi-lang.cn/
$ u; f8 u3 n* I7 ^2 h
回复

使用道具 举报

    您需要登录后才可以回帖 登录 | 加入怎通

    本版积分规则

    QQ|手机版|小黑屋|网站地图|真牛社区 ( 苏ICP备2023040716号-2 )

    GMT+8, 2026-4-2 04:09 , Processed in 0.275021 second(s), 51 queries , Gzip On.

    免责声明:本站信息来自互联网,本站不对其内容真实性负责,如有侵权等情况请联系420897364#qq.com(把#换成@)删除。

    Powered by Discuz! X3.5

    快速回复 返回顶部 返回列表