SRCNN

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

posted @ 2019-01-18 21:11  Python少年  阅读(4605)  评论(2编辑  收藏  举报