-
超分辨率重建
2018-09-26 16:20:44单帧图像超分辨率重建方法:根据相识性将训练样本块分成若干个子集合,使用低秩矩阵恢复方法想也每个字集合的潜在机构,在联合学习方法同时训练储量个投影矩阵,将原来高低分辨率图像块特征的低秩分量映射到统一空间... -
图像超分辨率重建( 适合初学超分辨率重建使用 图像超分辨率 SR工具箱)
2020-05-10 22:18:37图像超分辨率重建( 适合初学超分辨率重建使用 图像超分辨率 SR工具箱) -
超分辨率重建算法
2018-01-25 09:33:24超分辨率重建算法 超分辨率重建算法 超分辨率重建算法 超分辨率重建算法 -
灰度图超分辨率重建
2020-07-13 04:34:04超分辨率重建的开山之作close all; clear all; %% 读取真实图像 im = imread('Set5\butterfly_GT.bmp'); %im = imread('Set14\zebra.bmp'); %% 设定参数 up_scale = 3; model = 'model\x3.mat'; % up_scale = 2; % model = 'model\x2.mat'; % up_scale = 4; % model = 'model\x4.mat'; %% 仅在照度方面工作 if size(im,3)>1 im = rgb2ycbcr(im); im = im(:, :, 1); end im_gnd = modcrop(im, up_scale); im_gnd = double(im_gnd)/255;%single 这里换成double Matlab 7.0就可以运行了 %% 双三次插值 im_l = imresize(im_gnd, 1/up_scale, 'bicubic'); %缩小 im_b = imresize(im_l, up_scale, 'bicubic');%再放大 %% SRCNN im_h = SRCNN(model, im_b); %% 删除边框 im_h = shave(uint8(im_h * 255), [up_scale, up_scale]); im_gnd = shave(uint8(im_gnd * 255), [up_scale, up_scale]); im_b = shave(uint8(im_b * 255), [up_scale, up_scale]); %% 计算 PSNR psnr_bic = compute_psnr(im_gnd,im_b); psnr_srcnn = compute_psnr(im_gnd,im_h); %% 显示结果 fprintf('双三次插值的峰值信噪比: %f dB\n', psnr_bic); fprintf('SRCNN 重建的峰值信噪比: %f dB\n', psnr_srcnn); figure, imshow(im_b); title('双三次插值'); figure, imshow(im_h); title('SRCNN 重建'); imwrite(im_b, ['双三次插值' '.bmp']); imwrite(im_h, ['SRCNN 重建' '.bmp']);
-
图像超分辨率重建之SRCNN
2018-02-28 16:33:46图像超分辨率重建:指通过低分辨率图像或图像序列恢复出高分辨率图像。高分辨率图像意味着图像具有更多的细节信息、更细腻的画质,,这些细节在高清电视、医学成像、遥感卫星成像等领域有着重要的应用价值。 Super-...新版本请访问简书链接:https://www.jianshu.com/p/dfe85a3c2096
图像超分辨率重建:指通过低分辨率图像或图像序列恢复出高分辨率图像。高分辨率图像意味着图像具有更多的细节信息、更细腻的画质,,这些细节在高清电视、医学成像、遥感卫星成像等领域有着重要的应用价值。
Super-Resolution Convolutional Neural Network:本篇文章讲述的是深度学习在图像超分辨率重建问题的开山之作SRCNN(Super-Resolution Convolutional Neural Network)。香港中文大学Dong等将卷积神经网络应用于单张图像超分辨率重建上(Image Super-Resolution Using Deep Convolutional Networks, 论文与代码: http://mmlab.ie.cuhk.edu.hk/projects/SRCNN.html)。
可参考代码(非官方;Tensorflow版本):https://www.jianshu.com/p/dfe85a3c2096
code: code
图1 SRCNN算法框架
图1为SRCNN算法的框架,SRCNN将深度学习与传统稀疏编码之间的关系作为依据,将3层网络划分为图像块提取(Patch extraction and representation)、非线性映射(Non-linear mapping)以及最终的重建(Reconstruction)。
SRCNN的流程为:
(1)先将低分辨率图像使用双三次差值放大至目标尺寸(如放大至2倍、3倍、4倍),此时仍然称放大至目标尺寸后的图像为低分辨率图像(Low-resolution image),即图中的输入(input);
(2)将低分辨率图像输入三层卷积神经网络,(举例:在论文中的其中一实验相关设置,对YCrCb颜色空间中的Y通道进行重建,网络形式为(conv1+relu1)—(conv2+relu2)—(conv3))第一层卷积:卷积核尺寸9×9(f1×f1),卷积核数目64(n1),输出64张特征图;第二层卷积:卷积核尺寸1×1(f2×f2),卷积核数目32(n2),输出32张特征图;第三层卷积:卷积核尺寸5×5(f3×f3),卷积核数目1(n3),输出1张特征图即为最终重建高分辨率图像。
如何训练?
(1)训练数据集:论文中某一实验采用91张自然图像作为训练数据集,对训练集中的图像先使用双三次差值缩小到低分辨率尺寸,再将其放大到目标放大尺寸,最后切割成诸多33×33图像块作为训练数据,作为标签数据的则为图像中心的21×21图像块(与卷积层细节设置相关);
(2)损失函数:采用MSE函数作为卷积神经网络损失函数;
(3)卷积层细节设置:第一层卷积核9×9,得到特征图尺寸为(33-9)/1+1=25,第二层卷积核1×1,得到特征图尺寸不变,第三层卷积核5×5,得到特征图尺寸为(25-5)/1+1=21。训练时得到的尺寸为21×21,因此图像中心的21×21图像块作为标签数据。(卷积训练时不进行padding)
如何测试?
(1)全卷积网络:所用网络为全卷积网络,因此作为实际测试时,直接输入完整图像即可;
(2)Padding:训练时得到的实际上是除去四周(33-21)/2=6像素外的图像,若直接采用训练时的设置(无padding),得到的图像最后会减少四周各6像素(如插值放大后输入512×512,输出500×500)。因此在测试时每一层卷积都进行了padding(卷积核尺寸为1×1的不需要进行padding)。这样保证插值放大后输入与输出尺寸的一致性。
(使用Tensorflow进行复现时,图像预处理时将像素点取值归一化至[0,1],测试时,得到的最后一层特征图即重建结果直接乘以255再使用uint8转换时为0-255取值时会出现一些问题,如左下图2中方框所示,因此在乘以255前,将负值设置为0,大于255的设置为255,再使用uint转换即可解 决)
图2 不对负值及大于1的值进行处理的结果图 图3 对负值及大于1的值进行处理的结果图
(详细的padding方式等,可以查看链接中的代码)
重建结果?
(1)客观评价指标PSNR与SSIM:相比其他传统方法,SRCNN取得更好的重建效果。
(2)主观效果:相比其他传统方法,SRCNN重建效果更具优势。
-
单帧图像超分辨率重建
2021-02-03 02:00:28本代码实现了单帧超分辨率重建,效果比传统的样条插值好很多,关于本代码的IEEE文献后期再上传 本代码实现了单帧超分辨率重建,效果比传统的样条插值好很多,关于本代码的IEEE文献后期再上传 -
红外图像超分辨率重建.zip
2020-09-14 10:48:05重建过程包括三个部分:图像配准、非均匀性内插及去模糊与去噪。图像配准精度越高,超分辨率重建效果越好,而图像分辨率越高,则图像配准精度越高,并以此为基础提出了一种联合图像配准的超分辨率重建算法 -
图像超分辨率重构开题报告_图像超分辨率重建
2021-01-09 14:07:09首先介绍图像超分辨率重建技术,图像超分辨率重建技术分为两种,一种是从多张低分辨率图像合成一张高分辨率图像,另外一种是从单张低分辨率图像获取高分辨率图像,在本专栏中,我们使用单幅图像超分辨率重建技术...首先介绍图像超分辨率重建技术,图像超分辨率重建技术分为两种,一种是从多张低分辨率图像合成一张高分辨率图像,另外一种是从单张低分辨率图像获取高分辨率图像,在本专栏中,我们使用单幅图像超分辨率重建技术(SISR)。
在这些方法中,可以分为三类,基于插值,基于重建,基于学习。基于插值的方法实现简单,已经广泛应用,但是这些线性的模型限制住了它们恢复高频能力的细节。基于稀疏表示的技术[1]通过使用先验知识增强了线性模型的能力。这类技术假设任意的自然图像可以被字典的元素稀疏表示,这种字典可以形成一个数据库且从数据库中学习到低分辨率图像到高分辨率图像的映射,但是这类方法计算复杂,需要大量计算资源。
基于CNN(卷积神经网络)的模型SRCNN[2]首先将CNN引入SISR中,它仅仅使用三层网络,就取得了先进的结果。随后,各种基于深度学习的模型,进入SISR领域,大致分为以下两个大的方向。一种是追求细节的恢复,以PSNR,SSIM等评价标准的算法,其中以SRCNN模型为代表。另外一种以降低感知损失为目标,不注重细节,看重大局观,以SRGAN[3]为代表的一系列算法。两种不同方向的算法,应用的领域也不相同。在医学图像领域,医生需要图像的细节,以致于做出精确的判断,而不是追求图像整体的清晰,因此,本专栏中将研究追求细节恢复的算法,以及在医学上的应用。
追求细节恢复的算法,也分为两个流派,一是使用插值作为预处理的算法,二是不使用插值,将上采样过程融入网络中的算法。
1,使用插值作为预处理的算法
SRCNN模型[2]作为深度学习引入SISR的开山制作,使用了双三次插值作为预处理过程。
随后,VDSR模型[4]将残差结构引入到SISR,不直接学习低分辨率图像和高分辨率图像的映射,而学习两种图像的残差。残差结构的引入模型训练的收敛速度,且将更深的网络结构引入SISR,使得模型具有更宽广的感受野,模型的结构如图1。
图一 DRCN模型[5]将递归结构引入SISR,同时将模型分为三个区域,如图2所示,一是Embedding network,二是Inference network,三是Reconstruction network。这种模型的亮点在于中间的Inference network,r,和损失函数。inference共享了一个卷积的参数,一共有D层,将每一层的输出汇到了一起,然后定义了两种损失。第一种,局部损失,每一层输出的值与HR的差。第二种,所有层输出的加权平均与HR的差,组合这两种损失,构成整体损失。
图二 2,在网络种使用上采用技术替代插值
FSRCNN模型[6]通过使用反卷积替代了SRCNN模型中的插值,直接学习低分辨率图像到高分辨率图像的映射,实现了端到端的训练。
ESPCN模型[7] ESPCN的核心概念是亚像素卷积层(sub-pixel convolutional layer)。网络的输入是原始低分辨率图像,通过三个卷积层以后,得到通道数为 的与输入图像大小一样的特征图像。再将特征图像每个像素个通道重新排列成一个 r*r 的区域,对应高分辨率图像中一个 H*W*r^2 大小的子块,从而大小为 H*W*r^2 的特征图像被重新排列成 rH*rW*1 的高分辨率图像,如图3
图三 ESPCN模型提出的亚像素卷积层在之后的研究种广泛运用,它相比FSRCNN模型种的反卷积层,更能学习到低分辨率到高分辨率图像的上采用种的非线性。
SRDenseNet模型[8]将DenseNet引入SISR领域,DenseNet在稠密块(dense block)中将每一层的特征都输入给之后的所有层,使所有层的特征都串联(concatenate)起来,而不是像ResNet那样直接相加。这样的结构给整个网络带来了减轻梯度消失问题、加强特征传播、支持特征复用、减少参数数量的优点。如图4
图四 综上,最近几年超分辨率重建的研究,通过越来越深的结构,使最后几层拥有更大的感受野,去推断目标区域的像素,而要在很深的网络种实现训练,必须引入反馈机制,才能避免梯度消失,反馈机制包括残差、densenet块、递归等方法。
本专栏将逐步细讲超分辨率重建paper,和keras代码实现。
主要参考文献
[1] J. Yang, J. Wright, T. Huang, and Y. Ma. Image superresolution as sparse representation of raw image
[2] C. Dong, C. C. Loy, K. He, and X. Tang. Image super-resolution using deep convolutional networks. IEEE
transactions on pattern analysis and machine intelligence,38(2):295–307, 2016.
[3] Ledig C , Theis L , Huszar F , et al. Photo-Realistic Single Image Super-Resolution Using a Generative Adversarial Network[J]. 2016.
[4] J. Kim, J. Kwon Lee, and K. Mu Lee. Accurate image superresolutionusing very deep convolutional networks. In IEEE Conference on Computer Vision and Pattern Recognition,pages 1646–1654, 2016.
[5] J. Kim, J. Kwon Lee, and K. Mu Lee. Deeply-recursive convolutionalnetwork for image super-resolution. In IEEE Con-ference on Computer Vision and Pattern Recognition, pages1637–1645, 2016.
[6] Dong C , Loy C C , Tang X . Accelerating the Super-Resolution Convolutional Neural Network[J]. 2016.
[7] Shi W , Caballero J , Ferenc Huszár, et al. Real-Time Single Image and Video Super-Resolution Using an Efficient Sub-Pixel Convolutional Neural Network[C]// CVPR 2016. IEEE, 2016.
[8] Tong T , Li G , Liu X , et al. Image Super-Resolution Using Dense Skip Connections[C] 2017 IEEE International Conference on Computer Vision (ICCV). IEEE Computer Society, 2017.
-
图像超分辨率重建
2016-10-17 14:14:39图像超分辨率重建 图像超分辨率重建 实现方法图像超分辨率重建 摘自网络概念:图像超分辨率重建是指利用同一场景的不同观测角度,不同观测时间或者不同传感器获取的低分辨率图像序列重建出一副或者多副高空间分辨率...图像超分辨率重建
- 图像超分辨率重建
- 实现方法
- 图像超分辨率重建
摘自网络概念:图像超分辨率重建是指利用同一场景的不同观测角度,不同观测时间或者不同传感器获取的低分辨率图像序列重建出一副或者多副高空间分辨率图像的技术。
自己理解概念:图像超分辨率重建就是指由一副低分辨率图像(LR)或者图像序列恢复出高分辨率图像(HR)的技术。- 核心思想
超分辨率技术的核心思想就是用时间分辨率(同一场景多帧图像序列)换取更高的空间分辨率,实现时间分辨率到空间分辨率的转换。 - 博主用到的实现方法
一、图像插值。
二、基于LLE算法的超分辨率重建。
三、通过稀疏编码对图像进行超分辨率重建
此处暂时不详细描述各种方法的实现,后续抽空会逐一分析每种方法实现。关于LLE算法可以参见博主之前的一篇 LLE局部线性嵌入算法文章,此篇文章详细介绍了LLE算法,有不足之处,欢迎大家指正,最近会将LLE重建的过程放入博客!
-
基于序列图像的超分辨率重建方法
2018-10-11 17:06:18序列图像的超分辨率重建指的是利用一系列已经获得的分辨率相对比较低的图像,通过现有的技术手段以及方法,恢复出较高分辨率图像的方法。每一幅低分辨率图像只能提供高分辨率图像的部分信息。超分辨率重建具有多方面... -
超分辨率重建代码 superresolution_v_2.0
2020-05-04 09:33:35超分辨率重建代码 superresolution_v_2.0 超分辨率重建代码 superresolution_v_2.0 -
IRCNN用于图像超分辨率重建
2018-10-29 23:50:56IRCNN用于图像超分辨率重建,深度学习的图像处理方法。 -
基于Curvelet变换的压缩传感超分辨率重建
2021-02-25 09:05:40基于Curvelet变换的压缩传感超分辨率重建 -
改进的PMD距离图像超分辨率重建算法
2021-02-20 17:50:38改进的PMD距离图像超分辨率重建算法 -
深度图像超分辨率重建MATLAB和C语言代码.rar
2019-09-25 12:27:35深度图像超分辨率重建MATLAB和C语言代码.深度图像超分辨率重建MATLAB和C语言代码. -
单图像超分辨率重建示例
2019-02-06 16:11:43代码的解析已经给出,现在补上:单图像超分辨率重建示例代码解析 目录 一、简介 二、前期准备 三、运行程序 四、参考目录 一、简介 图像超分辨率重建技术就是利用一组低质量、低分辨率图像(或运动序列)来产生... -
超分辨率重建代码
2013-01-28 13:16:51Visual Geometry Group项目组开发的超分辨率重建的源码,具有很好的效果。 附有详细的文档说明,可直接运行 -
论文研究-图像超分辨率重建的研究进展.pdf
2019-09-08 16:39:17图像超分辨率重建技术对于输入的低分辨率图像进行相关处理,从而重构出高分辨率图像,该技术已经成为图像处理研究领域的一个热点方向。对超分辨率图像重建的研究进展进行了综述。阐述了图像超分辨率重建的基本原理。... -
超分辨率重建基础知识总结
2021-03-03 11:08:49超分辨率重建基础知识总结1、为什么使用超分辨率重建?2、经典图像插值算法有哪些,局限在哪里?3、进行超分辨率重建的方式有哪些?4、超分辨率重建技术与图像复原技术区别与联系? 1、为什么使用超分辨率重建? 通常... -
图像超分辨率重建原理学习
2020-02-15 12:44:06传统的图像超分辨率重建技术简介 基于插值的图像超分 基于重建的图像超分辨率 基于学习的图像超分辨率 基于深度学习的图像超分辨率重建技术 两种常用的评价超分的指标——PSNR和SSIM SRCNN(Super-Res... -
基于压缩感知的声纳图像超分辨率重建算法
2020-07-20 12:27:03超分辨率重建通用方法中,图像分解后对应小波基只能有效稀疏表示单一成分,往往只侧重边缘成分而忽略了光滑成分等。针对这个问题,本文改进了一种基于压缩感知的声纳图像超分辨率重建算法。该算法基于三种不同稀疏... -
基于集中稀疏表示的天文图像超分辨率重建
2021-01-25 16:01:07针对天文图像成像分辨率低的问题,基于集中稀疏表示图像超分辨率重建理论,提出一种层次聚类字典训练和相似约束的天文图像超分辨率重建算法。在字典训练阶段,采用新的基于层次的聚类算法对样本图像块进行归类,对每类... -
基于层次聚类的图像超分辨率重建
2021-01-27 10:47:46多字典学习的图像超分辨率重建过程中常见的K均值聚类、高斯混合模型聚类等方法会导致图像的重建质量欠佳且不稳定,针对这一问题提出一种新的基于层次聚类的图像超分辨率重建算法;首先对样本图像块提取特征并进行... -
特征驱动先验的归一化卷积超分辨率重建
2021-02-26 05:54:38特征驱动先验的归一化卷积超分辨率重建