019_SSSS_High-Resolution Image Synthesis and Semantic Manipulation with Conditioanl GANs

本文介绍了GAN经典文章Pix2PixHD,针对Conditional GAN在语义图像生成上分辨率和真实度低的问题,提出新的对抗损失和多尺度生成器、判别器结构,可生成高分辨率高真实度图像。还做出两方面扩展,支持交互式语义编辑,并在多个数据集上测试了模型性能。
部署运行你感兴趣的模型镜像

High-Resolution Image Synthesis and Semantic Manipulation with Conditional GANs(Pix2PixHD)

1. Introduction

本文也是GAN的经典文章之一,也称作Pix2PixHD。针对Pix2Pix为代表的的Conditional GAN在语义图像生成上存在的生成结果分辨率和真实度比较低的问题,本文用了一种新的对抗损失,并用多尺度的生成器和判别器结构,从而可以得到高分辨率2048x1024的结果,而且结果也有较高的真实性。

本文的主要贡献:

  1. 提出了一种新的GAN的对抗损失,和新的多尺度的生成器和判别器结构,从而能够生成高分辨率高真实度的图像。
  2. 为了支持交互式的语义编辑,本文做出了两方面的额外扩展。一个是使用instance-level的图像分割信息,从而可以单独的编辑单独的实例,提高了语义编辑的灵活性。比如可以添加或者去除某个物体,或者改变为其他物体。另一个是本文提出了一种可以在给定输入相同的语义图的情况下,生成多样性的结果。

2. Method

2.1 The Pix2Pix Baseline

本质上本文的方法还是一种Conditional GAN,其基础还是Pix2Pix。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UwEpgYQq-1667135187642)(res/019/001.png)]

Pix2Pix用到的就是最基础的GAN损失,但是这种方法在Cityscape上只能得到256x256的结果,再提高分辨率的话,会出现训练不稳定的情况,并且得到的结果并不能令人满意。

2.2 Improving Photorealism and Resolution

这部分介绍本文如何提高生成结果的真实度和分辨率。

2.2.1 Coarse-to-fine generator

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YqA8hzRK-1667135187642)(res/019/002.png)]

如图所示,一目了然,作者将生成器分成两个部分,生成器G2的前半部分将高分辨率的图像编码为低尺度的特征,然后生成器G1将低分辨率的语义图像转化为真实图像,然后生成器G2的后半部分结合前半部分的信息和G1的输出,得到高分辨率的图像。作者称G1为global generator network,称G2为local enhancer network。

这种结构可以继续扩展,比如在G={G1,G2}两种尺度条件下,可以得到2048x1024的结果,而再扩展一层local enhancer network G3,则可以得到4096x2048的结果。

2.2.2 Multi-Scale discriminator

相应的,生成器可以得到高分辨率的图像,那么判别器也要能处理高分辨率的图像。如果只用一个判别器网络,那就需要堆叠大量的卷积层,从而使得网络有更大的感受野来更好的分辨图像的,但是这样会使得判别器网络规模过大。

于是作者提出了一种多尺度的discriminator。作者用了三个判别器网络,这三个判别器网络结构相同,而且比较简单,但是输入分别是不同尺度的图像。这三个不同尺度的图像分别是高分辨率图像及其降采样2倍和4倍的图像。

于是GAN的损失就需要是一个多任务学习的损失:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SIkcqZp7-1667135187643)(res/019/003.png)]

2.2.3 Improved adversarial loss

为了提升生成结果的真实度,作者加入了特征匹配的损失。具体做法就是,利用多尺度的Discriminator中间层的结果作为特征,将生成器生成的结果与ground truth的图像经过discriminator第k层时的特征之间的差别作为损失。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DDwwUGY7-1667135187643)(res/019/004.png)]

与上一部分的多任务的GAN损失结合,可以得到整体的损失表示:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BtSKSjrl-1667135187643)(res/019/005.png)]

2.3 Using Instance Map

这部分介绍作者如何加入实例层的信息。

一般情况下,语义图(semantic/label map)中每个类别的物体会有一个单独的颜色来表示,但是同一类的不同物体则没有表示出来。比如在cityscape数据集中,人都是用红色来表示的,但是这个人的性别是男是女则不能通过语义图得到。另外一些语义图给每一个物体一个单独的ID,但是这样的语义图很复杂。

于是本文的作者用了一种相对高效而又比较简单的方法。对于一张输入的图像,作者先计算其对应的边界图(boundary map)。也就是说语义图中某一点的像素值跟它的四个相邻的点像素值不同的话,那么其对应的边界图中点的值为1,否则为0。得到边界图后,与语义图concat起来一起作为生成器的输入。而判别器的输入则是语义图,边界图,和生成结果或是ground truth进行concat。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AjJgAmdd-1667135187643)(res/019/006.png)]

2.4 Learning an Instance-level Feature Embedding

这个部分介绍作者如何实现同样的语义图生成多种不同的结果。

为了得到多样的结果,作者在训练的时候加入了一个编码器网络E用来得到每个instance对应的低维的特征编码。而在训练的时候,这个网络的输出作为生成器输入的一部分,也就是说生成器的输入除了条件图像外还有低维的特征编码G(s, E(x))。

在训练结束后,将所有的instance对应的低维编码进行K-means聚类。

这样在采样阶段对于每个instance,从其对应的K-means中随机取出一个出来,这样同一个instance就有可能出现不同的低维特征编码,从而有不同的属性。比如对于一个气球的instance,可以出现不同的颜色。那么一张图中多个instance就会出现不同的组合。生成的结果也就有了多样性。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LbSR9QYv-1667135187644)(res/019/007.png)]

3. Experiments

实验部分作者分别在Cityscapes,NYU Indoor RGBD,ADE20K,Helen Face四个数据集上测试了模型的性能。
并且进行了一些Ablation Study来证明本文的改进的有效性。
具体实验结果参考原文。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XPpnghmQ-1667135187644)(res/019/008.png)]

您可能感兴趣的与本文相关的镜像

ComfyUI

ComfyUI

AI应用
ComfyUI

ComfyUI是一款易于上手的工作流设计工具,具有以下特点:基于工作流节点设计,可视化工作流搭建,快速切换工作流,对显存占用小,速度快,支持多种插件,如ADetailer、Controlnet和AnimateDIFF等

要复现《High-Resolution Image Synthesis with Latent Diffusion Models》的研究,可从以下方面开展: 1. **了解研究贡献与方法**:该研究提出在潜在表示空间上进行扩散过程的方法,减少计算复杂度,且能取得不错的图片生成效果。同时提出 cross - attention 方法实现多模态训练,支持类别条件图片生成、文图生成、布局条件图片生成等条件图片生成任务 [^1]。 2. **数据准备**:确定研究的具体任务,如无条件图片生成、图片修复、图片超分等,准备相应的数据集。不同任务对数据的要求和处理方式可能不同 [^1]。 3. **模型搭建**:搭建在潜在空间进行扩散过程的模型结构。模型应包含对原始图像在潜在空间上的处理流程,以及实现 cross - attention 操作的部分。具体而言,将加入的条件使用编码器进行特征提取,提取后作为 Cross - attention 的 KV,在 Unet 的流程中对潜在空间上的原始图像进行 Cross - attention 操作,以控制生成数据 [^1][^4]。 4. **训练模型**:使用准备好的数据集对模型进行训练。由于扩散模型是自回归模型,需要反复迭代计算,训练过程可能较为耗时和消耗计算资源。训练过程中需关注模型在不同任务上的表现,如无条件图片生成、图片修复、图片超分等任务 [^1]。 5. **实验验证**:在多个任务上进行实验,包括无条件图片生成、图片修复、图片超分、类别条件图片生成、文图生成、布局条件图片生成等,验证模型的效果 [^1]。 6. **评估指标**:使用合适的评估指标来衡量模型在各个任务上的性能,如在图像生成任务中可使用一些通用的图像质量评估指标。 ### 代码示例 以下是一个简单的伪代码示例,展示 cross - attention 部分的实现思路: ```python import torch import torch.nn as nn # 假设这里是 Cross - attention 模块 class CrossAttention(nn.Module): def __init__(self, dim): super().__init__() self.to_q = nn.Linear(dim, dim) self.to_k = nn.Linear(dim, dim) self.to_v = nn.Linear(dim, dim) self.scale = dim ** -0.5 def forward(self, x, condition): q = self.to_q(x) k = self.to_k(condition) v = self.to_v(condition) attn = torch.matmul(q, k.transpose(-2, -1)) * self.scale attn = torch.softmax(attn, dim=-1) out = torch.matmul(attn, v) return out # 示例使用 dim = 512 x = torch.randn(1, 10, dim) # 原始图像在潜在空间的特征 condition = torch.randn(1, 5, dim) # 条件特征 cross_attn = CrossAttention(dim) output = cross_attn(x, condition) print(output.shape) ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值