素材巴巴 > 程序开发 >

Deep Convolutional Inverse Graphics Network(DCIGN)

程序开发 2023-09-02 19:00:45

Deep Convolutional Inverse Graphics Network

 

摘要

 

本文介绍了深度卷积逆图形网络(DCIGN),该模型旨在学习可解释的图像表示形式,该图像与三维场景结构、深度旋转和光照变化等视角转换解耦(disentangled)。 DC-IGN模型由多层卷积和反卷积算子组成,并使用随机梯度变化贝叶斯(SGVB)算法进行训练[10]。我们提出了一种训练程序来鼓励图形代码层(graphics code layer)中的神经元代表特定的变换(例如姿势或光线)。给定单个输入图像,我们的模型可以在姿势和光照变化的情况下生成同一对象的新图像。在学习3D渲染引擎以适应包括人脸和椅子在内的各种对象类别的模型时,我们将对模型的功效进行定性和定量测试。

 

1. 介绍

 

深度学习在从图像学习层次表示方面取得了重大突破。卷积神经网络(CNN)[13],受限玻尔兹曼机[8,19]和自动编码器[2,23]等模型已成功地应用于产生越来越抽象的视觉表示的多层(multiple layers)。但是,关于表征数据的最佳表示的工作相对较少。而Cohen等人 [4]通过提出一个理论框架来学习具有不变性和等方差的不可约表示,对于任何给定的任务提出最好的表示是一个悬而未决的问题(open question)。

 

关于表征学习的理论和实践已经进行了各种工作[3、4、7],并且从这项工作中出现了一套一致的表征方法:不变性,可解释性,抽象性和解耦性。特别是,Bengio等人文献[3]提出解耦表示是一种编码数据的变化相对于现实世界变换而言稀疏的表示。就是说,一次只改变几个latents,就应该能够代表现实世界中可能发生的sequences(序列)。

 

“作为逆图形的视觉(vision as inverse graphics)”范式建议提供具有这些特征的图像表示。计算机图形学包括从简洁的场景描述(图形代码 the graphics code)到图像的功能,该图形代码通常被解耦,以允许通过对诸如对象位置,姿势,照明等变换的精细控制来渲染场景,纹理和形状。这种编码的目的是容易且可解释地表示真实数据的序列,以便可以用软件代码紧凑地表示常见的转换。该标准在概念上与Bengio等人的标准相同,并且图形代码可以方便地与理想表示的属性保持一致。

 

逆图形(inverse graphics)的最新工作[15,12,11]遵循了一种一般策略,即定义具有潜在参数的概率,然后使用推论算法(inference algorithm)根据观测值找到最合适的潜在参数集。最近,Tieleman等人 [21]通过使用通用编码器网络和特定于域的解码器网络来逼近2D渲染功能,从而超越了这一个two-stage pipeline。但是,这些方法均未显示可自动产生语义上可解释的图形代码以及学习3D渲染引擎以再现图像的方法。

 

在本文中,我们提出了一种尝试学习可解释的图形代码以进行复杂转换(例如平面外旋转和光照变化)的方法。给定一组图像,我们使用混合编码器/解码器模型来学习关于各种变换(例如对象平面外旋转和光照变化)解耦的表示形式。我们采用具有深度的卷积和反卷积算子层的有向图模型,该模型使用随机梯度变化贝叶斯(SGVB)算法进行训练[10]。

 

我们提出了一种训练程序(training procedure),以鼓励图形代码层中的每组神经元分别代表特定的变换。为了学习解耦的表示,我们使用数据进行训练,每个mini-batch都有一组有效(active)和无效(inactive)的转换,但是我们没有像监督学习那样提供目标值。目标函数保持重建质量。例如,点头的脸将具有3D立体转换,但其形状,纹理和其他转换将处于非活动状态。我们利用这种类型的训练数据来强制图形代码层中的选定神经元专门表示主动转换,从而自动创建解缠结的表示。给定一个人脸图像,我们的模型可以使用不同的姿势和光照重新生成输入图像。我们在学习3D渲染引擎时给出了模型功效的定性和定量结果。

 

 

2. 相关工作

 

