DreamPolisher: Towards High-Quality Text-to-3D Generation via Geometric Diffusion
Project Page: DreamPolisher: Towards High-Quality Text-to-3D Generation via Geometric Diffusion
arXiv: [2403.17237] DreamPolisher: Towards High-Quality Text-to-3D Generation via Geometric Diffusion
Code: GitHub - yuanze-lin/DreamPolisher: Official code for "DreamPolisher: Towards High-Quality Text-to-3D Generation via Geometric Diffusion"
摘要 | Abstract
We present DreamPolisher, a novel Gaussian Splatting based method with geometric guidance, tailored to learn cross-view consistency and intricate detail from textual descriptions. While recent progress on text-to-3D generation methods have been promising, prevailing methods often fail to ensure view-consistency and textural richness. This problem becomes particularly noticeable for methods that work with text input alone. To address this, we propose a two-stage Gaussian Splatting based approach that enforces geometric consistency among views. Initially, a coarse 3D generation undergoes refinement via geometric optimization. Subsequently, we use a ControlNet-driven refiner coupled with the geometric consistency term to improve both texture fidelity and overall consistency of the generated 3D asset. Empirical evaluations across diverse textual prompts spanning various object categories demonstrate DreamPolisher’s efficacy in generating consistent and realistic 3D objects, aligning closely with the semantics of the textual instructions.
我们提出了DreamPolisher,这是一种新颖的基于GS的几何引导方法,旨在从文本描述中学习跨视图一致性和复杂的细节。虽然最近的文本到 3D 生成方法取得了很大进展,但流行的方法通常无法确保视图一致性和纹理丰富度。对于单独使用文本输入的方法,这个问题变得特别明显。为了解决这个问题,我们提出了一种基于两阶段GS的方法,该方法强制视图之间保持几何一致性。
最初,粗略的 3D 生成通过几何优化进行细化。随后,我们使用ControlNet驱动的细化器和几何一致性项来提高生成的3D资产的纹理保真度和整体一致性。
各种对象类别的不同文本提示的生成实例证明了DreamPolisher在生成一致和逼真的 3D 对象方面的效果,同时能够与文本指令的语义密切对齐。
方法流程 | Method
Given the text prompt, DreamPolisher will perform two-stage training, including coarse optimization (stage 1) and appearance refinement (stage 2):
Coarse Optimization (Stage 1). The text prompt is firstly fed into a pretrained text-to-point diffusion model, e.g., Point-E [29] to obtain the corresponding point cloud, which is used to initialize the 3D Gaussians. After that, we use 3D Gaussian Splatting to optimize the object Gaussians guided by the pre-trained text-to-image diffusion model.
Initialization0 初始化方法:Point-E,确保一致的3D几何形状。几何先验有助于缓解Janus问题并提高几何一致性。
Stage1 粗优化阶段:使用LucidDreamer的ISM方法进行几何优化。
本部分内容与LucidDreamer相同
Appearance Refinement (Stage 2). We render multiple views from the 3D object optimized by the coarse stage, and feed them to the Scene Coordinate Renderer. The rendered scene coordinates are then used in the view consistency loss, which aims to ensure that nearby scene points have consistent colors. The geometric embeddings from the camera encoder and the rendered multiple views are then fed into the ControlNet Refiner to generate high-quality and view-consistent 3D assets.
Stage2 细化阶段:使用几何引导的ControlNet进行迭代优化,以增强视图间的细粒度细节和一致性,同时保留基本的几何信息。
相机编码器 Camera Encoder
为了确保对细节的一致优化,例如颜色,阴影,跨视图的信息,作者在相机信息上调节ControlNet细化器。将相机外参转换为向量
ControlNet精细化器 ControlNet Refiner
从粗3D对象采样多个RGB视图,将这些视图通过精细化网络ControlNet-tile
输入的特征包括来自文本描述的特征嵌入和前述相机编码的特征嵌入。
视图一致的几何引导
⭐⭐⭐⭐⭐主要创新点
上述精细化模块有助于改善纹理质量,但是多面不一致仍然是问题。于是引入了新的几何指导,而不是仅依靠额外的视图来保持一致性。
场景坐标渲染器
对于采样视图中像素坐标
其中s是比例因子,简化问题设定为1,K是3×3的内参矩阵,T是3×4外参矩阵。
从像素坐标到相机坐标
相机到世界坐标的变换由
然后对映射世界坐标进行归一化,需要将相机原点转换为世界坐标,然后找到相机中心到3D点的射线:
其中,
视图一致性损失
使用渲染的场景坐标,作者引入了一种新的视图一致性损失,它强制视图之间的外观一致性。直觉是强制在3D空间中具有相似坐标的像素具有相似的颜色值。理想情况下,作者将首先通过形成Gram矩阵将第一张图像中的每个像素与第二张图像中的每个像素进行比较,该矩阵将比较所有像素对之间的相似性。然而,这种方式计算成本很高。图像的Gram矩阵的大小为
Gram矩阵 由两两向量的内积组成,用于衡量该组向量中各个向量之间的相似程度。
可能可以参考的:三维点云配准 -- ICP 算法 中的找最近对应点(Find Closet Point)
作为更可行的替代方法,作者只比较重叠像素。这受到密集迭代最近点算法(dense Iterative Closest Point (ICP) algorithms)中的投影数据关联(TODO)的启发。这种方法侧重于从一个视图投影到另一个视图的重叠像素,假设这些像素在空间上对齐时,应该在颜色和强度上表现出相似的特征。通过限制与这些投影相关像素的比较,作者显著减少了计算负担,同时仍然有效地保持视图一致性。损失函数定义如下:
其中,
Real-time 3d model acquisition. ACM Transactions on Graphics (TOG) 21(3), 438–446 (2002) Real-time 3d model acquisition.
在训练阶段,视图一致性损失被用于优化相机编码器,使其可以学习到几何嵌入,并将其注入到ControlNet中以实现跨视图一致性。
直接用两个Loss优化3D对象参数可能会导致过平滑和不稳定,因此在阶段1优化参数时,只使用
实现细节 | Implementation Details
Stable Diffusion 2.1作为预训练二维文生图模型
ControlNet 1.1 tile 作为精细化的模型
cfg系数为7.5
同时使用Perg-Neg中的Prompt插值。
密集化:从100次到2500次迭代进行,阈值为
修剪:当不透明度低于0.003时去除高斯。
每500步迭代逐渐放松视图范围。
粗优化2500轮,细优化1500轮。
优化中不透明度、缩放和旋转的学习率设置为0.05、0.005和0.001
对相机编码器采用0.001的学习率。
RGB图像与深度图共同渲染&训练。
Comments | NOTHING