【TPAMI 2024】竟能如此丝滑的过渡,从2D生成对抗网络数据逐步学习3D重建网络!

题目:Progressive Learning of 3D Reconstruction Network From 2D GAN Data

从2D生成对抗网络数据逐步学习3D重建网络

作者:Aysegul Dundar; Jun Gao; Andrew Tao; Bryan Catanzaro
**
关注公众号:AI前沿速递,获取更多优质资源和前沿咨询!**


摘要

本文提出了一种从单幅图像重建高质量纹理3D模型的方法。当前的方法依赖于具有昂贵注释的数据集;多视图图像及其相机参数。我们的方法依赖于由GAN生成的多视图图像数据集,这些数据集的注释成本可以忽略不计。然而,它们在多视图一致性上并不严格,有时GAN输出的图像会扭曲。这导致重建质量下降。为了克服这些生成数据集的限制,我们有两个主要贡献,使我们能够在具有挑战性的对象上实现最先进的结果:1)一种鲁棒的多阶段学习方案,逐渐更多地依赖于模型自身预测来计算损失;2)一种新颖的对抗性学习流程,通过在线伪真值生成实现细节精细化。我们的工作为从2D监督GAN模型到3D重建模型提供了桥梁,并消除了昂贵的注释工作。我们展示了在GAN生成的多视图图像或昂贵注释的真实图像上训练的先前方法相比,我们的显著改进。

关键词

  • 3D重建,3D纹理学习
  • 生成对抗网络 (GAN)
  • 单图像推断

I. INTRODUCTION

基于生成对抗网络(GAN)的模型在多种对象上实现了逼真的图像合成[20], [54],并在图像编辑、条件图像生成[9], [27]、视频生成[48]以及纹理优化任务[17], [59]中找到了应用。它们也被发现对带有自动部分分割注释的数据集生成很有用[43], [58]。人们对将这项技术部署在游戏、机器人、建筑设计和AR/VR应用中表现出了进一步的兴趣。然而,这些应用还要求对视点有控制力,需要以3D表示进行生成。另一方面,3D图像生成和重建结果的真实感并不如GAN生成的2D图像[2], [3], [10], [36], [52]。在这项工作中,我们致力于缩小这一差距。

为了重建高质量的3D模型,当前的最先进(SOTA)方法依赖于3D注释。这样的数据收集成本高昂,需要特殊硬件,并且通常在受限的实验室环境中收集。由于收集此类注释的困难,努力仅限于少数对象,如面部[11]和人体[23], [55]。一个更便宜的替代方案是精心策划的多视图数据集。它们可以用相机收集,无需昂贵的硬件要求。然而,它们的相机参数注释仍然困难。因此,合成图像被用来代替真实图像来训练3D重建模型[5], [6], [7], [52]。虽然这些模型学会了重建合成对象,但它们在恢复真实图像的3D属性方面表现不佳,因为合成图像和真实图像之间存在域差异。

单视图图像集合也被探索用于学习3D重建模型[2], [18]。然而,在训练期间使用单视图图像,模型接收到的监督有限;仅限于可见部分。提出了各种约束和正则化以获得合理的结果,例如限制从平均模板变形的损失[6], [18]、旋转和交换一致性损失[2], [36]和语义一致性[24]约束。尽管如此,结果仍然不现实。另一种使用单视图图像集合来学习3D重建模型的方法是训练一个GAN模型,然后用训练好的GAN模型生成多视图数据集[26], [57]。这种方法之所以成为可能,是因为最近的图像生成模型,特别是StyleGAN,被证明学习了一个隐式的3D表示,其潜在代码可以被操纵以改变场景的视点[19]。StyleGAN的潜在代码被控制以从不同视点生成一致的对象。只有少数选定的视图被标记为相机参数,这只需要一分钟的注释时间,并且可以为这些视图生成无限数量的样本[57]。然而,这些数据集的一个问题是它们在呈现跨视图的真实细节方面并不完美。这是因为StyleGAN在形状、纹理和相机参数的严格解耦方面并没有做到位。因此,人们不能在严格保持身份的同时改变相机参数。另一个问题是图像生成的扭曲,有时会出现物体缺失部分(参见图2)。

在这项工作中,我们的目标是从GAN生成的多视图图像中学习准确的3D重建模型。作为我们的第一个贡献,我们提出了一个框架,它对训练数据中的噪声具有鲁棒性。我们通过一个多阶段学习方案实现了这一点,该方案逐渐更多地依赖于模型自身的预测来计算损失。其次,我们提出了一个新颖的对抗性学习流程,通过在线伪真值生成来训练一个鉴别器。有了这个鉴别器,我们的模型学会了输出细节。我们的模型无论是在GAN生成的多视图图像上训练还是在昂贵的数据收集/注释流程的真实图像上训练,都比之前的方法有显著改进。总之,我们的主要贡献是:

  • 一个鲁棒的多阶段学习方案,每一步都更多地依赖于模型的预测。我们的模型不受图像中缺失部分和视图间不一致性的影响。
  • 一个新颖的对抗性学习流程,以增加纹理3D预测的真实感。我们在训练期间生成伪真值,并使用多视图条件鉴别器来学习生成细节。
  • 在三个具有挑战性的对象上,无论是定性还是定量地,都实现了高保真度的纹理3D模型合成。示例如图1所示。