如前所述,文献中已经提出了许多生成模型来获得抽象的视觉表示。与大多数基于RBM的模型[8、19、14]不同,我们的方法是使用反向传播进行训练的,该反向传播的目标函数包括数据重建(data reconstruction)和变分界线(the variational bound)。

 

相对而言,Kingma等人[10]提出了SGVB算法来学习具有连续潜在变量的生成模型。在这项工作中,前馈神经网络(编码器)用于近似后验分布,而解码器网络用于实现观测值的随机重建。为了处理人脸的细粒度几何图形,我们处理相对较大比例的图像(150×150像素)。我们的方法扩展并应用了SGVB算法,以分别训练和利用多层卷积和反卷积运算符分别用于编码器和解码器网络。解码器网络具有将紧凑的图形代码(200尺寸)转换为150 * 150图像的功能。我们建议使用unpooling(最近邻采样),然后进行卷积,以处理数量可控的大量维数。

 

最近,[6]提出了使用CNN在监督设置下生成具有特定对象参数的图像的方法。由于他们的方法要求图形代码层带有真实标签,因此不能直接应用于图像解释任务。我们的工作类似于Ranzato等人 [18],他的工作是第一个使用通用编码器-解码器体系结构进行特征学习的工作。但是,与我们的建议相比,他们的模型是逐层训练的(layer-wise),中间表示(intermediate representations)没有像图形代码那样被解耦,他们的方法没有使用变分自动编码器损失(variational auto-encoder loss)来近似后验分布。我们的工作在思想上也与[20]相似,但是相比之下,我们的模型没有假定朗伯反射模型(Lambertian reflectance model),而是隐式构造了3D表示。另一相关工作是Desjardins等。 [5],他在生成深度网络中使用峰值(spike)和平板(slab)之前分解表示。

 

与现有方法相比,重要的是要注意,我们的编码器网络会生成学习有意义的3D图形引擎所需的可解释和解耦的表示形式。最近在文献中提出了许多反图形启发方法[15]。但是,大多数此类方法依赖于手工渲染引擎,Hinton等人的工作除外。 [9]和Tieleman [21]讨论了使用域特定解码器(domain-specific decoder)重构输入图像的自动编码器的转换。我们的工作与这些工作在思想上相似,但有一些主要区别:(a)它在编码器和解码器网络中使用非常通用的卷积体系结构,以实现对大型数据集和图像尺寸的有效学习; (b)它可以处理单个静态帧,而不是[9]中要求的一对图像; (c)具有生成性。

 

3.模型

图1:模型架构:深度卷积逆图形网络(DC-IGN)具有编码器和解码器。我们遵循变分体自动编码器[10]的架构。编码器由几层卷积组成,然后是最大池化层,而解码器则有几层unpooling(使用最近邻的上采样),然后是卷积。 (a)在训练过程中,数据x通过编码器生成后验逼近Q(zi|x),,其中zi由场景潜在变量(例如姿势,光线,纹理或形状)组成。为了学习DC-IGN中的参数,对于每个zi,使用以下变分对象函数使用随机梯度下降来反向传播梯度:−log(P (x|zi)) + KL(Q(zi|x)||P (zi))。我们可以通过显示具有一组非活跃(inactive)和活跃的(active)的转换的迷你批(mini-batches)处理来强制DC-IGN学习解耦的表示形式(例如,面部旋转,沿某个方向的光扫掠等)。 (b)在测试过程中,数据x可以通过编码器传递以获取潜伏子(latents)zi。通过设置适当的图形代码组(zi),可以将图像重新渲染到不同的视点,光照条件,形状变化等,这就是如何操纵现成的3D图形引擎。

 

如图1所示,深度卷积逆图形网络(DC-IGN)的基本结构由两部分组成:一个编码器网络(Encoder),在给定数据x的情况下捕获图形代码(graphics code) Z上的分布;一个解码器网络(Decoder),学习到的条件分布为在给定Z的情况下产生一个近似值xˆ。Z可以是一个解耦的表示,其中包含因式分解的一组潜在变量zi∈Z,例如姿势,光线和形状。这对于学习有意义的3D图形引擎逼近非常重要,并且有助于弄清模型针对不同类型的转换的泛化能力。

 

