CVPR2019超分辨率文章:Meta-SR,任意输入upsample factor的超分辨率网络

论文地址

CVPR2019的新文章,主要是针对以前超分辨率问题中需要固定上采样因子的问题作出的改进。

摘要

随着DNN的发展,超分辨率技术得到了巨大的改进。但是,超分辨率问题中的任意scale factor问题被忽视了很久。前面的很多工作都是把不同scale factor(即HR和LR之间的分辨率比)的超分辨率看作是独立的任务,然后分别训练模型。在这篇文章,作者提出了单模型解决任意scale factor的方法,叫做Meta-SR。 在Meta-SR中,一个Meta-SR Upscale Module代替了传统的upscale模块。对于任意的scale factor,Meta-SR Upscale Module能够动态地预测上采样滤波器的权重,然后用这些权重来生成HR。总而言之,Meta-SR能够以任意的上采样因子放大任意低分辨率的图像。

介绍

在ESPCNN,EDSR,RDN,RCAN等SOFT方法中,它们通常是在网络末端放大feature map。但是这些方法只能设计针对每个scale factor设计一个特定的上采样模块,并且这个上采样模块通常只对正整数的scale factors有效。这些缺点限制了SISR在现实中的使用。
在本论文中,受mera-learning的启发,作者提出了一个为每个scale factor动态预测的滤波器的权重,因此,我们再也不用保存每个scale factor对应模型的权重了。

方法

在这里插入图片描述
可以看到,在Meta-SR中,特征学习模块直接用的RDN的结构。RDN是CVPR18的spotlight,其结构主要是ResNetBlock和DenseNet的结合,具体可以参考这篇博客RDN。
接下来先介绍一下Meta-Upscale 。

Meta-Upscale Formulation

假设 F L R F^{LR} FLR是在特征学习模块之后提取到的特征,scale factor表示为 r r r。对于SR图像中的每个像素 ( i , j ) (i,j) (i,j),我们认为它是由LR图像在像素 ( i ′ , j ′ ) (i',j') (i,j)上的特征和对应滤波器(卷积核)的权重决定的。由这个观点出发,上采样模块可以看作是从 F L R F^{LR} FLR I S R I^{SR} ISR的映射函数。首先,上采样模块需要将 ( i , j ) (i,j) (i,j) ( i ′ , j ′ ) (i',j') (i,j)匹配。其次,上采样模块需要一个特定的滤波器来映射 ( i ′ , j ′ ) (i',j') (i,j)的特征和 ( i , j ) (i,j) (i,j)的值。上采样模块的形式化表述如下:
在这里插入图片描述
I S R ( i , j ) I^{SR}(i,j) ISR(i,j)表示SR在 ( i , j ) (i,j) (i,j)的像素值。 ϕ ( . ) \phi(.) ϕ(.)表示的是用来计算像素值的特征映射函数。
因为在SR中的每个像素对应一个滤波器,对于不同的scale factors,滤波器的数量和权重都是彼此不同的。为了解决超分辨率单模型任意输入scale factor的问题,我们提出了Meta-Upscale 模块来基于scale factor和坐标信息动态预测权重W(i,j)。
在这里插入图片描述
对于Meta-Upscale 模块,有三个重要的函数:the Location Projection, the Weight Prediction and the Feature Mapping,即位置投影,权重预测和特征映射。位置投影是投影LR中的像素,权重预测模块是预测对应SR每个像素的滤波器的权重,特征映射模块是将LR中的特征加上预测的权重映射回SR图像来计算像素值。

Location Projection

对于SR中的每个像素 ( i , j ) (i,j) (i,j),位置投影模块要找到LR图像对应的 ( i ′ , j ′ ) (i',j') (i,j)。我们认为 ( i , j ) (i,j) (i,j)的值是由LR图像中 ( i ′ , j ′ ) (i',j') (i,j)的特征决定的。我们用以下的投影操作来映射这两个像素:
在这里插入图片描述
T T T是转换函数。位置投影模块可以看作是一种可变分数步长机制,用来上采样任意scale factor的特征图。如图2所示,如果scale factor r r r是2,那么每个像素 ( i ′ , j ′ ) (i',j') (i,j)决定两个点。可是,如果scale factor不是整数,比如 r = 0.5 r=0.5 r=0.5,那么一些像素决定两个像素,一些像素决定一个像素。
对于SR中的每个像素 ( i , j ) (i,j) (i,j),我们都能在LR上找到一个独特的像素 ( i ′ , j ′ ) (i',j') (i,j),我们认为这两个像素是最有关联的。

Weight Prediction

