文献精读(第二十七篇)——基于残差密集网络的图像超分辨率(RDN)「建议收藏」

文献精读(第二十七篇)——基于残差密集网络的图像超分辨率(RDN)「建议收藏」一、文献梳理1、研究背景传统网络特点:增加了网络深度,使用残差,梯度裁剪等方法降低训练难度;使用memoryblock记忆块建立MeMNet,希望能够保存底层,浅层的特征。传统网络问题:不能充分使用每层的图片信息,大部分方法没有使用层次特征2、实验1)数据集设置训练数据集:DIV2K 训练数据增强:随机水平或垂直翻转90度 测试数据集:Set5、Set14、BSD100自然场景图像、Urban100城市场景图像2)训练集预处理BI方式:双线性插值、缩小比率2,8,16

大家好,又见面了,我是你们的朋友全栈君。

一、文献梳理

1、研究背景

传统网络特点:增加了网络深度,使用残差,梯度裁剪等方法降低训练难度;使用memory block记忆块建立MeMNet,希望能够保存底层,浅层的特征。

传统网络问题:不能充分使用每层的图片信息,大部分方法没有使用层次特征

2、实验

1)数据集设置

  • 训练数据集:DIV2K
  • 训练数据增强:随机水平或垂直翻转90度
  • 测试数据集:Set5、Set14、BSD100自然场景图像、Urban100城市场景图像

2)训练集预处理

  • BI方式:双线性插值、缩小比率2,8,16
  • BD方式:先对原图进行高斯滤波,高斯核为7*7,标准差为1.6,然后再下采样
  • DN方式:双线性插值加30%高斯噪声

3)结果

(1)模型分析:对其中的模块进行对比

文献精读(第二十七篇)——基于残差密集网络的图像超分辨率(RDN)「建议收藏」

(2) 其他模型比较

文献精读(第二十七篇)——基于残差密集网络的图像超分辨率(RDN)「建议收藏」

(3)鲁棒性分析(通过预处理BN或DN加入噪音后,再次对图像进行重建对比)

  • RDN与其他现金方法相比,能恢复更锐利的边缘与更精细的细节,其层次特征具有鲁棒性。

文献精读(第二十七篇)——基于残差密集网络的图像超分辨率(RDN)「建议收藏」

1)模型意义

  • 提出一个统一的框架,它通过不同的退化模型使用残差密集网络(RDB)生成高质量的超分辨率图像,网络充分利用原始低分辨率图像的所有层次特征
  • 提出残差密集模块(RDB),它不仅可以通过连续记忆(CM)机制从一个RDB读取状态,还可以通过局部密集连接充分利用其中的所有层。然后通过局部特征融合(LFF)自适应地保留累积的特征。
  • 提出全局特征融合以自适应地融合LR空间中所有RDB的分层特征。利用全局残差学习,将浅层特征和深层特征结合在一起,从原始LR图像中得到全局密集特征。

二、基础准备

1、局部特征

局部特征则是从图像局部区域中抽取的特征,包括边缘、角点、线、曲线和特别属性区域。常见的局部特征包括角点类和区域类两大类描述方式、局部图像特征具有在图像中蕴含数量丰富、特征间相关度小、遮挡情况下不会因为部分特征的消失而影响其他特征的检测和欺骗等特点。

2、全局特征

全局特征是指图像的整体属性,常见的全局特征包括颜色特征、纹理特征和形状特征,比如强度直方图等。由于是像素级的底层可是特征。因此,全局特征具有良好的不变性、计算简单、表示直观等特点,但特征维度较高、计算量大是其缺点。此外,全局特征描述不适用图像混叠和有遮挡的情况。

3、超分中的残差网络(详见本人博客)

残差学习有效缓解了随着网络深度增加引发的梯度消失现象,使得提高网络深度,还能保持很好的性能与效率。残差学习很适合做图像超分,因为低质量与高质量图像之间相似度很高,而他们的参数其实很稀疏,即残差学习使网络所要学习的东西变少了。

