Farm3D- Learning Articulated 3D Animals by Distilling 2D Diffusion论文笔记

Farm3D: Learning Articulated 3D Animals by Distilling 2D Diffusion

1. Introduction

最近的研究DreamFusion表明,可以通过text-image generator提取高质量的三维模型,尽管该生成模型并未经过三维训练,但它仍然包含足够的信息以恢复三维形状。

在本文中,展示了通过文本-图像生成模型可以获取更多信息,并获得关节模型化的三维对象类别。也就是说,我们的目标不是提取单个的三维单元(DreamFusion),而是一个整个关节三维对象类别的统计模型(例如:牛,羊,马),能够通过单个图像(真实或合成)重建一个可动的三维单元,可以轻松应用于增强现实/虚拟现实,游戏和内容创作。

方法:学习一个网络,给定一个对象的单个图像,预测相应的关节三维模型。

以前使用真实数据集来学习重建网络,建议使用从2D扩散模型(如 Stable Diffusion)生成的虚拟数据

优点:

(1)2D图像生成器倾向于产生与对象类别相关的逼真且干净的样本,隐式地筛选训练数据并简化学习过程。

(2)2D生成器通过蒸馏隐式地提供了任何给定对象实例的虚拟视图,进一步消除了学习的不确定性。

(3)它使方法更加灵活,避免了收集(并潜在地筛选)真实数据的需要。

方法被称为Farm3D,与生成单个三维单元的方法如DreamFusion 、RealFusion 和Make-a-video-3D 相互补充,这些方法通过测试时的优化从文本或图像生成一个静态或动态的三维单元。

本文的两个技术贡献:

(1)通过提示工程,可以诱导稳定扩散生成一个对象类别的相对干净的大型训练集,用于学习铰接式3D模型。我们表明,这些图像可用于引导MagicPony

(2)分数蒸馏抽样(SDS)损失可以扩展以获得合成的多视图监督,以训练照片几何自动编码器,在我们的例子中是MagicPony。由于照片几何自动编码器将对象分解为图像形成的不同因素(即铰接形状、外观、相机视点和照明),它允许我们对其中一些因素(例如视点和照明)进行重新采样,以生成同一物体的新合成视图。这些合成的然后将视图馈送到SDS(Score Distillation Sampling)损失中以接收梯度更新,该梯度更新反向传播到自动编码器的可学习参数。

2. Related Work(全翻译)

弱监督的3D对象学习。 虽然传统上重建可变形的3D对象需要同时进行多视角捕捉,但近期的一些研究已经证明,仅从单视角图像集合中,就可以学习到可变形对象的3D模型,除了分割掩码外,还需要一些形式的几何监督,如关键点注释,特定类别的模板形状,从图像特征中提取的语义对应关系,和/或强假设如对称性。另外,如果已知先验视点分布,也可以使用生成对抗框架来学习更简单的3D对象,如面部和汽车。研究人员还利用单目视频作为训练数据,利用额外的时间信号进行学习。尽管已经展示了令人印象深刻的结果,但其中许多仍然依赖于精心策划的特定类别数据进行训练,限制了模型只能适用于少数几个类别。在这里,我们介绍了一种从大型2D扩散模型中提取3D对象的方法,这种方法可能适用于广泛的对象类别。

扩散模型。 近年来,扩散模型如雨后春笋般涌现,它们已经成为新一代文本到X生成模型的基石,其中X可以是图像,视频,矢量图,音频等。特别是,这些模型可以通过学习逆扩散过程,即逐渐去除合成添加的噪声,直到图像恢复,来生成复杂的高保真样本。文本到图像的扩散模型特别引入了文本条件,为这些生成模型提供了一个强大的接口,用于通用的可控图像生成。尽管这些模型已经展示了一定程度的组合性和可控性,但这些学习的图像合成模型中编码了何种类型的3D信息,这一点尚不清楚。

