SRCNN(超分辨率卷积神经网络)
网络结构
- l Conv1: f1 = 9 *9 activation = ‘relu’
- l Conv2: f2 = 1 *1 activation = ‘relu’ #为了非线性映射 增强非线性
- l Conv3: f3 = 5 * 5 activation = ‘lienar’
SRCNN训练流程
- l 设X为按stride=14 从91张图片训练数据中裁剪得33 x 33 大小的图片裁剪得24800张, 则X为 High Resolution Image 即Label,使用set5作为验证集(若用ImageNet的训练数据则stride = 33)
- l 对X进行高斯内核平滑,再通过缩放因子下采样 再通过同样的缩放因子进行双三次线性插值上采样得到的图片为Y 我们称为Low-Resolution Samples 即训练集
- l 作者只考虑YCrCb颜色通道中的明亮度通道Y进行训练,其他色度通道进行双三次上采样处理,这样做的目的是与传统的方法进行对比,其他通道仅用于展示不用于训练与测试
- l 训练过程中为了避免边缘效应,所有卷积层都没padding所以SRCNN的网络output为20 x 20 图片
- l 使用MSE损失函数,方便峰值信噪比,只用X的中心 21 x 21 部分来做真正的label
- l 测试的时候并不需要进行裁剪处理,只需对测试图片进行padding剪切,取padding=(fsub-f1-f2-f3+3)/2 ,直接取中心图片进行测试,这与只用X的中心 21 x 21 部分来做真正的label是同样的道理
复现参考代码: https://github.com/tegg89/SRCNN-Tensorflow