【论文阅读】High-Resolution Image Synthesis and Semantic Manipulation with Conditional GANs

Pix2PixHD提出了一种新方法,使用条件GAN从语义标签映射生成2048×1024的高分辨率真实感图像。该方法包括多尺度生成器和鉴别器结构以及新的对抗损失,同时支持对象实例操纵和多样结果生成,显著提升了图像合成和编辑的质量与分辨率。

pix2pixHD
bib:

@INPROCEEDINGS{wang2018pix2pixHD,
    author    = {Ting-Chun Wang and Ming-Yu Liu and Jun-Yan Zhu and Andrew Tao and Jan Kautz and Bryan Catanzaro},
    title     = {High-Resolution Image Synthesis and Semantic Manipulation with Conditional {GAN}s},
    booktitle = {CVPR},
    year      = {2018},
    pages     = {8798--8807}
}

1. 摘要

We present a new method for synthesizing high-resolution photo-realistic images from semantic label maps using conditional generative adversarial networks (conditional GANs). Conditional GANs have enabled a variety of applications, but the results are often limited to lowresolution and still far from realistic. In this work, we generate 2048 × 1024 visually appealing results with a novel adversarial loss, as well as new multi-scale generator and discriminator architectures. Furthermore, we extend our framework to interactive visual manipulation with two additional features. First, we incorporate object instance segmentation information, which enables object manipulations such as removing/adding objects and changing the object category. Second, we propose a method to generate diverse results given the same input, allowing users to edit the object appearance interactively. Human opinion studies demonstrate that our method significantly outperforms existing methods, advancing both the quality and the resolution ofdeep image synthesis and editing.

我们提出了一种利用CGAN从语义标记映射合成高分辨率真实感图像的新方法。 条件GAN已经实现了多种应用,但其结果往往局限于低分辨率,而且离现实还很远。 在这项工作中,我们使用一种新的对抗损失,以及新的多尺度生成器和鉴别器结构,生成了2048×1024视觉上吸引人的结果。 此外,我们将我们的框架扩展到交互式视觉操作,并增加了两个特性。 首先,我们结合了对象实例分割信息,它支持对象操作,如删除/添加对象和更改对象类别。 其次,我们提出了一种在给定相同输入的情况下生成不同结果的方法,允许用户交互地编辑对象外观。 人类意见研究表明,我们的方法明显优于现有的方法,提高了深度图像合成和编辑的质量和分辨率。

Note:

  • 首先本文针对的问题是生成高质量。现有的CGAN已有许多应用,但是在生成高精度图像上仍然存在进步空间。
  • 本文的两个贡献:
    • 多尺度(multi-scale)生成器,鉴别器结构
    • 与之对应的对抗损失

2. 算法描述

优化目标:

min ⁡ G ( ( max ⁡ D 1 , D 2 , D 3 ∑ k = 1 , 2 , 3 L G A N ( G , D k ) ) + λ ∑ k = 1 , 2 , 3 L F M ( G , D k ) ) \min_{G}{((\max_{D_1, D_2, D_3}\sum_{k=1, 2, 3}{\mathcal{L}_{GAN}(G, D_k)}) + \lambda \sum_{k=1, 2, 3}\mathcal{L}_{\mathrm{FM}}(G, D_k))} Gmin((D1,D2,D3maxk=1,2,3LGAN(G,Dk))+λk=1,2,3LFM(G,Dk))

L F M ( G , D k ) \mathcal{L}_{\mathrm{FM}}(G, D_k) LFM(G,Dk):
L F M ( G , D k ) = E ( s , x ) ∑ i = 1 T 1 N i [ ∥ D k ( i ) ( s , x ) − D k ( i ) ( s , G ( s ) ) ∥ 1 ] \mathcal{L}_{\mathrm{FM}}(G, D_k) = \mathbb{E}(\mathbf{s}, \mathbf{x})\sum_{i =1}^{T}\frac{1}{N_i}[\|D_k^{(i)}(\mathbf{s}, \mathbf{x}) - D_k^{(i)}(\mathbf{s}, G(\mathbf{s}))\|_1] LFM(G,Dk)=E(s,x)i=1TNi1[Dk(i)(s,x)Dk(i)(s,G(s))1]

NOTE:

  1. 多尺度体现在三个鉴别器( D 1 , D 2 , D 3 D_1, D_2, D_3 D1,D2,D3),对不同缩放尺度的图像进行鉴别,从而达到生成高精度的图像。
  2. 第二就是增加了一个正则项( L F M \mathcal{L}_{\mathrm{FM}} LFM),这个是在模型层级提取特征做的一个正则,我理解的是一种防止过拟合的手段。

3. 代码

实验就不看了,专业知识太强了,主要是不做这方面的研究,看这篇论文主要是增加知识的广度。代码地址可以参加Github

我想带着问题去看代码,对摘要中提出的两个贡献点: 1. 多尺度 2. Loss的正则项

  1. 多尺度

  2. Loss的正则项

要复现《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) ```
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

来日可期1314

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值