SRMD的内容上篇,已经介绍,本文主要介绍SRMD的升级版,解决SRMD的诸多问题,

并进行模拟实验。

进行双三次差值(bicubic)===>对应matlab imresize()

%% read images
im = {};
scale_factor = 6;
im_ = dir('E:\A_paper\TEM降噪用GAN\matlab_codes\images\*.jpg');
path = ['E:\A_paper\TEM降噪用GAN\matlab_codes\images\',im_(1).name];
im{1} = imread(path);
if size(im{1},3) > 1im{1} = rgb2gray(im{1});im{1} = im{1}(:,:,1);
end
%% bicubic interpolation
img_up = imresize(im{1}, scale_factor, 'bicubic');
img_down = imresize(im{1}, 1/scale_factor, 'bicubic');
%% image showing
figure,imshow(im{1});
figure,imshow(img_up);
figure,imshow(img_down);

对应的图片:

当scale_factor放大图像,图像更为平滑,而缩小图像,则更为模糊。

下采样原理(downsample):对于一幅图像I尺寸为$M*N$,对其进行s倍下采样,即得到$(M/s)*(N/s)$尺寸的得分辨率图像,当然s应该是M和N的公约数才行,如果考虑的是矩阵形式的图像,就是把原始图像s*s窗口内的图像变成一个像素,这个像素点的值就是窗口内所有像素的均值:

上采样原理(upsamle):图像放大几乎都是采用内插值方法,即在原有图像像素的基础上在像素点之间采用合适的插值算法插入新的元素。

插值方法---- 代表Bicubic 

双线性插值法具有平滑功能,能有效地克服邻法的不足,但会退化图像的高频部分,使图像细节变模糊。在放大倍数比较高时,高阶插值,如双三次和三次样条插值等比低阶插值效果好。这些插值算法可以使插值生成的像素灰度值延续原图像灰度变化的连续性,从而使放大图像浓淡变化自然平滑。但是在图像中,有些像素与相邻像素间灰度值存在突变,即存在灰度不连续性。这些具有灰度值突变的像素就是图像中描述对象的轮廓或纹理图像的边缘像素。在图像放大中,对这些具有不连续灰度特性的像素,如果采用常规的插值算法生成新增加的像素,势必会使放大图像的轮廓和纹理模糊,降低图像质量。

缺点:

 采用了LF的思想,易出现过度平滑,纹理和边缘信息丢失。

基于模型的优化算法

  利用图像的先验信息(e.g.非局部相似先验 去噪先验--Learning deep CNN denoiser prior  for ....张凯),通过求解目标函数的方式得到SR图像,但是比较耗时,

需要引入预先难受的超参数。

判别学习方法

  依赖CNN强大的学习能力,利用大量的图像训练训练集进行训练,学习LR图像和HR图像之间的映射,

从而能够对于输入LR图像进行有效超分辨重构。但是这类模型都假设LR图像是由HR图像双三次插值得到,

当图像的退化方式与其不同时候,模型很难对于多退化的LR图像进行超分辨率。

图像评价指标

  MSE和PSNR为考虑图像的感知特性和图像结构特征,基于图像结构特征比较的评价算法---结构相似度SSIM

,利用高斯滑动窗口的方法对图像进行分块,并利用高斯加权计算每个滑动窗口图像像素的均值、方差和协方差。

Discuss

  现有的CNN模型,简单输入LR图像进行端到端训练,难对于模型求解,需要处理多退化因子的图像。

充分利用先验的方法

利用LR图像退化参数的先验信息帮助模型对于多退化图像的处理。但是存在几个问题,如何有效的表示退化信息,

并且将退化信息和LR图像维度进行统一(SRMD利用PCA降维以及矩阵平铺、复杂的升维方法,将退化图谱和LR图像

进行拼接,输入网络)。

充分利用全卷积和移除亚像素卷积层

对于处理多尺度超分辨率问题,亚像素卷积层进行上采样需要对输入的$W*H*S^{2}C$大小的张量进行像素重排,从而得到s

$sW*sH*C$大小的输出图像,每个尺度的超分辨率任务需要单独训练。(直接反卷积其实存在一些问题)

直接除去亚像素卷积层,而变为全卷积层,使输入和输出的尺度直接对应于缩放的尺度:直接将LR图像进行插值上采样

得到与目标图像大小相同的尺寸,输入网络。

什么是亚像素卷积层?

在亚像素卷积层前的卷积层,将输出通道变为缩放尺度的平方,在亚像素卷积层得到想要的尺度。

获得LR图像退化方法

SRMD仅仅能够在LR图像退化方法已知的图像超分辨任务中。

训练策略

每个epoch都训练x2、x3、x4的尺度因子,避免选择遗忘。

基于卷积神经网络的退化参数图谱估计模型

将LR图像直接输入估计网络,输入$W*H*3$输出得到$W*H*(t+1)$

在估计到退化图谱后,使用PCA降维和矩阵平铺,复制的升维方法构建处退化图谱作为标签进行构建损失函数

中间卷积可以使用Resnet残差学习思想:

多个网络级联训练

整体损失:

$L(\theta_{1},\theta_{2}) = L_{map}(\theta_{1})+\lambda L_{convnet}(\theta_{1},\theta_{2})$

$L_{convnet}$使训练超分辨率子网络,$\theta_{2}$表示超分辨率子网络参数,$L_{map}$表示退化图谱重构

损失,用来约束训练退化图谱估计子网络。

两个损失都是MSE损失,但是两个网络可以不单独级联,而是作为一个整体网络训练,将两个网络的参数同时

优化,来自超分辨率的梯度也会传递到退化图谱估计网络,线性相加,$\lambda$是平衡两个损失的权值。

该网络更依赖退化图谱网络计算的梯度权值相对于由来自深层超分辨网络的梯度更大一些,$\lambda$为0.1

,增加退化图谱的损失权值,便于更好优化退化图谱估计子网络。

需要学些PCA降维部分的内容

转载于:https://www.cnblogs.com/ChenKe-cheng/p/10699031.html

(cvpr2019 ) Better Version of SRMD相关推荐

  1. BAD SLAM | 直接法实时BA+RGBD基准数据集(CVPR2019)

    论文解读:BAD SLAM | 直接法实时BA+RGBD基准数据集(CVPR2019) 本文解读的论文为发表于CVPR 2019的 "Schops, Thomas, Torsten Satt ...

  2. VSCode更新到1.42.1版本有问题(January 2020 (version 1.42))

    如果使用 VSCode 来做 JAVA 开发,VSCode 更新到 1.42.1 版本(January 2020 (version 1.42))会发现运行调试时报 "错误: 找不到或无法加载 ...

  3. MDK537添加ARMCC编译器(Missing: Compiler Version 5的解决办法)

    问题说明 前一段时间keil发布了MDK V5.37新版本,安装好以后发现这个版本默认不安装ARMCC(compiler version 5)编译器了. 但是之前基于ARMCC的项目使用ARMCLAN ...

  4. C#LeetCode刷题之#278-第一个错误的版本(First Bad Version)

    问题 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/3985 访问. 你是产品经理,目前正在带领一个团队开发新的产品.不 ...

  5. Human Pose Estimation with Spatial Contextual Information(CVPR2019)

    问题:姿态估计关节点遮挡问题 思路:捕获关节点之间的空间相关性,进行关节点信息的传播,来预测以及纠正其他关节点 方法:级联预测融合(CPF)和姿态图神经网络(PGNN) 1 摘要 本文讨论了空间上下文 ...

  6. High Version Count Issues(SQL高Version Count) (文档 ID 296377.1)

    Troubleshooting: High Version Count Issues (文档 ID 296377.1) In this Document Purpose   Ask Questions ...

  7. 论文阅读笔记五十四:Gradient Harmonized Single-stage Detector(CVPR2019)

    论文原址:https://arxiv.org/pdf/1811.05181.pdf github:https://github.com/libuyu/GHM_Detection 摘要 尽管单阶段的检测 ...

  8. FreeBSD安装(虚拟机)version:13.1

    FreeBSD FreeBSD简介   FreeBSD 是一种类UNIX操作系统,是经由 BSD.386BSD 和 4.4BSD 发展而来的Unix的一个重要分支.FreeBSD 为不同架构的计算机系 ...

  9. 视觉深度估计的Pseudo-LiDAR:弥合自动驾驶3D对象检测中的差距(CVPR2019)

    摘要 3D对象检测是自动驾驶中的一项基本任务.只要从精确但昂贵的LiDAR技术中获得3D输入数据,最新技术就可以以高度准确的检测率获得优势.迄今为止,基于廉价的单目或立体图像数据的方法导致精度大大降低 ...

最新文章

  1. Kali Linux 64位架构安装Veil-Evasion
  2. 不同外置模拟器用Android Studio连接指令
  3. 部署zookeeper分布式节点
  4. 一元操作符——递增和递减操作符(第一次写博客,紧张.)
  5. 英特尔展示业界首个一体封装光学以太网交换机
  6. 网络干货,无论是运维还是开发都要知道的网络知识系列之(八)
  7. 20190916每日一句
  8. java 二叉树排序算法
  9. 风控项目2---风控建模流程
  10. jmail邮件服务器,jmail 指定发送邮件的服务器
  11. 测试覆盖:语句覆盖 判定覆盖(即分支覆盖) 条件覆盖 判定-条件覆盖 条件组合覆盖 路径覆盖
  12. 聊聊深度学习这档子事(3):寻找万能的通用模型
  13. 基于tiny4412的u-boot移植(二)
  14. 微博模拟登陆之验证码的解决方法
  15. 如何取消OPPOA33Android系统,OPPO A33系统降级教程_OPPO A33怎么回退到原来旧版本的系统...
  16. 解决办法:.bat文件运行不了,管理员运行后闪退
  17. HBase-Region的拆分与合并
  18. 雨林木风 Ghost XP SP2 精简版 Y2.0
  19. 分享一个转换pdf,PDF分割、指定页提取无需安装软件的方法
  20. python爬虫学习(六)kfc门店地址

热门文章

  1. 数据结构C#版笔记--树与二叉树
  2. 职场新人成功修炼五诀 迅速在职场占一席之地
  3. python3最好的书籍推荐-推荐几本Python3相关书籍?最好分一下基础、进阶、高级...
  4. python手机版怎么用-QPython,一个在手机上运行Python的神器
  5. python绘制散点图-Python:matplotlib绘制散点图
  6. python找工作难吗-为什么我不建议你通过 Python 去找工作?
  7. python主要运用于-Python的8大主要应用领域,看看哪个是你的菜?
  8. python界面设计-python图形化界面设计tkinter
  9. python语言入门详解-Python unittest详解一(基础入门)
  10. 学python的主流就业方向-Python有哪些就业方向 你知道Python的优势吗