首先介绍下亚像素的概念:
面阵摄像机的成像面以像素为最小单位。在相机成像的过程中,获得的图像数据是将图像进行了离散化处理。例如两个感官元件上的像素之间有4.5um的间距,宏观上它们是连在一起的,微观上它们之间还有无数更小的东西存在,这个更小的东西就称之为“亚像素”。实际上,亚像素应该是存在的,只是缺少更细微的传感器把它检测出来,只能通过软件将起近似计算出来。
如下图所示,每四个红色点围成的矩形区域为实际原件上的像素点,黑色点为亚像素点:
根据相邻两像素之间插值情况的不同,可以调整亚像素的精度,例如四分之一,就是将每个像素从横向和纵向上当做四个像素点。也就是上面图里的红色点之间有三个黑色点。这样通过亚像素插值的方法可以实现从小矩形到大矩形的映射,从而提高分辨率。
ESPCN网络结构图:
如图所示,此网络的关键在于Sub-pixel convoluntion layer(亚像素卷积层)。在原文中,作者将网络模型定义为3层,前两层为普通卷积,最后的亚像素卷积层则包括两个部分,卷积+像素排列。
即通过三个卷积层,得到与输入图像尺寸一致、通道数为
class
ESPCN
(
nn
.
Module
)
:
def
__init__
(
self
,
inputChannel
=
1
,
outputChannel
=
1
,
upscaleFactor
=
2
)
:
super
(
ESPCN
,
self
)
.
__init__
(
)
self
.
conv
=
nn
.
Sequential
(
nn
.
Conv2d
(
inputChannel
,
64
,
kernel_size
=
5
,
padding
=
5
//
2
)
,
nn
.
Tanh
(
)
,
nn
.
Conv2d
(
64
,
32
,
kernel_size
=
3
,
padding
=
3
//
2
)
,
nn
.
Tanh
(
)
,
nn
.
Conv2d
(
32
,
upscaleFactor
**
2
,
kernel_size
=
3
,
padding
=
3
//
2
)
,
nn
.
PixelShuffle
(
upscaleFactor
)
def
forward
(
self
,
x
)
:
out
=
self
.
conv
(
x
)
return
out
net
=
ESPCN
(
)
a
=
torch
.
randn
(
1
,
1
,
6
,
6
)
print
(
net
(
a
)
.
shape
)
https://zhuanlan.zhihu.com/p/31664818
https://arxiv.org/abs/1609.05158
https://blog.csdn.net/xu_fu_yong/article/details/96967977
cvpr2016
论文下载:Real-Time Single Image and Video Super-Resolution Using an Efficient Sub-Pixel Convolutional Neural Network
代码:https://github.com/leftthomas/
ESPCN
ESPCN
的核心概念是亚像素卷积层(sub-pixel convolutional layer)。网络的输入是原始低分辨率图像,通过三个卷积层以后,得到通道数为放大倍数**2的与输
从给定的低分辨率(LR)图像中恢复高分辨率(HR)图像的过程,是计算机视觉的一个经典应用。SR是指通过软件或硬件的方法,从观测到的低分辨率图像重建出相应的高分辨率图像,在监控设备、卫星图像遥感、数字高清、显微成像、视频编码通信、视频复原和医学影像等领域都有重要的应用价值。SR基本原理:本实验所用方法:
ESPCN
ESPCN
的核心思想是通过深度卷积
神经网络
学习到一个映射函数,该函数将低分辨率图像的特征转换为高分辨率图像的特征。
ESPCN
是一种高效率的图像超分辨率方法,能够在低分辨率图像上直接计算卷积得到高分辨率图像。相比于传统的图像超分辨率方法,
ESPCN
具有计算量和时间成本上的优势,同时也可以适用于各种类型的低分辨率图像和不同的超分辨率应用场景。因此,
ESPCN
在数字图像识别、遥感图像分析、医学图像诊断等领域具有广泛的应用前景。
这篇文章推出了一种具有亚像素卷积层结构的SR算法——
ESPCN
;相比于SRCNN直接对HRHRHR领域像素做卷积,
ESPCN
是直接对输入LRLRLR像素做特征提取,在当时来说,可以算是一种提高计算效率的有效途径。
参考文档:
Real-Time Single Image and Video Super-Resolution Using an Efficient Sub-Pixel Convolutional Neural NetworkAbstract1 Introduction2 Method2.1.
提出了一种新的上采样方式,对于SR(super-resolution) 任务的计算速度和重建效果都有不错的提升。文章推出了一种在以往算法(SRCNN、Bicubic)上对于重建表现力以及计算效率(重建速度、计算资源损耗)都有一定提升的SR算法——
ESPCN
。SRCNN先对输入图像做Bicubic插值,然后进行特征提取,这种方式相当于直接在HR层面做超分,作者证明这种方式是一种次优策略且会带来计算复杂度的提升。这是一种直接对输入LR图像做特征提取。在网络中引入了一种亚像素卷积层。
Real-Time Single Image and Video Super-Resolution Using an Efficient
Sub-Pixel Convolutional Neural Network一级目录二级目录三级目录
Sub-Pixel Convolutional Neural Network)
https://arxiv.org/pdf/1609.05158.pdf
基于TensorFlow的代码下载:https://github.com/drakelevy/
ESPCN
-TensorFlowhttps://文章链接:(Real-Time Single Image and Video Super-Resolution Using an Efficient Sub-Pixel Convolutional Neural Network, CVPR2016)环境配置:...
在本文中,我们比较了两种深度学习模型:SRCNN 和
ESPCN
,在 DIV2K 数据集上进行图像超分辨率任务。我们首先介绍了这两个模型,然后使用 Python 编写了代码来实现它们。最后,我们使用 PSNR 和 SSIM 指标来评估模型的性能。通过这个实验,您可以了解这两种模型在图像超分辨率任务上的优缺点,并为您的项目选择合适的模型。
《Real-Time Single Image and Video Super-Resolution Using an Efficient Sub-Pixel Convolutional Neural Network》是Wenzhe Shi等人于2016年提出的一种新的SR重建方法,发表于CVPR,在单图像和视频超分辨率上再次表现出了更加良好的速度与性能。
最近闲着无聊在家学习一些基本的CNN模型,这里做一个简要的总结,供自己学习使用。
一、VGG
VGG模型是2014年ILSVRC竞赛的第二名,第一名是GoogLeNet。但是VGG模型在多个迁移学习任务中的表现要优于googLeNet。而且,从图像中提取CNN特征,VGG模型是首选算法。它的缺点在于,参数量有140M之多,需要更大的存储空间。但是这个模型很有研究价值。
VGG有多种网络结...
ESPCN
在Tensorflow-gpu上实现
环境:Windows10 + CUDA10.0 + cudnn7.5.1 + python3.5 + tensorflow-gpu1.13.1
参考:深度学习超分辨率重建(三): TensorFlow——
ESPCN
下载:https://github.com/drakelevy/
ESPCN
-TensorFlow
1、在训练每个新模型之...