III. METHOD

在第三节A中,我们描述了我们方法的动机。多阶段训练方案和对抗性学习流程分别在第三节B和第三节C中介绍。

A. Motivation

可微分渲染使训练神经网络执行3D推理成为可能,例如从图像中预测3D网格几何和纹理。然而,它们需要多视图图像、相机参数和对象轮廓来实现高性能模型。这样的数据获取成本很高。通过控制潜在代码的StyleGAN生成的数据集消除了昂贵的标记工作。当选择少数视点并进行注释时,可以为这些视点生成无限数量的多视图图像。无论生成多少图像,注释所需的时间都是1分钟[57],因为它们在不同示例中是跨对齐的。对于训练期间渲染器使用的分割掩模,可以通过现成的实例分割模型[14]获得,也可以由GAN预测[1], [58]。然而,从这些数据集中学习高性能模型仍然是一个挑战,因为生成的图像在多视图一致性方面存在精确性问题,如图2中的红色矩形所示。此外,一些示例中存在缺失部分,如图2中的蓝色矩形所示,马的头部没有高质量地生成,这也转移到了实例分割掩模(第四行)。在这项工作中,我们通过提出一个鲁棒的多阶段训练流程和一个对抗性学习设置来解决这些挑战。

B. Multi-Stage Training Pipeline

我们训练生成器输出网格和纹理预测,采用多阶段训练流程来对注释中的错误和多视图不一致性具有鲁棒性。在我们的流程的每个阶段,结果都会逐步改进。

第一阶段:在第一阶段,我们的模型从输入图像( I g v 1 Ig_{v1} Igv1)输出3D网格和纹理预测,该图像来自相机视图-1。我们使用目标视图(视图-2)渲染这些3D预测,并输出图像( I r v 2 Ir_{v2} Irv2)。我们在这些新预测上计算损失。目标视图是在序列中随机选择的。第一阶段的动机是捕获可靠的3D网格预测和合理的纹理估计。在这个阶段,我们不期望纹理估计质量高,因为视图间的不一致性。我们的实验表明,当网络用输入相同视图的损失( I r v 1 Ir_{v1} Irv1 I g v 1 Ig_{v1} Igv1)引导时,缺失部分的错误以及由此产生的分割掩模注释错误会传播到网格预测中。这会不稳定训练,即使模型是用多视图一致性训练的,例如从 I r v 1 Ir_{v1} Irv1 I r v 2 Ir_{v2} Irv2计算的目标。

因此,在第一阶段,我们学习从对象的图像重建对象,该图像来自不同的视图。这样模型就不会过度拟合给定视图的错误,因为它从新视图接收反馈。注意,新视图可能也有错误,但由于新视图是从序列中随机采样的,并且错误在视图之间不一致,模型输出最合理的3D模型,以最小化损失,类似于多数投票。

在这个阶段的训练损失计算如下。我们使用感知图像重建损失( L p − n v Lp-nv Lpnv)在目标视图的地面真实图像( I g v 2 Ig_{v2} Igv2)和渲染图像视图( I r v 2 Ir_{v2} Irv2)之间。我们用真实轮廓(掩模)预测( S g v 2 Sg_{v2} Sgv2)掩模这些图像。这样,重建损失只在对象上计算。作为重建损失,我们使用VGG19( Φ \Phi Φ)在不同特征层(j)上的感知损失,如下式(1)所示。

L p − n v = ∣ ∣ Φ j ( I g v 2 ∗ S g v 2 ) − Φ j ( I r v 2 ∗ S g v 2 ) ∣ ∣ 2 Lp-nv = ||\Phi^j(Ig_{v2} * Sg_{v2}) - \Phi^j(Ir_{v2} * Sg_{v2})||^2 Lpnv=∣∣Φj(Igv2Sgv2)Φj(Irv2Sgv2)2

对于形状,我们使用轮廓( S r v 2 Sr_{v2} Srv2)和输入对象的轮廓( S g v 2 Sg_{v2} Sgv2)之间的IoU损失( L s i l Lsil Lsil)。

L s i l = 1 − ∣ ∣ S g v 2 ⊙ S r v 2 ∣ ∣ 1 ∣ ∣ S g v 2 + S r v 2 − S g v 2 ⊙ S r v 2 ∣ ∣ L_{sil} = 1 - \frac{||Sg_{v2} \odot Sr_{v2}||_1}{||Sg_{v2} + Sr_{v2} - Sg_{v2} \odot Sr_{v2}||} Lsil=1∣∣Sgv2+Srv2Sgv2Srv2∣∣∣∣Sgv2Srv21

类似于[6], [28],我们还使用拉普拉斯损失( L l a p Llap Llap)对预测网格进行正则化,约束相邻网格三角形具有相似的法线。以下是我们的基础损失:

L f i r s t = λ p n L p − n v + λ s L s i l + λ l a p L l a p L_{first} = \lambda_{pn}L_{p-nv} + \lambda_sL_{sil} + \lambda_{lap}L_{lap} Lfirst=λpnLpnv+λsLsil+λlapLlap

模型输出可靠的3D网格预测,因为它从不同视图接收反馈。注意,我们没有使用许多正则化,如平均模板和惩罚变形顶点,如以前的工作[2], [6], [57],仍然能够用第一阶段目标实现稳定的训练。

第二阶段:在第二阶段,我们依赖于我们的3D网格预测,并引入了 I r v 1 Ir_{v1} Irv1 I g v 1 Ig_{v1} Igv1之间的额外损失,即输入图像的同一视图。在3D推理预测中,我们期望模型输出与输入视图的对象忠实匹配的预测。因此,在第二阶段,我们添加了从输入视图的额外重建损失。然而,我们不为输入视图添加轮廓损失,因为分割掩模中有噪声。此外,对于重建损失,我们不使用真实掩模掩模输入图像和渲染输出,因为它是嘈杂的。我们依赖于模型的3D预测,并根据模型预测的投影网格预测掩模重建损失。

渲染和真实图像根据模型的轮廓预测( S r v 1 Sr_{v1} Srv1)进行掩模处理,感知损失计算如下式(4)所示。这样,我们依赖第一阶段训练进行网格预测,并学习改进的纹理与同一视图训练对可见部分。网格预测仍然可以通过图像重建损失改进,因为它们仍然通过图像重建接收反馈,但我们不直接用轮廓引导它。

L p − s v = ∣ ∣ Φ j ( I g v 1 ∗ S r v 1 ) − Φ j ( I r v 1 ∗ S r v 1 ) ∣ ∣ 2 Lp-sv = ||\Phi^j(Ig_{v1} * Sr_{v1}) - \Phi^j(Ir_{v1} * Sr_{v1})||^2 Lpsv=∣∣Φj(Igv1Srv1)Φj(Irv1Srv1)2

我们在额外的迭代中使用以下损失:

L s e c o n d = L f i r s t + λ p s L p − s v L_{second} = L_{first} + \lambda_{ps}L_{p-sv} Lsecond=Lfirst+λpsLpsv

第二阶段训练在第一阶段训练收敛后开始。那是因为我们依赖于模型的网格预测在新引入的损失中。结果显著提高,但结果不如训练数据那样清晰。

第三阶段:在学习了可靠的网格表示和高质量的纹理预测之后,我们使用生成性学习流程来提高我们预测的真实感。在这个阶段,我们依赖于我们的预测来生成伪真值,以便进行对抗性学习,这在下一节中解释。

C. Adversarial Learning

由于渲染器的混叠效应导致对抗性训练不稳定[39],因此在渲染图像上应用对抗性损失以训练模型并不会改善结果。因此,我们将纹理学习转换为2D图像合成任务。在UV空间中的纹理学习之前已经取得了成功的结果[8], [11], [39]。然而,我们的设置是不同的,因为我们学习单视图图像推理,纹理投影和伪真值生成在我们的训练中是在线的,我们不是从零开始学习用于纹理生成的GAN,而是调整我们的3D重建网络,我们提出了一个多视图训练在我们的鉴别器中。虽然以前的方法使用不同的网络进行纹理投影和纹理生成,但我们使用相同的架构实现了两者。这使我们能够进一步改进生成器并实现最先进的结果。

如图3所示,在训练期间,我们获得了输入视图(v1)和不同视图(v2)的投影纹理图。我们首先通过我们的生成器从输入视图(v1)预测3D网格。输入图像通过每个图像的相机参数通过反向渲染投影到预测网格模板的UV图上。在这个过程中,网格预测通过投影和相机参数转换为2D屏幕。然后使用转换后的网格坐标和UV图坐标以相反的方式将真实图像投影到UV图上,渲染器也获得了可见性掩模。通过这个设置,我们获得了一个真实的局部纹理(来自v2)和一个条件纹理图(来自v1),用于训练我们的鉴别器。在这个设置中,对于正确的反向渲染,网格预测的准确性很重要。那就是为什么我们把GAN训练留到第三阶段。

鉴别器:最后,为了提供对抗性反馈,我们训练了一个条件鉴别器。鉴别器以部分纹理视图1为条件。部分纹理视图2是一个真实的例子,而生成的纹理是假的。对于假例子,我们使用真实示例的可见性掩模遮罩生成的纹理,以防止真实-假数据分布不匹配。

在传统的图像到图像转换算法中,条件输入和目标图像被连接并输入到鉴别器。然而,在我们的案例中,图像部分缺失,通过连接输入无法提供有用的信号。相反,我们使用基于投影的鉴别器[35],我们通过卷积层处理条件输入,直到空间维度减少到1×1。再次,降低维度的原因是输入部分缺失,因此我们希望在条件输入图像的同时具有完整的感受野。