让我们将DC-IGN的编码器输出表示为ye=encoder(x)。编码器输出用于参数化变量逼近Q(zi | ye),其中Q被选择为多元正态分布。使用此参数化的原因有两个:(1)使用[10]中提出的重新参数化技巧,可以轻松获得相对于Q参数θ的样本梯度,以及(2)在3D扫描仪数据上训练的各种统计形状模型,例如因为脸具有相同的多变量正态潜分布[17]。给定模型参数We我们将ye和zi连接起来,则分布参数θ=(μzi,Σzi)和潜值(latents)Z可以表示为:

我们提出了一种新颖的训练程序,可以训练网络以使其具有解耦和可解释的表示形式。

 

3.1 进行特定转换的训练

 

这项工作的主要目的是学习数据的表示形式,该表示形式包括解耦的和语义可解释的潜在变量。我们只希望对潜在变量的一小部分更改对应于真实事件的输入序列。

 

目标表示用于场景信息的一种自然选择是已经设计用于图形引擎。如果我们可以通过将人脸图像分解为姿势,光线和形状变量来对其进行解耦,则可以简单地表示与这些变量在图形应用程序中使用的相同的变换。图2描绘了我们将尝试学习的表示形式。

 

图2:表示向量(representation vector)的结构。 φ是人脸的方位角,α是人脸相对于相机的仰角,而φL是光源的方位角。

 

出于这个目标,我们执行了直接针对解耦定义的训练程序。我们将数据组织成与仅单个场景变量(光源的方位角,仰角,方位角)的变化相对应的微型批(mini-batches)处理;这些是在现实世界中可能发生的转变。我们将这些称为外在变量(extrinsic variables),它们由编码的分量z1,2,3表示。

 

我们还生成了迷你批处理(mini-batches),其中三个外部场景变量保持固定,但是人脸的所有其他属性都发生了变化。即,这些批次由在相同观察条件和姿势下的许多不同面孔组成。模型的这些固有特性(描述身份,形状,表达方式等)由潜变量(latent variables) z [4,200]的其余部分表示。这些改变固有特性的mini-batches与那些改变外部特性的mini-batches随机地散布。

 

图3:在minibatch训练中,仅φ(面部的方位角)发生变化。在前进步骤中,编码器的每个分量zi 不等于 z1的输出将更改为该批次中的每个样本都相同。这反映了以下事实:在整个批次中,与这些潜伏的期望值相对应的图像的生成变量(例如,面部的身份)是不变的。通过使这些输出在整个批次中保持恒定,迫使单个神经元z1解释批次中的所有变化,即由φ改变引起的图像变化的整个范围。在后退步骤中,z1是唯一一个从尝试进行的重建中接收梯度信号的神经元,并且所有zi 不等于 z1都接收一个信号,将它们推向更接近批次中各自的平均值。在完整的训练过程中,在此批次之后,随机选择另一个批次;它同样只包含φ,α,φL固有值之一的变化;钳住所有与选定latent不符的神经元。

 

我们使用SGVB训练此表示(representation),但是我们对编码器的输出和训练它的梯度进行了一些关键的调整。步骤(图3)如下。

 

1.随机选择一个潜在变量Ztrain,我们希望它与{方位角,仰角,光源的方位角,固有属性}中的一个相对应。

2.随机选择一个mini-batch,在该批处理中仅该变量发生变化。

3.在mini-batch中向网络显示每个示例,并捕获该示例zk的潜在表示

4.计算整个批次中这些表示向量的平均值。

5.在将编码器的输出放入解码器之前,将值zi不等于 ztrain替换为其整个批次中的平均值。这些输出是“强制实行的”。

6.根据解码器中的SGVB计算重建误差(reconstruction error)并反向传播。

7.用它们与平均值的差值(见3.2节)替换latents zi不等于ztrain(被限制的神经元)的梯度。 ztrain处的梯度不变。

8.使用修改后的梯度继续通过编码器进行反向传播。

 

由于内在表示(intrinsic representation)的维数比外在表示(extrinsic representation)的维数高,因此需要更多的训练。因此,我们选择以大约1:1:1:10的比例使用的批次类型,即方位角:仰角:照明:固有的;经过大量测试,我们得出了该比率,并且对我们两个数据集都适用。

 

