图像超分辨率重建之SRCNN
新版本请访问简书链接: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重建效果更具优势。
图像超分辨率重建之SRCNN相关推荐
- 学习笔记之——基于深度学习的图像超分辨率重建
最近开展图像超分辨率( Image Super Resolution)方面的研究,做了一些列的调研,并结合本人的理解总结成本博文~(本博文仅用于本人的学习笔记,不做商业用途) 本博文涉及的paper已 ...
- 【毕业设计】基于深度学习的图像超分辨率重建 - opencv python cnn
文章目录 0 前言 1 什么是图像超分辨率重建 2 应用场景 3 实现方法 4 SRResNet算法原理 5 SRCNN设计思路 6 代码实现 6.1 代码结构组织 6.2 train_srresne ...
- 基于深度学习的图像超分辨率重建
最近开展图像超分辨率( Image Super Resolution)方面的研究,做了一些列的调研,并结合本人的理解总结成本博文~(本博文仅用于本人的学习笔记,不做商业用途) 本博文涉及的paper已 ...
- 基于SRGAN实现图像超分辨率重建或复原
基于SRGAN实现图像超分辨率重建或复原 2018年04月20日 11:50:26 山水之间2018 阅读数 14064 文章标签: SRGAN图像超分辨率重建 更多 分类专栏: 深度学习 图像处理 ...
- 【数字图像处理3 】(上)图像超分辨率重建(SR)概述
图像超分辨率重建 一.前言(废话时间) 二.扫盲知识 什么是 超分辨率重建? 兴起原因 三.传统超分辨率重建 1.基于插值的超分辨率重建 2.基于退化模型的超分辨率重建 3.基于学习的超分辨率重建 四 ...
- 图像超分辨率重建算法,让模糊图像变清晰(附数据和代码)
一. 图像超分辨率重建概述 1. 概念 图像分辨率是一组用于评估图像中蕴含细节信息丰富程度的性能参数,包括时间分辨率.空间分辨率及色阶分辨率等,体现了成像系统实际所能反映物体细节信息的能力.相较于低 ...
- 基于深度学习的图像超分辨率重建技术的研究
1 超分辨率重建技术的研究背景与意义 图像分辨率是一组用于评估图像中蕴含细节信息丰富程度的性能参数,包括时间分辨率.空间分辨率及色阶分辨率等,体现了成像系统实际所能反映物体细节信息的能力.相较于低分辨 ...
- 超分辨率重建之SRCNN整理总结
白驹微过隙,指上细流沙.时间飞逝啊!转眼之间,四五个月过去了,伴随着中国迈进2020的新时代的元旦的步伐声,我的考研生活暂时告了一个小段落.距今的这些天,忙完了各种小事情,也是时候整理整理之前一些由于 ...
- 一文掌握图像超分辨率重建(算法原理、Pytorch实现)——含完整代码和数据
目录 一. 图像超分辨率重建概述 1. 概念 2. 应用领域 3. 研究进展 3.1 传统超分辨率重建算法 3.2 基于深度学习的超分辨率重建算法 二. SRResNet算法原理和Pytorch实 ...
最新文章
- oc 查看属性默认关键词
- java枚举类是什么_Java学习--常用类(2)、Math类、枚举类
- linux系列之-—04 自动删除n天前日志【转】
- The import com.google cannot be resolved解决方法
- 新版《Windows Sysinternals实战指南》,读书积赞活动
- easyui源码翻译1.32--Window(窗口)
- html如何取单元格内容,JS获取表格内指定单元格html内容的方法
- HDU5447 Good Numbers
- uva 11991 - Easy Problem from Rujia Liu?(STL)
- 电信 联通双线ip接入服务配置
- 华为 DAYU 整体介绍
- android 文字转语音(中文) TextSpeech
- OpenCV深入学习(5)--直方图之calcHist使用
- MPP(大规模并行处理)
- ISDN线路编码介绍
- android 碎屏功能,android中关于点击屏幕,实现破碎的效果的实现
- 铺砖 动态规划 DP
- 硬件接口–内修篇:eDP
- ubuntu18.04鼠标侧键设置为上下滚动
- 补丁的原理什么?为什么打上补丁可以用新的功能?