【计算机视觉】递归神经网络在图像超分的应用Deep Recursive Residual Network for Image Super Resolution

news2025/1/15 6:58:16

DRCN: Deeply-Recursive Convolutional Network for Image Super-Resolution

总结

这篇文章是第一次将之前已有的递归神经网络(Recursive Neural Network)结构应用在图像超分辨率上。为了增加网络的感受野,提高网络性能,引入了深度递归神经网络,递归模块权重共享减少了模型所需参数量,但出现了梯度爆炸/消失问题,又研究出了递归监督和跳跃连接两个扩展办法。
特点:

  1. 递归监督:把每次递归后的特征映射都用于重建目标高分辨率图像HR。由于每次递归都会导致不同的HR预测,因此作者将不同级别的递归产生的所有预测结合起来,以提供更准确的最终预测。每次递归的预测都受到GT监督
  2. 跳跃连接:在SR中,低分辨率图像(输入)和高分辨率图像(输出)在很大程度上共享相同的信息。输入的精确信息在许多向前传递过程中可能会衰减。于是作者将输入和各层的输出连接到重建层,用于图像的恢复。缓解网络记忆负担,网络只需要学习残差
  3. 原始LR图像经过插值上采样后提升分辨率后再进入网络

方法细节

基础模型:

在这里插入图片描述
基底模型由三个子网络组成:嵌入网络embedding netword、推理网络 inference network 和 重建网络reconstruction network。

  • 嵌入网络用于将给定图像表示为特征映射,
  • 推理网络加深网络深度,将嵌入网络的输出特征映射到更高维度。注意推理网络是递归调用的。
  • 重建网络根据推理网络中的最终特征映射生成输出图像。
  • 上图中的input图像是原始LR图像经过插值上采样后的图像。

存在问题:

  • 梯度的消失和爆炸。梯度爆炸是由链式梯度的乘法性质造成的。对于深度递归,可以呈指数增长。梯度消失问题正好与梯度爆炸相反。梯度呈指数级的速度到零向量。因此,梯度爆炸和消失的存在使深度递归网络掌握远距离像素信息间的关系非常困难。
  • 经过多次递归想要保留原始LR信息并不容易。在SR任务中,输出与输入非常相似,所以LR图像的信息非常重要,需要为后续更深的递归层保留输入图像的精确信息。
  • 存在一个寻找最优递归次数的问题。如果递归对于给定的任务来说太深,就需要减少递归的次数。寻找最优数需要训练许多具有不同递归深度的网络。

进阶模型

在这里插入图片描述
图a是文章最终的模型:

  • Recursive-Supervision:监督每层递归,以减轻梯度消失/爆炸的影响。假设在推理层中卷积过程反复使用相同的卷积核,使用相同的重建层来预测每一次递归重建的SR图像。重建层输出D个预测图像,所有预测都在训练期间同时受到监督,这一步在公式中的体现为增加了一部分loss,后面公式中具体再介绍。
      a、将所有D个预测图像通过加权求和来计算最终输出(权重由网络学习得到)。通过递归轻了训练递归网络的困难,通过反向传播将不同预测损失产生的反传梯度求和提供平滑效果,能够有效缓解梯度爆炸或消失。
      b、此外,由于监督能够利用所有中间层的预测信息,因此选择最佳递归次数的重要性降低了。

  • Skip-Connection:对于图像重建任务,输入和输出图像高度相关,所以可以直接通过跳层连接将LR信息直接传输到SR重建层。该做法有两个优点:节约了远距离传输的复杂算力、极大程度的保留了完整的低频信息。

参考文章

超分算法DRCN:Deeply-Recursive Convolutional Network for Image Super-Resolution超分辨率重建

DRRN: Image Super-Resolution via Deep Recursive Residual

总结

作者点明了在图像进入网络之前做插值处理的弊端(增加计算量),提到了在ESPCN超分辨网络中使用的Sub-Pixel策略,这种方法是通过在网络末端做分辨率提升,进而减小了计算量和缓解了网络的记忆负担。

引入全局和局部残差学习。类似于ResNet,引入了残差单元(这也意味着引入了局部残差学习),使得网络运行几层就会进行一次残差学习(这样更有利于网络运行过程中的高频信息重建和保持),同时在最后的输出层也会进行一次大的残差学习。

方法

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

残差递归块

在这里插入图片描述

性能

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

LapSRN: Deep Laplacian Pyramid Networks for Fast and Accurate Super-Resolution

总结

使用拉普拉斯金字塔结构的思想,逐步进行2的幂次的超分,并且结合残差来进行模型预测。
论文的创新点有:

  1. 准确性高。LapSRN使用Charbonnier loss来改善重建质量,可以减少artifacts.
  2. 速度快。与FSRCNN一样,可以在大多数的测试集上可以实时超分。
  3. 逐步重建。模型使用拉普拉斯金字塔的结构,在一次预测的过程中生成多张中间结果,可以作为不同倍数的超分结果。

之前方法的问题:

  1. 一些方法使用预定义好的上采样操作,来将低分辨率输入插值到高分辨率输出再来进行超分。这样会造成增加计算量和产生伪影(increases unnecessary computational cost and often results in visible reconstruction artifacts)。虽然有着FSRCNN使用反卷积和ESPCN使用亚像素卷积来对SRCNN类的方法进行加速,但是由于输入分辨率太高,约束着模型结构的容量,无法学习更为复杂的映射关系。
  2. L2 Loss对噪声敏感,文中说L2 loss产生的图像过于平滑,与人眼感知不符
  3. 多数方法仅用一个上采样获得最终的图片,对于8x很困难
  4. 现有的方法无法产生中间过程,需要针对具有不同期望上采样比例和计算负荷的各种应用来训练各种各样的模型

方法

方法异同对比

在这里插入图片描述

现有方法

在这里插入图片描述

本文方法

  • 绿色表示元素级的加操作,橙色表示递归卷积层,蓝色表示转置卷积
  • 两个模块
    • 特征提取:d层的卷积(提取[level s]分辨率l特征)+1层的反卷积(上采样到[level s+1]更精细分辨率的特征),然后再分两条支路:一条再通过卷积层重建残差图像,一条递归调用d层卷积继续提取[level s+1]分辨率l特征。由于前面d层卷积是在低分辨率上操作的,相比在输入网络前就将图像上采样到高分辨率的方法,运算量大幅减小
    • 上采样:scale为2的转置卷积(反卷积)上采样图像+残差图像,对应位置元素相加
      在这里插入图片描述

递归网络模型框架

在这里插入图片描述

loss: Charbonnier

l2 loss的问题:

  • y ^ s \hat{y}_s y^s是网络预测的level s的HR图像
  • y s y_s ys是GT 的level s的HR图像,从原始高分辨图像通过双三次下采样得到
  • x s x_s xs是低分辨率图像上采样的图像
  • r s r_s rs是leve s的残差图像

文章中说理想的输出高分辨图像由这个公式建模, y s = x s + r s y_s=x_s+r_s ys=xs+rs.
其实我的理解, x s x_s xs r s r_s rs都是网络预测的,应该是网络预测得到level s的HR图像 y ^ s = x s + r s \hat{y}_s=x_s+r_s y^s=xs+rs
所以loss应该写成:
ζ ( y ^ , y ; θ ) = 1 N ∑ i = 1 N ∑ s = 1 L ρ ( y s ( i ) − y ^ s ( i ) ) = 1 N ∑ i = 1 N ∑ s = 1 L ρ ( y s ( i ) − ( x s ( i ) + r s ( i ) ) ) \zeta(\hat{y},y;\theta)=\frac{1}{N}\sum_{i=1}^{N}\sum_{s=1}^{L}\rho(y_s^{(i)}-\hat{y}_s^{(i)})=\frac{1}{N}\sum_{i=1}^{N}\sum_{s=1}^{L}\rho(y_s^{(i)}-(x_s^{(i)}+r_s^{(i)})) ζ(y^,y;θ)=N1i=1Ns=1Lρ(ys(i)y^s(i))=N1i=1Ns=1Lρ(ys(i)(xs(i)+rs(i)))
ρ(x)=sqrt(x22)是Charbonnier penalty function(L1范数的变体),N是每个批次的数量,L是金字塔的级数。在这种损失函数下,金字塔每级的输出都会靠近某个尺度下的HR,因此才可以同时实现2x,4x,8x的超分辨。