该训练过程用于训练编码器和解码器以表示特定神经元中数据的某些属性。通过限制位除一个神经元之外的所有神经元的输出,我们迫使解码器仅使用该一个神经元值的变化来重新创建该批次中的所有变化。通过限制梯度,我们训练编码器将有关批次变化的所有信息放入一个输出神经元中。

 

这种训练方法导致网络的潜在变量(latent variables)与相应的生成参数具有很强的等价性(equivariance),如图6所示。这允许从编码器中轻松提取真实生成参数的值(例如,人脸的真实角度)。

 

图6:解码器的一般化,可以在新颖的视点和光照条件下渲染图像:我们通过改变光线,方位角和高度来生成多个数据集,并测试了DC-IGN表示Z的不变性。我们展示了三种量化性能网络配置,如第4.1节所述。 (a,b,c)所有DC-IGN编码器网络都可以合理地预测静态测试图像的转换。有趣的是,如(a)所示,编码器网络似乎已经学会了一个开关节点,可以分别处理面部左右侧面的方位角。。

 

3.2 不变性目标

 

通过一次只进行一次转换训练,我们鼓励某些神经元包含特定信息。这是等价性(equivariance)。但是我们也希望明确阻止他们获得其他信息。也就是说,我们希望它们对其他转换不变。由于我们的训练数据的mini-batch每批次仅包含一个转换,因此此目标对应于使编码器的输出神经元(除其中之一)对批次中的每个图像都提供相同的输出。

 

为了鼓励DC-IGN的这种特性,我们训练了与非活动变换相对应的所有神经元,其误差梯度等于它们与平均值的差。对于批次中的每个输入,最简单的方法是将此梯度考虑为作用于编码器所激活的子矢量集。这些zinactive的每一个都将指向高维空间中彼此靠近但不完全相同的点;不变训练信号将把它们推到一起。我们不在乎他们在哪里;网络可以代表此批次中显示的面孔。我们只关心网络始终以相同的人脸表示它,而不管其面对的是哪种人脸。该调整力需要缩放到远小于实际训练信号的大小,否则它可能使重建目标不堪重负。根据经验,系数为1/100效果很好。

 

4. 实行

 

我们使用从Paysan等人 [17]获得的3D面部模型生成的约12,000个batch人脸进行了模型训练。其中每批由20张人脸组成,这些面孔在面孔身份变量(形状/纹理),姿势或光照方面具有随机变化。我们在训练过程中使用了rmsprop [22]学习算法,并将元学习率设置为0.0005,动量衰减(momentum decay)为0.1,权重衰减(weight decay)为0.01。

 

为确保这些技术可用于其他类型的数据,我们还训练了网络以从Aubry等人提取的Pascal Visual Object Classes数据集的许多角度对多种多样的3D椅子的图像进行重构。 [16,1]。此任务测试DC-IGN学习数据集的渲染功能的能力,该数据集的集合元素之间存在很大差异。椅子从办公椅到柳条编织的,再到现代设计不等,视野范围为360度和两个立体图。这些网络的培训方法和参数与上述方法相同。

 

 

图4:操纵光照和仰角变量:定性结果显示了学习到的DC-IGN解码器具有重新渲染具有不同姿态方向的单个输入图像的泛化能力。 (a)我们平稳地改变了潜在的zlight,使所有其他199个latents保持不变。(b)我们平稳地改变潜在的Zelevation,使其他所有199个潜在的Latent保持不变。

 

 

4.1 3D 脸部数据集

 

解码器网络学习如图(4,7)所示的近似渲染引擎。在给定静态测试图像的情况下,编码器网络会生成latent code Z,这些latent code Z表示场景变量,例如光线,姿势,形状等。类似于现成的渲染引擎,我们可以独立地控制它们以使用解码器生成新图像。例如,如图7所示,给定原始测试图像,我们可以通过保持所有其他latent 不变和改变zlight来改变图像的照明(light)。训练有素的解码器网络能够充当3D渲染引擎,这可能令人惊讶。

 

