SRCNN论文笔记

目录

一、eccv 2014 deepresulotion

二、内容

三、数据处理

Patch extraction and representation

Non-linear mapping

Reconstruction

本文网络架构

传统方法架构

四、损失函数

五、实验细节

 


一、eccv 2014 deepresulotion

2014年 eccv的一篇超分辨率图像重建的论文Learning a Deep Convolutional Network for Image Super-Resolution

毕业论文有想用到就开始了这篇论文的研读和复现。

论文链接


 

二、内容

  1. 摘要Abstract: 采用端到端的学习方法,直接学习低分辨率与高分辨率的图片的映射关系,网络架构采用了CNN,仅仅用了三层卷积层,所以所含权值参数比较少,并且转换速度亦不俗。

  2. 作者简要给出了Bicubic(双立方插值),SC(sparse-coding-based method)和SRCNN的重建PSNR和效果对比。

Related work 就在此略,。都是些引用论文和别的论文成果对比。


三、数据处理

论文中提到SC方法,貌似这个方法各部分都是独立的,还要有些数据预处理。论文所涉及的图片预处理仅有一项,长话短说就是取得额定大小的图片,对其使用双立方插值(Bicubic interpolation),得到低分辨率的图片Y,将高分辨率图片X作为基准(ground truth),输入网络得到处理过后的图片F(X)。需要注意的是YX虽然有相同的大小,但Y仍被称为低分辨率图片。其实很好理解,插值就是猜像素,虽然一样大,但是分辨率会下降(模糊)。映射F可以被抽象成一下三个步骤:

  • Patch extraction and representation(块抽取&&视作):实际就是卷积提取特征值,将这些特征值视作高维向量,向量维度和特征值的维度一致
  • Non-linear mapping(非线性映射):上面的高维向量通过映射得另外的高维向量,每组映射的向量都是高分辨率块的抽象表现。这些向量又是一组特征值
  • Reconstruction:(重建):用上面所得到向量生成近可能接近所期望能接近原图的图像。

Patch extraction and representation

论文给出了第一层卷积的表达式:F_1(Y)=max(0,W_1*Y+B_1)。这里W_1是卷积核,B_1是偏差(Bias)。

W_1(c * f_1*f_1*num) 从左至右依次是通道数、尺寸、尺寸、核数。

B_1n_1维的向量(Y_H_/_W-f_1+1)*(Y_H_/_W-f_1+1)*n_1

最后用Relu激活函数,输出维度(Y_H_/_W-f_1+1)*(Y_H_/_W-f_1+1)*n_1

Non-linear mapping

同样给出公式:F_2 (Y)=max(0,W_2*F_1(Y)+B_2)

W_2(n_1*1*1*n_2)

B_2((F1_H_/_W-f_2+1)*(F1_H_/_W-f_2+1)*n_1)

Reconstruction

传统方法是预测邻近的patch重叠的部分,将其平均化产生最终完整的图像。这一过程可以视作用于取得特征值的预定义卷积核。因此作者受此启发。给出公式:F(Y)=W_3*F_2(Y)+B_3

W_3(n_2*f_2*f_2*c)

B_3((F2_H_/_W-f_3+1)*(F2_H_/_W-f_3+1)*c) c为channel数。

本文网络架构

传统方法架构


四、损失函数

有关参数\theta =\left \{ W_1,W_2,W_3,B_1,B_2,B_3 \right \},重建图像F(Y;\theta ),基准图像X_i和其对应图像(low-resolution)Y_i。论文使用均方差MSE(Mean Square Error)作为损失函数:L(\theta )=\frac{1}{n}\sum_{i=1}^{n}\left \| F(Y_i;\theta )-X_i \right \|^2


五、实验细节

数据集:起初用了91张图片用作训练集,*

对比:the SC (sparse coding) method of Yang et al.

the K-SVD-based method,NE+LLE (neighbour embedding + locally linear embedding),

NE+NNLS (neighbour embedding + non-negative least squares),

the ANR (Anchored Neighbourhood Regression) method。

步骤细节:f1 = 9, f3 = 5, n1 = 64  and n2 = 32

训练集图片随机裁剪32X32的图像作为X_iY_i通过对X_i添加高斯噪声,再双立方插值得到。最后91张图片大概提供给了24800张子图。采用14步长从原图裁剪。训练(800,000,000次反向传播)大概三天,GPU为GTX770。

为了和ANR比较,就只对YCrBr空间的流明通道(luminance channel)训练了。另外两个通道进行双立方插值只为了显示图片,不用于训练/测试。但论文的方法是可以直接用于RGB三通道训练的。

为了避免边缘效应,训练中所有卷积层都是不 padding 的。神经网络最终输出20X20的output,而损失函数计算的是X_i中心的20X20部分与output的惩罚。在测试时为了能够适应任意尺寸的图片,每层都用padding,为了解决边缘效应,每层输出之前的像素值需要被归一化(用图像最大表示的像素值,取决于图像位深)。

权值初始化用标准差为0.001的正态分布,偏差为0。前两层学习率为10^-4,最后一层为10^-5

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值