入职第一个GAN任务

        在用检测做工业质检的过程中,合格的产品有非常多,但不合格产品量少且形态各异。为了增强数据集,就需要生成大量不合格产品的图片。具体地,我得生成有瑕疵的磁材。此为背景。

        本来有两个任务可选,其中一个就是我研究的用GAN生成,所以毫不犹豫地选了这个(另一个忘了)。

        老大说,这个任务不着急,让我自己觉着怎么有意思怎么来。重要的是要好玩~自己玩儿着开心~(工作真清闲)。可以尝试多个网络以后,把它写的模块化,方便用。我们一切都目的都是为了懒(非常赞同)。

        所以呢,为了懒,我打算先找个pix2pix跑跑看看效果。然后再基于这个模块框架往里加别的模型就好啦。

        目前为止就只有pix2pix、cycleGAN(对本项目没啥用)、non-stationary-texture GAN(今天刚看懂加进去调通)。为了不耗费我写博客的热情,就直接从non-stationary-texture GAN 开始写啦。

1. pix2pix

2. Non-stationary-texture GAN

        目前,生成平稳纹理的模型已经很多了,但是自然界中存在很多非平稳的纹理,生成这些纹理的问题还没解决。这篇文章提出了一种非平稳纹理生成模型。一旦训练完毕,输入一张纹理图,模型就可以将其尺寸扩大,延伸其纹理(如下图)。目前,现存的模型还没有比这篇文章效果好的。(文章发表于2018年8月)

         论文没细看,只看了代码,是基于cycleGAN代码改的(太棒了不用手写进我的模块了)。

         代码和pix2pix差不多,输入real_A与real_B,由real_A生成fake_B,再用real_B与fake_B做loss。区别在于:


  • 一张大的纹理图,随机切一块(256*256)作为real_B;再在real_B上随机切一块(128*128)作为real_A;
  • real_A经过生成器。此处反卷积解码的过程多加了一层,使原图边长扩大了一倍,生成fake_B;
  • 加了vgg的style损失。一共有loss_L1(fake_B, real_B)、loss_GAN、loss_style。
  • 通篇只用一张图跑,也就是只有这一种纹理。

        不过好在磁材的纹理也只有一种,还蛮符合这篇论文条件的。

  • 截磁材纹理,训练;
  • 测试不同纹理作为输入的生成效果。

猜你喜欢

转载自blog.csdn.net/qq_26271435/article/details/95085748