2025年10月31日星期五

ICCV 2025 I DiffusionGS:将 3DGS 嵌入 Diffusion,高速高分辨3D生成框架,代码模型已开源。

点击下方名片关注AIGC Studio公众号!获取最新AI前沿应用/AIGC实践教程!

点击下方名片关注AIGC Studio公众号获取最新AI前沿应用/AIGC实践教程

本文来自公众号读者投稿,作者是约翰霍普金斯大学计算机科学系在读博士,于2023年和2020年获得清华大学工程硕士和工程学士学位。本文章介绍作者已经发布在 ICCV 2025上的最新工作 DiffusionGS。

  • 个人主页地址:https://caiyuanhao1998.github.io/
  • 文章来源:https://zhuanlan.zhihu.com/p/1962623398749372601

欢迎大家去大佬主页浏览~图片

图片

这篇文章针对 Image-to-3D 生成任务设计了一种全新的 pixel-level 的 3D Diffusion,名为 DiffusionGS。通过在 Diffusion 的每一个 timestep 都预测一个 3D Gaussian 点云来保持生成结果的视角一致性(3D view consistancy),不仅能够用于 object-centric 的物体生成,还能够用于 larger-scale 的 scene-level 场景生成。

图片

Object 生成效果:

图1. object-centric 3D 生成效果展示
图1. object-centric 3D 生成效果展示

Scene 重建效果:

图2. Single-view Scene-level 重建效果展示
图2. Single-view Scene-level 重建效果展示

目前 training, testing, evaluation 的代码已经开源,为方便大家使用,还集成了一行 pipeline 直接运行的代码。代码晚点会包括高斯点云转 mesh。比如图3 中的 ikun 玩偶和死侍玩偶:

欢迎大家来使用、提 issue、交 pull request!

unsetunset相关链接unsetunset

  • 代码:https://github.com/caiyuanhao1998/Open-DiffusionGS/
  • 论文:https://arxiv.org/abs/2411.14384
  • 主页:https://caiyuanhao1998.github.io/project/DiffusionGS/

先给大家快速地看一下我们开源模型和 Hunyuan-v2.5 生成效果的对比,下边一排是输入视角:

图5. DiffusionGS vs. Hunyuan-v2.5 输入图片
图5. DiffusionGS vs. Hunyuan-v2.5 输入图片

然后这是Hunyuan-v2.5 的生成结果:

图6. Hunyuan-v2.5 生成3D的新视角
图6. Hunyuan-v2.5 生成3D的新视角

以及我们 open-source model 的生成结果:

图7. 我们方法生成的 3D 新视角
图7. 我们方法生成的 3D 新视角

我们 github repo 上有物体旋转各视角对比视频结果,欢迎大家前往查看。这里请注意,我们方法在 256x256 和 512x512 尺寸的生成速度是 6 秒 和 24秒,速度是 Hunyuan-v2.5 的 7.5 倍,训练只需要 16 - 32 张 A100,参数量大小只有 1 个多 G,同时我们的方法还可以被应用到 larger-scale 的 scene-level 场景生成。

  1. Image-to-3D 任务介绍 首先来介绍我们研究的任务 —— 图像到三维的生成(Image-to-3D Generation)。如图 8 所示,给定一张输入视角图像,Image-to-3D 会生成对应的三维表征,这种三维表征可能是显式的如三维高斯点云(3D Gaussian point clouds)或者网格(Mesh),也可能是隐式的如神经辐射场(Neural Radiance Fields,NeRF)。然后根据生成的三维表征转换视角进行渲染就能够得到指定新视角下的图像。
图8. Image-to-3D 任务流程
图8. Image-to-3D 任务流程

这项技术的具体应用包括了 AR/VR,电影制作,机器人,动画,游戏,等等。当前的 Image-to-3D 的方法大多是两阶段的,比较经典的方法有 LGM(ECCV 2024)和 CAT3D (CVPR 2024)。这类 two-stage 方法的大体流程如图9所示,第一阶段通常是一个 multi-view diffusion model,根据输入视角生成四个固定视角的图像。然后第二阶段就是根据第一阶段生成的多视角图像进行三维重建,可以使用 per-scene optization 的方法如常规的 NeRF 或者

图9. 当前主流 two-stage image-to-3D 方法流程
图9. 当前主流 two-stage image-to-3D 方法流程

3D Gaussian Splatting (3DGS)。这类方法存在诸多问题,首先是multi-view 生成阶段的三维视角一致性没办法保证,这容易导致根据重建得到的三维表征渲染出来的新视角图像产生伪影和畸变,如图10中的两个经典工作 LGM (ECCV 2024) 和 12345++ (CVPR 2024) 所示。