图7:纠缠与解耦表示对抗。第一列:原始图像。第二列:使用DC-IGN的变换图像。第三列:使用正常训练的网络来转换图像。

 

我们还定量地说明了网络在平滑线性流形上表示姿态(pose)和光线(light)的能力,如图6所示,这直接证明了我们的训练算法能够解耦复杂变换的能力。在这些图中,针对测试集的随机子集绘制了推断的和真实的变换值。有趣的是,如图6(a)所示,编码器网络的方位角表示在0°处不连续(正直面向)。

 

4.1.1 与纠缠表示(entangle representations)的比较

 

为了探究DC-IGN训练程序有多大的差异,我们比较了纠缠表示(基线)与解耦表示(DC-IGN)的网络的新颖视角重建性能。基线网络在各个方面都与DC-IGN相同,但是使用SGVB进行了培训,而没有使用我们建议的训练程序。如图4所示,我们向每个网络提供单个输入图像,然后尝试使用解码器以不同的方位角重新渲染该图像。为此,我们首先必须弄清楚纠缠表示的哪个latent最接近于方位角。我们这样做很简单。首先,我们使用基线的编码器将所有图像编码为方位角可变的批次(batch)。然后,我们计算该批次中每个latent的差异。因此,差异最大的latent则是与脸部方位角最紧密相关的latent,我们将其称为zazimuth。一旦找到,就针对两个模型改变潜在的方位角,以在给定该脸部的单个图像的情况下渲染该脸部的新颖视角(novel-view)。图7显示了显式的解耦对于新颖视图(novel-view)的重建至关重要。

 

4.2 椅子数据集

 

我们对上述3D椅子数据集进行了类似的实验。该数据集包含从1357种不同椅子的3D CAD模型渲染的静止图像,每个模型都贴有真实椅子的摄影纹理。每个模型都以60个不同的姿势进行渲染;在两个立体图中的每个立体图中,模型周围360度均拍摄了30张图像。我们在训练集中使用了大约1200张椅子,在测试集中使用了剩余的150张椅子。因此,这些网络从未从任何角度看到过测试集中的椅子,因此测试探索了网络将其推广到任意椅子的能力。我们将图像调整为150×150像素,并使它们成为灰度图像以匹配我们的面部数据集。

 

我们用椅子的方位角(水平旋转)将这些网络训练为一个由单个节点z1表示的解耦变量。图像之间的所有其他变化均未区分,并由z [2,200]表示。 DC-IGN网络成功地在测试集上实现了2.7722×10-4的均方误差(MSE)重建。每个图像的灰度值在[0,1]范围内,它为150×150像素。

在图8中,我们提供了网络在给定一张图像的情况下以不同角度重新渲染以前看不见的椅子的示例。对于某些椅子,它能够渲染出相当平滑的过渡效果,将椅子显示为许多中间姿势,而对于另一些椅子,它似乎只能捕获一种“关键帧”表示,仅在几个角度上具有不同的输出。有趣的是,仅从一个角度看去旋转椅子的任务需要对看不见的组件进行推测。椅子上可能有手臂,或者没有手臂;弯曲的座位或平坦的座位;等等

图8:操纵旋转:通过使用编码器对输入图像(最左侧)进行编码,然后更改单个latent的值并将此修改后的编码通过解码器来生成每一行。该网络从未以任何方向见过这些椅子。 (a)一些积极的例子。请注意,DC-IGN对它看不到的椅子的任何组件都做了推测。特别是,它猜测第一排的椅子有扶手,因为看不到没有扶手。 (b)网络无法准确地推断到新观点的例子。

 

5. 讨论

 

我们已经表明,可以训练深度卷积逆图形网络,使其具有与静态图像相当解开,可解释的图形代码层表示形式。通过在变分自动编码器公式中利用深度卷积和反卷积架构,我们的模型可以使用随机变分目标函数的反向传播进行端到端训练[10]。我们提出了一种训练程序,以迫使网络学习解开和可解释的表示形式。使用3D人脸和椅子分析作为工作示例,我们已经证明了学习表示的不变性和等变性。

 


标签:

素材巴巴 Copyright © 2013-2021 http://www.sucaibaba.com/. Some Rights Reserved. 备案号:备案中。