承接
超分辨率重构之SRCNN整理总结(三)
的超分重建结果指标之后,本篇解读了
基于神经网络的超分重建最简单的网络结构SRCNN
,并随后follow了一些dalao的tensorflow版本的网络结构经代码改些许动用GPU训练模型且测试成功。
SRCNN
(Super-Resolution Convolutional Neural Network)
论文下载:(
Learning a Deep Convolutional Network for Image Super-Resolution
, ECCV2014)
code:
http://mmlab.ie.cuhk.edu.hk/projects/SRCNN.html
(matlab)
传统的SR方法都是学习compact dictionary or manifold space to relate low/high-resolution patches。
SRCNN是深度学习在图像超分辨率重建上的开山之作,通过采用卷积神经网络来实现低分辨率到高分辨率图像之间端到端的映射。
对于一个低分辨率的图像,首先采用双三次插值(bicubic)将低分辨率图像放大成目标尺寸,接着通过三层卷积网络拟合非线性映射,最后输出高分辨率图像结果。在论文中,作者将三层卷积的结构解释成三个步骤:
-
图像块的提取和特征表示
-
特征非线性映射
-
图像最终的重建
三个卷积层使用的卷积核的大小分为为9x9,,1x1和5x5,前两个的输出特征个数分别为64和32。用Timofte数据集(包含91幅图像)和ImageNet大数据集进行训练。使用均方误差(Mean Squared Error, MSE)作为损失函数,以便获得较高的PSNR。
1.图像块提取(Patch extraction and representation)
先将低分辨率图像使用双三次(实际上,bicubic也是一个卷积的操作,可以通过卷积神经网络实现)插值放大至目标尺寸(如放大至2倍、3倍、4倍,属于预处理阶段),此时仍然称放大至目标尺寸后的图像为低分辨率图像(Low-resolution image),即图中的输入(input)。从低分辨率输入图像中提取图像块,组成高维的特征图。
其中,
和
为超参。激活函数采样ReLu
2.非线性映射(Non-linear mapping)
第一层卷积:卷积核尺寸9×9(f1×f1),卷积核数目64(n1),输出64张特征图;
第二层卷积:卷积核尺寸1×1(f2×f2),卷积核数目32(n2),输出32张特征图;
这个过程实现两个高维特征向量的非线性映射;
W2为n1*1*1*n2。采用了1*1卷积,目的应该是压缩feature map的深度,同时也起到非线性映射的作用。
3.重建(Reconstruction)
第三层卷积:卷积核尺寸5×5(f3×f3),卷积核数目1(n3),输出1张特征图即为最终重建高分辨率图像;
-
【6】损失函数Loss Function(Mean Squared Error (MSE))
即n张重构的结果与真实图像的均方误差MSE,估计超参
。
为重构的结果,
为ground truth。Using MSE as the loss function favors a high PSNR.
承接超分辨率重构之SRCNN整理总结(三)的超分重建结果指标之后,本篇解读了基于神经网络的超分重建最简单的网络结构SRCNN,并随后follow了一些dalao的tensorflow版本的网络结构经代码改些许动用GPU训练模型且测试成功。SRCNN(Super-Resolution Convolutional Neural Network)论文下载:(Learning ...
SRC
NN
训练流程分析:https://download.csdn.net/download/baixue0729/12451414
main.py
from model import
SRC
NN
from utils import input_setup
import numpy as np
import tensorflow as tf
import pprint
import os
定义训练和测试
参
数
(包括:如果采用SGD时的batchSize、学习率、步长stride、训练还是测试模
tensorflow 使用flags定义命令行
参
数:
tf定义了tf.app.flags,用于支持接受命令行传递
参
数,相当于接受argv。eg: tf.app.flags.DEFINE_string('str_name', 'def_v_1',"descrip1")#第一个是
参
数名称,第二个
参
数是默认值,第三个是
参
数描述
针对序列图像
超分辨率重建
非局部均值(non-local means,NLM)算法重建结果图像边缘区域过平滑的问题,提出了一种局部
参
数自适应改进方法。将整幅图像划分为图像子块,然后根据图像子块平均像素信息计算出其对应的滤波
参
数,这样有助于减少因整幅图像使用统一滤波
参
数而导致的某些高频信息的丢失。实验结果表明,与经典NLM
重构
算法相比,改进算法重建出的结果图像的轮廓边缘更清晰,字符辨识度更高;在算法实现方面,图像
重构
程序在CPU/GPU平台上实现,使用GPU并行化加速的程序比单CPU运算的程序,加速比最高可达到30倍,显著缩短了
重构
程序计算时间,提高了该图像
超分辨率重建
算法应用于实际场所的可能性。
这篇文章是2014年的一篇论文,其主要意义在于作者推出的
SRC
NN
是深度学习在超分上开篇之作!
SRC
NN
证明了深度学习在超分领域的应用可以超越传统的插值等办法取得较高的表现力。
参
考目录:
①深度学习图像
超分辨率
开山之作
SRC
NN
(一)原理分析
②深度学习端到端
超分辨率
方法发展历程
SRC
NN
1
SRC
NN
简介2
SRC
NN
模型结构3 Loss function:4 实验4.1 setup4.2 实验结果4.2.1 performance4.2.2 runtime5 进一步研究5.1 滤波器学习情况5.2.
1. introduction
考虑了一个卷积神经网络,它可以直接学习低分辨率和高分辨率图像之间的端到端映射。我们的方法与现有的基于外部实例的外部方法有根本的不同,因为我们的方法没有明确地学习字典[41]、[49]、[50]或流形[2]、[4]。这些都是通过隐藏层隐式地实现的。此外,斑块的提取和聚合也被表示为卷积层,因此也
参
与了优化。在我们的方法中,整个
SR
管道完全通过学习获得,很少进行预/后处理。
所提出的模型被命名为
超分辨率
卷积神经网络(
SRC
NN
)1。所提出的
SRC
NN
有几个吸引人的特性。首先,它的结
本文提供了与
SRC
NN
论文的
总结
和回顾,如果你对于图像的
超分辨率
感兴趣,一定要先阅读这篇论文,他可以说是所有基于深度学习的
超分辨率
模型的鼻祖
卷积神经网络通常用于分类,目标检测,图像分割等与某些与图像有关的问题中。在本文中,将介绍C
NN
如何用于单图像
超分辨率
(SI
SR
)。这有助于解决与计算机视觉相关的各种其他问题。在C
NN
出现之前,传统的方法是使用最近邻插值、双线性或双三次插值等上采样方法,也可以取得不错的效果。
Nearest Neighbors Interpolation — 最近邻插值是一种简单明