| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 人工智能 -> 【超分辨率】Unsupervised Degradation Representation Learning for Blind Super-Resolution -> 正文阅读 |
|
[人工智能]【超分辨率】Unsupervised Degradation Representation Learning for Blind Super-Resolution |
0.前言这是一篇CVPR2021年的无监督深度学习超分辨率的文章,论文原文下载链接在这里。作者还在Github上传了项目源码。 面对的问题(本文要解决的问题): 为了解决上述的两个问题,本文提出了一个种基于无监督退化表示学习的盲超分辨方法,该方法学习简单的退化表示来区分处于整个表示空间中的不同退化表示而不是在像素级的空间进行估计。本文还提出了一个退化感知超分辨率网络(DASR) ,这个网络可以基于学习到的退化表示来完成对图像的超分辨率任务。 1.介绍本文提出了一种无监督退化表示学习方法,在这个方法中,作者假定同一个图像中任意部分的退化方式是相同的,不同图像的退化方式是不同的,也就是说一个图像中的某个图像块应该是和在这个图像中的其它图像块相似(退化表征相似),而和其它图像中的某个图像块不相似(退化表征不相似),如下图所示: 2. 相关工作2.1 单图像超分辨率单图像超分辨率的有关研究包括基于单一退化和多种退化模式的研究。单一退化的单图像超分辨率从SRCNN开始出现了一系列基于深度学习的方法;基于单一退化的在实际运用时会因为退化与固定的双三次退化相差甚远而产生比较差的效果,为了解决这个问题,许多工作开始研究非盲的SR问题,从SRMD开始出现了一系列把退化作为输入来完成SR任务,当然还有一些零样本的方法。 2.2 对比学习这里文章介绍了无监督学习中常用到的一种方法——对比学习。在这里,我简单地阐述一下我对对比学习的理解,可能并不深刻和准确,但是应该比较容易理解。 3. 方法理论3.1 问题表达图像的退化模型可以建模为下面这个公式: 3.2 本文的方法本文方法由两部分组成:退化编码和退化感知超分辨率网络组成,结构如下图所示: 3.2.1 退化表征学习退化表征学习其实就是通过基于对比学习的一个网络来实现的。对比学习需要正样本和负样本,所以我们要先假设在同样的图像中退化方式是相同的,在不同的图像中退化方式是不同的。 整个的训练过程的简要表述如下: 现有的对比学习的方法中强调有一个蕴含丰富(具有多样性的)负样本是对表征学习直观重要的吗,所以本文需要构建一个有丰富变化信息的队列来作为负样本。具体做法是,在训练期间,随机挑选B张低分辨率的图像(也就是有B种不同退化方式的图像,因为前面我们已经假设不同的图像的退化方式不同)然后随机的从每一张图中裁剪出两个图像块,然后这总共2B个图像块被编码成2B个图像表征,如下: Nqueue表示在当前这个队列样本中负样本的数量,这个公式和前面的式子没有本质上的区别,只是符号表示根据本文的实际情况进行了更换。 3.2.2 退化感知超分辨率网络退化感知超分辨率的网络结构如下:
从这个代码里看就很清晰了,self.kennel完成的就是从退化表征向量生成卷积核的任务,生成的卷积核还是个一维的,又通过.view给reshape成了一个二维的卷积核,然后通过F.conv2d这个函数来利用刚刚生成的卷积核,通过选择groups来完成深度卷积。底下这里是通过self.ca来生成一个向量的,但是代码中并没有用全连接,CA_layer直接使用1x1的卷积操作来替代全连接层,直接生成一个二维的权值,所以就可以直接与原图像进行相乘。至此,两个结构的疑问就在代码中被解决了。 现在已有的方法通常是把图像的特征喂到CNN中去学习退化表示并且进行超分辨率,但是由于退化表示和图像特征之间的联系不是很大,直接这样学习的效果并不好。所以本文不同于现存的方法,而是基于特征表示通过预测卷积核(DA conv上面的分支)和调制系数(DA conv下面的分支,类似注意力的结构)来完成超分辨任务,所以效果比较好。 4.实验4.1 数据集和实现细节本文是根据3.1节中的退化表达式生成LR图像用来训练和测试。训练集来自DIV2K的800张图像和Flickr2K2650张图像,验证集来自benchmark数据集。高斯核的尺寸固定在21x21. 4.2 基于无噪声和各向同性的高斯核的实验基于无噪声和各向同性的高斯核的退化方式来做的实验在本文是作为消融实验的,因为这样就可以把本文的DASR和RCAN,SRMD,MZSR,IKC和RCAN作比较,因为这些现在有的最好的SR网络都使用了各向同性的高斯核作为退化方式(不加噪声)。所以这部分所介绍的本文做的实验的退化方式都是基于各向同性的高斯核和无噪声的。 退化表征学习为了证明退化表征学习的有效性,本文引入了一个本文网络的变体(Model1),这个Model1去掉了本文整体结构的表征学习部分(只是去掉了对比学习的过程,结构并没有去掉),在训练时也就不需要Ldegrad,就直接训练超分辨率网络500个epoch。把本文的完整结构记作Model4,那么首先就是要对比Model1和Model4.本文使用B100数据集通过不同的退化方式得到低分辨率图像输入Model1和Model4得到退化表示,使用T-SNE方法可视化数据,如下图: 退化感知卷积DACONV这里的消融实验是为了证明本文提出的退化感知卷积结构的有效性。作者又用vanilla卷积代替DA卷积构建了Model2,去掉通道级模块分支构建了Model3(去掉了DA卷积的上半部分),比较结果如下: 盲超分辨VS非盲超分辨为了看DASR网络的性能还能否提高,作者还试着都让DASR进行非盲超分辨。做法就是将退化编码网络用5个全连接层代替,然后直接用退化表示的groundtruth对网络进行训练,这类似个分类的过程,就是不采用对比学习的过程,用groundtruth对网络进行监督,这样的模型记作Model5,作者训练了500个epoches,这个模型达到了一个最好的效果,从上一张表能看出PSNR是最高的。综上,Model4达到了盲分辨率的最高性能,Model5达到了非盲超分辨的最高性能。 退化表示研究这一部分做的消融实验室为了证明本文的退化表示对不同图像内容的有效性(不同的图像内容有相同的退化方式时能不能有相同的性能,保持较高的鲁棒性)。结果如下图: 和之前网络的比较
4.3 基于有噪声和各向不同性的高斯核的实验退化表示研究本文作者又做了一些实验,使用不同的高斯核和增加不同的噪音,同样经过T-SNE数据可视化方法,得到下面的结果: 和之前网络的比较4.4 在真实场景下退化的实验 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/27 6:25:00- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |