文章目录

  • Learning a Deep Convolutional Network for Image Super-Resolution
    • 算法简介
    • 算法流程
      • Patch extraction and representation
      • Non-linear mapping 非线性映射
      • Reconstruction
    • 训练
    • 测试
    • 实验结果

Learning a Deep Convolutional Network for Image Super-Resolution

SRCNN是深度学习用在超分辨率重建上的开山之作。SRCNN的网络结构非常简单,仅仅用了三个卷积层,网络结构如下图所示。

论文链接: (Learning a Deep Convolutional Network for Image Super-Resolution, ECCV2014)
Pytorch实现源码

算法简介

SRCNN算法的框架,SRCNN将深度学习与传统稀疏编码之间的关系作为依据,将3层网络划分为图像块提取(Patch extraction and representation)、非线性映射(Non-linear mapping)以及最终的重建(Reconstruction)。
SRCNN的流程为:
(1)先将低分辨率图像使用双三次差值放大至目标尺寸(如放大至2倍、3倍、4倍),此时仍然称放大至目标尺寸后的图像为低分辨率图像(Low-resolution image),即图中的输入(input);

(2)将低分辨率图像输入三层卷积神经网络,(举例:在论文中的其中一实验相关设置,对YCrCb颜色空间中的Y通道进行重建,网络形式为(conv1+relu1)—(conv2+relu2)—(conv3))第一层卷积:卷积核尺寸9×9(f1×f1),卷积核数目64(n1),输出64张特征图;第二层卷积:卷积核尺寸1×1(f2×f2),卷积核数目32(n2),输出32张特征图;第三层卷积:卷积核尺寸5×5(f3×f3),卷积核数目1(n3),输出1张特征图即为最终重建高分辨率图像。

们首先使用双三次插值将其放大到所需的大小,这是我们执行的唯一预处理3。让我们将插值图像表示为Y.我们的目标是从Y中恢复与地面实况高分辨率图像X尽可能相似的图像F(Y)。为了便于呈现,我们仍称Y为“低分辨率的“图像,虽然它与X具有相同的大小。我们希望学习映射F,它在概念上由三个操作组成:

  • 1)补丁提取和表示:该操作从低分辨率图像Y中提取(重叠)补丁,并将每个补丁表示为高维向量。这些向量包括一组特征图,其数量等于向量的维数。
  • 2)非线性映射:该操作是每个高维向量到另一个高维向量的非线性映射。每个映射的矢量在概念上是高分辨率补丁的表示。这些向量包括另一组特征映射。
  • 3)重建:该操作聚合高分辨率补丁表示以生成最终的高分辨率图像。该图像应该与真实标记X相似。

算法流程

Patch extraction and representation

图像恢复中的流行策略是密集地提取补丁,然后通过一组预先训练的基础(例如PCA,DCT,Haar等)来表示它们。这相当于用一组滤波器对图像进行卷积,每个滤波器都是一组基。将这些基础的优化包括在网络的优化中。第一层表示为操作 F 1 F_{1} F1​:
F 1 ( Y ) = max ⁡ ( 0 , W 1 ∗ Y + B 1 ) F_{1}(\mathbf{Y})=\max \left(0, W_{1} * \mathbf{Y}+B_{1}\right) F1​(Y)=max(0,W1​∗Y+B1​)

其中 W 1 W_{1} W1​和 B 1 B_{1} B1​分别代表滤波器和偏置。这里 W 1 W_{1} W1​的大小为 c × f 1 × f 1 × n 1 c \times f_{1} \times f_{1} \times n_{1} c×f1​×f1​×n1​,其中c是输入图像中的通道数, f 1 f_{1} f1​是滤波器的空间大小, n 1 n_{1} n1​是滤波器的数量。很明显, W 1 W_{1} W1​在图像上应用 n 1 n_{1} n1​个卷积,每个卷积的内核大小为 c × f 1 × f 1 c \times f_{1} \times f_{1} c×f1​×f1​。输出由 n 1 n_{1} n1​个特征图组成。 B 1 B_{1} B1​是 n 1 n_{1} n1​维向量,其每个元素与滤波器相关联。我们在滤波器响应上应用整流线性单元(ReLU,max(0,x))

