学习笔记:SemanticStyleGAN 面向可控图像合成和编辑的组合生成先验学习

[CVPR-2022] SemanticStyleGAN: Learning Compositional Generative Priors for Controllable Image Synthesis and Editing 面向可控图像合成和编辑的组合生成先验学习


项目主页:https://semanticstylegan.github.io/
论文链接:https://arxiv.org/abs/2112.02236
代码链接:https://github.com/seasonSH/SemanticStyleGAN

摘要

最近的研究表明,StyleGANs为图像合成和编辑的下游任务提供了有前途的先验模型。然而,由于StyleGANs的潜在代码设计用于控制全局样式,因此很难实现对合成图像的细粒度控制。我们提出了SemanticStyleGAN,它训练生成器分别对局部语义部分进行建模,并以组合的方式合成图像。不同局部部分的结构和纹理由相应的潜码控制。实验结果表明,我们的模型在不同的空间区域之间提供了较强的解纠缠性。当与为StyleGANs设计的编辑方法相结合时,它可以实现更细粒度的控制来编辑合成的或真实的图像。该模型还可以通过迁移学习扩展到其他领域。因此,作为一种内置解纠缠的通用先验模型,它可以促进基于GAN的应用程序的开发,并支持更多潜在的下游任务。

1. 背景

  • 近年来关于生成对抗网络(GAN)的研究在图像合成方面取得了令人瞩目的进展,通过潜在空间中的随机编码可以生成逼真的图像。这些模型通过充当神经渲染器,为下游任务提供强大的生成先验。(神经渲染:通过深度的图像或视频生成方法,实现对一些场景属性的显式或隐式控制,例如照明、相机参数、姿势、几何、外观和语义结构)

  • 在此类生成先验中最著名的工作之一是StyleGAN,通过在StyleGAN的潜在空间中学习线性边界或神经网络,可以控制生成图像的全局属性或3D结构。然而在实际应用中,一个重要的问题在于它的潜在空间是基于图像尺度来分解的,这使得StyleGAN擅长做全局风格的控制,却不利于局部编辑。

针对这个问题,本文提出了一种以可控方式合成图像的新型生成对抗网络模型——SemanticStyleGAN。与以往的GAN网络不同,它的潜在空间是基于语义分割掩码定义的语义部分进行分解的。每个语义部分都用相应的局部潜码单独调制,并通过组合局部特征图来合成图像。该模型能够使得潜在空间在不同的语义局部上解纠缠,进而实现局部的风格变换。

下图展示了本文模型的合成结果,最左侧一列是原始图像,最上面一行是想要从中迁移局部特征的图像,例如背景、皮肤、眼睛等。以最后一列的“Hair”为例,合成的图像只改变了头发这一个特征,而其他不相关的区域特征则保持不变。

图0


2. 方法

2.1 整体框架

图2-2

  1. 首先,一个8层MLP将随机采样的向量 z z z映射到中间潜码w;

  2. 然后,引入K个局部生成器 ,利用潜码w对不同的语义部分进行建模,每个局部生成器 g g g以傅里叶特征为输入,输出一个特征图 f 和一个伪深度图 d;

  3. 然后将它们聚合成一个全局特征图 f 和一个粗分割掩码m用于图像合成;

  4. 渲染网络R接收来自局部生成器的聚合结果,并输出RGB图像和相应的语义分割掩码;

  5. 最后,双分支判别器对RGB图像和语义分割掩码的联合分布进行建模,完成对抗学习。

下面具体讲一下这几个模块。

2.2 局部生成器

图中是局部生成器的架构。每个局部生成器都是一个具有10层的调制MLP,它以傅立叶特征和潜码w作为输入,输入的傅里叶特征首先被转换为具有线性全连接层的隐藏特征图。为了降低计算成本,输入的傅里叶特征图以及输出的特征图都小于最终输出图像,本文选择了64×64以平衡效率和质量。

图3

  • 蓝色块是调制的1×1卷积层,它的权重取决于输入的潜码;

  • 紫色块是全连接层, “toDepth”层是输出1通道伪深度图的全连接层, “toFeat”是一个输出512通道特征图的全连接层;

  • 这里的wbase是控制粗略结构的共享潜码。每个局部潜码wk 控制分割标签中定义的第k个语义区域的形状和纹理,每个wk又进一步被分解为一个形状编码wks和一个纹理编码wkt 。 在训练期间,风格混合在wbase、wks 和wkt 之间的每个局部生成器中独立进行,这样不同的局部部分和不同的形状和纹理可以协同工作以进行合成。

通过局部生成器,我们得到特征图 fk 和伪深度图 dk

2.3 聚合

聚合
在聚合步骤中,首先从伪深度图生成粗分割掩码mmk(i, j)表示第k类掩码m中的像素(i, j):

公式1
然后聚合特征图,⊙表示逐元素乘法:

公式2
聚合的特征图 f 包含有关输出图像的所有信息,接下来就将特征图 f 送入渲染网络R进行渲染。

2.4 渲染网络

渲染网络R类似于原始的StyleGAN2生成器,但做了一些修改。 首先,它不使用调制卷积层,输出完全取决于输入特征图。 另外,本文以16×16和64×64的分辨率输入特征图,其中特征连接以64×64进行。这里多输入一个16×16的特征图的原因是,低分辨率特征图的额外输入可以更好地聚合不同的局部部分。

并且作者发现,由于softmax输出和真实分割掩码之间的内在差距,直接使用粗分割掩码m进行训练是比较困难的。因此,除了每个卷积层之后的ToRGB分支外,还加入一个额外的ToSeg分支,对分割掩码进行上采样和残差操作,来细化粗分割掩码。 这里需要一个正则化损失,以便最终掩码不会与粗略掩码偏离太多。最后就得到了生成的RGB图像和细化后的最终掩码。

图3-1

“ConvBlock”是具有2个卷积层的StyleGAN2卷积块,⊕表示上采样和求和。

2.5 双分支判别器

在本模型中,判别器需要将RGB图像和分割掩码作为输入。由于分割掩码上的大梯度幅度,简单的连接不起作用,因此作者使用了一个双分支判别器,它有两个卷积分支分别用于RGB图像和分割掩码,然后对全连接层的输出求和。

图15
“残差块”是卷积层; 除输入通道外,图像分支和分割分支是对称的;“连接标准”是计算标准差的步骤。如果删除分割分支,这个判别器就等同于StyleGAN2的判别器。


3. 实验

3.1 语义感知和解纠缠生成

3.1.1 合成质量的定量评估

对于合成质量,作者将本文的模型与StyleGAN2和SemanticGAN进行比较。原始StyleGAN2既不模拟分割掩码也不提供局部可控性,将其作为合成质量的上限进行比较;SemanticGAN将StyleGAN2修改为联合训练框架,以输出图像和分割掩码。所有模型都在调整为 256×256 的CelebAMask-HQ的前28,000张图像上进行训练。

表1

“img”和“seg”分别指RGB图像和分割掩码。Fréchet Inception Distance(FID)和 Inception Score(IS)用于衡量合成质量,箭头向下就表示数值越小越好,箭头向上就表示数值越大越好。

  • 与原始StyleGAN相比,SemanticGAN的质量要低得多,这表明学习图像和分割掩码的联合模型是一项具有挑战性的任务;

  • 假设SemanticGAN的主要瓶颈是用于学习分割掩码的附加补丁判别器,我们将其替换为提出的双分支判别器,新的训练框架获得了更好的综合分数;

  • 进一步用本文的SemanticStyleGAN生成器替换SemanticGAN生成器,与SemanticGAN生成器相比,本文的模型显示出相似的合成质量,同时在每个语义区域上提供了额外的可控性。

作者还将模型扩展到 512×512 分辨率,并分别实现了 7.22 和 3.47 的 FID 和 IS。作为参考,StyleGAN2生成器的 FID 和 IS 分别为 6.47 和 3.55。

3.1.2 模型的成分聚合

图中解释了本文模型的成分聚合,也就是拆分一下各局部生成器的生成结果。从背景开始,逐渐将更多的组件添加到特征图中。

图4
第一行是合成的RGB图像,最后一行是分割掩码。第二行显示的是用于聚合的每个相应组件的伪深度图。在合成过程中,所有的伪深度图都没有按顺序融合在一起,这就表明这些局部生成器可以独立工作来生成语义部分。虽然缺乏3D监督,但伪深度图学习了有意义的形状,可以用来协作组成不同的人脸。

3.1.3 通过傅里叶特征操作进行图像合成和转换

与生成完整图像的传统GAN网络不同,这样的合成过程还允许本文的模型仅生成前景并通过操纵傅里叶特征来控制它。

图6
如图所示,这里的真实图像用作合成的背景,并反转为特征图。然后可以在特征空间中在这张真实图像上合成前景,也就是人脸图像。前景的位置和大小可以通过傅里叶特征来控制,比如平移、缩小。

3.1.4 整个潜在空间和指定子空间的潜在插值结果

图7

  • 第一行显示本文的模型可以在两个随机采样的图像之间平滑插值;

  • 另外,我们可以通过更改相应的潜码来对特定的语义区域进行插值,例如背景、脸或者头发,同时固定其他不相关的部分。以第三行的“Face”为例,这里的“Face”是指与脸相关的所有组成部分,包括眼睛、嘴巴还有皮肤。从图中可以看到,只有与脸有关的部分有改变,而与脸无关的部分,例如背景和头发就没有发生变化。

这个实验结果表明,本文的模型已经为语义编辑学习了一个平滑且解开的潜在空间。

3.1.5 局部潜在空间中的随机抽样

图8-1
中间列显示随机采样的人脸,前后两列分别显示了改变形状和纹理编码的结果。即使在训练期间没有明确的约束,本文的模型也可以解开大多数局部形状和纹理。

3.2 控制合成和图像编辑

接下来作者在下游编辑任务上评估本文的模型,并将其与StyleGAN2进行比较。

3.2.1 重建性能的定量评估

为了评估真实图像的编辑结果,首先需要将这些图像嵌入到潜在空间中。在这里,作者使用Restyle(psp)编码器对重建性能进行定量评估。底部两行(StyleGAN2 和 Ours)在 CelebAMask-HQ 的同一拆分上进行训练。

表2
表中展示了图像重建的定量结果。虽然在各个指标上并没有明显的提升,但差距很小,因此可以表明本文的模型在重建方面取得了可比的性能。

3.2.2 反演和编辑结果

本文的模型是否可以应用于这些重建图像的局部编辑?我们选择覆盖面部图像不同部分的局部属性进行编辑实验,分别是表情、秃头、刘海和胡须,并且在未用于训练的图像上进行测试。

作者采用了为StyleGAN2提出的两种流行的编辑方法:StyleFlow 和 InterFaceGAN。这两种方法都需要生成一组假图像并标记它们的属性来训练一个潜在的操作模型。对于这两个生成器,我们随机合成50,000张图像进行标记。下图就是将这两种编辑方法应用于StyleGAN2和本文模型的定性结果。对于每个属性和方法,图中展示了Restyle编码器的反演结果、编辑后的图像以及它们之间的差异图。

图9
从RGB图像上看,差距不是很明显,但从右侧的图看就比较直观了。例如最后一行的胡须,StyleGAN2虽然能够完成指定语义区域的改变,但由于潜在空间中的纠缠,不相关的部分也或多或少地有所变动。相比之下,本文的模型就只关注特定的语义区域。

3.2.3 文本引导合成

图中是顺序编辑下的文本引导图像合成结果。

图11
第一行是StyleGAN2应用基于优化的StyleCLIP的结果,第二行是本文的模型在相同输入文本下的结果。 从图中可以看出,文本只试图改变指定的区域,但原来的StyleCLIP经常修改整个图像。而本文的模型可以将编辑限制在指定的局部区域。这个结果表明,本文的方法可能更适合用于文本引导图像合成。

3.3 其他领域的结果

从头开始训练本文的模型需要同时访问图像和分割掩码,这在某些情况下可能不可行。作者想知道这个模型是否可以在仅图像数据集上进行微调,同时保留局部解纠缠。因此在其他数据集上也进行了实验。

图12
上图展示了在另外三个数据集上(Toonify、MetFaces、BitMoji)微调后的结果。与用来训练的数据集(CelebAMask-HQ)相比,这些数据集的图像数量要少得多,并且没有分割掩码。从图中可以看出,对于仅图像数据集,本文的模型经过微调也能够保持局部可控性。

图13
虽然到目前为止都是在人脸数据集上进行的实验,但本文的方法不包括任何为人脸设计的模块,所以也可以应用于其他对象。上图就展示了在非人脸数据集(DeepFashion)上训练本文模型的结果,可以看到我们仍然可以控制不同语义部分的结构和纹理,比如说头发,还有身上的衣服。


4. 局限性

  • 适用的数据集

尽管已经证明本文的方法可以应用于人脸图像以外的其他领域,但仍然可以看到设计和监督造成的限制。 由于需要为每个类构建一个局部生成器,因此该方法无法扩展到具有太多语义类的数据集,例如场景。 此外,出于合成质量的目的,作者将SemanticGAN的半监督框架更改为全监督框架,这限制了本文的模型从头开始在仅图像数据集上进行训练。 将来开发本文方法的半监督版本将是有益的。

  • 解纠缠

由于姿势、形状和纹理之间的分离仅通过局部生成器中的层分离设计来强制执行,它们之间的边界有时仍然是模棱两可的。 例如,共享的粗略结构潜码可以编码一些关于表情的信息,而形状编码可能会影响胡须。 然而,在这项工作中,作者主要关注不同语义部分之间的空间解纠缠,相信未来可以结合额外的正则化损失或架构调整来更好地解纠缠这些信息。


5. 总结

  • 本文提出了一种以可控方式合成图像的新型生成对抗网络模型。通过设计局部生成器、掩码特征聚合以及图像和分割掩码的联合建模,来控制不同语义区域的结构和纹理。

  • 实验表明,本文的生成器可以与现有的编辑方法相结合,以更可控的方式编辑图像。并且适用于仅具有有限图像的其他领域,同时保留空间解纠缠能力。

  • 7
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我会尽力回答你的问题。关于通过UDP传输音视频,我了解一些相关的知识,下面是一些学习笔记: 1. gstreamer是一个流媒体框架,用于创建、处理和播放多媒体流。它支持多种音视频格式,可以通过插件扩展功能。 2. 通过gstreamer可以使用UDP协议传输音视频数据。UDP协议是一种无连接的协议,不保证数据传输的可靠性和顺序性,但是传输效率高。 3. 首先需要创建一个gstreamer的pipeline,包括音视频源、编码器、UDP发送端等组件。例如: ``` gst-launch-1.0 -v filesrc location=test.mp4 ! decodebin ! x264enc ! rtph264pay ! udpsink host=192.168.1.100 port=5000 ``` 这个pipeline的作用是从test.mp4文件读取音视频流,解码后使用x264编码器进行压缩,然后使用rtph264pay将数据打包成RTP数据包,最后通过udpsink发送到指定的IP地址和端口。 4. 接收端需要创建一个gstreamer的pipeline,包括UDP接收端、解包器、解码器等组件。例如: ``` gst-launch-1.0 -v udpsrc port=5000 ! application/x-rtp, payload=96 ! rtpjitterbuffer ! rtph264depay ! avdec_h264 ! autovideosink ``` 这个pipeline的作用是从UDP端口5000接收音视频数据,使用rtpjitterbuffer解决网络抖动问题,使用rtph264depay将RTP数据包解包成原始的H.264数据流,然后使用avdec_h264解码器进行解码,最后使用autovideosink播放视频。 5. 在实际使用过程中,还需要考虑数据的带宽限制、网络延迟等问题,以保证音视频传输的效果。 希望这些笔记能对你有帮助。如果你还有其他问题,可以继续问我。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值