图10. Two-stage 方法的主要缺点 — 三维视角一致性没法保证
图10. Two-stage 方法的主要缺点 — 三维视角一致性没法保证

另一方面,这种两阶段的方法相对耗时,其第一阶段往往由一个较大的 2D image diffusion model 如stabel diffusion 系列pre-train 得到,生成速度偏慢,第二阶段若是采用 per-scene optimization 方法如常规的 NeRF 或者 3DGS 的话,那么重建时间往往会在 30 分钟以上。基于这些观察,本文选择研究单阶段方法 — 将三维表征嵌入到 diffusion 当中来加速并提升三维视角的一致性。

那么在选择哪种三维表征时,我们面对两个主要的选项 — NeRF 或者 3DGS。NeRF 的渲染方式为 volume rendering。这种渲染方式通常需要一次采集多条射线,同时在每条射线上采集多个散点,然后用 MLP 去学习计算他们的颜色和体密度才能渲染出这条射线对应像素的 RGB 值。这种渲染方法速度慢,同时空间分辨率有限,然后这种隐式表征对三维一致性的提升有限。相对地,3DGS 的渲染方式是能够在 GPU 上高效并行计算的 Rasterization,拥有更快的渲染速度,更高的空间分辨率和更显式交互性更强的三维表征。因此,我们选择将 3DGS 嵌入到 diffusion 当中。

然而顺着这条思路,我们就又会遇到几个挑战。首先是要确定我们的 diffusion framework 是在 latent space 还是在 pixel space?如果是在 latent space 的话,高斯点云会被降维压缩,原本显式的三维表征就会被破坏而失去意义。同时能够编解码三维高斯点云的变分自编码器(Variation Auto-Encoder,VAE)也需要自己训练。这个过程非常复杂并且每一阶段产生的误差也容易累积。但是这种方法也可行,DiffSplat (ICLR 2025) 最终就按照这个思路做出了 object-level generation。然而在面对 larger-scale scene-level generation 时,由于训练数据稀缺再加上3DGS被压缩等原因,latent space 这个选项可能就不太有效,上限比较低。为此,我们选择 pixel space,尽可能地保持完备三维表征与高空间分辨率。

那么选择 pixel space 又会遇到什么问题呢?首先是没法使用当前最好的2D diffusion model来作为预训练模型。这类 2D diffusion model 由于在很大数据集上进行了large-scale pre-training,学到了较强的先验知识,因此使用它们的 prior 来作为预训练模型能显著提升模型的生成能力。但是当前最好的 2D diffusion model 都是 latent space 的。我们选择了 pixel space 就只能自己做 pre-training 而不是接着它们来做 post-training。另一个问题是,如何将 3DGS 嵌入到 Diffusion 当中,并且在不使用 3D 标签的情况下进行训练,毕竟 3D 标签非常稀少且昂贵。

本文针对这些问题展开研究,主要做了以下四点贡献:

(1) 设计了一种单阶段的 3D 生成框架,名为 DiffusionGS,将 Gaussian Splatting 嵌入到 pixel space 的 Diffusion model 当中,能用于 object-centric 和更大尺度 scene-level 的单视角输入三维重建。值得一提的是,我们的方法在做单视角 scene-level 重建时无需像之前的方法一样需要借助一个单目深度估计器,我们的方法本身就具有深度感知能力。

(2) 提出了一种场景-物体混合训练的框架,能将来自不同数据集的物体和场景数据放在一起训练并从中学到更泛化的三维先验。

(3) 设计了一种新的加入相机位姿控制条件的方法,reference-point plucker coordinate (RPPC), 通过在pixel-aligned ray embeddings 中引入参考点信息并且由Transformer 的跳级连接结构将这个参考点的信息传递到模型的每一层来增强整体的空间感知能力。这个 RPPC 方法是由三维视觉领域著名的 research scientist, Kai Zhang, 设计的。

(4) 我们的方法比 object-level image-to-3D generation 的当前最好方法在要高2.20 dB PSNR 和 23.25 FID 分数。在 single-view scene reconstruction 任务上。

  1. 方法介绍
图11. 本文提出的 DiffusionGS 的算法流程图
图11. 本文提出的 DiffusionGS 的算法流程图

我们的方法 DiffusionGS 算法流程大体如图11所示,主要由 (a) 场景-物体混合训练策略和 (b) 我们的 3D Diffusion 框架。本小节首先给大家介绍 (b),然后再介绍 (a)。