Charbonnier loss(也称为L1-Charbonnier loss或Huber loss)是一种用于计算图像重建或图像生成任务中的损失函数。它是由Charbonnier在1989年提出的,用于解决图像处理中的平滑和噪声问题。
Charbonnier loss主要用于替代传统的L2损失(平方差损失),因为L2损失对于离群值(异常值)比较敏感,因为平方会放大误差,容易导致模型对于噪声或细节部分过度平滑化。相比之下,Charbonnier loss对于离群值的响应相对较小,能够更好地保留细节信息。
Charbonnier loss的计算公式如下:
L Charbonnier ( x , y ) = ( x − y ) 2 + ϵ 2 L_{\text{Charbonnier}}(x, y) = \sqrt{(x - y)^2 + \epsilon^2} LCharbonnier(x,y)=(xy)2+ϵ2
其中, x x x是模型生成的输出, y y y是真实的目标值, ϵ \epsilon ϵ是一个小的正数(通常取较小的值,如 1 0 − 3 10^{-3} 103 1 0 − 6 10^{-6} 106),用于避免除以零的情况。
Charbonnier loss计算了预测值和目标值之间的差异,并加上了一个平方项和一个平滑项,从而在保持平滑性的同时对异常值有一定的容忍度。通过最小化Charbonnier loss,模型可以更好地适应噪声、保留细节,并生成更加清晰和真实的图像。
需要注意的是,Charbonnier loss只是损失函数的一种选择,根据具体任务和需求,也可以选择其他类型的损失函数来优化模型。

性能

在这里插入图片描述

消融实验

在这里插入图片描述

可以发现Pyramid 和 Robust loss对性能的影响更显著,残差虽然对性能的影响没有那么显著,但是可以使网络收敛更快,loss更不会抖动。

一个设计是否有用,不光可以比较性能,还可以看:复杂度,收敛速度,训练难度,loss抖动,额外收益等等。

参考文章

经典回顾:LapSRN
[超分][CVPR2017]LapSRN

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Unity脚本常用生命周期

Unity脚本在Unity引擎运行时会经历多个阶段的变化。如创建,初始化,按帧执行,固定执行,绘制,禁用,销毁等等。具体如下图所示: 我们创建脚本时都是默认继承了MonoBehaviour类,而MonoBe…

【文心一言】如何申请获得体验资格,并简单使用它的强大功能

目录 一、文心一言1.1、它能做什么1.2、技术特点1.3、申请方法 二、功能体验2.1、文心一言2.2、写冒泡排序代码 测试代码2.3、画一个爱心2.4、画一个星空 三、申请和通过3.1、申请时间3.2、通过时间 文心一言,国内首个大型人工智能对话模型,发布已经快一…

直播APP开发,协议盘点(五):实时传输协议RTP

简介: 在直播APP开发的过程中,搭建协议实现相应的功能是开发重点之一,而直播APP开发的协议是繁多且复杂的,所以从前段时间开始,我做了直播开发的协议篇,到今天为止我已经分享了四个协议,下面我为…

3DXML在线查看与转换工具

3DXML 由软件巨头达索系统推出,是 3D 设计和工程中的关键文件格式,提供了封装和共享 3D 数据的系统方法。 为了将简单性与丰富的数据表示相结合,3DXML 在与 STEP 等其他文件格式相比时展现出其独特的优势,特别是在数据丰富性和紧凑…

【已解决】Authenticator:无法添加账户请验证激活代码是否正确以及您的设备是否已为此应用启用推送通知

问题: 小米手机的Authenticator添加微软账户扫描QR码提示:无法添加账户请验证激活代码是否正确以及您的设备是否已为此应用启用推送通知 解决办法: 1、在通知管理中允许Authenticator所有通知。 2、在手机设置-账户与同步里找到谷歌基础服…

基于SSM的bbs聊天论坛java jsp贴吧留言板聊天室mysql源代码

本项目为前几天收费帮学妹做的一个项目,Java EE JSP项目,在工作环境中基本使用不到,但是很多学校把这个当作编程入门的项目来做,故分享出本项目供初学者参考。 一、项目描述 基于SSM的bbs聊天论坛 系统有2权限:前台、…

测试框架pytest教程(3)夹具-@pytest.fixture

内置fixture Fixture使用pytest.fixture装饰,pytest有一些内置的fixture 命令可以查看内置fixture pytest --fixtures fixture范围 在pytest中,夹具(fixtures)具有不同的作用范围(scope),用于…

期刊:Computers in Biology and Medicine

