基于深度学习的图像超分辨率重建
最近开展图像( Image Super Resolution)⽅⾯的研究,做了⼀些列的调研,并结合本⼈的理解总结成本博⽂~(本博⽂仅⽤于本⼈的学习笔记,不做商业⽤途)
⽬录
超分辨率(Super Resolution,SR)
超分辨率是计算机视觉的⼀个经典应⽤。SR是指通过软件或硬件的⽅法,从观测到的低分辨率图像出相应的⾼分辨率图像(说⽩了就是提⾼分辨率),在监控设备、卫星图像遥感、数字⾼清、显微成像、视频编码通信、视频复原和医学影像等领域都有重要的应⽤价值。
超分分为以下两种:
Image SR。只参考当前低分辨率图像,不依赖其他相关图像的超分辨率技术,称之为单幅图像的超分辨率(single image super resolution,SISR)。
Video SR。参考多幅图像或多个视频帧的超分辨率技术,称之为多帧视频/多图的超分辨率(multi-frame super resolution)。对于video SR,其核⼼思想就是⽤时间带宽换取空间分辨率。简单来讲,就是在⽆
法得到⼀张超⾼分辨率的图像时,可以多取相邻⼏帧,然后将这⼀系列低分辨率的图像组成⼀张⾼分辨的图像。
⼀般来讲Video SR相⽐于Image SR具有更多的可参考信息,并具有更好的⾼分辨率视频图像的重建质量,但是其更⾼的计算复杂度也限制了其应⽤。本博⽂主要介绍SISR。SISR是⼀个逆问题,对于⼀个低分辨率图像,可能存在许多不同的⾼分辨率图像与之对应,因此通常在求解⾼分辨率图像时会加⼀个先验信息进⾏规范化约束。在传统的⽅法中,这个先验信息可以通过若⼲成对出现的低-⾼分辨率图像的实例中学到。⽽基于深度学习的SR通过神经⽹络直接学习分辨率图像到⾼分辨率图像的端到端的映射函数。
传统的图像超分辨率重建技术简介
issi基于的图像超分
通过某个点周围若⼲个已知点的值,以及周围点和此点的位置关系,根据⼀定的公式,算出此点的值,就是插值法。对于如何把原图像的点摆放在新图中并确定具体坐标;未知的点计算时,需要周围多少个点参与,公式如何,如何计算,不同的⽅案选择,就是不同的插值算法。图像处理中,常⽤的插值算法有:最邻近元法,双线性内插法,三次内插法等等。
例如:现有⼀张分辨率为3 x 2的图⽚,原图每个像素点的亮度值是:
我们要把它变成分辨率为6 x 4的图⽚,把这6个已经知道的点,放在他们⼤概应该在新图的位置:
boobies
那么我们已经知道6 x 4新图中6个已知的点(绿⾊),下⾯只需要求剩余18个点(蓝⾊)的值即可。通过某个点周围若⼲个已知点的值,以及周围点和此点的位置关系,根据⼀定的公式,算出此点的值,
就是插值法。如何把原图像的点摆放在新图中(确定具体坐标);未知的点计算时,需要周围多少个点参与,公式如何。不同的⽅案选择,就是不同的插值算法。图像处理中,常⽤的插值算法有:最邻近元法,双线性内插法,三次内插法等等。但是实际上,通过这些插值算法,提升的图像细节有限,所以使⽤较少。通常,通过多幅图像之间的插值算法来重建是⼀个⼿段。另外,在视频超分辨重建中,通过在两个相邻帧间插值添加新帧的⼿段,可以提升视频帧率,减少画⾯顿挫感。
基于重建的图像超分辨率
基于重建的⽅法通常都是基于多帧图像的,需要结合先验知识。有如下⽅法:
凸集投影法(POCS)
贝叶斯分析⽅法
迭代反投影法(IBP)
最⼤后验概率⽅法
正规化法
混合⽅法
基于学习的图像超分辨率
机器学习领域(⾮深度学习邻域)的图像超分⽅法如下:
Example-bad⽅法
邻域嵌⼊⽅法
⽀持向量回归⽅法
simimi虚幻脸
稀疏表⽰法
基于深度学习的图像超分辨率重建技术
基于深度学习的图像超分辨率重建的研究流程如下:
1,⾸先找到⼀组原始图像Image1;
2,然后将这组图⽚降低分辨率为⼀组图像Image2;
环球雅思口语
3,通过各种神经⽹络结构,将Image2超分辨率重建为Image3(Image3和Image1分辨率⼀样)
4,通过PSNR等⽅法⽐较Image1与Image3,验证超分辨率重建的效果,根据效果调节神经⽹络中的节点模型和参数
5,反复执⾏,直到第四步⽐较的结果满意
两种常⽤的评价超分的指标——PSNR和SSIM
fork怎么读对SR的质量进⾏定量评价常⽤的两个指标是PSNR(Peak Signal-to-Noi Ratio)和SSIM(Structure Similarity Index)。这两个值越⾼代表重建结果的像素值和标准越接近。
1、PSNR(Peak Signal to Noi Ratio)峰值信噪⽐:
意思
MSE表⽰当前图像X和参考图像Y的均⽅误差(Mean Square Error),H、W分别为图像的⾼度和宽度tast是什么意思
PSNR的单位是db,数值越⼤表⽰失真越⼩。n为每像素的⽐特数,⼀般的灰度图像取8,即像素灰阶
数为256.
SRCNN(Super-Resolution Convolutional Neural Network)
(, ECCV2014)
传统的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。
SRCNN的流程为:
step1:图像块提取(Patch extraction and reprentation)。先将低分辨率图像使⽤双三次(实际上,bicubic也是⼀个卷积的操作,可以通过卷积神经⽹络实现)插值放⼤⾄⽬标尺⼨(如放⼤⾄2倍、3倍、4倍,属于预处理阶段),此时仍然称放⼤⾄⽬标尺⼨后的图像为低分辨率图像(Low-resolution image),即图中的输⼊(input)。从低分辨率输⼊图像中提取图像块,组成⾼维的特征图。
其中,W1和B1为超参。激活函数采样ReLu
step2:⾮线性映射(Non-linear mapping)。第⼀层卷积:卷积核尺⼨9×9(f1×f1),卷积核数⽬64(n1),输出64张特征图;第⼆层卷积:卷积核尺⼨1×1(f2×f2),卷积核数⽬32(n2),输出32张特征图;这个过程实现两个⾼维特征向量的⾮线性映射;
W2为n1*1*1*n2。采⽤了1*1卷积(single convolutional layer,⽬的应该是压缩feature map的深度,同时也起到⾮线性映射的作⽤)。
cler
step3:重建(Reconstruction)。第三层卷积:卷积核尺⼨5×5(f3×f3),卷积核数⽬1(n3),输出1张特征图即为最终重建⾼分辨率图像;
模型参数结构如下:
第⼀层卷积:卷积核尺⼨9×9(f1×f1),卷积核数⽬64(n1),输出64张特征图;
第⼆层卷积:卷积核尺⼨1×1(f2×f2),卷积核数⽬32(n2),输出32张特征图;
虚拟语气讲解第三层卷积:卷积核尺⼨5×5(f3×f3),卷积核数⽬1(n3),输出1张特征图即为最终重建⾼分辨率图像。英文影评
LOSS function(Mean Squared Error (MSE))。估计超参。为重构的结果,为ground truth。Using MSE as the loss function favors a high PSNR.
下⾯是SRCNN与传统算法得结果对⽐