我们的 Diffusion 也是一个 multi-view diffusion,不过与之前的 multi-view diffusion 不同的地方在于 (1) 是 pixel space 的,(2) 将 3DGS 点云嵌入其中来增强三维视角的一致性。首先,在训练阶段,我们模型的输入是一张干净图像和 N 张噪声图像,以及这 N+1 张图像对应的相机位姿。前向过程就是逐步对 N 个视角加噪声如下:

图片

然后在每一个时间步下都会给各个视角预测一个 pixel-aligned 的 Gaussian primitives,通过将各个视角对应的 Gaussian primitives 合并便得到了这个时间步下的高斯点云模型。

图片

由于三维高斯点云的真值不知道,也没法直接得到,同时 noisy point clouds 会损坏三维视角的一致性,所以我们将我们的 Diffusion 框架推导为 而不是最常见的 ,即不是预测噪声。具体而言,我们对生成的三维高斯点云采用 rasterization 渲染出各个视角下的图像:

图片
图片

然后我们对渲染出来的图片设置L2损失和感知损失如下:

图片

然后在 inference 阶段,我们采用 30-step 的 DDIM 进行加速,只使用一张干净图像和相对相机位姿:

图片

由于我们的model是 pixel-space 的,没法使用pre-trained image diffusion prior,因此需要较多的3D数据来学到较好的 3D prior。然而3D训练数据本身并不是很多,尤其是 scene-level 的数据,只有9万多个。因此,接着我们又设计了一种场景-物体混合训练策略来充分利用各类三维训练数据。我们首先对训练的视角夹角加一些限制,如图11 (a) 所示,主要控制两类夹角,第一类夹角是 noisy view, condition view, 和 novel view 的位置向量之间的夹角:

图片

第二类夹角是这三种view之间的前向向量(Forward Direction)之间的夹角:

图片

由于 scene 和 object 成像范围与深度不相同,我们设计了一种加相机条件的方式。如图 12

图片

图12. 普通 PluckerCoordinate 对比本文的 Reference-Point Plucker Coordinate 对比所示,常规的 camera conditioning 使用的是 plucker coordinate: 主要突出的是 camera pixel-aligned ray 的旋转与方向。然而空间深度的感知需要一些位置信息,为此,我们将垂直于相机相机射线的最近点位置向量作为参考点输入到模型当中,借助 Transformer 的残差结构能将这个参考点信息传递到模型的所有层当中。如图 12 (b) 所示,我们的 Reference-Point Plucker Coordinate (RPPC)公式如下:

图片

为了让模型能够更好地处理 scene 和 object 数据,我们分别采用了两个不同的 MLP 来作为 Gaussian primitives decoder,如图 9 所示。同时我们注意到 object-level generation的高斯点云主要集中在中心位置,为此,我们还设计了一个 point distribution loss 来作为 Object-level 训练的 warm-up 如下:

最终,总的损失函数如下:

图片
  1. 实验结果
表1. 定量实验对比
表1. 定量实验对比

定量实验对比如表1所示,我们的方法在不借助 2D image diffusion prior 和 monocular depth estimator 的情况下比 SOTA 方法达到更好的测试指标和更快的生成速度。

图13. object-level 生成结果对比示意图
图13. object-level 生成结果对比示意图
图14. scene-level 单视角重建对比示意图
图14. scene-level 单视角重建对比示意图

视觉对比如图 13 和 14 所示,我们方法生成更清晰,三维一致性更好的新视角图像,伪影和模糊也更少。

  1. 结语 本文设计了一种新的 3D Diffusion framework,将显式的 3D Gaussian Splatting 嵌入其中,能够用于单视角的3D生成重建。目前代码和模型已开源,欢迎大家来用。

感谢你看到这里,添加小助手 AIGC_Tech 加入官方 AIGC读者交流群,下方扫码加入 AIGC Studio 星球,获取前沿AI应用、AIGC实践教程、大厂面试经验、AI学习路线以及IT类入门到精通学习资料等,欢迎一起交流学习💗~

图片

没有评论:

发表评论

【重磅来袭】浦发银行、海南农商银行、光大银行集体“大放水”:最高1500万信用企业贷,企业凭营业执照+纳税可申请

原材料涨价、订单激增却缺周转资金?不少企业曾因负债高、审批慢错失发展机遇。 原材料涨价、订单激增却缺周转资金?不少企业曾因负债高、审批慢错失发展机遇。 现在 浦发银行、海南农商银行、光大银行三 大银行联合发力,推出 不查负债企业周转贷 ,额度 50 万 - 1500 万覆盖全...