文章目录 MedViT: A Robust Vision Transformer for Generalized Medical Image Classification实验结果 A Lie group kernel learning method for medical image classification MedViT: A Robust Vision Transformer for Generalized Medical Image Classification 数据集划分…

胖小酱之三个坚持

关于坚持的励志语录【一】 1、"不耻最后。"即使慢,驰而不息,纵令落后,纵令失败,但一定可以达到他所向往的目标。--鲁迅 2、不经一翻彻骨寒,怎得梅花扑鼻香。--宋帆 3、不要失去信心,只要坚持不懈…

java八股文面试[数据结构]——Map有哪些子类

知识来源: 【23版面试突击】 用过哪些Map类,都有什么区别,HashMap是线程安全的吗?_哔哩哔哩_bilibili https://www.cnblogs.com/bubbleboom/p/12694013.html

静态代理是什么?为何它如此“强大”?

在软件开发领域,代理模式是一种常见的设计模式,而静态代理是代理模式的一种实现方式。它在许多场景中发挥着重要的作用,并被认为是一种强大的工具。本文将深入探讨静态代理的定义、原理以及它所具备的强大之处,带你一窥其魅力所在…

电子器件系列50:开关二极管BAV99

半导体二极管导通时相当于开关闭合(电路接通),截止时相当于开关打开(电路切断),所以二极管可作开关用,常用型号为1N4148。由于半导体二极管具有单向导电的特性,在正偏压下PN结导通&a…

RH1288V3 - 初识物理服务器

如果你拥有一台物理服务器(不是云服务器) 个人比较推荐你用物理服务器,虽然性能会比云要来的差,但是不用每月交钱上。云服务固然方便,但是几个核的性能和一点存储,想做一个动漫网站固然要很多mp4这种影视资源,云服务器…

Docker容器:docker consul的注册与发现及consul-template守护进程

文章目录 一.docker consul的注册与发现介绍1.什么是服务注册与发现2.什么是consul3.consul提供的一些关键特性4.数据流向 二.consul部署1.consul服务器(192.168.198.12)(1)建立 Consul 服务(2)查看集群信息…

RHCE——六、基于https协议的静态网站

RHCE 一、概念解释1、SSL协议分为两层2、SSL协议提供的服务 二、HTTPS安全通信机制1、图解2、过程 三、使用Apachemod_ssl组件的加密认证网站1、概念2、安装3、配置文件4、ssl配置文件的主要参数 四、实验1、搭建httpsssl的加密认证web服务器2、组建含多子目录的网站 一、概念解…

干货分享:仓库管理系统WMS有哪些功能?

阅读本文,您可以了解:1、仓库管理系统WMS是什么;2、仓库管理系统WMS有哪些功能 一、仓库管理系统WMS是什么 仓库管理系统(Warehouse Management System,简称WMS)是一款用于优化和管理仓库功能的软件系统。…

如何撰写骨灰级博士论文?这是史上最全博士论文指导!

博士论文的写作是博士研究生主要要完成的工作。由于存在着较高的难度,较长的写作周期,以及在创新,写作规范,实际及理论意义等方面有着比较高的要求,博士论文的完成一般说来是有相当难度的。一篇好的博士论文不仅是一本…

回归预测 | MATLAB实现FA-ELM萤火虫算法优化极限学习机多输入单输出回归预测(多指标,多图)

回归预测 | MATLAB实现FA-ELM萤火虫算法优化极限学习机多输入单输出回归预测(多指标,多图) 目录 回归预测 | MATLAB实现FA-ELM萤火虫算法优化极限学习机多输入单输出回归预测(多指标,多图)效果一览基本介绍…

AMEYA360代理:罗姆ROHM荣获大陆集团2022年度最佳供应商奖

全球知名半导体制造商ROHM Co., Ltd.(以下简称“罗姆”)荣获Continental AG(以下简称“大陆集团”)“2022年度最佳供应商奖”。 自2008年以来,大陆集团每年都会从客户满意度、品质、供应、参与度和采购情况等不同角度进行年度分析,以表彰在各个层面做出杰…

Java缓存介绍

使用场景 CPU占用:如果你有某些应用需要消耗大量的cpu去计算,比如正则表达式,如果你使用正则表达式比较频繁,而其又占用了很多CPU的话,那你就应该使用缓存将正则表达式的结果给缓存下来。 数据库IO性能:如…