87、Let 2D Diffusion Model Know 3D-Consistency for Robust Text-to-3D Generation
创始人
2025-06-01 01:31:19
0

简介

主页:https://ku-cvlab.github.io/3DFuse/

分数蒸馏是一种使用预先训练的文本到2d扩散模型来优化零镜头设置下神经辐射场(NeRF)的方法

二维扩散模型中缺乏三维感知,使得基于分数蒸馏的方法无法重建一个可信的3D场景

例如:文本提示“一只可爱的猫”具有颜色模糊性,因为它可以指黑猫或白猫。这种模糊性导致在这个范围内生成任何图像的自由,这损害了生成的NeRF的质量和一致性
在这里插入图片描述

3DFuse 将3D感知整合到预训练的2D扩散模型中,增强了基于分数蒸馏的方法的鲁棒性和3D一致性

实现流程

在这里插入图片描述
在该框架中,对语义代码进行采样,通过基于文本提示生成图像,然后优化提示的嵌入以匹配生成的图像来减少文本提示的模糊性。一致性注入模块接收这个语义代码来合成特定于视图的深度图,作为扩散U-net的一个条件。该模块还包括一个稀疏深度注入器,通过利用外部3D先验隐式融合3D感知,以及LoRA层来保持语义一致性。

Semantic code sampling

一种简单而有效的技术来对抗这种文本提示歧义,成为语义代码采样(semantic code sampling)来指定优化的场景的语义标识,从而减少歧义

首先,从文本提示 c 生成一个2D图像 x^\hat{x}x^。然后,优化文本提示嵌入 e 以更好地适应生成的图像,类似于文本反转
在这里插入图片描述
x^t\hat{x}_tx^t​ 为生成图像 x 的噪点图像,在时间步 t 和 噪声 ϵ\epsilonϵ

生成的图像 x 和优化后的嵌入函数 e∗e^*e∗ 的组合称为语义代码 s:=(x^,e∗)s:=(\hat{x},e^*)s:=(x^,e∗)

Incorporating a coarse 3D prior

构建了给定初始图像的粗略3D表示,并将其投射到目标视点以制作稀疏深度图,将3D感知整合到预训练的2D扩散模型。

以一个现成的模型 D(·) 接收图像作为输入,输出一个粗略的3D表示(稀疏3D点云)

可以从多种模型中选择D(·):它可以是点云生成模型,如 Point-E,也可以是单幅图像重建模型,如 MCC

将它们作为3D先验,构建稀疏点云并对其进行投影,得到相机位姿 π 对应的稀疏深度图 P

在这里插入图片描述
P(·) 为深度投影函数,如 ControlNet

稀疏深度注入器 EϕE_\phiEϕ​ 接收稀疏深度图 P,将其输出特征添加到 θ(x^t,e∗)θ(\hat{x}_t, e^∗)θ(x^t​,e∗) 的扩散 U -net 中的中间特征,表示为:ϵθ(x^t,e∗,Eϕ(P))\epsilon_\theta(\hat{x}_t,e^*,E_\phi(P))ϵθ​(x^t​,e∗,Eϕ​(P))

3DFuse在语义代码及其特定于视图的深度图上显式地调整3D优化,这不仅增强了NeRF的3D一致性和保真度,而且还鼓励3D场景忠实于语义代码,确保生成的3D场景的几何和语义鲁棒性

Training the sparse depth injector

在这里插入图片描述

3D模型得到的点云不可避免地包含误差和伪影,需要处理稀疏几何和投影深度图的误差

采用两种训练策略训练稀疏深度注入器 EϕE_\phiEϕ​

  • 使用稀疏深度图来训练注入器,通过将点云从点云数据集投影到已知视点来获得,通过用稀疏深度图-图像对训练模块,模型学会了从稀疏深度中插值和推断密集结构信息。通过对点云数据进行随机子采样,并添加随机生成的噪声点,对点云数据进行增强,增加了模型对预测的稀疏深度图中存在的错误和噪声的鲁棒性,使用图像标题模型获得对应图像的文本
  • EϕE_\phiEϕ​ 使用 MiDaS 获得文本到图像对的预测密集深度图上进行训练,加强了模型的泛化能力,使其能够从未包含在3D点云数据集中的类别中推断结构信息,用于稀疏深度训练