Non-linear mapping 非线性映射

第一层为每个补丁提取 n 1 n_{1} n1​维特征。在第二操作中,我们将这些 n 1 n_{1} n1​维向量中的每一个映射为 n 2 n_{2} n2​维向量。这相当于应用具有平凡空间支持1 x 1的 n 2 n_{2} n2​滤波器。此解释仅适用于1 x 1过滤器。但是很容易推广到像3 x 3或5 x 5这样的大型滤波器 。在那种情况下,非线性映射不是输入图像的补丁; 相反,它是在3 x 3或5 x 5特征图的“补丁”。第二层的操作是:
F 2 ( Y ) = max ⁡ ( 0 , W 2 ∗ F 1 ( Y ) + B 2 ) F_{2}(\mathbf{Y})=\max \left(0, W_{2} * F_{1}(\mathbf{Y})+B_{2}\right) F2​(Y)=max(0,W2​∗F1​(Y)+B2​)
这里 W 2 W_{2} W2​的大小是 n 1 × 1 × 1 × n 2 n_{1} \times 1 \times 1 \times n_{2} n1​×1×1×n2​, B 2 B_{2} B2​是 n 2 n_{2} n2​维。每个输出 n 2 n_{2} n2​维向量在概念上是将用于重建的高分辨率补丁的表示。

Reconstruction

在传统方法中,经常对预测的重叠高分辨率补丁进行平均以产生最终的完整图像。平均可以被认为是一组特征图上的预定义滤波器(其中每个位置是高分辨率补片的“扁平”矢量形式)。由此推动,我们定义卷积层以产生最终的高分辨率图像:
F ( Y ) = W 3 ∗ F 2 ( Y ) + B 3 F(\mathbf{Y})=W_{3} * F_{2}(\mathbf{Y})+B_{3} F(Y)=W3​∗F2​(Y)+B3​
这里 W 3 W_{3} W3​的大小是 n 2 × f 3 × f 3 × c n_{2} \times f_{3} \times f_{3} \times c n2​×f3​×f3​×c, B 3 B_{3} B3​是三维矢量。

训练

(1)训练数据集:论文中某一实验采用91张自然图像作为训练数据集,对训练集中的图像先使用双三次差值缩小到低分辨率尺寸,再将其放大到目标放大尺寸,最后切割成诸多33×33图像块作为训练数据,作为标签数据的则为图像中心的21×21图像块(与卷积层细节设置相关);

(2)损失函数:采用MSE函数作为卷积神经网络损失函数;
L ( Θ ) = 1 n ∑ i = 1 n ∥ F ( Y i ; Θ ) − X i ∥ 2 L(\Theta)=\frac{1}{n} \sum_{i=1}^{n}\left\|F\left(\mathbf{Y}_{i} ; \Theta\right)-\mathbf{X}_{i}\right\|^{2} L(Θ)=n1​i=1∑n​∥F(Yi​;Θ)−Xi​∥2

(3)卷积层细节设置:第一层卷积核9×9,得到特征图尺寸为(33-9)/1+1=25,第二层卷积核1×1,得到特征图尺寸不变,第三层卷积核5×5,得到特征图尺寸为(25-5)/1+1=21。训练时得到的尺寸为21×21,因此图像中心的21×21图像块作为标签数据。(卷积训练时不进行padding)

测试

(1)全卷积网络:所用网络为全卷积网络,因此作为实际测试时,直接输入完整图像即可;

(2)Padding:训练时得到的实际上是除去四周(33-21)/2=6像素外的图像,若直接采用训练时的设置(无padding),得到的图像最后会减少四周各6像素(如插值放大后输入512×512,输出500×500)。因此在测试时每一层卷积都进行了padding(卷积核尺寸为1×1的不需要进行padding)。这样保证插值放大后输入与输出尺寸的一致性。

实验结果



(SRCNN)及pytorch实现_Learning a Deep Convolutional Network for Image Super-Resolution——超分辨率(二)相关推荐

  1. 图像超分辨率之SRCNN(Learning a Deep Convolutional Network for Image Super-Resolution)

    论文下载:Learning a Deep Convolutional Network for Image Super-Resolution 代码下载:https://github.com/tegg89 ...

  2. 人群密度估计--CrowdNet: A Deep Convolutional Network for Dense Crowd Counting

    CrowdNet: A Deep Convolutional Network for Dense Crowd Counting published in the proceedings of ACM ...

  3. 【Cascade FPD】《Deep Convolutional Network Cascade for Facial Point Detection》

    CVPR-2013 文章目录 1 Background and Motivation 2 Related Work 3 Advantages / Contributions 4 Method 5 Ex ...

  4. Ensemble of the Deep Convolutional Network for Multiclass of Plant Disease Classi¯cation Using Leaf

    Ensemble of the Deep Convolutional Network for Multiclass of Plant Disease Classi¯cation Using Leaf ...

  5. CVPR2020:Deep Unfolding Network for Image Super-Resolution解读

    Title:Deep Unfolding Network for Image Super-Resolution(图像超分辨率的深度展开网络) Writers:Kai Zhang Luc Van Goo ...

  6. 论文翻译——Facial Emotion Recognition using Deep Convolutional Networks

    文章目录 Abstract introduction Recognition Of Emotion In Deep Network Convolutional Neural Network 分析与总结 ...

  7. DeCAF: A Deep Convolutional Activation Feature for Generic Visual Recognition 一般视觉识别的深度卷积刺激特征

    DeCAF: A Deep Convolutional Activation Feature for Generic Visual Recognition 一般视觉识别的深度卷积刺激特征 Abstra ...

  8. Identifying drug–target interactions based on graph convolutional network and deep neural network 论文

    Identifying drug–target interactions based on graph convolutional network and deep neural network 文章 ...

  9. 2020-10-18 从SRCNN到EDSR,总结深度学习端到端超分辨率方法发展历程

    本文转自:https://blog.csdn.net/aBlueMouse/article/details/78710553 超分辨率技术(Super-Resolution, SR)是指从观测到的低分 ...

最新文章

  1. 神奇的幻方(NOIP2015)(真·纯模拟)
  2. 关乎每个人!2021年5月1日起实施
  3. SpringBoot的端口配置server.port没办法设置成Linux的环境变量
  4. http --- 缓存
  5. drcom linux怎么运行,Drcom_linux
  6. P1802 5 倍经验日(python3实现)
  7. java 设计模式 示例_Java示例中的装饰器设计模式
  8. unix和linux命令_Linux / UNIX中的cp命令
  9. 解决PCL 编译报错:undefined reference to `pcl::PCLBase<pcl::PointXYZRGBA>:: XXX
  10. 金庸笔下人物名字的来历和意义
  11. 矢量合成和分解的法则_矢量合成和分解的方法--平行四边形法则.ppt
  12. 海底捞的启示(4):员工成长与职业生涯
  13. 智能城市应用中的安全和隐私:挑战和解决方案
  14. Visaul Studio 2008 中配置DirectX9c的开发环境
  15. 2015年3季度基金持股超流通股30%的个股一览
  16. 复旦大学信息科学与工程考研经验
  17. 康佳d550 java_康佳 D550:整体外观图
  18. 安装Docker、Harbor、Jenkins、Gitlab
  19. 反编译 AndroidManifest.xml文件
  20. python巴特沃斯滤波器_butterworth-实时数字巴特沃斯IIR滤波器-Kei Imada

热门文章

  1. Android ROOT System权限 设备管理器
  2. python3使用pdfminer读取pdf文件
  3. 拒绝“内卷”跃迁软件测试最大门槛,我是如何从月薪8K到15K的?
  4. Android 启用/禁用WLAN直连功能
  5. cocos2d-x 植入广告(二) 有米横屏、插屏广告和积分墙广告
  6. java maven下载_maven下载安装 Apache Maven(java项目管理工具) v3.6.1 官方版(附Maven环境变量配置) 下载-脚本之家...
  7. git强制拉取远程项目覆盖本地项目
  8. 中国科学院大学计算机所最牛的老师,中国科学院大学研究生导师教师师资介绍简介-牛北方...
  9. 博主基金定投10条铁律
  10. CANoe基础操作教程