我们将嵌入的条件输入与鉴别器输出进行点积。这个分数被添加到最终的鉴别器分数。通过多视图条件,鉴别器不仅考虑补丁是否真实,还考虑预测的纹理是否与其输入对一致。GAN训练在我们的设置中尤其重要,因为我们没有一致的多视图图像。第三阶段的总目标包括以下最小化最大值优化:

min ⁡ θ g max ⁡ θ d L s e c o n d + λ a d v L a d v ( θ g , θ d ) \min_{\theta_g} \max_{\theta_d} L_{second} + \lambda_{adv}L_{adv}(\theta_g, \theta_d) θgminθdmaxLsecond+λadvLadv(θg,θd)

其中 θ d \theta_d θd θ g \theta_g θg分别表示鉴别器和生成器的参数。尽管鉴别器从第三阶段开始从头开始训练,但如图4所示,鉴别器损失在训练期间是稳定的。

IV. EXPERIMENTS

Datasets:首先,为了生成数据集,我们使用了三个特定类别的StyleGAN模型,一个代表刚性对象类别,两个代表铰接类别。对于汽车和马的数据集,我们使用了StyleGAN2([19])存储库中的官方模型。这些模型是在LSUN汽车数据集上训练的,包含5.7M图像,以及在LSUN马数据集上训练的,包含2M图像[53]。我们还使用了一个在NABirds数据集上训练的鸟类模型[46],包含48k图像。StyleGAN生成的图像对少数视点进行了对齐,并且这些视点的注释仅需要1分钟[57]。示例图像如图5所示。有关数据集生成流程的更多细节,请参考Zhang等人[57]。对象的轮廓也通过GANs通过DatasetGAN方法[58]预测。

Architectural Details of Generator:我们的生成器具有编码器-解码器架构,如图6所示。在编码器中,用于预测变形和纹理图的编码器接收512×512图像。它有7个卷积块,每个卷积层具有3×3滤波器和步长2。卷积层的通道数为(64, 128, 256, 256, 256, 128, 128)。每个卷积层后都有ReLU非线性。编码器将空间尺寸减小到4×4。编码的特征(128×4×4)通过一个全连接层,然后重塑,我们输出具有512×8×4维度的特征。注意,我们从宽度为8和高度为4开始。在生成纹理和网格预测时,我们只预测一半的图高,因为它们在y轴上预计是对称的。稍后,我们翻转预测并将其与自身连接,以扩展高度。

纹理和网格预测首先通过两个共享的卷积层块。在解码器中,每个块有两个卷积层。每个卷积层后都有自适应归一化和Leaky ReLU。每个块后还有从输入到输出的跳跃连接。每个块后还有双线性插值层,以在每层上对特征图进行上采样。前两个块的通道尺寸为(512, 256),将特征图的空间尺寸带到32×16。之后,网格预测分支出来,网格预测分支还有另一个具有64个通道的块。之后有一个单卷积层,通道数为3。输出代表变形( x , y , z x,y,z x,y,z)坐标。

对于纹理预测,还有4个卷积块,通道尺寸为(256, 256, 128, 128)。经过这些层后,空间分辨率变为512×256。应用反射对称性,因为我们在y轴上翻转纹理预测,然后将其与原始纹理预测连接。这导致空间分辨率为512×512。之后还有一个卷积块,通道尺寸为64,以及一个最终的卷积层,它将通道数减少到3。它们代表纹理预测的(R,G,B)通道。在对称性之后的卷积层放松了对称性约束,因为我们不希望纹理完美对称。

请注意,网格预测也以卷积方式估计为UV变形图[2],[8],[39]。我们的变形是直接使用固定表面拓扑的球体函数的表示。我们从对应顶点位置的变形贴图中采样。我们还将对称性应用于预测的UV变形。我们使用DIB-R [6]作为我们的可微渲染器。渲染器采用网格和纹理预测,并输出目标摄影机参数的图像。

我们还从正态分布中抽取了一个潜在向量,以提供我们预测的多样性。采样的潜在向量通过线性层与编码的特征连接。输出被馈送到卷积块中的自适应归一化层。

Architectural Details of Discriminator:至于鉴别器的架构,我们使用了一个基于投影的鉴别器[35]。鉴别器接收生成的和真实的3×512×512纹理图,以及伪真值可见性掩模,如图7所示。生成的纹理也与掩模相乘,以防止真实-假数据分布不匹配。我们省略了图[8]中的可学习位置嵌入的连接[8]。鉴别器采用了多尺度架构,一个在32×32块上操作,另一个在16×16上操作。我们还有一个条件路径,如图中所示的嵌入网络。嵌入网络通过卷积层和全局池化处理条件输入,直到空间维度减少到1×1。我们将嵌入的条件输入与鉴别器输出进行点积。这个分数被加到最后的鉴别器分数上。这在鉴别器的两个尺度上都发生。

