论文介绍 VolumeDiffusion: Flexible Text-to-3D Generation with Efficient Volumetric Encoder
关注微信公众号: DeepGo
源码地址: https://github.com/tzco/VolumeDiffusion
论文地址: https://arxiv.org/abs/2312.11459
VolumeDiffusion模型是一个从文本描述生成3D对象的创新方法。它通过一个轻量级的体积编码器和扩散模型来实现高效、灵活的3D生成。该模型通过编码多视图图像的特征体积,显著提高了扩散模型训练数据的可扩展性。关键在于使用新的噪声计划和低频噪声来处理高维特征体积,提高模型训练效率。VolumeDiffusion在从文本提示生成多样且可识别的3D对象方面表现出色,提供了对对象特征的改进控制,并促进了单个对象内多个概念的创造性结合。
方法概述
论文作者的文本到3D生成框架分为两个主要阶段:体积编码和扩散建模。在体积编码阶段,论文作者选择使用特征体积作为3D表示,并利用轻量级网络将多视图图像转换为3D体积。这种方法既高效又能绕过之前方法所需的昂贵优化过程。在扩散建模阶段,作者利用文本驱动的扩散模型来建模先前获得的特征体积分布。面对特征体积的高维性和数据集中对象标题的不准确性,作者开发了几项关键设计来缓解训练过程中的这些挑战。
图1展示了VolumeDiffusion框架的整体结构,它包含了体积编码和扩散建模两个阶段。编码器将多视图图像解投影(Unproject)到特征体积中,并进行进一步的细化处理。扩散模型学习在给定噪声体积和文本条件下预测原标签(GT)真实情况
体积编码器
体积表示
体积编码器的设计旨在将多视图图像有效地转换为能够代表3D对象的特征体积。作者采用了一种新颖的表示方法,结合轻量级解码器和特征体积来描述场景。选取合适的3D表示对于训练3D生成模型至关重要。作者的3D表示能够捕捉输入对象的几何和纹理细节,并对细粒度文本控制具有灵活性。此外,这种3D表示在获取和重构对象方面高度效率,有助于扩展性。
特征体积不直接存储显式值,而是存储隐式特征,通过最近体素的三线性插值获得空间点的特征,从而有效减少内存成本。
前馈编码器
多视图到特征体积的编码: 编码器接受一个对象的多视图照片( ),其中 代表N个视图的图像和深度, 代表相应的摄像机参数,包括摄像机姿态和视场(FOV)。作者首先用一个小型网络 从2D图像中提取特征,然后根据深度和摄像机姿态将特征解投影到粗糙体积 中:
其中, 表示解投影操作。对于摄像机光线上的每个点,作者首先计算其到摄像机的距离,然后获得权重 ,其中 是计算距离与真实深度的差异。每个体素的特征是从不同视图解投影的特征的加权平均。
作者进一步应用3D U-Net模块对聚合的特征体积进行细化,生成更平滑的体积: . 然后执行射线追踪和神经渲染,从目标视角渲染图像。在训练阶段,作者使用L2和LPIPS损失,对特征提取网络、3D U-Net和MLP解码器进行端到端优化。
提出的体积编码器由于两个主要原因而高度效率:首先,一旦训练完成,它能够使用32张或更少的图像生成高质量的3D体积。其次,作者的体积编码器可以在大约30毫秒内使用单个GPU编码一个对象。这种速度使作者能够在几小时内生成500K个模型,有效消除了与特征体积相关的昂贵存储开销。
扩散模型
高维空间中的挑战
不同于传统的文本到图像扩散模型,作者的文本到3D扩散模型旨在学习一个显著更高维的潜在分布。例如,在作者的实验中,作者利用的维度如 ,这与Stable Diffusion使用的 形成了鲜明对比。这种高维性使得扩散模型的训练更具挑战性。
新的噪声计划
作者的文本到3D扩散模型的主要目标是学习一个比文本到图像模型更高维的潜在分布。正如之前章节所讨论,常规的噪声计划在应用于如体积这样的高维空间时,可能导致信息破坏不足。
为了解决这一问题,在训练阶段,如果物体信息保留了很大一部分,网络将很快过拟合于训练集中的带噪体积,而忽略文本条件。因此,作者决定降低所有时间步的 ,从而降低最终信噪比,从 降低到 ,并在中间时间步均匀降低 。
低频噪声
图像或特征体积是典型的数字信号,可以被视为不同频率的数字信号组合。向体积的每个体素添加独立同分布的高斯噪声,信号本质上被白噪声扰动。独立同分布的噪声通过扩散过程均匀地破坏所有成分的信息。然而,低频成分的幅度通常较大,白噪声无法有效破坏它们。因此,整个体积的平均值作为最低频率成分,在扩散过程中最有可能不被注意到,从而导致信息泄露。因此,作者提出了低频噪声策略,以有效地破坏信息并训练扩散模型。
其中, 是为每个位置独立采样的高频噪声, 是在同一通道中所有值共享的单一值, 是一个超参数。通过这种方法,作者引入了可调整的额外信息破坏,有效地去除了物体信息,如图2(b)所示。
图2展示了噪音体积的渲染效果。通过比较,我们可以看到: (a) 常规噪声计划下的扩散:即使在较大的时间步长下,使用常规独立同分布(i.i.d.)噪声的体积仍然具有较高的可识别性。这表明标准噪声计划不能有效地破坏信息,导致即使在扩散过程后期,体积的结构依然清晰可辨。 (b) 低频噪声下的扩散:引入低频噪声后,扩散过程能更有效地移除信息。图示展现了低频噪声如何帮助模糊体积的细节,与常规噪声计划相比,低频噪声显著提高了扩散模型的信息破坏能力。
精细化(Refinement)
虽然扩散模型能够生成特征体积,但其固有限制在于输出的低分辨率,这限制了纹理细节。为了克服这一点,作者利用了现有的文本到图像模型来生成更详细的纹理,从而增强扩散模型获得的初始结果。
具体来说,作者引入了第三阶段,涉及对结果的精细调整。鉴于扩散模型提供了良好的初始输出,作者在这一阶段整合了SDS(文献[37]中提出的方法),以优化结果,确保更好的图像质量和减少错误。考虑到作者的初始结果已经令人满意,这一阶段只需少量迭代,使得作者的整个过程仍然高效。作者的方法充分利用了现有的文本到图像模型来生成原始训练集中未覆盖的纹理,增强了纹理细节,并促进了生成图像的多样性。同时,作者的方法还解决了在文献[37]中遇到的多面问题。
数据过滤(Data Filtering)
作者发现数据过滤对于训练至关重要。Objaverse主要由未经过滤的用户上传的3D模型组成,这些模型从网上爬取,包括许多几何形状、平面扫描和无纹理对象,以及基于图像的缺陷重建。此外,注释通常缺失或与旋转和位置的变化无关,3D模型的质量相比图像数据集相对较差。 作者使用一组筛选出的最高质量对象来训练扩散模型。作者发现,扩散模型能够从文本条件中学习语义关系。相反,当作者使用整个Objaverse数据集进行训练时,模型无法收敛。
实验结果
实验结果强调了作者的方法在处理复杂场景和多对象组合,以及更好地与文本提示对齐方面的能力,而其他方法只能捕捉到部分概念。作者的方法和Shap·E都是原生方法,即直接在3D表示上进行监督并使用3D数据集进行训练。值得注意的是,这些原生方法生成的形状比基于图像到3D重建或蒸馏的方法更清晰、更对称。
总结
本文介绍了一种从文本提示高效且灵活生成3D对象的新方法。通过采用轻量级网络从多视图图像获取特征体积,证明了这种方法能够有效扩大扩散模型训练所需的训练数据规模。
文章还强调了高维特征体积所带来的挑战,并提出了新的噪声计划和低频噪声,以改善扩散模型的训练。在实验中,本模型在通过文本提示控制对象特性方面的卓越性能得到了展示。未来的工作将集中于精炼算法和网络架构,以进一步加速过程。我们还将测试模型在包含更复杂对象和多样化文本提示的更广泛数据集上的性能。
更多细节请参阅论文原文
关注微信公众号: DeepGo
本文由 mdnice 多平台发布