加速图像超分辨率重建的卷积神经网络(FSRCNN)

1 介绍

图像超分辨率重建是指通过低分辨率图像或图像序列恢复出高分辨率图像。高分辨率图像意味着图像具有更多的细节信息、更细腻的画质,这些细节在高清电视、医学成像、遥感卫星成像等领域有着重要的应用价值。Super-Resolution Convolutional Neural Network:本篇文章讲述的是深度学习在图像超分辨率重建问题的开山之作SRCNN(Super-Resolution Convolutional Neural Network)。我翻译的这篇论文Accelerating the Super-Resolution Convolutional Neural Network提出的FSRCNN是在SRCNN的基础上进行改进,主要加快了模型的恢复速度和恢复质量。
我这次实验的主要内容是复现FSRCNN的训练和测试过程。训练过程主要用python语言和TensorFlow框架实现,代码来自GitHub开源网站,自己调试修改程序实现。基本过程包括数据预处理即数据集扩展、CNN网络搭建、训练参数设置等。测试过程我分别用python和matlab实现,之所以用matlab实现是因为matlab有自带的PSNR函数可以直接计算重建图像与原图的PSNR值,而且作者也开源了matlab版本的FSRCNN的测试程序,可以直接调用训练好的模型进行测试。下面我将主要介绍下SRCNN和FSRCNN的结构,再结合代码解释下FSRCNN的实现过程。

2 SRCNN和FSRCNN

2.1 SRCNN

SRCNN的主要思想: 以深度学习与传统稀疏编码之间的关系作为依据, 将网络分为图像块提取、非线性映射和图像重建三个阶段, 再将这三个阶段统一到一个深度卷积神经网络框架中, 实现由低分辨率图像到高分辨率图像之间的端到端学习。图1为SRCNN的算法框架图,在网络结构方面, 该方法的网络结构设计简单, 通过分析了该方法与基于稀疏编码超分辨率重建技术的等价性, 将稀疏编码过程看作卷积运算, 利用三个卷积层完成图像块提取、非线性映射和图像重建等操作。在优化方式上, 以 SCSR为代表的传统浅层学习SR方法对三个阶段进行分别设计并独立优化处理, 偏重于字典学习优化, 而忽略了整体框架的优化。该方法则采用联合优化方式, 图像重建性能得到了较大的提高。
图1  SRCNN的算法框架
图1 SRCNN的算法框架
在训练阶段, 为避免重叠图像块后处理所造成 的计算量增大的问题, Dong 等将高分辨率样本随机裁剪为若干个子图像, 再经过高斯核滤波、下采样和上采样子图像, 得到低分辨率样本. 在训练策略上, 该方法采用均方误差作为损失函数, 由随机梯度下降法 (Stochastic gradient descent, SGD) 最小化损失函数, 训练速度进一步提升。该方法的特点是将传统的稀疏编码与深度学习的SR方法联系在一起。虽然该方法展现出更好的重建效果, 但是SRCNN 在加深网络层数的同时并未获得更好的效果, 其不足之处还包括不适用多尺度放大, 训练收敛速度慢, 图像块上下文依赖等。

2.2 FSRCNN

F

  • 1
    点赞
  • 46
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值