超分辨率重建 Super Resolution with PixelShuffle(PyTorch)

代码参考为:官方代码

1、模型数据的处理过程

从测试代码可以看出,数据处理过程如下

  • 1.将RGB图像转换为YCbCr图像,
  • 2.选取其中的Y通道完成超分辨率重建
  • 3.Cb、Cr通道通过PIL.Image自带的BICUBIC算法上采样
  • 4.将YCbCr图像转换为RGB图像并保存

2、超分辨率重建的PixelShuffle算法

代码直接调用的是PixelShuffle算法,论文为CVPR2016的论文PixelShuffle,pytorch的调用函数为

CLASS torch.nn.PixelShuffle(upscale_factor)
  • 输入为:
  • 输出为:

PixelShuffle算法通过卷积层得到了个通道的图像,然后每个像素点的个通道依次转换为对应的的图像块,操作过程如下图所示。

超分辨率重建 Super Resolution with PixelShuffle(PyTorch)_第1张图片
PixelShuffle

3、整体模型

  • conv(5,5,1,64) stride = 2 relu
  • conv(3,3,64,64)stride=1 relu
  • conv(3,3,64,32)sride =1 relu
  • conv(3,3,32,uf*uf)stirde = 1
  • nn.PixelShuffle(uf)

4、结果展示

测试数据集为BSDS300,15epoch,三倍上采样率,模型测试结果如下:


超分辨率重建 Super Resolution with PixelShuffle(PyTorch)_第2张图片
输入

输出

你可能感兴趣的:(超分辨率重建 Super Resolution with PixelShuffle(PyTorch))