Image Super-Resolution Using Deep Convolutional Networks (SRCNN )
想法来源
模拟稀疏编码(sparse coding),但稀疏编码需要关注dict的学习和优化,或者是建立有效的映射函数。
贡献
- 首个使用CNN结构实现端到端的超分辨率算法,尽可能地减少了对输入图片的预处理
- 建立了稀疏编码和深度学习在SR上的联系
- 论证了深度学习在超分辨解决中有很好的质量和速度
主要方法流程
- 利用bicubic 插值,将图片转换成HR图片尺寸的大小
- path extraction and representation:用卷积网络提取patches,映射到高维空间(类似稀疏编码的映射到LR dict中)
- Non-linear mapping: 将一个高维空间映射到另一个高维空间中,类似稀疏编码的LR dict 到 HR dict
- Reconstruction: 生成SR图片
训练
三层网络,3*9*9*64,64*1*1*35,35*5*5*1,用MSE作为loss F,激活函数采用ReLU
体会
是把深度学习用到了超分辨上的开山之作,想法来自于稀疏编码器,整个网络框架的构建也是模拟稀疏编码器去解释。
Accelerating the Super-Resolution Convolutional Neural Network (FSRCNN)
提出问题
SRCNN生成SR过慢,不能满足一个实时(24fps)的效果。
1.在LR图片进入SRCNN网络之前需要bicubic插值处理
2. 因为插值过后图片变大,在SRCNN的non-linear层需要一个很大的感知域
上述操作都会花费时间成本
贡献
- 采用了反卷积层,实现了原始LR图像到HR图像的端到端合成
- 速度有很大的提升的同时,也能保持效果
- We transfer the convolution layers of the proposed networks for fast training and testing across different upscaling factors, with no loss of restoration quality. (没太理解这句)
共享其中的映射层,如果需要训练不同上采样倍率的模型,只需要fine-tuning最后的反卷积层
网络结构
分为5个部分:feature extraction, shrinking, mapping, expanding, deconvolution
1.feature extraction: 用55的卷积核将图片映射到高维空间
2.shrinking:用11的卷积核并减少卷积核数量以降低参数数量,提高计算效率
3.mapping:使用m个3*3的卷积核实现映射
4.expanding: 是shrinking层的逆过程,shrinking减少了计算的参数输量,但数量少的话,恢复的图片质量会不好。实验证明,如果没有expanding的话,会损失0.3dB
5.deconvolution: 是卷积层的逆操作,实现了上采样的效果。
、
训练
使用了PReLU, f ( x i ) = m a x ( x i , 0 ) + a i ∗ m i n ( 0 , x i ) f(x_i) = max(x_i,0)+a_i*min(0,x_i) f(x