1. 相关背景

本文发表于2019年,一般来说,SISR(single image super resolution,单张图片超分辨率)的工作都是分为两部分,首先将H∗W∗3H*W*3H∗W∗3的图片经过特征提取模块(比如2017年ESDR的残差网络,2018年RDN的稠密残差网络),得到相同尺寸的H∗W∗CH*W*CH∗W∗C的特征图;然后再经过上采样模块(x2或x3或x4的缩放因子)得到超分辨率图像,比如要是上采样模块用了x4,那么最终分辨率就为4H∗4W∗34H*4W*34H∗4W∗3,这种方法的缺点便是我要想放大不同倍数,就得换一下后面的上采样模块,整个架构重新训练(当然为了提升收敛速度,固定好前部分的特征提取模块之后,只优化后面的上采样模块也被证明是可以的);另一个缺点便是缩放因子受限于上采样模块本身的结构,只能是整数倍的,关于小数倍或是任意比例的缩放因子相关的SR研究一直以来是被忽视的。
本文提出的方法称之为Meta-SR,自称是首先使用仅仅一个模型,解决任意缩放因子的图像SR的工作。当然主要的内容,其实是改进了传统SR的后半部分的上采样模块,前半部分的特征提取模块还是用的前人方法。本文的上采样模块称作Meta-Upscale模块,其思想来源于meta-learning

  • 关于Meta-Learning
    有一篇知乎文章对meta-learning介绍的挺好,这里放出文章链接,这里说说个人的理解:

我们所做的机器学习任务,其实目的是为了建立一个从输入到输出的映射关系,由于这种映射关系太过抽象,我们往往将这份映射关系用神经网络来表示。一般来说,我们通常认知的机器学习是这样的:
1. 一般的机器学习:
我有一个数据集,这个数据集里面有采样点(也就是数据集的样本,为了方便后面的理解,暂时称为采样点),这些采样点就是某一个抽象函数的输入与输出(输入就是样本的特征,输出就是样本的标签),我们要做的就是用神经网络,根据采样点,借助反向传播,优化神经网络系数,从而让神经网络拟合这个抽象函数。训练完成之后(抽象函数拟合好之后),对于相同数据集里面的新的样本,我们就可以预测它的输出了。
2. 提炼:
我们其实可以从中抽取出如下数学概念:抽象函数采样点拟合,一般的机器学习任务,其实可以概括为:根据若干采样点,拟合一个抽象函数,以便于根据新的采样点预测输出,(其实哪怕是自监督的GAN,也可以说是拟合一个从正态分布(latent code)到某个数据集分布的映射),根据上面的数学概念,如果我们向下拓展,就成了目前3D视觉里面比较火的场景与物体的隐式表示,如果向上拓展,就成了meta-learning
3. 向下拓展——场景与物体的隐式表示:
将采样点换成场景坐标及这个坐标下的颜色,我们要拟合的抽象函数就成了这个场景本身,也是NeRF的思想;将采样点换成场景坐标与这个点到场景下物体的SDF距离函数值,我们要拟合的抽象函数就成了这个单一物体本身,也是DeepSDF的思想。这便是场景与物体的隐式表示,抽象函数成了这个单一的物体与场景本身,当这个抽象函数拟合好之后,就能够得到这个场景或物体的全部信息(如NeRF在一个新视角下的场景样子,DeepSDF整个物体的没有直接暴露在摄像机下的部分)。当然,既然是做了向下拓展,自然地,这种场景与物体的隐式表示就无法处理新的场景或数据集里的新的物体,因为我学习的抽象函数,是数据集里某个单一样本自身的规律(也就是场景颜色、物体形状),而不是像一般的机器学习里面的抽象函数,学习的是数据集里全部样本遵循的某种规律
4. 小结:
总而言之,对于数据集来说,有单一样本全体样本(也就是数据集本身)多个不同数据集,这三个层层递进的关系,而如果我们把抽象函数放在全体样本,那么采样点就成了单一样本,也就对应着一般的机器学习;如果我们把抽象函数放在单一样本,采样点就成了这个样本的一些空间采样点(当然因为这毕竟是3D视觉里的东西,采样点得是个三维物体或场景),也就对应着场景与物体的隐式表示。其实这样类比的话,在场景与物体的隐式表示中有很多一般机器学习的概念都能对的上,如下面所说的,左边是我们正常认知的机器学习概念,右边是场景与物体的隐式表示所对应的概念:

  1. 泛化性:就对应着我生成的这个三维物体或场景在新视角下到底合不合理
  2. batchsize:就对应着空间采样点的数量,而不是数据集样本的数量
  3. 过拟合:拿DeepSDF的物体举例,我这个三维物体建模好之后,虽然说在采样点的地方是和训练时的采样点一致的,但是在其它地方抖动太大,或者说,物体表面不够光滑
  4. 在某个数据集训练好之后,无法应用在新的数据集(也就是meta-learning的研究动机):就对应着我这个物体或场景建模好之后,面对场景数据集里面新的场景得重新训练建模

