目录
Patch extraction and representation
一、eccv 2014 deepresulotion
2014年 eccv的一篇超分辨率图像重建的论文Learning a Deep Convolutional Network for Image Super-Resolution。
毕业论文有想用到就开始了这篇论文的研读和复现。
二、内容
-
摘要Abstract: 采用端到端的学习方法,直接学习低分辨率与高分辨率的图片的映射关系,网络架构采用了CNN,仅仅用了三层卷积层,所以所含权值参数比较少,并且转换速度亦不俗。
- 作者简要给出了Bicubic(双立方插值),SC(sparse-coding-based method)和SRCNN的重建PSNR和效果对比。
Related work 就在此略,。都是些引用论文和别的论文成果对比。
三、数据处理
论文中提到SC方法,貌似这个方法各部分都是独立的,还要有些数据预处理。论文所涉及的图片预处理仅有一项,长话短说就是取得额定大小的图片,对其使用双立方插值(Bicubic interpolation),得到低分辨率的图片,将高分辨率图片作为基准(ground truth),输入网络得到处理过后的图片。需要注意的是和虽然有相同的大小,但仍被称为低分辨率图片。其实很好理解,插值就是猜像素,虽然一样大,但是分辨率会下降(模糊)。映射可以被抽象成一下三个步骤:
- Patch extraction and representation(块抽取&&视作):实际就是卷积提取特征值,将这些特征值视作高维向量,向量维度和特征值的维度一致
- Non-linear mapping(非线性映射):上面的高维向量通过映射得另外的高维向量,每组映射的向量都是高分辨率块的抽象表现。这些向量又是一组特征值
- Reconstruction:(重建):用上面所得到向量生成近可能接近所期望能接近原图的图像。
Patch extraction and representation
论文给出了第一层卷积的表达式:。这里是卷积核,是偏差(Bias)。
() 从左至右依次是通道数、尺寸、尺寸、核数。
是维的向量。
最后用Relu激活函数,输出维度。
Non-linear mapping
同样给出公式:。
()
()
Reconstruction
传统方法是预测邻近的patch重叠的部分,将其平均化产生最终完整的图像。这一过程可以视作用于取得特征值的预定义卷积核。因此作者受此启发。给出公式:。
()
() c为channel数。
本文网络架构
传统方法架构
四、损失函数
有关参数,重建图像,基准图像和其对应图像(low-resolution)。论文使用均方差MSE(Mean Square Error)作为损失函数:
五、实验细节
数据集:起初用了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的图像作为,通过对添加高斯噪声,再双立方插值得到。最后91张图片大概提供给了24800张子图。采用14步长从原图裁剪。训练(800,000,000次反向传播)大概三天,GPU为GTX770。
为了和ANR比较,就只对YCrBr空间的流明通道(luminance channel)训练了。另外两个通道进行双立方插值只为了显示图片,不用于训练/测试。但论文的方法是可以直接用于RGB三通道训练的。
为了避免边缘效应,训练中所有卷积层都是不 padding 的。神经网络最终输出20X20的output,而损失函数计算的是中心的20X20部分与output的惩罚。在测试时为了能够适应任意尺寸的图片,每层都用padding,为了解决边缘效应,每层输出之前的像素值需要被归一化(用图像最大表示的像素值,取决于图像位深)。
权值初始化用标准差为0.001的正态分布,偏差为0。前两层学习率为,最后一层为。