4、密集连接网络

每个层从前面的所有层获得额外的输入,并将自己的特征映射投递到后续的所有层使用级联方式;它每一层与前面所有层在通道维度上连接(不是相加是合并)在一起,实现特征的复用。密集连接有效的缓解了梯度消失问题,加强了特征传播,鼓励特征复用,减少了参数量。

三、论文重点

1、创新

  • RDB由密集连接层和局部特征融合构成
  • 一个RDB的输出作为下一个RDB的输入,产生一种连续的状态(RDB串行)
  • RDB中的每一个卷积层都可以直接访问后续所有层,并传递需要保存的信息

2、网络结构

网络的基本流程是在局部特征融合(LFF)完成之后,网络会进行全局特融合(GFF),将每一个RDB的输出结果与最初的卷积提出的浅层结果进行特征融合。

文献精读(第二十七篇)——基于残差密集网络的图像超分辨率(RDN)「建议收藏」

特征提取网络:前2个卷积层,用于浅层特征提取

残差密集模块:局部特征融合,局部特征学习(红色部分)

密集特征融合:局部特征融合,局部特征学习(concat到上采样之前)

上采样:sub-pixel,在网络的最后利用上采样和卷积实现图像的放大

3、公式表达

         文献精读(第二十七篇)——基于残差密集网络的图像超分辨率(RDN)「建议收藏」文献精读(第二十七篇)——基于残差密集网络的图像超分辨率(RDN)「建议收藏」

4、RDB模块

  • d-th RDB:\sigma \left ( ReLu\right )W_{d,c}(卷积层的权重),F_{b,c}=\sigma \left ( W_{d,c}\left [F_{d-1},F_{d,1},F_{d2}...,F_{d,c},...F_{d,C}\right ]\right )
  • LFF:1*1卷积处理部分
  • LRF:F_{d}=F_{d-1}+F_{d,LF}

文献精读(第二十七篇)——基于残差密集网络的图像超分辨率(RDN)「建议收藏」

5、算法流程

  • DFF(密集特征融合):GFF(全局特征融合)+GRL(全局特征学习)
  • GFF:将D个RDB输出结果concat起来,1*1卷积层用于自适应融合不同层的特征,3*3卷积层进一步提取特征
  • GRL:将浅层特征与最高层的全局融合特征进行残差连结,最后将特征送入上采样中,最终得到放大后的图片输出。

补充:

Contigous memory(连续存储机制):意思是dense connection,连续的连接保证了连续的低级和高级特征信息存储和记忆,每一个RDB模块的输出结果,concate上一个RDB模块 输出,以及所有的卷积层之间的信息,其包括全局信息也包括层级信息,保证了信息不丢失。

6、算法对比

1)RDB与DenseNet区别

  • RDN是针对分辨率重构的,DesNet是用于高级CV任务的
  • RDB中去掉了DenseNet中的BN和pooling模块
  • DenseNet中每一个dense block的输出是concat起来的,而RDB中的利用局部特征融合将RDB中各层信息都进行了融合
  • RDB利用全局特征融合将各个模块中的信息都concat起来,并利用了最开始的特征,DenseNet忽略了层次特征(RDN的连接更密集)

2)RDB与SRDenseNet区别

文献精读(第二十七篇)——基于残差密集网络的图像超分辨率(RDN)「建议收藏」

  • 加入Contigous memory,使先前的RDB模块和 当前的模块信息直接融合
  • 利用LFF,RDB模块实现更大的增长率
  • RDB中LRL的应用增加了信息和梯度的流动
  • RDB内部没有密集连接,而是使用GFF与GRL
  • RDB使用L1 loss,SRDenseNet L2 loss

3)RDB与MemNet区别