5. 向上拓展——Meta Learning
根据上面的类比,我们可以进一步向上拓展,这就成了Meta-Learning,抽象函数就变成了多个不同数据集,采样点就成了全体样本(也就是一个个不同的数据集),因此,Meta-Learning要解决的问题就是如何去预测某个具体数据集上的针对这个数据集的“抽象函数”(当然总的抽象函数是在多个不同数据集之上的那个抽象函数),而由于我们一般用神经网络表示抽象函数,所以meta-Learning其实聚焦于如何预测数据集上的神经网络组件的权重,也就是说如何用一个神经网络去预测另一个神经网络

2. 方法

本文整个方法的行文思路其实是很容易理解的,如下所述:

  1. 对于输入的图像,我们先经过特征提取模块(比如RDN的稠密残差模块),得到H∗W∗CH*W*CH∗W∗C的特征图(文章中C=64C=64C=64),记为FLRF_{LR}FLR​,LR代表low resolution的意思
  2. 记我们想要得到的高分辨率的图像为IHRI_{HR}IHR​,缩放因子为rrr,其中缩放因子可以为任意的数值,如1.5,21.5,21.5,2等等
  3. 我们假定将FLRF_{LR}FLR​和IHRI_{HR}IHR​都给统一放到[−1,1][-1,1][−1,1]的平面直角坐标系中,那么很显然IHRI_{HR}IHR​有着更为稠密的网格,而对于IHRI_{HR}IHR​的每个像素(i,j)(i,j)(i,j),其实都能唯一确定一个FLRF_{LR}FLR​上的点(i′,j′)(i^{\prime},j^{\prime})(i′,j′),就不说具体算法了,想想这个坐标系就行。下面如果我们以这个(i′,j′)(i^{\prime},j^{\prime})(i′,j′)作为某个卷积核(比如k=3)的中心的话,卷积运算一下就能得到(i,j)(i,j)(i,j)应有的颜色了
  4. 因此,现在的问题其实就变成了:我该如何根据IHRI_{HR}IHR​的每个像素(i,j)(i,j)(i,j)去得到专属与这个像素的卷积核,得到卷积核之后和(i′,j′)(i^{\prime},j^{\prime})(i′,j′)做一下卷积操作就能得到(i,j)(i,j)(i,j)应有的颜色了,从而实现超分辨率重建,IHRI_{HR}IHR​有多少像素我就应该得到多少个卷积核
  5. 其实得到卷积核的方式就成了meta-learning里的用神经网络去预测另一个神经网络,使用一个weight prediction network,接收的输入是(i,j)(i,j)(i,j)和(i′,j′)(i^{\prime},j^{\prime})(i′,j′)的相对位置,以及1/r1/r1/r,输出是k∗kk*kk∗k的卷积核值(文中k=3),另外值得一提的是,这个神经网络的batchsize的上限其实就是IHRI_{HR}IHR​的总像素数量

下面是Meta-SR的流程图:

Meta-SR: A Magnification-Arbitrary Network for Super-Resolution相关推荐

  1. 论文翻译:2019_Speech Super Resolution Generative Adversarial Network

    博客作者:凌逆战 论文地址:基于GAN的音频超分辨率 博客地址:https://www.cnblogs.com/LXP-Never/p/10874993.html 论文作者:Sefik Emre Es ...

  2. 论文翻译:Speech Super Resolution Generative Adversarial Network

    博客作者:凌逆战 论文地址:https://ieeexplore.ieee.org/document/8682215 博客地址:https://www.cnblogs.com/LXP-Never/p/ ...

  3. CV之SR:超分辨率(Super resolution)的简介、使用方法、案例应用之详细攻略

    CV之SR:超分辨率(Super resolution)的简介.使用方法.案例应用之详细攻略 目录 超分辨率(Super resolution)的简介 超分辨率(Super resolution)的使 ...

  4. 图像超分辨率:小米低功耗超分,适用于移动端Extreme Low-Power Super Resolution Network For Mobile Devices

    4. ELSR: Extreme Low-Power Super Resolution Network For Mobile Devices 小米的论文,网络很简单很快,训练步骤比较多.

  5. Unfolding the Alternating Optimization for Blind Super Resolution

    Unfolding the Alternating Optimization for Blind Super Resolution 论文信息 Paper: [NeurIPS2020] Unfoldin ...

  6. 漫谈深度学习在Super Resolution(超分辨率)领域上的应用

    1.前言 清晨,师兄推荐给我一篇文章,关于利用DeepLearning思想进行图像超分辨恢复的.超分辨这个话题几年之前还是比较火爆的,无论是BiCube.SP.A*都给出了令人振奋的结果.但是细节恢复 ...

  7. Unsupervised Real-world Image Super Resolution via Domain-distance Aware Training

    Unsupervised Real-world Image Super Resolution via Domain-distance Aware Training(基于域距离感知训练的非监督真实图像超 ...

  8. 【Super Resolution】超分辨率——SRCNN

    SRCNN 01 闲聊--图像的超分辨率 02 SRCNN--超分和DL的结合 02-1 双三次插值 02-2 SRCNN的网络结构 02-3 Training 训练阶段 03 EXPERIMENTS ...

  9. Wavelet-SRNet: A Wavelet-based CNN for Multi-scale Face Super Resolution

    Wavelet-SRNet: A Wavelet-based CNN for Multi-scale Face Super Resolution 2017 ICCV 1.引言 2.网络结构 3.损失函 ...

  10. (NIPS2020)Unfolding the Alternating Optimization for Blind Super Resolution 笔记

    (NIPS2020)Unfolding the Alternating Optimization for Blind Super Resolution https://github.com/great ...

最新文章

  1. 25.CSS其他样式
  2. 明明是全闪存阵列,为何存储性能仍然不够快
  3. 【信息安全】职业发展之惑系列三 -- 我该选择怎样的职业发展道路
  4. 【数据结构与算法】5. C++中 list、deque、vector对比
  5. 实验九——基本数据类型存储及应用总结
  6. python pip install指定国内源镜像
  7. unity UI事件
  8. java怎么播放不了声音,java – 为什么这段代码不播放声音文件
  9. ajax ssm 页面跳转_SSM用jq整合Ajax入门案例讲解
  10. Webservice学习之——即时发布与定制发布
  11. 【learning】一种奇妙的网络流建模方式
  12. 腾讯广告的多媒体AI技术实战
  13. Python 基础 —— pip 的使用(修改国内源)
  14. mysql查询一个表有哪些索引_如何查看某张数据库表上都有哪些索引(转)
  15. 【Python实例第34讲】高斯过程分类:XOR数据集
  16. 鼠标测试软件m,赛钛客CYBORG M.M.O.7鼠标
  17. AAA和radius协议学习
  18. 量子纠缠 计算机,计算机科学家利用量子纠缠系统,证实44年前的一个猜想是错误的...
  19. 主机甲和主机乙之间使用后退N帧协议(GBN)传输数据,甲的发送窗口为1000,数据帧长为1000字节,信道带宽为100Mb/s,乙每收到一个数据帧......[数据传输率]错题总结
  20. ajax的三种传参方式

热门文章

  1. Windows装机必备设置,软件安装
  2. 抖音电脑网页版上线 可在PC端发视频、点赞、看评论
  3. android手机号码恢复,手把手教你如何恢复安卓手机通讯录里面丢失的数据
  4. 【ArcGIS】server授权文件ecp超期的处理
  5. 椭圆一般式方程面积求解
  6. C语言基础之4:字符串和格式化输入/输出
  7. 软件测试49个必问面试题合集+答案
  8. android 原子文件,Android原子操作
  9. 杂谈:区块链是否值得投资
  10. 插画素材哪里找?5个超级实用的插画素材库推荐