从图像扩散模型中提取3D模型。 最近的一些工作开始探索从大型预训练的2D图像扩散模型中提取3D信息。特别是,DreamFusion和Magic3D已经展示了通过提示预训练的图像扩散模型,从文本查询中生成多样化的完整3D模型的可能性。Make-A-Video3D采用了类似的策略来生成4D动态场景,而RealFusion则将流程扩展到在真实照片中重建3D对象。

我们的方法与这些方法的不同之处在于,我们学习了一个有关节的类别级模型。这有几个优点。首先,它在单次前向传播中预测3D形状,消除了其他方法所需的长时间优化的需要。其次,类别级模型使我们能够直接关联同一类别内对象表面上语义对应的点,这使得我们能够进行许多应用,如纹理交换(将纹理条件化在另一个输入图像上)和图像理解。第三,我们的方法学习了有关节的形状,提供了更大的控制形状生成的能力,可以用于动画。
在这里插入图片描述

3. Method

模型基于最近的MagicPony框架,该框架也作为实验中的基线(第3.1节)。MagicPony旨在从真实图像集合中学习有关节的3D对象;在这里,我们展示了如何将其扩展到使用虚拟训练数据,替换真实数据。我们通过生成虚拟图像样本进行提示(第3.2节),并修改MagicPony的训练目标,将2D扩散模型作为评论者(第3.3节)

3.1 铰链类别模型

使用的MagicPony模型(下面的描述总结了模型的设计)
在这里插入图片描述

模型fθ接收一个单独的RGB图像I∈R3×H×WI∈R^{3×H×W}IR3×H×W作为输入,并输出一组描述图像中包含的对象的照片-几何参数(s,a,v,l)=fθ(I)(s, a, v, l) = f_{θ}(I)(s,a,v,l)=fθ(I),其中θθθ是模型参数。在这里,sss是对象形状(考虑到类别级先验形状,实例特定的变形,和图像特定的骨骼关节),aaa是外观(考虑到反照率和漫反射和环境强度),v∈SE(3)v∈SE(3)vSE(3)是对象视点(表示为相对于相机的旋转和平移),l∈S2l∈S2lS2是照明的主要方向。

照片-几何编码器fθf_{θ}fθ与渲染函数I^=R(s,a,v,l)\hat{I} = R(s, a, v, l)I^=R(s,a,v,l)配对,该函数复制了对象的图像。该方法的关键在于,RRR是一个手工制作的(未学习的)可微分的渲染器,它隐式地为s,a,v,ls, a, v, ls,a,v,l分配了照片-几何含义。

MagicPony从单目图像和视频的单个帧的集合中学习,但假设一个策划过程,该过程将图像裁剪到感兴趣的对象周围,并排除被遮挡和截断的实例。它还假设一个分割器来获取对象掩码M∈0,1H×WM∈{0, 1}^{H×W}M0,1H×W,例如PointRend。给定训练对(I,M)(I,M)(I,M)的结果数据集DDD

MagicPony最小化了目标:

L(θ∣D)=1∣D∣∑(I,M)∈DL(fθ(I)∣I,M)+R(fθ(I)) \mathcal{L}(\theta \mid \mathcal{D})=\frac{1}{|\mathcal{D}|} \sum_{(I, M) \in \mathcal{D}} \mathcal{L}\left(f_{\theta}(I) \mid I, M\right)+\mathcal{R}\left(f_{\theta}(I)\right) L(θD)=D1(I,M)DL(fθ(I)I,M)+R(fθ(I))

其中L(fθ(I)∣I,M)\mathcal{L}\left(f_{\theta}(I) \mid I, M\right)L(fθ(I)I,M)检查预测的对象模型如何重建输入图像I,输入掩码MMM,和ViT-DINO特征Φ(I)Φ(I)Φ(I),而正则化器R(fθ(I))\mathcal{R}\left(f_{\theta}(I)\right)R(fθ(I))正则化了先验形状(SDF的Eikonal损失),并缩小了实例特定变形和关节的数量。