文献精读(第二十七篇)——基于残差密集网络的图像超分辨率(RDN)「建议收藏」

  • MemNet需要对原图使用双线性插值对低分辨率图像进行上采样。RDN直接使用低分辨率图像减少了计算量增加了效率
  • MemNet中包含递归单元和门限单元模块,不接受先前模块的输入,而RDB的各个模块之间是有信息交流的
  • MemNet不能完全从原始的低分辨输入中提取层次特征,而RDN利用GRL将所有的信息都利用起来
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/151247.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 〖教程〗Ladon 0day通用执行命令DLL生成器-MS17010演示[通俗易懂]

    〖教程〗Ladon 0day通用执行命令DLL生成器-MS17010演示[通俗易懂]Ladon8.9更新功能20210920[+]CmdDllWindows0day漏洞通用DLL注入生成器,生成的DLL仅5KB,非常适合0day加载2021.9.15[u]webscanCS保留[u]CmdDll去除黑框2021.9.14[+]CVE-2021-40444MicrosoftMSHTML远程代码执行漏洞,Office文档利用模块影响版本:包括Windows7/8/8.1/10,WindowsServer2008/2008R2/2012/2012R2/2016

    2022年5月20日
    53
  • 一个Scrapy爬虫实例

    一个Scrapy爬虫实例目录Scrapy是啥Scrapy的安装实例:爬取美剧天堂new100:(1)创建工程:(2) 创建爬虫程序(3) 编辑爬虫(4)设置item模板:(5) 设置配置文件(6)设置数据处理脚本:(7)运行爬虫Scrapy是啥scrapy是一个使用python编写的开源网络爬虫框架。这里的框架实际上就是应用程序的骨架,是一个半成品,框架能够保证程序结构风格统一。Scrapy的安装pipinstallScrapy。但在此之前要先安装几个包:在cmd中运行以下语句:(1) pipinstallwh

    2022年6月26日
    29
  • 分布式事务 java代码_Java分布式事务概念与实现示例[通俗易懂]

    分布式事务 java代码_Java分布式事务概念与实现示例[通俗易懂]在java中有如下三种事务,简单的JDBC级的事务JTA-在EJB环境下,用户得到事务并进行控制CMP-完全由容器控制事务,用户通过Bean配置文件来定义事务行为二三种都支持分布式事务,但只支持Java环境下的分布式事务。下面讨论如何在Java程序里实现分布式事务,即在同一个事务里访问多个数据源。实际上就是如何使用JTA.这里假设使用oracle数据库,使用webLogic部署应用,所要做…

    2022年5月8日
    50
  • 【STM32】UART和USART的区别[通俗易懂]

    【STM32】UART和USART的区别[通俗易懂]1、UART:universalasynchronousreceiverandtransmitter通用异步收发器;2、USART:universalsynchronousasynchronousreceiverandtransmitter通用同步异步收发器。1、通用异步收发器:通用异步收发器是一种通用串行数据总线,用于异步通信。该总线双向通信,可以实现全双工传…

    2022年5月19日
    41
  • validation怎么用_什么是确认validation

    validation怎么用_什么是确认validation引入文件环境在jQuery下,所有先要引入jQuery1<%–校验样式–%>2<linkrel=”stylesheet”href=”<%=basePath%>css/validationEngine.jquery.css”>3<%–校验及自定义规则规则–%>4<scripttype=”t…

    2022年10月4日
    7
  • python 列表转字符串_python怎么把列表转化为字符串「建议收藏」

    python 列表转字符串_python怎么把列表转化为字符串「建议收藏」python列表中的使用str将所有值转换为字符串,以及使用join方法将列表拼接成一个字符串。Pythonjoin()方法用于将序列中的元素以指定的字符连接生成一个新的字符串。(推荐学习:Python视频教程)语法join()方法语法:str.join(sequence)参数sequence–要连接的元素序列。返回值返回通过指定字符连接序列中元素后生成的新字符串。实例>>>ls1=…

    2022年6月4日
    62

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号