Training Parameters:我们在8个GPU上训练我们的模型,每个GPU的批量大小为4,总共训练了105个周期,学习率为10-4。我们分别为每个阶段训练了25、75和5个周期。我们观察到第三阶段在前2个周期内迅速改进,其余周期的结果保持相似。因此,我们决定将第三阶段的周期数保持简短。在我们的损失函数中,我们使用 λ l a p = 0.5 \lambda_{lap} = 0.5 λlap=0.5, λ p − s v = 1 \lambda_{p-sv} = 1 λpsv=1, λ p − n v = 1 \lambda_{p-nv} = 1 λpnv=1, λ a d v = 1 \lambda_{adv} = 1 λadv=1。我们尝试了不同的 λ a d v \lambda_{adv} λadv,特别是 λ a d v = { 0.8 , 1.2 } \lambda_{adv} = \{0.8, 1.2\} λadv={0.8,1.2},但模型收敛到相似的分数。鉴别器的学习率也设置为10^-4。我们使用Adam优化器来更新3D推理模型和鉴别器。

Evaluation:我们在验证数据集上报告各种指标。由于我们拥有多视图数据,我们报告了相同视图和新视图的分数。相同视图结果通过从与输入相同的角度渲染预测获得,而对于新视图,我们从与输入不同的相机视图渲染预测。相同视图关注给定输入的保真度,而新视图测量模型估计不可见纹理和几何形状的能力,这是一个更困难的任务。对于两种视图,我们报告了Frechet Inception Distance (FID) 指标[16],它通过比较目标分布和渲染图像来查看真实感,Learned Perceptual Image Patch Similarity (LPIPS)[56]在预训练深度网络的特征级别上比较目标和渲染输出对,结构相似性指数度量(SSIM)和均方误差(MSE)在像素级相似性上比较对。我们还报告了目标轮廓和预测几何形状的投影轮廓之间的交并比(IoU)。

Results:我们在表I中提供了定量结果。我们与GanVerse[57]进行了比较,它与我们的方法在相同的数据上训练。我们在表I中看到,所有三个类别的每个阶段的定量改进都很明显,尤其是与GanVerse模型相比在FID指标上有大幅度改进,FID指标用于衡量生成质量。我们与其他方法进行了定性比较,由于它们都使用不同的相机设置,因此无法进行准确的定量比较。然而,从我们的结果比较(图8)中可以看出,我们的结果明显优于先前的工作。


在我们的定性比较中,我们与Unicorn[36]进行了比较,它以无监督的方式在Pascal3D+汽车数据集[50]上学习3D推理模型。该模型仅使用边界框注释,并且在5000张训练图像上训练。从图8可以看出,考虑到模型是以无监督的方式学习,取得了令人印象深刻的结果。然而,结果缺乏细节和多样性。与我们的模型相比,它明显更差。其次,我们与Pixelnerf[52]进行了比较,它预测了连续的神经场景表示,条件是单视图图像。虽然神经辐射场[34]独立优化每个场景的表示,但Pixelnerf在多个场景上进行训练,以学习场景先验,并且能够在给定输入图像的情况下进行新视图合成。Pixelnerf在合成数据集ShapeNet数据集[5]上训练。它还在真实图像重建的汽车类别上展示。在我们的结果中,Pixelnerf在预测相同视图时表现非常好,但在新视图预测方面则不那么成功。接下来,我们与Dib-r模型[6]进行了比较,该模型在具有真实轮廓和相机参数的Pascal3D+汽车数据集上训练。Dib-r在输入图像的相同视图预测上输出了合理的结果。然而,它们的纹理和网格不能跨视图泛化,即使模型是用昂贵的注释训练的,也会导致从新视图的不真实预测。

最后,我们与GanVerse模型进行了比较,它与我们的方法在相同的StyleGAN生成的数据集上训练。如表I所示,GanVerse模型的定量结果甚至比我们的单阶段结果还要差。GanVerse模型同时学习相同视图和其他视图重建。一个区别是,GanVerse模型为每个图像学习了一个平均形状和额外的变形顶点。对于稳定训练,每个图像的额外变形都受到惩罚。由于我们依赖其他视图训练进行网格预测,我们没有对顶点施加这样的约束。他们的架构基于U-Net,他们没有使用GAN训练。他们的结果缺乏细节,看起来不如我们的模型真实。请注意,StyleGAN生成的数据集也消除了昂贵的标记工作,并且训练这个数据集的模型与那些在没有注释的情况下学习模型的动机相同,如Unicorn。生成带有注释的StyleGAN数据集需要1分钟,而Pascal3D+数据集需要200小时350小时工作时间进行注释[57]。因此,我们在图8中提供的比较涵盖了从不同数据集设置和不同注释工作水平学习的各种模型。它包括无监督训练数据(使用Pascal3D+图像的Unicorn)、通过添加1分钟注释工作(我们的方法)获得的StyleGAN生成的数据、具有真实图像和关键点注释的更昂贵数据(在标记的Pascal3D+图像上训练的Dib-r),以及具有完美注释的合成数据(在ShapeNet数据集上训练的Pixelnerf)。


Ablation Study:首先,我们分析了我们训练流程中每个阶段的作用。如表I所示,每个阶段的额外训练都一致地提高了指标,尤其是与人类感知密切相关的FIDs和LPIPS。在图11中,我们提供了每个阶段输出渲染的训练曲线。从图中可以看出,改进不是来自更长时间的训练,而是来自渐进式学习。我们在图12中提供了每个阶段模型输出渲染的定性比较。第一阶段的渲染输出结果具有可靠的几何形状。然而,纹理并不真实,特别是轮胎具有重复的特征,这是可以理解的,因为模型正在最小化来自不一致多视图图像的重建损失。在第二阶段,纹理在第一阶段的基础上有了显著改进。最后,在最后阶段的GAN训练中,颜色看起来更真实、更清晰,并且生成了细节。


我们在表II中提供了在汽车数据集上进行的额外消融研究。我们还在第一行中提供了每个阶段的分数,以便容易比较结果。在第二行中,我们首先进行了没有多阶段训练的实验(No Multi-Stage)。这种设置是指从零开始用我们提出的最终损失函数训练模型。这种训练在所有指标上都得到了很差的结果,甚至比我们的第一阶段训练结果还要差。

特别地,当模型还没有学会可靠的预测时,对抗性训练会使训练变得不那么稳定。这表明了我们多阶段训练流程的重要性。

接下来,我们用相同视图训练目标进行了训练。这种设置是在没有多视图图像并且模型必须在单视图图像上训练时使用的。我们使用了类似于(4)的感知目标,但是使用了真实轮廓,如下式(7)所示。我们还添加了来自相同视图的轮廓损失,以引导几何预测。在这里,输入和目标图像共享相同的相机参数。

L p − s v − s i l = ∣ ∣ Φ j ( I g v 1 ∗ S g v 1 ) − Φ j ( I r v 1 ∗ S g v 1 ) ∣ ∣ 2 Lp-sv-sil = ||\Phi^j(Ig_{v1} * Sg_{v1}) - \Phi^j(Ir_{v1} * Sg_{v1})||^2 Lpsvsil=∣∣Φj(Igv1Sgv1)Φj(Irv1Sgv1)2

L s i l − s v = 1 − ∣ ∣ S g v 1 ⊙ S r v 1 ∣ ∣ 1 ∣ ∣ S g v 1 + S r v 1 − S g v 1 ⊙ S r v 1 ∣ ∣ Lsil-sv = 1 - \frac{||Sg_{v1} \odot Sr_{v1}||_1}{||Sg_{v1} + Sr_{v1} - Sg_{v1} \odot Sr_{v1}||} Lsilsv=1∣∣Sgv1+Srv1Sgv1Srv1∣∣∣∣Sgv1Srv11

L s v = λ p n L p − s v − s i l + λ s L s i l − s v + λ l a p L l a p Lsv = \lambda_{pn}Lp-sv-sil + \lambda_sLsil-sv + \lambda_{lap}Llap Lsv=λpnLpsvsil+λsLsilsv+λlapLlap

相同视图训练(使用(9)中的目标训练的模型)的结果在表II中给出。使用这种设置,相同视图在定量上看起来不错,因为网络学习重建输入视图。特别是相同视图的IoU比其它设置更好,因为模型学习了输入图像的缺失部分及其相应的轮廓,并在验证数据集上进行了类似的预测,与地面真实匹配。另一方面,新视图的IoU得分是最差的,所有设置中。用单视图目标训练的模型在生成真实的新视图方面努力,如FIDs所示,42.24新视图FID与4.88相同视图FID。

我们还尝试了多视图训练设置。这是指从零开始用第二阶段目标训练模型。我们将这些结果与我们的第二阶段训练结果进行了比较。我们看到,通过渐进式学习获得了更好的结果。我们还尝试了从相同视图训练开始的两阶段训练。首先,我们用相同视图目标训练模型,然后用我们的第二阶段目标训练。这导致新视图得分比多视图训练更差。这是因为模型最初过度拟合以重建输入视图,并没有为不可见部分预测出合理的几何形状或纹理。后来,即使添加了其他视图损失目标,也难以从中恢复。

在最后一行中,我们进行了不带多视图条件的鉴别器训练。对于这个实验,我们只更新了第三阶段的训练。鉴别器只在没有投影基础的其他视图条件的主管道中进行了更新。这也比我们提出的多视图条件鉴别器得到了更差的结果,尤其是在FIDs中。由于多视图条件鉴别器从给定视图中接收指导,它向生成器传递了更好的信号。

我们还尝试了不从正态分布中采样的设置。这种变化将设置转换为确定性模型。我们观察到采样在颜色上提供了轻微的多样性,并略微提高了指标,因此我们决定保留它。多样性结果如图13所示。模型没有实现可见的多样性。然而,当我们取两张图像的差异时,它们略有不同。改进虽然不大,但在所有指标上都是一致的。最后,我们尝试了不强制对称性约束的情况,其中生成器预测了完整的纹理和网格图。这比强制对称性约束得到了更差的结果。

Ⅴ Conclusion

