SRCNN笔记一

1. 综述

原文:Learning a Deep Convolutional Network for Image Super-Resolution

  • 文章指出Sparse-coding-based方法中的管线可以等同于一个深度学习网络。
  • 在真实图像已知的情况下,评价方法有:PSNR(峰值信噪比), SSIM, multi-scale SSIM, information fidelity criterion(IFC), noise quality measure(NQM), weighted peek signal-to-noise ratio(WPSNR), multi-scale structure similarity index(MSSSIM)
  • 模型有进一步提升的空间,主要来自两个方面:更大更多样的数据集;更大更深层的网络模型
  • 性能上比传统非机器学习的方法更快;
  • 可以RGB三个颜色通道同时处理,比只训练Y通道可以得到更好的结果。
  • CNN的爆炸式发展得益于几点:
    • (i) GPU性能的提高大大提升了训练速度[14];
    • (ii) Rectified Linear Unit(ReLU)的提出使得收敛得到比较好的结果的速度更快[18];
    • (iii) 大规模数据集更好获取,如ImageNet[5]
  • SRCNN首次采用深度学习的方法来解决super-resolution的问题。之前也有用多层感知机(MLP)来解决图像去噪问题的,如natural image denoising[3], post-deblurring denoising[19]。也有用CNN方法来解决图像的恢复问题,如natural image denoising[12], removing noisy patterns (dirt/rain)[6].

2. 步骤

在这里插入图片描述

2.1 数据预处理

将训练数据集中的原始源(Ground Truth)分割成 32 ∗ 32 32*32 3232大小的子图。如果放大倍数是3,就分割成 33 ∗ 33 33*33 3333,因为可以被3整除。将子图进行一系列处理:

  • [Blur]选择一个合适的高斯核进行模糊处理
  • [Sub-sample]使用Bicubic插值按倍数缩小
  • [Upscale]使用Bicubic插值按倍数放大 (这一步其实也是卷积操作,但是为了方便使用convnet所以没有将这一步放在网络中?[14])
    用上面的方法将91-Image数据集按步长14分割成24800张子图作为训练的输入。尝试更小的步长没有发现明显的改进。

2.2 Patch提取和表示

使用 n 1 n_1 n1 f 1 ∗ f 1 f_1 * f_1 f1f1大小的filter进行卷积操作生成 n 1 n_1 n1 张特征图。然后进行Relu操作( m a x ( 0 , x ) max(0,x) max(0,x))。 B 1 B_1 B1是偏置向量, W 1 W_1 W1大小为 c ∗ f 1 ∗ f 1 ∗ n 1 c * f_1 * f_1 * n_1 cf1f1n1 c c c 是输入图片的通道输入。
F 1 ( Y ) = m a x ( 0 , W 1 ∗ Y + B 1 ) F_1(Y) = max(0, W_1 * Y + B_1) F1(Y)=max(0,W1Y+B1)

2.3 非线性映射

使用 n 2 n_2 n2 1 ∗ 1 1 * 1 11 的filter进行卷积操作。然后进行Relu操作。
F 2 ( Y ) = m a x ( 0 , W 2 ∗ F 1 ( Y ) + B 2 ) F_2(Y) = max(0, W_2 * F_1(Y) + B_2) F2(Y)=max(0,W2F1(Y)+B2)

2.4 重建

使用 c 个 f 3 ∗ f 3 f_3 * f_3 f3f3的filter进行卷积操作。
F ( Y ) = W 3 ∗ F 2 ( Y ) + B 3 F(Y) = W_3 * F_2(Y) + B_3 F(Y)=W3F2(Y)+B3

3. 数据集

  • ImageNet。从ImageNet中选取395909张图片,然后用步长33再分割成500万张子图。SRCNN+ImageNet训练放大三倍,在Set5数据集测试得到32.52dB;SRCNN+91Image训练放大三倍,在Set5数据集测试得到32.39dB。
  • 91-Image
  • BSD300
  • BSD500
  • Set5(Test)
  • Set14(Test)
  • BSD100(Test)

4. 实现

4.1 原始版本

论文作者实现的原始版本是用Matlab + Caffee实现的,地址在这。没有看到C++代码,看来还是有所保留的。

4.2 其他版本

在github上找了几个其他人实现的版本:

5. Future

  • 实验更多的隐藏层
  • deblurring
  • SR + denoising

6. 参考

参考文章的标号和原文保持一致。
[3] Burger, H.C., Schuler, C.J., Harmeling, S.: Image denoising: Can plain neural networks compete with BM3D? In: CVPR. pp. 2392–2399 (2012)
[5] Deng, J., Dong, W., Socher, R., Li, L.J., Li, K., Fei-Fei, L.: ImageNet: A large-scale hierarchical image database. In: CVPR. pp. 248–255 (2009)
[6] Eigen, D., Krishnan, D., Fergus, R.: Restoring an image taken through a window covered with dirt or rain. In: ICCV. pp. 633–640 (2013)
[12] Jain, V., Seung, S.: Natural image denoising with convolutional networks. In: NIPS. pp. 769–776 (2008)
[14] Krizhevsky, A., Sutskever, I., Hinton, G.: ImageNet classification with deep convolutional neural networks. In: NIPS. pp. 1097–1105 (2012)
[16] LeCun, Y., Bottou, L., Bengio, Y., Haffner, P.: Gradient-based learning applied to document recognition. Proceedings of the IEEE 86(11), 2278–2324 (1998)
[18] Nair, V., Hinton, G.E.: Rectified linear units improve restricted Boltzmann machines. In: ICML. pp. 807–814 (2010)
[19] Schuler, C.J., Burger, H.C., Harmeling, S., Scholkopf, B.: A machine learning approach for non-blind image deconvolution. In: CVPR. pp. 1067–1074 (2013)

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

superbin

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值