一张 2D 证件照,几秒钟就能设计出 3D 游戏化身!
这是扩散模型在 3D 领域的最新成果。例如,只需一张法国雕塑家罗丹的旧照,就能分分钟把他 " 变 " 进游戏中:
(资料图片仅供参考)
△RODIN 模型基于罗丹旧照生成的 3D 形象
甚至只需要一句话就能修改装扮和形象。告诉 AI 生成罗丹 " 穿着红色毛衣戴着眼镜的造型 ":
不喜欢大背头?那就换成 " 扎着辫子的造型 ":再试试换个发色?这是 " 棕色头发的时尚潮人造型 ",连胡子颜色都搞定了:(AI 眼中的 " 时尚潮人 ",确实有点潮过头了)
上面这个最新的 3D 生成扩散模型 " 罗丹 "RODIN(Roll-out Diffusion Network),来自微软亚洲研究院。
RODIN 也是首个利用生成扩散模型在 3D 训练数据上自动生成 3D 数字化身(Avatar)的模型,论文目前已被CVPR 2023接收。
一起来看看。
直接用 3D 数据训练扩散模型
这个 3D 生成扩散模型 " 罗丹 "RODIN 的名字,灵感来源于法国雕塑艺术家奥古斯特 · 罗丹(Auguste Rodin)。
此前 2D 生成 3D 图像模型,通常用 2D 数据训练生成对抗网络(GAN)或变分自编码器(VAE)得到,但结果往往不尽人意。
研究人员分析,造成这种现象的原因在于这些方法存在一个基础的欠定(ill posed)问题。即由于单视角图片存在几何二义性,仅仅通过大量的 2D 数据,很难学到高质量 3D 化身的合理分布,导致生成效果不好。
因此,他们这次尝试直接用 3D 数据来训练扩散模型,主要解决了三个难题:
首先,如何用扩散模型生成 3D 模型多视角图。此前扩散模型在 3D 数据上没有可参考实践方法和可遵循前例。
其次,高质量和大规模 3D 图像数据集很难获取,且存在隐私版权风险,但网络公开 3D 图像无法保证多视图一致性。
最后, 2D 扩散模型直接拓展成 3D 生成,所需的内存、存储与计算开销极大。
为了解决这三个难题,研究人员提出了 "AI 雕塑家 "RODIN 扩散模型,超越了现有模型的 SOTA 水平。
RODIN 模型采用神经辐射场(NeRF)方法,借鉴英伟达的 EG3D 工作,将 3D 空间紧凑地表达为空间三个互相垂直的特征平面(Triplane),并将这些图展开至单个 2D 特征平面中,再执行 3D 感知扩散。
具体而言,就是将 3D 空间在横、纵、垂三个正交平面视图上以二维特征展开,这样不仅可以让 RODIN 模型使用高效的 2D 架构进行 3D 感知扩散,而且将 3D 图像降维成 2D 图像也大幅降低了计算复杂度和计算成本。
△3D 感知卷积高效处理 3D 特征
上图左边,用三平面(triplane)表达 3D 空间,此时底部特征平面的特征点对应于另外两个特征平面的两条线;上图右边,则引入 3D 感知卷积处理展开的 2D 特征平面,同时考虑到三个平面的三维固有对应关系。
具体而言,实现 3D 图像的生成需要三个关键要素:
其一,3D 感知卷积,确保降维后的三个平面的内在关联。
传统 2D 扩散中使用的 2D 卷积神经网络(CNN),并不能很好地处理 Triplane 特征图。
3D 感知卷积并不是简单生成三个 2D 特征平面,而是在处理这样的 3D 表达时,考虑了其固有的三维特性,即三个视图平面中其中一个视图的 2D 特征本质上是 3D 空间中一条直线的投影,因此与其他两个平面中对应的直线投影特征存在关联性。
为了实现跨平面通信,研究员们在卷积中考虑了这样的 3D 相关性,因此高效地用 2D 的方式合成 3D 细节。
其二,隐空间协奏三平面 3D 表达生成。
研究员们通过隐向量来协调特征生成,使其在整个三维空间中具有全局一致性,从而获得更高质量的化身并实现语义编辑。
同时,还通过使用训练数据集中的图像训练额外的图像编码器,该编码器可提取语义隐向量作为扩散模型的条件输入。
这样,整体的生成网络可视为自动编码器,用扩散模型作为解码隐空间向量。对于语义可编辑性,研究员们采用了一个冻结的 CLIP 图像编码器,与文本提示共享隐空间。
其三,层级式合成,生成高保真立体细节。
研究员们利用扩散模型,先生成了一个低分辨率的三视图平面(64 × 64),然后再通过扩散上采样生成高分辨率的三平面(256 × 256)。
这样,基础扩散模型集中于整体 3D 结构生成,而后续上采样模型专注于细节生成。
△RODIN 模型概述基于 Blender 生成大量随机数据
在训练数据集上,研究员们借助开源的三维渲染软件 Blender,通过随机组合画师手动创建的虚拟 3D 人物图像,再加上从大量头发、衣服、表情和配饰中随机采样,进而创建了 10 万个合成个体,同时为每个个体渲染出了 300 个分辨率为 256*256 的多视图图像。
在文本到 3D 头像的生成上,研究员们采用了 LAION-400M 数据集的人像子集,训练从输入模态到 3D 扩散模型隐空间的映射,最终让 RODIN 模型只使用一张 2D 图像或一句文字描述,就能创建出逼真的 3D 头像。
△给定一张照片生成虚拟形象
不仅能一句话改变形象,如 " 留卷发和大胡子穿着黑色皮夹克的男性 ":
甚至连性别都能随意更换," 红色衣着非洲发型的女性 ":(手动狗头)研究人员也给出了一个应用 Demo 示范,创建自己的形象只需要几个按钮:
△利用文字做 3D 肖像编辑
更多效果可以戳项目地址查看 ~
△更多随机生成的虚拟形象
做出了 RODIN 后,团队接下来的计划是?
据微软亚洲研究院作者们表示,目前 RODIN 的作品还主要停留在3D 半身人像上,这也与它主要采用人脸数据训练有关,但 3D 图像生成需求不仅局限于人脸上。
下一步,团队将会考虑尝试用 RODIN 模型创建更多 3D 场景,包括花草树木、建筑、汽车家居等,实现 " 一个模型生成 3D 万物 " 的终极目标。
论文地址:
https://arxiv.org/abs/2212.06135
项目页面:
https://3d-avatar-diffusion.microsoft.com
关键词: