GAN学习历程之INSTAGAN论文笔记

INSTAGAN:

Instance-aware image-to-image translation
论文地址:https://arxiv.org/pdf/1812.10889.pdf
代码地址:https://github.com/sangwoomo/instagan

  • Abstract

    提出:
    为解决一些具有挑战性的问题,尤其是当一个图片有多个目标实例和涉及形状改变的转换任务。
    1. Introduction
    文章介绍了一种利用图像和实例信息作为输入,在保证背景不变的情况下对实例进行转换方法。InstaGAN主要是在cycleGAN的基础上进行改进。
    2.instaGAN architecture
    我们利用CycleGAN的方式来建立我们的InstaGAN。我们方法的核心在于合并额外的实例信息。论文中,仅仅使用了实例分割图,但是我们标记出任何类型的实例信息合并为属性。
    图一 instagan的结构

    GAN学习历程之INSTAGAN论文笔记_第1张图片

以下是论文中所提到InstanGAN的整体结构,
GAN学习历程之INSTAGAN论文笔记_第2张图片

InstanGAN网络结构类似于CycleGAN是一个环形结构,但是在loss的设置上有所不同,

GAN学习历程之INSTAGAN论文笔记_第3张图片
3.Run experiments

- 1.首先将整个项目从git上下载到服务器上,

git clone https://github.com/sangwoomo/instagan

- 2.下载数据集,我们在进行测试时只用了裙子到衣服的数据集,这里所使用的数据集是公开的时尚服饰数据集。

git clone https://github.com/bearpaw/clothing-co-parsing ./datasets/clothing-co-parsing

- 3.生成两个域的数据集,生成的域包括图片和相关的标签图,分别保存在trainA和trainA_seg

python ./datasets/generate_ccp_dataset.py --save_root ./datasets/jeans2skirt_ccp --cat1 jeans --cat2 skirt

generate_ccp_dataset.py文件从datasets/clothing-co-parsing/photos中读取图片,从datasets/clothing-co-parsing/annotations/pixel-level中读取.mat类型的文件生成相应图片的segmentation图片。

4.开始训练模型,并且使用pytorch可视化工具visdom分析实验结果。

python ./datasets/generate_ccp_dataset.py --save_root ./datasets/jpython train.py --dataroot ./datasets/jeans2skirt_ccp --model insta_gan --name jeans2skirt_ccp_instagan --loadSizeH 330 --loadSizeW 220 --fineSizeH 300 --fineSizeW 200 --niter 400 --niter_decay 200

由于服务器的显卡内存的限制,开始在跑程序的时候,总是提示溢出,这时batch_size的大小已经为1,这个时候把图片的大小设置小一点,即可正常运行。
训练步骤

  • 1.首先在服务器中启动visdom可视化工具

在这里插入图片描述

  • 2.开始训练模型,并在localhost:8097中查看结果。可以看到该网络的一些参数。我们所设置的训练次数为100次。

GAN学习历程之INSTAGAN论文笔记_第4张图片GAN学习历程之INSTAGAN论文笔记_第5张图片
GAN学习历程之INSTAGAN论文笔记_第6张图片

实验结果如下:
1.epoch=48
GAN学习历程之INSTAGAN论文笔记_第7张图片该图显示随着训练次数的增加domain loss和content loss的变化,
(epoch: 48, iters: 51, time: 0.799, data: 0.002)
D_A: 0.204 G_A: 0.359 cyc_A: 0.374 idt_A: 0.386 ctx_A: 0.332 D_B: 0.293 G_B: 0.145 cyc_B: 0.641 idt_B: 0.361 ctx_B: 0.506
(epoch: 48, iters: 151, time: 1.308, data: 0.003)
D_A: 0.202 G_A: 0.297 cyc_A: 0.546 idt_A: 0.563 ctx_A: 0.515 D_B: 0.156 G_B: 0.502 cyc_B: 0.732 idt_B: 0.328 ctx_B: 0.852
End of epoch 48 / 600 Time Taken: 134 sec
learning rate = 0.0002000

GAN学习历程之INSTAGAN论文笔记_第8张图片
训练48次后图片和segmentation mask图的变化,第一排裤子生成裙子,图片的生成效果一般,但是segmentation的效果很好。
2.epoch=110
GAN学习历程之INSTAGAN论文笔记_第9张图片
(epoch: 110, iters: 97, time: 0.788, data: 0.002) D_A: 0.124 G_A: 0.352 cyc_A: 0.441 idt_A: 0.315 ctx_A: 0.569 D_B: 0.122 G_B: 0.516 cyc_B: 0.481 idt_B: 0.311 ctx_B: 0.416
saving the model at the end of epoch 110, iters 18370
End of epoch 110 / 600 Time Taken: 135 sec
learning rate = 0.0002000

4.网络结构以及Loss

context preserving loss损失函数时文章提出的,保证在实例转换时为保证背景不发生变化。
损失函数一个由四部分组成,
1)LSGAN损失函数时最基本的GAN网络损失函数。
2)cycle-consistency loss cyclegan网络的损失函数,为保证图像转换过程中映射关系一一对应。
3)identity mapping loss 也是内容损失函数保证图像转换前后内容不变
4)文章中提出的context preserving loss ,也是保证在实例翻译时图像的背景内容不发生变化。
在这里插入图片描述

你可能感兴趣的:(GAN)