3.2 通过提示生成训练图像

在以往的研究中,训练数据主要由经过简单筛选的真实图像组成。但在这里,我们提出了一个新的想法,即用完全虚拟的目标对象类别图像来替换这些真实图像,这些虚拟图像是由一个现成的图像生成器生成的。我们通过给定特定的文本提示,来驱动这个Stable Diffusion模型,一个高质量的2D扩散模型,生成我们需要的图像。所有的训练数据都是使用同样的提示生成的,唯一的变化就是对象的类别名称。

当简单地提示一个物体类别的图像时,例如“牛”,Stable Diffusion会产生物体的正面和侧面视图。我们假设这是由于其训练数据中包含的偏差造成的。我们发现,单纯依赖于视图的提示{side, front, back}在Stable Diffusion中不能很好地工作。相反,我们发现,对于一个动物类别“从相机走开”的提示,足以使生成有足够的偏差,以获得具有多样化视角覆盖的图像。

Stable Diffusion的结构形式 使用了一个自动编码器,它可以将图像映射到一个潜在的编码空间z0=h(I)∈RD′×Hh×Whz_{0} = h(I) ∈ R^{D'×H_{h}×W_{h}}z0=h(I)RD×Hh×Wh ,然后学习这个潜在编码与文本提示y之间的条件分布p(z0∣y)p(z_{0}|y)p(z0y),条件是一个文本提示yyy。 对于典型的扩散模型,这个过程中,模型会考虑到一系列的噪声信号zt=αtz0+σtϵt=αth(I)+σtϵtz_{t} = α_{t}z_{0} +σ_{t}\epsilon_{t} = α_{t}h(I)+σ_{t}\epsilon_{t}zt=αtz0+σtϵt=αth(I)+σtϵt,然后通过一个去噪网络ϵt^(zt∣y)\hat{\epsilon_{t}}(z_{t}|y)ϵt^(zty)来逼近ztz_{t}zt的噪声内容ϵt\epsilon_{t}ϵt,以此来训练模型,使其能够最小化损失:

L(ϵ^)=Et,ϵ,I,y[∥ϵ^t(αth(I)+σtϵt∣y)−ϵt∥2](1) \mathcal{L}(\hat{\epsilon})=\mathbb{E}_{t, \epsilon, I, y}\left[\left\|\hat{\epsilon}_{t}\left(\alpha_{t} h(I)+\sigma_{t} \epsilon_{t} \mid y\right)-\epsilon_{t}\right\|^{2}\right](1) L(ϵ^)=Et,ϵ,I,y[ϵ^t(αth(I)+σtϵty)ϵt2]1

其中αt=1−σt2α_{t}=\sqrt{1-\sigma_{t}^{2}}αt=1σt2σt∈(0,1)\sigma_{t}\in(0,1)σt(0,1)t=0,1,…,Tt=0,1,…,Tt=0,1,,T是噪声标准差从σ0≈0σ_{0}≈0σ00σT≈1σ_{T}≈1σT1的递增序列,ϵt\epsilon_{t}ϵt是正态分布噪声

最后,为了从学习到的分布中抽取一个图像样本III,我们会从正态分布中抽取一个随机样本ztz_{t}zt,然后逐步去噪,通过zt−1=αt−1(zt−σtϵt(zt)^)z_{t-1}=\alpha_{t}^{-1}(z_{t}-\sigma_{t}\hat{\epsilon_{t}(z_{t})})zt1=αt1(ztσtϵt(zt)^)以得到z0z_{0}z0,最终得到我们需要的图像I=h−1(z0)I=h^{-1}(z_{0})I=h1(z0)。去噪网络ϵt^\hat{\epsilon_{t}}ϵt^是由一个预训练的模型提供的。我们使用这个模型来抽取图像样本,其中的文本提示就是我们之前描述的那样。

3.3 提取3D重建器

除了从头开始训练数据生成,我们还可以使用二维图像生成器作为一种综合多视图监督的形式来训练重建网络fθf_{θ}fθ

为此给定一个示例图像III

  1. 得到一个关于物体的图像-几何参数的估计(s,a,v,l)=fθ(I)(s, a, v, l) = f_{θ}(I)(s,a,v,l)=fθ(I)
  2. 随机采样一个新的摄像机视点v~\tilde{v}v~和新的光照方向l~\tilde{l}l~并渲染对应的图像I~=R(s,a,v~,l~)=R∘subst⁡v~,l~∘fθ(I).\tilde{I}=R(s, a, \tilde{v}, \tilde{l})=R \circ \operatorname{subst}_{\tilde{v}, \tilde{l}} \circ f_{\theta}(I).I~=R(s,a,v~,l~)=Rsubstv~,l~fθ(I).这里算子substsubstsubst用新值v~\tilde{v}v~l~\tilde{l}l~替换fθ(I)f_{\theta}(I)fθ(I)输出中的vvvlll
  3. 使用2D图像生成器判断图像是否正确。通过分数蒸馏采样(Score Distillation Sampling)SDS损失实现。SDS loss的梯度为
    ∇θLSDS(θ∣v~,l~,I,y)=Et,ϵ[wt⋅(ϵ^t(zt∣y)−ϵt)∂zt∂θ](2) \nabla_{\theta} \mathcal{L}_{\mathrm{SDS}}(\theta \mid \tilde{v}, \tilde{l}, I, y)=\mathbb{E}_{t, \epsilon}\left[w_{t} \cdot\left(\hat{\epsilon}_{t}\left(z_{t} \mid y\right)-\epsilon_{t}\right) \frac{\partial z_{t}}{\partial \theta}\right](2) θLSDS(θv~,l~,I,y)=Et,ϵ[wt(ϵ^t(zty)ϵt)θzt]2
    其中wt>0w_{t}>0wt>0是一个权重因子,ϵt\epsilon_{t}ϵt是噪声样本,并且
    zt=αt⋅(h∘R∘subst⁡v~,l~∘fθ)(I)+σtϵt z_{t}=\alpha_{t} \cdot\left(h \circ R \circ \operatorname{subst}_{\tilde{v}, \tilde{l}} \circ f_{\theta}\right)(I)+\sigma_{t} \epsilon_{t} zt=αt(hRsubstv~,l~fθ)(I)+σtϵt
    因此loss梯度中的倒数是
    ∂zt∂θ=αt⋅h′(I~)⋅∂R∂(s,a)∣(s,a,v~,l~)⋅∂[fθ]sa∂θ∣I \frac{\partial z_{t}}{\partial \theta}=\left.\left.\alpha_{t} \cdot h^{\prime}(\tilde{I}) \cdot \frac{\partial R}{\partial(s, a)}\right|_{(s, a, \tilde{v}, \tilde{l})} \cdot \frac{\partial\left[f_{\theta}\right]_{s a}}{\partial \theta}\right|_{I} θzt=αth(I~)(s,a)R(s,a,v~,l~)θ[fθ]saI
    第一个因子αtα_{t}αt来自于扩散缩放,第二个因子是稳定扩散潜在代码z0z_{0}z0对编码图像III的导数。第三个因子是渲染函数仅对形状和外观组件的导数。最后一个因子是模型fθf_{θ}fθ对形状sss和外观aaa的预测的导数(注意,视点v~\tilde{v}v~和光照l~\tilde{l}l~并未包含在导数中,因为它们不是由fθ估计的,而是通过抽样得到的。)

噪声调度 在等式2中正确地调度噪声是至关重要的。如果噪声太大,带有噪声的潜在图像与实际重构的图像几乎没有关系;结果,SDS损失的反馈指向一个新的方向,重建与提示y兼容的“任何”对象,而不是改善输入图像I中包含的特定对象的重构。
在这里插入图片描述

如图所示,在实践中,我们在等式(2)的定义中,抽样t∼U(0.02,tmax)t ∼ U(0.02, tmax)tU(0.02,tmax),其中tmax = 0.6,而不是DreamFusion中使用的tmax = 0.98。

更多细节 计算SDS梯度(2)需要较大的内存占用,并需要减半的批量大小,这会降低训练稳定性。我们发现在实践中,每隔一次迭代应用SDS指导是有帮助的。我们渲染256 × 256的图像,就像在DreamFusion中一样,随机交替使用有阴影的纹理、无纹理的阴影和仅有反照率的纹理(即,没有光照)。我们也使用相同的无分类器指导(分类器指导强度为100),因为它可以提高学习形状的规则性。

3.4 讨论

我们的模型与DreamFusion[20]相关,事实上,借鉴了它的一些想法,但有几个基本的区别。

DreamFusion

从一个文本条件图像生成器网络ϵ\epsilonϵ开始

从网络中提取一个单独的3D模型VVV(一个神经亮度场),对应于文本提示yyy

Farm3D

从一个文本条件图像生成器网络ϵ\epsilonϵ开始

学习一个单目重建网络fθf_{\theta}fθ(一个类别级的先验3D模型)

可以重建真实物体照片,输出物体的铰链模型网格

缺陷:Farm3D通用性有限,因为是为重建特定类别模型设计的

4. Experiment

在包括牛、羊、马、猪和斑点狗在内的几种动物类别上进行了单图像3D重建(4.3节)和3D资产生成(4.4节)的实验,展示了我们的方法在各种关节动物物种上的泛化能力。

4.1 Dataset

在没有任何真实图像的情况下,使用第 3.2中描述的过程为每个对象类别生成 30k 个虚拟视图。

使用PASCAL[4]和COCO[16]中的图像对模型进行了定性评估。并使用PASCAL标注对关键点转移任务进行了定量评估。

4.2 单视图3D重建

定性比较 与 MagicPony 基线进行比较,该基线是在大量真实图像(包括视频帧)上进行训练的,而我们的模型纯粹从稳定扩散生成的虚拟训练数据中学习。
在这里插入图片描述
尽管在训练时没有看到任何真实图像,我们的模型重建了高质量的形状,减少了对输入视图的过度拟合。明确的形状预测更加可信,尤其是从新颖的角度来看时。这可以归因于蒸馏损失所获得的更强的正则化,实际上在训练期间提供了多视图监督。

定量比较 在PASCAL上使用了关键点转移任务,这是弱监督对象重构中常用的度量。总结就是好好好,可比甚至优于MagicPony

4.3 可控三维形状合成

除了通过底层骨架模型控制关节之外,我们的方法还可以实现从真实图像或使用Stable Diffusion合成的图像生成可控的 3D 资产,该模型可以以图像或文本为条件。对于文本调节,例如“穿着巴洛克盔甲的羊”,与需要数小时测试时间优化的蒸馏方法不同,我们的方法一次性生成 3D 形状,从而在生成 3D 资产时实现更快的迭代。
在这里插入图片描述
可以选择在单个图像上微调我们的类别模型。这使我们能够使模型适应训练分布之外的形状,例如“用水果制成的牛”,如图 7 所示。由于此过程非常快(不到 30 秒),因此用户可以控制3D 生成模型的输出,这是一项令人兴奋的功能,具有许多潜在的应用。
在这里插入图片描述

4.5 消融实验

我们进行消融来评估 SDS 指导对学习姿势和形状质量的影响。我们的定性结果表明,使用 SDS 有助于该方法了解更合理的形状和清晰度。
在这里插入图片描述
我们还对噪声调度进行了消融研究,证明它对于训练稳定性至关重要。如果没有我们的噪声调度,学习就会不稳定,并且模型在训练过程中经常崩溃多次。
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值