Subpixel算法自身是一种插值算法,与常规的双线性或cubic插值算法相比,提升了图像的分辨率和插值质量(SNR),但达不到人脸解析的效果。为了达成该效果,可选取人脸数据集(如celebA),训练阶段配合DCGAN(深度卷积生成对抗网络)算法,对生成器部分做了二次优化,训练完成后取GAN中的生成网络部分做部署。
1. 网络框架
在部署和推理阶段的网络结构如下,网络命名为ESPCN(efficient subpixel convolutional network)。
ESPCN 网络结构
ESPCN 参数部署(batch_size=64为例)
Subpixel部署阶段的网络架构主要由3层反卷积、lrelu激活以及自定义的像素移位层(PS)构成的。
值得注意的是PS输入feature maps是48通道32*32大小的,48=3*4^2,其中r=4,代表放大倍数(upscaling factor),PS层进行像素重组,输出图像大小扩增为4倍,为(48*r)*(48*r)=128*128,输出通道数为48/r^2=48/16=3
2. 计算复杂度
(1)空间复杂度
网络参数规模如下(batch_size=64为例,部署阶段cnn空间复杂度与batch_size无关):
layer name |
滤波器超参数 |
滤波器参数规格 |
输入feature map规格 |
输出feature map规格 |
g_h0_deconv |
kernel_size:1 padding:0 |
1*1*64*3 |
64*32*32*3 |
64*32*32*64 |
< |