(CVPR 2019)The better version of SRMD
CVPR2019的文章,解决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) > 1
im{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降维部分的内容
(CVPR 2019)The better version of SRMD的更多相关文章
- Feature Fusion for Online Mutual Knowledge Distillation (CVPR 2019)
一.解决问题 如何将特征融合与知识蒸馏结合起来,提高模型性能 二.创新点 支持多子网络分支的在线互学习 子网络可以是相同结构也可以是不同结构 应用特征拼接.depthwise+pointwise,将特 ...
- CVPR目标检测与实例分割算法解析:FCOS(2019),Mask R-CNN(2019),PolarMask(2020)
CVPR目标检测与实例分割算法解析:FCOS(2019),Mask R-CNN(2019),PolarMask(2020)1. 目标检测:FCOS(CVPR 2019)目标检测算法FCOS(FCOS: ...
- Relation-Shape Convolutional Neural Network for Point Cloud Analysis(CVPR 2019)
代码:https://github.com/Yochengliu/Relation-Shape-CNN 文章:https://arxiv.org/abs/1904.07601 作者直播:https:/ ...
- CVPR 2019轨迹预测竞赛冠军方法总结
背景 CVPR 2019 是机器视觉方向最重要的学术会议,本届大会共吸引了来自全世界各地共计 5160 篇论文,共接收 1294 篇论文,投稿数量和接受数量都创下了历史新高,其中与自动驾驶相关的论文. ...
- CVPR 2019 行人检测新思路:
CVPR 2019 行人检测新思路:高级语义特征检测取得精度新突破 原创: CV君 我爱计算机视觉 今天 点击我爱计算机视觉置顶或标星,更快获取CVML新技术 今天跟大家分享一篇昨天新出的CVPR 2 ...
- 自动驾驶研究回顾:CVPR 2019摘要
我们相信开发自动驾驶技术是我们这个时代最大的工程挑战之一,行业和研究团体之间的合作将扮演重要角色.由于这个原因,我们一直在通过参加学术会议,以及最近推出的自动驾驶数据集和基于语义地图的3D对象检测的K ...
- CVPR 2019细粒度图像分类竞赛中国团队DeepBlueAI获冠军 | 技术干货分享
[导读]CVPR 2019细粒度图像分类workshop的挑战赛公布了最终结果:中国团队DeepBlueAI获得冠军.本文带来冠军团队解决方案的技术分享. 近日,在Kaggle上举办的CVPR 201 ...
- ES10(2019)有哪些更新和新特性?
ES10新特性(2019) 行分隔符(U + 2028)和段分隔符(U + 2029)符号现在允许在字符串文字中,与JSON匹配 更加友好的 JSON.stringify 新增了Array的flat( ...
- CVPR 2019|PoolNet:基于池化技术的显著性检测 论文解读
作者 | 文永亮 研究方向 | 目标检测.GAN 研究动机 这是一篇发表于CVPR2019的关于显著性目标检测的paper,在U型结构的特征网络中,高层富含语义特征捕获的位置信息在自底向上的传播过 ...
随机推荐
- Java多线程--原子性、可见性、有序性
计算机的内存模型: 计算机在运行行程序的时候,指令由CPU执行,计算机上数据存放在物理内存当中,CPU在执行指令的时候免不了要和数据打交道.刚开始,还相安无事的,但是随着CPU技术的发展,CPU的执行 ...
- 开源 UI 库中,唯一同时实现了大表格虚拟化和树表格的 Table 组件
背景 有这样一个需求,一位 React Suite(以下简称 rsuite)的用户,他需要一个 Table 组件能够像 Jira Portfolio 一样,支持树形数据,同时需要支持大数据渲染. 截止 ...
- spring多模块之间的调用
https://blog.csdn.net/tomcat_2014/article/details/50206197?locationNum=5
- Centos-重定向方式打包、备份、还原、恢复工具-cpio
cpio 通过重定向方式将文件进行打包.备份.还原.恢复工具,扩展名为 .cpio 相关选项 -o 将文件复制.打包成文件或将将文件输出到标准输出 -i 将打包文件或者将设备上的备份还原到系统中 - ...
- Raft 协议
Paxos 存在的问题 Paxos 算法的描述偏学术化,缺失了很多细节,无法直接应用于工程领域.实际工程应用中的分布式算法大多是 Paxos 的变种,验证这些算法的正确性也成为了一个难题. 举个例子: ...
- 使用Cadence绘制PCB流程
转载:https://blog.csdn.net/hailin0716/article/details/47169799 之前使用过cadence画过几块板子,一直没有做过整理.每次画图遇到问题时,都 ...
- Matlab中imagesc用法
来源:https://ww2.mathworks.cn/help/matlab/ref/imagesc.html?searchHighlight=imagesc&s_tid=doc_srcht ...
- php-fpm 的各种启动方式
启动 php-fpm 最简单的操作: /usr/local/php/sbin/php-fpm php 5.3.3 以后的php-fpm 不再支持 php-fpm 以前具有的 /usr/local/ph ...
- 多测师接口测试 --常见的接口面试题目002---高级讲师肖sir
1.postman接口测试,它有一个功能可以设置参数化,你有用过吗 2.你测试过哪些接口 3.有做过接口测试吗?接口测试你们是怎么测的 4.多接口怎么测(postman里面有一个批量处理) 5.g ...
- 记录一次源码扩展案列——FastJson自定义反序列化ValueMutator
背景:曾经遇到一个很麻烦的事情,就是一个json串中有很多占位符,需要替换成特定文案.如果将json转换成对象后,在一个一个属性去转换的话就出出现很多冗余代码,不美观也不是很实用. 而且也不能提前在j ...