图像超分:基于飞桨复现 PULSE: Self-Supervised Photo Upsampling via Latent Space Exploration of Generative Models

一、简介

论文名称:PULSE: Self-Supervised Photo Upsampling via Latent Space Exploration of Generative Models

本项目基于paddlepaddle框架复现PULSE,该论文整体思路是利用一个预先训练好的GAN,然后通过不断迭代找到一个最优的latent vector使得生成的HR图片经过下采样能够与输入的LR图片最接近。该方法主要用来处理大因子的图像超分辨率问题,可以将模糊的照片秒变清晰。

论文: https://arxiv.org/pdf/2003.03808v3.pdf

参考项目:

项目github地址:

二、复现结果

2.1 视觉效果

celeba HQ数据集中随机选取了20张图片(16x16),比较其torch版本和paddle版本的输出结果(1024x1024),均进行100次迭代

image
image
(视觉效果都挺好)

2.2 NIQE指标

从celeba HQ数据集中随机选取了20张图片(16x16),作为torch版本和paddle版本的输入,比较其输出图片(1024*1024)的平均NIQE值(越小越好)。
以下为结果截图:
torch版本:average_NIQE=2.174
image
paddle版本:average_NIQE=2.132
image

三、数据集

输入的图片需要放置于input文件夹中,与原参考代码一致,输入的图片为16x16大小的celabaHQ人脸数据集,附上数据集链接: 百度云盘 密码: mo0s

数据集介绍

CelebA-HQ数据集是通过CelebA原始的未裁剪数据集生成的不同分辨率的版本,数据集中一共有30k张图片,本版本数据集是分辨率为16x16的图片,每张图片中都包含了丰富的人脸信息。 CelebA-HQ数据集可用于各种人脸生成、人脸识别以及编辑等任务中,可直接用于输入或者对结果进行监督。







(已挂载数据集于项目,可直接在项目中输入以下命令进行解压)

!unzip -o data/data104559/celeba16.zip -d data

四、环境依赖

  • 硬件:GPU、CPU

  • 框架:

    • PaddlePaddle >= 2.0.0

五、快速开始

在线运行notebook

终端执行python3 run.py即可运行代码,算法通过不断迭代寻找最佳输出图像,输出结果(1024x1024)存在output1024文件夹中。

六、代码结构与详细说明

6.1 代码结构

./Paddle-Pulse
|-- images               # 图片文件夹
       |--input          #输入文件夹
       |--output1024		#输出文件夹
|-- models                # 模型实现文件夹
       |--cache 		#模型权重文件夹
       |--loss			#模型损失函数类文件夹
       |--utils			#模型工具类API文件夹
       |--pulse.py		#pulse网络结构
       |--stylegan_paddle.py	#stylegan网络结构
|-- utils                # 工具类API文件夹
|-- run.py					#主函数调用所有类
|-- README.md            # 用户手册                  

stylegan.pdparams为在FFQH数据集上预训练好的styleGan的生成器的权重
gaussion_fit为在FFQH数据集上预训练好的styleGan的非线性映射网络
run.py 为运行主函数
stylegan_paddle.py 文件为styleGan的网络结构
pulse.py 为论文PULSE提取的算法,利用预先训练好的gan不断迭代寻找最优图片
loss.py 损失函数类
SphericalOptimizer.py 文件里为优化器类
bicubic.py 双三次下采样类
drive.py 驱动下载类
niqe.py NIQE评价类

6.2 参数说明

可以通过命令行调节以下相关参数,具体如下:

参数默认值说明
input_dirinput输入图片的路径
output_dirOutput1024输出图片的存放路径
batch_size1每批次大小
seed0随机种子
eps2e-3目标最小损失
opt_nameadam优化器类别
steps100寻找最优图片时的迭代次数

七、模型信息

关于模型的其他信息,可以参考下表:

信息说明
发布者皮蛋瘦肉周
时间2021.08
框架版本Paddle 2.0.2
应用场景图像超分辨率
支持硬件GPU、CPU
下载链接预训练模型 提取码:f35u
在线运行notebook
Logo

学大模型,用大模型上飞桨星河社区!每天8点V100G算力免费领!免费领取ERNIE 4.0 100w Token >>>

更多推荐