典型的上采样模块会预定义卷积核的数量以及由训练集学习得到的权重。在Meta-Upscale模块中,我们用一种网络来预测卷积核的权重,公式化表述为:
在这里插入图片描述
W ( i , j ) W(i,j) W(i,j)是SR上的像素 ( i , j ) (i,j) (i,j)对应的卷积核的权重。 φ \varphi φ是权重预测网络, θ \theta θ是权重预测网络的权重。 v i j v_{ij} vij是和i,j关联的向量:
对于像素 ( i , j ) (i,j) (i,j) φ \varphi φ的输入,一个合适的选择是与 ( i ′ , j ′ ) (i',j') (i,j)的相对偏移:
在这里插入图片描述
为了一起训练多scale factors,最好是将scale factor加入到 v i j v_{ij} vij的计算中以区分不同的scale factor的权重。比如,如果我们要用scale factor 2和4上采样图像,记作 I 2 S R I_2^{SR} I2SR I 4 S R I_4^{SR} I4SR。那么 I 2 S R I_2^{SR} I2SR中的 ( i , j ) (i,j) (i,j) I 4 S R I_4^{SR} I4SR中的 ( 2 i , 2 j ) (2i,2j) (2i,2j)有相同的卷积核权重和投影坐标,这意味着 I 2 S R I_2^{SR} I2SR只是 I 4 S R I_4^{SR} I4SR的子图,这会限制效果。所以我们重定义 v i j v_{ij} vij
在这里插入图片描述

Feature Mapping

最后我们要做的就是将特征 F L R F^{LR} FLR投影到SR对应像素的像素值。我们使用矩阵乘积作为Feature Mapping 函数。 ϕ ( . ) \phi(.) ϕ(.)的公式化表示为:
在这里插入图片描述
整个Meta-Upscale Module的伪代码如下:
在这里插入图片描述

结构细节

特征学习模块可以是任意SOFT的方法,同时本文的Meta-Upscale模块也可以应用到这些网络中替代自身的上采样模块。本文使用RDN作为特征学习模块
对于Meta-Upscale Module,它包含几个全连接层和几个激活层。每个输入都会输出一组权重 ( i n C , o u t C , k , k ) (inC,outC,k,k) (inC,outC,k,k) i n C inC inC是提取到的feature map的通道数,论文里面是64。 o u t C outC outC是所预测的HR图像的通道数,要么是3(彩色图),要么是1(灰度图)。 k k k是卷积核大小。
本文里面激活函数用的是ReLU,卷积核 k k k 3 × 3 3\times3 3×3

实验

本文的实验训练集用的是DIV2K,测试集是Set14,B100,Manga109和DIV2K。用PSNR和SSIM来验证效果(仅在Y通道)。
loss用的是L1 loss,batch是16,size是 50 × 50 50×50 50×50,训练的scale factors以0.1的步长从1到4训练,
均匀分布。batch里面的每个图都是一样的scale factor。Meta-SR是从头开始训练的,没有预训练。
在这里插入图片描述各个upscale factor下RDN,EDSR和Meta-SR的表现,可以看到Meta- Upsample Module还是很有效的。

Inference Time

在这里插入图片描述
测试环境是Tesla P40。可以看到相比于Feature Learning Module,Weight Prediction Module的运行时间可以忽略不计。

Compared With SOFT

在这里插入图片描述

一些结果

在这里插入图片描述
在这里插入图片描述

还是期待源码能够早日公开吧!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/29199.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

GAIDC大会:飞桨邀你来大模型技术与应用论坛

深度学习大规模预训练模型的兴起,以其极强的通用能力和突破性的效果,正推动通用人工智能(AGI)快速发展,并带来了AI研发应用新范式,逐步改变AI生态格局。近期以大规模语言模型为基础的技术工作,展…

人工智能大模型多场景应用原理解析

​强烈推荐一个大神的人工智能的教程:http://www.captainai.net/zhanghan 前言 在上篇文章《人工智能大模型之ChatGPT原理解析》中分享了一些大模型之ChatGPT的核心原理后,收到大量读者的反馈,诸如:在了解了核心原理后想进一步了解未来的发展…

3日行程安排

22号 13:30出发到峡山码头坐船--横山岛景区 峡山码头 船费:来回70r 固定开船时间:9:30,12:00,14:00 或者🈵️12人自动开船,最晚4点有船返回 岛上风景 逛山海“小普陀”寺庙普南禅院,被誉为宁…

托福备考经验心得

