最简单的基于SRGAN网络的实现, 附带已训练好的模型及GIF生成代码, 更适合作为Demo展示。
上图就是训练了2000次后的模型的效果,只需要输入一张左边的低精度的图片, 就可以生成右边的高精度的图片。肉眼看上去效果还是非常不错的!
(由于GIF较大可能加载不出来)
这张GIF则展示了整个训练过程的变化, 左边的图是由神经网络生成的, 中间的是原始的高精度的图片, 右边的是输入到神经网络的低分辨率图片, ==神经网络在整个生成过程中是没有得到高精度图片信息的,这里给出高精度图片只是为了对比体现生成的效果==。可以看到在100次epoch迭代之后,性能已经非常不错了。
tensorflow or tensorflow-gpu > 1.10.0
keras = 2.2.4
imageio pip install imageio
- 下载训练好的模型权重
我给出了自己这边训练了2000次后的模型权重,可以从链接下载 提取码:su92 下载完成后,将.h5文件保存在saved_model文件夹下 运行srgan.py, (将gan.train这一句注释掉).
- 自己训练模型
先去下载数据集数据集地址 ,推荐使用百度云盘下载,很快。 将代码中self.dataset_name改为本地的数据集地址。 运行srgan.py.
-
生成自己的GIF (必须是自己训练模型后才能使用) 运行generate_GIF.py
-
所有测试数据默认存放在test_images文件夹下
这个代码主要基于https://github.com/eriklindernoren/Keras-GAN)的实现,做了一些小小的修改更有demo效果。
论文地址 Photo-Realistic Single Image Super-Resolution Using a Generative Adversarial Network。