pix2pix tensorflow试验(GAN之图像转图像的操作)

GAN是一种典型的概率生成模型,其核心思想是:找出给定观测数据内部的统计规律,并且能够基于所得到的概率分布模型,产生全新的,与观测数据类似的数据


概率生成模型可以用于自然图像的生成。假设给定1000万张图片之后,生成模型可以自动学习到其内部分布,能够解释给定的训练图片,并同时生成新的图片。

与庞大的真实数据相比,概率生成模型的参数个数要远远小于数据的数量。因此,在训练过程中,生成模型会被强迫去发现数据背后更为简单的统计规律,从而能够生成这些数据。

由于GAN这种无监督学习已经成为深度学习的新技术点,而且出来了很多应用,因此对GAN的一些应用进行逐步学习,其中图像到图像之间的转换操作是一种典型的应用。因此对该技术进行学习操作。

本实验主要参考代码为:https://github.com/affinelayer/pix2pix-tensorflow

(1)首先下载数据集,https://people.eecs.berkeley.edu/~tinghuiz/projects/pix2pix/datasets/,从这个网址上可以下载很多个经典的应用数据集。本文实验只选用facades这个数据集,由于剩下原理都是一样的。

(2)进行训练

在程序pix2pix.py代码中,手动添加测试参数,本文只让运行200次。

  # 训练的时候的参数

#     a.input_dir = "/home/ndscbigdata/work/imgdata/facades/train"
#     a.mode = "train"
#     a.output_dir = "/home/ndscbigdata/work/imgdata/facades/ckt"
#     a.max_epochs=200
#     a.which_direction = "BtoA"

      pix2pix tensorflow试验(GAN之图像转图像的操作)_第1张图片

(3)进行测试

 # 测试的时候的参数
    a.input_dir = "/home/ndscbigdata/work/imgdata/facades/val"
    a.mode = "test"
    a.output_dir = "/home/ndscbigdata/work/imgdata/facades/facades_test"
    a.checkpoint="/home/ndscbigdata/work/imgdata/facades/ckt"


测试结果运行结果如图所示:

pix2pix tensorflow试验(GAN之图像转图像的操作)_第2张图片


测试结果截图如下:可以看出生成效果还是相当不错的,不过假如把训练max_epochs设置大一些,可能效果更好。




具体的代码已经发布在github上:https://github.com/ndscigdata/tensorflow-pratice





你可能感兴趣的:(深度学习,深度学习,GAN,图像处理,tensorflow)