综述 托福备考准备经验与心得。全部都是个人的反思,带有个人的观点色彩,按需自取即可。首先是几个深刻的经验教训: 对备考的强度要有一个基本的把握,之前一方面在忙别的事情一方面备考感觉自己成效不是特别明显 (可能是我本人能…

初识托福TOEFL口语

对于想要准备托福的童鞋,并不怎么了解托福考试内容的可以看一看,本文主要给大家分享下托福考试中口语部分介绍。 托福考试中总共有4个部分,第一个部分是Reading(阅读),第二个部分是(Listening&…

chatgpt赋能Python-pycharm自动纠错

Pycharm自动纠错:提高开发效率,减少犯错 随着Python语言的流行,Pycharm成为了众多Python工程师的首选IDE之一。Pycharm具有丰富的功能,其中之一就是自动纠错。本文将介绍Pycharm自动纠错的优点和如何正确使用它来提高开发效率&am…

KFC - VME = 50

KFC - VME 50 CalHeightFromPointToPlane.java_spencer_tseng的博客-CSDN博客

kfc 商家地址获取

简单获取商家地址(kfc) 学习源址 基本的查找url,请求方式我也是在上面的链接中学到的,在此就不赘述了,只是重点分享和记录一下自己遇到的一些bug 代码 import requestsurl http://www.kfc.com.cn/kfccda/ashx/GetStoreList.ashx?opkeyw…

java实现kfc点餐系统

一、题目分析 1.1、题目要求 正常餐品结算和找零。基本套餐结算和找零。使用优惠劵购买餐品结算和找零。可在一定时间段参与店内活动(自行设计或参考官网信息)。模拟打印小票的功能(写到文件中)。 基本要求:程序设计风…

html网页肯德基设计代码作业,Illustrator设计一幅肯德基广告单页制作教程

给各位Illustrator软件的使用者们来详细的解析分享一下设计一幅肯德基广告单页的制作教程。 教程分享: 首先来看一下最终效果图: 本幅广告页面我们很常见,就是一幅肯德基广告页面。在现实生活中,同学可以细心观察身边的事物&#…

kfc扫描点餐系统java_Java实现KFC点餐系统过程解析

这篇文章主要为大家详细介绍了java实现KFC点餐系统,模拟肯德基快餐店的收银系统,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 同学们应该都去麦当劳或肯德基吃过快餐吧?请同学们参考肯德基官网的信息模拟肯德基快餐店的收银…

python爬取ajax动态内容肯德基门店,Python爬虫如何爬取KFC地址

随着人们生活水平的提高,肯德基这类的快餐消费的十分火爆,成为小朋友和年轻人的最爱,我们到一个地方想要找到肯德基店面,会根据导航获取肯德基地址,那你知道我们也可以使用python爬虫获取KFC地址吗?我们可以…

爬虫爬取国内肯德基门店信息

预期效果 爬取每个城市(300城市)所有的肯德基门店信息,保存到excel中,效果如下: 代码实现 import requests import csv import jsondef getData(page,key):urlhttp://www.kfc.com.cn/kfccda/ashx/GetStoreList.as…

python爬取肯德基KFC全国门店2021-01-11

python爬取肯德基KFC全国门店 改进版 之前,参考两位网友的代码,爬取全国KFC门店,发现有些许问题。在参考网友代码的基础上,进行改进,最终爬取了全国KFC门店。 思路如下: 第一步:通过KFC门网页…

html网页肯德基设计代码作业,AI快速制作一幅肯德基广告单页教程

这篇AI教程向脚本之家上的朋友介绍AI快速制作一幅肯德基广告单页方法,教程以实例的形式向我们介绍广告单页的制作方法,很实用,也比较简单,喜欢的朋友快来学习一下吧! 首先来看一下最终效果图: 本幅广告页面…

KFC点餐系统

一:要求 同学们应该都去麦当劳或肯德基吃过快餐吧?请同学们参考肯德基官网的信息模拟肯德基快餐店的收银系统,合理使用C/python/Java,结合设计模式(2种以上)至少实现系统的以下功能: 1.正常餐品结算和找零…

KFC门店信息获取 爬虫实战

最近在帮客户做东西时需要用到kfc的门店信息查询数据,在浏览了一圈博客之后,貌似大家都是采用 selenium PhantomJS 这种方式抓取kfc的ajax动态网页, 其实在分析了一波该网站的请求之后,相对来说还是很简单的一个爬虫,该网站甚至没有做浏览器的验证 url http://www.kfc.…

KFC点餐收银

一、问题描述 参考肯德基官网的信息模拟肯德基快餐店的收银系统,合理使用C或Java或Python结合设计模式(2种以上)至少实现系统的以下功能: 1.正常餐品结算和找零。 2.基本套餐结算和找零。 3.使用优惠劵购买餐品结算和找零。 4.可在…

肯德基收银系统

肯德基收银系统 一.题目分析 同学们应该都去麦当劳或肯德基吃过快餐吧?请同学们参考肯德基官网的信息模拟肯德基快餐店的收银系统,合理使用C或Java或Python结合设计模式(2种以上)至少实现系统的以下功能: 1.正常餐品结…

肯德基 服务器响应异常,肯德基链接服务器异常

肯德基链接服务器异常 内容精选 换一换 精简视图提供了云服务器资源概况和状态的可视化统计结果,帮助您直观的了解云服务器资源。在精简视图中,您可以快速获取弹性云服务器基本信息、登录信息、配置信息、监控信息。精简视图提供了云服务器资源概况和状态的可视化统计结果,直…