前言
今天在思考如何解决model在上采样过程中可能会出现的棋盘格现象,阅读到一篇被CVPR2016收录的论文,里面提出了PixelShuffle,链接如下《Real-Time Single Image and Video Super-Resolution Using an Efficient Sub-Pixel Convolutional Neural Network》。
过程
PixelShuffle算法流程图如下,可以实现将hw的低分辨率图像,通过sub-pixel 操作变为rhrw的高分辨率图像,通过卷积层先得到了r^2个通道的图像,然后每个像素点的r^2个通道依次转换为对应的rr的图像块,最终得到rhrw的图像。
Pytorch中已经集成了PixelShuffle的module,torch.nn.PixelShuffle(upscale_factor),形参说明: - input (Variable) – 输入 - upscale_factor (int) – 增加空间分辨率的因子,例子如下。