给定深度图 P 以及对应的图像 y 和标题 c,深度注入器 EϕE_\phiEϕ​ 的训练目标为
在这里插入图片描述
只是调整深度注入器EϕE_\phiEϕ​ ,而扩散模型保持冻结状态。能够直接接收稀疏和噪声深度图作为输入,并成功地从中推断出密集和鲁棒的结构信息,而不需要任何辅助深度补全网络

Pivotal tuning for semantic consistency

扩散模型应该根据语义代码,从不同的相机姿势生成尽可能多的相同物体

优化嵌入 e∗e^*e∗ 保留了语义,但通过采用[激励的LoRA技术进一步增强了这一点。

LoRA层 ψ 由线性层组成,插入扩散 U-net 中注意层的残差路径

在测试时,给定一个由文本提示符 c 生成的图像 x,修正优化的嵌入 e∗e^∗e∗ 并调优 LoRA层 ψ
在这里插入图片描述
只训练 LoRA 层,而不是整个扩散模型,以避免过度拟合到特定的视点

实验

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Conclusion

解决了文本到3d生成中的3d不连贯问题,3DFuse,它有效地将3D感知整合到预训练的2D扩散模型中。

利用了来自粗略3D结构的特定于视图的深度图,并辅以稀疏深度注入器和语义代码采样以实现语义一致性。

为解决当前文本到3D生成技术的局限性提供了一种实用的解决方案,并为从文本提示生成更逼真的3D场景提供了可能性。

相关内容

热门资讯

【MySQL】锁 锁 文章目录锁全局锁表级锁表锁元数据锁(MDL)意向锁AUTO-INC锁...
【内网安全】 隧道搭建穿透上线... 文章目录内网穿透-Ngrok-入门-上线1、服务端配置:2、客户端连接服务端ÿ...
GCN的几种模型复现笔记 引言 本篇笔记紧接上文,主要是上一篇看写了快2w字,再去接入代码感觉有点...
数据分页展示逻辑 import java.util.Arrays;import java.util.List;impo...
Redis为什么选择单线程?R... 目录专栏导读一、Redis版本迭代二、Redis4.0之前为什么一直采用单线程?三、R...
【已解决】ERROR: Cou... 正确指令: pip install pyyaml
关于测试,我发现了哪些新大陆 关于测试 平常也只是听说过一些关于测试的术语,但并没有使用过测试工具。偶然看到编程老师...
Lock 接口解读 前置知识点Synchronized synchronized 是 Java 中的关键字,...
Win7 专业版安装中文包、汉... 参考资料:http://www.metsky.com/archives/350.htm...
3 ROS1通讯编程提高(1) 3 ROS1通讯编程提高3.1 使用VS Code编译ROS13.1.1 VS Code的安装和配置...
大模型未来趋势 大模型是人工智能领域的重要发展趋势之一,未来有着广阔的应用前景和发展空间。以下是大模型未来的趋势和展...
python实战应用讲解-【n... 目录 如何在Python中计算残余的平方和 方法1:使用其Base公式 方法2:使用statsmod...
学习u-boot 需要了解的m... 一、常用函数 1. origin 函数 origin 函数的返回值就是变量来源。使用格式如下...
常用python爬虫库介绍与简... 通用 urllib -网络库(stdlib)。 requests -网络库。 grab – 网络库&...
药品批准文号查询|药融云-中国... 药品批文是国家食品药品监督管理局(NMPA)对药品的审评和批准的证明文件...
【2023-03-22】SRS... 【2023-03-22】SRS推流搭配FFmpeg实现目标检测 说明: 外侧测试使用SRS播放器测...
有限元三角形单元的等效节点力 文章目录前言一、重新复习一下有限元三角形单元的理论1、三角形单元的形函数(Nÿ...
初级算法-哈希表 主要记录算法和数据结构学习笔记,新的一年更上一层楼! 初级算法-哈希表...
进程间通信【Linux】 1. 进程间通信 1.1 什么是进程间通信 在 Linux 系统中,进程间通信...
【Docker】P3 Dock... Docker数据卷、宿主机与挂载数据卷的概念及作用挂载宿主机配置数据卷挂载操作示例一个容器挂载多个目...