在这项工作中,我们提出了一种从单幅图像重建高质量纹理3D模型的方法。我们的方法从GAN生成的图像中学习,并避免了对标记的多视图数据集或昂贵的3D扫描的依赖。GAN生成的数据集以大规模标记,总共需要1分钟的人力劳动。由于GAN生成的数据集嘈杂且在视图间不一致,我们提出了一个新颖的多阶段训练流程和对抗性训练设置。我们实现了显著的改进,无论是在GAN生成的图像上训练还是在真实图像上训练的先前方法。

Limitations:我们工作的首要限制是我们的最终网格是从球体变形而来,无法处理类似先前工作的具有空洞的对象[18], [39], [57]。我们观察到的另一个限制是不同类别之间获得的3D模型质量不同。具体来说,我们为汽车类别生成的3D模型比马和鸟类类别的质量要好。我们还在图5中展示了StyleGAN图像生成结果在汽车与鸟-马类别之间的差异。一个原因是StyleGAN模型是在5.7M汽车图像上训练的,而对于马和鸟类类别,分别训练了2M和48k图像。此外,鸟类和马类别的变异性更大,因此可能更难处理。可能的原因是GAN在某些视点的数据集中样本较少,无法从中学习。例如,我们发现从后视图的马图像质量较差,如图5中的第五个示例所示。我们承认,我们模型的性能与它所学习的StyleGAN模型的性能相关。此外,尽管我们的模型不需要注释的图像,但StyleGAN模型需要大量的未标记数据。依靠有限的数据学习3D推理模型或将生成数据集的GAN是一个重要的未来研究方向。

声明

本文内容为论文学习收获分享,受限于知识能力,本文对原文的理解可能存在偏差,最终内容以原论文为准。本文信息旨在传播和学术交流,其内容由作者负责,不代表本号观点。文中作品文字、图片等如涉及内容、版权和其他问题,请及时与我们联系,我们将在第一时间回复并处理。
**
关注公众号:AI前沿速递,获取更多优质资源和前沿咨询!**

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1534412.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

NV080D语音芯片赋能电子秤一体机人机交互新革新

随着科技的飞速发展,零售业正经历着前所未有的变革。九芯作为行业的领跑者,推出了革命性的NV080D语音芯片,为超市、水果店、熟食店、麻辣烫店等零售业态带来了智能化的全新体验。 NV080D语音芯片在电子秤上的应用,主要是为了提高检…

[ComfyUI]Flux:写真新篇章!字节PuLID率先开启一致性风格迁移,无损画手和优质画面保持

前言 Flux:PuLID率先开启F1写真新篇章 所有的AI设计工具,模型和插件,都已经整理好了,👇获取~ Flux PuLID简介 在Flux出来后短时间内,社区生态反响和发展足够的迅猛快速。至今为止,社区LORA模…

c++面试-语法糖(一)

c面试-语法糖(一) 1、const关键字的作用?(变量,参数,返回值) 定义常量值:const 可以用于定义常量变量,其值在初始化后不能被修改。 const int MAX_SIZE 100;修饰指针:const 可以修饰指针,表示…

69、Python番外篇:从编程范式看如何学习一门编程语言的精髓

引言 在之前的文章中,我们曾聊过如何学习一门编程语言,当时是从程序的构成的角度来分析、展开的,主要提及了数据的表达 数据的处理,也就是数据结构 算法的内容。这个角度对应到所有编程语言,基本都是适用的。但是&a…

负载均衡:从理论到实践 ---day04

负载均衡 负载均衡1.什么是负载均衡2.负载均衡的分类硬件负载均衡软件负载均衡选择 3.引入负载均衡的好处 第一个Ribbon实例步骤1:步骤2:步骤3:步骤4: 问题1. 负载均衡的主要目标是什么?2. 负载均衡器的作用是什么&…

网络安全 DVWA通关指南 DVWA SQL Injection (Blind SQL盲注)

DVWA SQL Injection (Blind) 文章目录 DVWA SQL Injection (Blind)Low布尔盲注时间盲注sqlmap MediumHighImpossible 参考文献 WEB 安全靶场通关指南 Low 0、分析网页源代码 <?phpif( isset( $_GET[ Submit ] ) ) {// Get input$id $_GET[ id ];// Check database$geti…

鸿蒙HarmonyOS开发:一次开发,多端部署(界面级)天气应用案例

文章目录 一、布局简介二、典型布局场景三、侧边栏 SideBarContainer1、子组件2、属性3、事件 四、案例 天气应用1、UX设计2、实现分析3、主页整体实现4、具体代码 五、运行效果 一、布局简介 布局可以分为自适应布局和响应式布局&#xff0c;二者的介绍如下表所示。 名称简介…

DSLogic 逻辑分析仪的使用-I2C协议

一、I2C IIC-BUS&#xff08;Inter-IntegratedCircuit Bus&#xff09;最早是由PHilip半导体&#xff08;现在被NXP收购&#xff09;于1982年开发。 主要是用来方便微控制器与外围器件的数据传输。 它是一种半双工&#xff0c;由SDA&#xff08;数据&#xff09;和SCL&#xf…

MicroPython 片上psrom的支持,并将多个bin合成为一个bin

前两天在github上下载的MicroPython 版本1.20.0&#xff0c;怎么配置都无法开启片上psrom的支持&#xff0c;折腾了一周&#xff0c;都自我怀疑了&#xff0c;最后更新版本为1.23.0一编译直接就过了。。。下面记录下过的&#xff0c;过程&#xff0c;这边使用的是四线SPI的片上…

我平时是怎么找客户的?今天我的实战技巧,分享给大家

我常用的几个方法 1、利用WhatsApp&#xff0c;找客户的号码&#xff0c;去进行营销 学会这个方法&#xff0c;WhatsApp账号都能被你找到http://mp.weixin.qq.com/s?__bizMzg2MTcxNzAwMg&mid2247498845&idx1&sn039a87d60094cf6c166e2cf5e1f94a69&chksmce106…

【黑神话】无脑过大头怪(幽魂)教程,手残也能打过关!

在《黑神话悟空》这款扣人心弦的动作角色扮演游戏中&#xff0c;玩家将面对众多考验操作与策略的Boss战。其中&#xff0c;大头幽魂作为玩家早期就会遇到的挑战之一&#xff0c;其独特的战斗机制和技能组合&#xff0c;对新手玩家而言无疑是一次不小的考验。今天&#xff0c;就…

【附源码】用Python开发一个音乐下载工具,并打包EXE文件,所有音乐都能搜索下载!

现在听个歌&#xff0c;不是要这就是要那&#xff0c;乱七八糟的&#xff0c;下软件都下不赢。 于是决定加班熬夜来做一个&#xff0c;想怎么听就怎么听&#xff0c;大家自己看到就好&#xff0c;悄悄用&#xff0c;别告诉别人哈~ 好了不闲聊&#xff0c;开整&#xff01; 首先…

Element-ui el-table 全局表格排序

实现效果如下&#xff1a; 一、当页数据排序 如果只想要当前页面排序&#xff0c;只会涉及到前端&#xff0c;只需在<el-table-column>标签上添加 :sortable"true"即可 二、自定义排序 如果想要全局排序&#xff0c;需要自定义排序函数&#xff0c;请求后台排…

如何进行大模型训练和微调?(实战)

1、在项目中&#xff0c;如果prompt和function calling足够好&#xff0c;尽量不要微调&#xff0c;节约成本。 以下是针对function calling的slot&#xff0c;评估准确率&#xff08;识别准确度&#xff09;、召回率&#xff08;全面率&#xff09;&#xff0c;F1值。 从中可以…

System.out源码解读——err 和 out 一起用导致的顺序异常Bug

前言 笔者在写一个小 Demo 的过程中&#xff0c;发现了一个奇怪的问题。问题如下&#xff1a; // 当 flagtrue 时打印 a1 &#xff1b;当 flagfalse 时打印 a2。 public static void main(String[] args) {boolean flag false;for (int i 0; i < 10; i) {if (flag) {Sys…

基于python的宠物信息交流系统---附源码74885

摘 要 在当今社会&#xff0c;随着人们生活质量的提高和对精神健康的追求&#xff0c;宠物已经成为我们生活中不可或缺的伙伴。与家中宠物朝夕相处&#xff0c;我们与宠物之间建立了深厚的情感纽带。然而&#xff0c;宠物也有可能生病&#xff0c;需要接受医疗护理。与人类一样…

如何利用Samba跨平台分享Ubuntu文件夹

1.安装Samba 终端输入sudo apt install samba 2.配置Samba 终端输入sudo vim /etc/samba/smb.conf 打开配置文件 滑动文件到最底下 输入以下内容 [Share] # 要共享的文件夹路径 path /home/xxx/sambashare read only no browsable yes编辑完成后按一下Esc按键后输入:wq回…

动不动就下跪的三星,离开天津了

关注卢松松&#xff0c;会经常给你分享一些我的经验和观点。 三星辉煌岁月已过&#xff0c;万事凋零!如果说IBM、惠普、戴尔、苹果、富士康的离开有点惋惜的话&#xff0c;那三星的离开就是“活该”了。 成立于1993年的天津三星电子有限公司与2024年9月6日注销了&#xff0…

基于JavaWeb开发的java ssm springboot+VUE疫情防疫系统系统前后端分离设计和实现

基于JavaWeb开发的java ssm springbootVUE疫情防疫系统系统前后端分离设计和实现 &#x1f345; 作者主页 网顺技术团队 &#x1f345; 欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd; &#x1f345; 文末获取源码联系方式 &#x1f4dd; &#x1f345; 查看下方微信号获取…

MySQL字符集的转换

背景介绍 在使用MySQL过程中&#xff0c;如果字符集配置不当&#xff0c;可能会出现插入失败、数据乱码、 索引失效、数据丢失、查询不到期望结果等一系列使用异常的情况。因此&#xff0c;熟练掌握MySQL字符集和比较规则的配置方法&#xff0c;并在此基础上了解MySQL字符集与…