【基于混合激活残差块:超分】

news2024/12/26 11:22:22

SRNHARB: A deep light-weight image super resolution network using hybrid activation residual blocks

(SRNHARB:一种基于混合激活残差块的深度轻量图像超分辨率网络)

在所有基于图像的应用中,特别是在计算机视觉应用中,图像的质量是非常关键的。因此,增强所获取图像的质量的轻量高性能图像超分辨率方案的设计对于这些应用的令人满意的功能是至关重要的。大多数图像超分辨率方案的设计都忽略了图像负值特征的提取和处理。本文提出了一种新的低权重残差块,它能有效地提取和处理正负值特征。这个新的残差块能够产生更丰富的特征集合,以便使用这样的块的集合来改进网络的超分辨率性能。使用新的残差块的网络被示出为产生上级现有的使用其他类型的残差块的轻量级超分辨率网络的性能。

介绍

图像的质量在许多应用程序中,如医疗诊断水下成像和自主车辆是非常重要的。然而,通过摄像机的图像退化的模糊和将采样操作。图像超分辨率,目的是提高质量的低分辨率图像通过增加其空间分辨率。图像超分辨率是一个不适定问题,因此,从理论上讲,对于一个给定的低分辨率图像,它有无数的高分辨率图像作为解决这一问题。

最初,图像超分辨率的问题已经用传统的信号处理方法解决。基于内插的算法是一种这样的方案,其中通过提出迭代多尺度算法来抑制由上采样操作产生的图像的高频区域周围的混叠伪影。在该算法的每一次迭代中,高分辨率图像的像素由从先前迭代获得的所有内插图像的最顶部纹理相关像素重构。在该算法中,用于确定最顶部纹理相关像素的搜索大小随着迭代的进行而减小,以便重建具有精细细节的区域。Jiang等人提出的方法是另一种基于插值的方案,其中通过对低分辨率图像进行双三次插值来获得高分辨率图像的低频内容,而通过使用Gabor空间中的特征距离的纹理合成方法来产生其高频内容。该方案还使用基于边缘的抗锯齿方法作为后处理步骤,以恢复被纹理合成方法损坏的高频分量。尽管传统的图像超分辨率方法已经以合理的计算复杂度提供了良好的结果,但是它们的性能能力受限于在这些方法中使用的手工特征的选择。然而,鉴于深度学习方法的数据驱动特征生成能力,它们在超分辨率性能方面表现出了显著的改进。基于深度神经网络的图像超分辨率方案使用低分辨率和高分辨率图像空间之间的端到端映射。深度网络存在的问题之一是它们遭受梯度消失问题,如果这个问题没有得到充分的处理,网络就不能被令人满意地训练,从而导致较差的性能。解决梯度消失问题最常用的机制是在深度网络中引入残差学习。存在两种类型的残差学习,全局残差学习和局部残差学习。在深度超分辨率神经网络中,通过使用退化的输入低分辨率图像和估计的输出高分辨率图像之间的长跳跃连接来建立全局残差学习。超分辨率网络VDSR和LapSRN是在其架构中仅采用全局残差学习的网络的示例。然而,结合全局残差学习使用局部残差学习进一步促进了网络的训练,并且导致甚至上级仅使用全局残差学习的网络所提供的性能。建立局部跳跃连接的网络的每一段被称为残差块。存在许多采用局部残差学习的超分辨率网络,它们在残差块的设计方面彼此不同。超分辨率网络EDSR是使用这种残差块的首要网络,每个残差块由通过ReLU激活分离的两个卷积层组成网络RCAN采用所谓的残留信道注意块的级联,每个块由两个卷积层组成,其中第一卷积层之后是ReLU激活,第二卷积层之后是挤压和激励模块。挤压和激励模块根据其对超分辨率性能的影响对第二卷积层的输出的每个通道进行加权。
网络CARN使用所谓的增强残差块的级联。该网络中的剩余块由两个群卷积层组成,其中第一个群卷积层之后是ReLU激活,第二个群卷积层之后是ReLU激活和逐点卷积层。在增强的残差块的架构中使用组卷积运算导致在参数和运算的数量方面显著降低网络的复杂性。
图像超分辨率的任务本质上是低分辨率输入图像和地面真实图像之间的非线性映射。因此,在残差块中的两个卷积运算之间使用ReLU激活赋予网络必要的非线性。它还将特征图中包含的密集信息集分解为稀疏稳健信息集,因此简化了模型的学习过程。然而,由ReLU执行的特征校正导致丢失与负值特征相关联的信息,否则这些信息可能对图像超分辨率的任务有用。为了解决这个问题,可以采用允许负值特征通过的其他非线性激活,例如参数ReLU(PReLU)或ELU。即使使用PReLU或ELU也会带来稀疏性,但由这些激活产生的特征图并不像使用ReLU产生的特征图那样稀疏。即使使用PReLU或ELU也会带来稀疏性,但由这些激活产生的特征图并不像使用ReLU产生的特征图那样稀疏。本文提出了一种新的残差块,其中块输入的正、负值特征分别具有足够的稀疏性。具体地,通过分别使用ReLU以及反转和求反的ReLU激活,将到块的输入映射分解为正值特征和负值特征,并且通过群卷积在两个并行流中分别处理。因此,在这种处理特征图的机制中,各个流能够保持通过使用单个激活单元所提供的稀疏性,并且群卷积的使用允许控制由于处理正值和负值特征而不是仅处理正值特征所导致的计算复杂度的增加。
虽然采用大量参数并因此需要大量运算的深度超分辨率网络提供了非常高的性能,但是低功率和轻质的要求排除了它们在许多现实生活应用中的使用。另一方面,如果通过使用少量参数和消耗少量算术运算来将超分辨率网络设计为轻量的,则它可以用于许多现实生活应用,例如智能电话、机器人和智能车辆。在本文中,我们特别注意设计所提出的残差块,以生成丰富的特征图集,同时保持网络复杂度尽可能低。因此,采用所提出的残差块的超分辨率网络可以被部署到涉及低功率和轻量要求的许多情形。

相关工作

SRCNN是用于执行图像超分辨率任务的首要的基于神经网络的架构。该网络使用级联的三个卷积层,以便将内插的低分辨率图像映射到地面实况图像。该卷积神经网络是一个超轻量网络,但是其表示能力在提供令人满意的性能方面是有限的。
超分辨率网络DRRN使用残差块,残差块被递归地用于从低分辨率输入图像获得高质量超分辨率图像。考虑到重复地使用相同的参数集合,该网络能够消耗少量的参数来提供良好的性能。然而,网络所消耗的算术运算的数目仍然太高而不能用于需要低功率消耗的应用中。
受人类和哺乳动物大脑的记忆持久性特征的启发,网络MemNet采用记忆单元来完成图像超分辨率的任务。每个存储器单元在递归框架中使用残余块。使用逐点卷积运算将残差块在各种递归下的输出特征张量自适应地融合在一起,以便提供丰富的特征图集合。内存单元中剩余块的递归使用导致MemNet的算术运算数量显著增加。
方案IMDN、LatticeNet和A2F是通过采用少量参数和消耗少量算术运算来提供高的超分辨率性能的网络的示例。IMDN的超分辨率方案采用被称为渐进细化模块的残差块来执行图像超分辨率的任务。每个渐进细化模块由四个卷积层组成,其中每个卷积操作仅在其输入特征图的部分通道上执行。使用级联和逐点卷积操作来融合四个卷积操作的输出,以便产生块的残余特征。
Luo等人提出的LatticeNet通过使用格型滤波器的结构来构建残差块,称为网络块,用于图像超分辨率的任务。网格块通过将两组三个卷积层互连成网格结构而形成。这些网格块被示出为产生非常丰富的特征图集合,并且因此提供高的超分辨率性能。
Wang等人提出了注意辅助特征(A2F)的思想,并将其应用于图像超分辨率的任务中,开发了一种轻量级的高性能网络。在该网络中,在任何给定层,使用逐点卷积运算将其所有先前层的辅助特征图组合在一起。为了进一步增强组合辅助特征的丰富性,使用挤压和激励操作对它们进行信道关注。最后将注意辅助特征合并到残差块中。
Zhao等人提出了一种轻量级像素注意力网络(PAN)用于图像超分辨率的任务。PAN使用像素关注模块来加权在各个层级获得的特征。与分别产生用于加权特征图的一维和二维图的通道式关注度模块和空间关注度模块不同,像素关注度模块生成并使用三维权重图,即,单独地加权所提取的特征的每个值。利用这种加权特征的机制,PAN能够通过采用少量参数来提供高的超分辨率性能。
Guo等人提出的方案中,引入了一种新的超分辨网络,称为对偶回归网络(DRN)。DRN首先使用级联的残留通道关注块来将降级的低分辨率图像映射到地面实况图像。然后,对估计的高分辨率图像应用跨越卷积运算以将其映射到劣化的低分辨率图像。结果表明,使用二元回归网络可以提高超分辨性能。
Niu等人提出的方案中,引入了整体信道注意网络(HAN)来实现图像超分辨率。该网络将层注意模块应用于各个层次级别的特征地图,以抑制冗余特征并保留最有用的特征。HAN还采用通道式空间注意模块来基于特征的通道间和通道内依赖性来修改特征。结果表明,层注意和通道空间注意模块的使用提高了超分辨率性能。

方法

Proposed residual block

在这里插入图片描述
图1示出了所提出的残差块的架构。如从该图所见,𝐱首先使输入到残差块的特征张量经历卷积运算𝑊1,卷积运算使用64个滤波器,每个滤波器具有3 × 3的核大小,从而产生如下式给出的特征张量𝐮1
请添加图片描述
特征张量𝐮1然后同时通过ReLU以及反转和求反的ReLU激活,分别产生特征张量𝐮2和𝐮3,其由下式给出在这里插入图片描述
从(2)可以看出,特征张量𝐮2和𝐮3分别包含的正值和负值特征𝐮1。因此,𝐮1中的信息被完全保留。特征张量𝐮2和𝐮3可以由卷积层单独处理。然而,这增加了残余块的复杂性。由于我们开发所提出的残差块的主要目的之一是以轻量级设计它,我们将群卷积𝑊2和𝑊3分别应用于特征张量𝐮2和𝐮3,产生特征张量𝐮4和𝐮5,如下式所示:
请添加图片描述
其中每组卷积运算𝑊2和𝑊3中的一个采用两组32个滤波器,每组具有3 × 3的核大小。由于在我们的群卷积中,卷积运算仅在一半输入通道上而不是在所有通道上执行,所以由所提出的残差块采用两个群卷积运算𝑊2和𝑊3的复杂度与采用使用64个滤波器的单个常规卷积运算的复杂度相同。接下来,特征张量𝐮4和𝐮5被连接,并且使所得到的特征张量经历逐点卷积运算𝑊4,从而产生残差特征张量:在这里插入图片描述
其中逐点卷积运算𝑊4采用64个滤波器。最后,将残差特征张量𝐯与块的输入特征张量相加𝐱以获得其输出𝐲。

Network overall architecture

请添加图片描述
图2显示了所提出的图像超分辨率网络的总体架构。从该图中可以看出,在该网络中,低分辨率输入图像𝐗首先经历卷积运算,该卷积运算采用64个滤波器,每个滤波器具有3 × 3的核大小,从而产生特征图𝐔。接下来,使特征张量𝐔经历所提出的残差块的9个单元的级联的操作。每个残差块在不同的抽象层次生成一组特征图。因此,使用密集连接来融合各个残差块的输出导致由残差块生成丰富的特征集合。然而,在残差块之间使用密集连接增加了网络复杂度。为了通过使用密集连接来生成丰富的特征图集合并且同时保持网络复杂度低,我们在每个残差块之前放置使用64个滤波器的逐点卷积运算,以保持要由块处理的特征通道的数量低。从𝐕第9个残差块获得的输出特征张量被馈送到亚像素卷积层,并且其特征图的空间分辨率被增加到地面实况图像的空间分辨率。最后,𝐙使用3个滤波器(每个滤波器的核大小为3 × 3)对在亚像素卷积层的输出端获得的升级特征张量进行卷积运算,以获得𝐑地面真实图像与低分辨率输入图像的双线性插值版本之间的残差信号𝐁。
我们将图1的所提出的残差块称为混合激活残差块(HARB),因为它使用ReLU激活以及反转和求反的ReLU激活,并且将图2的所提出的超分辨率网络称为使用混合激活残差块的超分辨率网络(SRNHARB)

Two-stage network training

为了训练我们的卷积神经网络,我们使用DIV2K数据集的图像。通过从该数据集的800张图像中提取大小为48 × 48的子图像,形成训练集的样本。
请添加图片描述
对于网络的训练,本文考虑了𝓁2范数、𝓁1范数和logcosh三个目标函数。图3显示了代表绝对值、平方值和误差的logcosh值表示估计的高分辨率值和像素的地面真实值之间的差𝑝。从该图可以清楚地看出,由于当𝑒(𝑝)的值小时,绝对函数的斜率大于其它两个函数中的任一个的斜率,因此可以预期使用𝓁1范数目标函数的网络训练将是最快的。然而,由于绝对值函数的梯度在𝑒(𝑝)= 0处不是连续函数,而其它两个函数的梯度是连续函数,因此可以预期,通过基于𝓁2范数或基于logcosh的目标函数可以实现最优解的更好收敛。针对这三个目标函数的特点,我们采用了分两部分训练SRNHARB的策略。最初,使用基于𝓁1范数的目标函数对SRNHARB的权重进行一定次数的迭代更新,然后,通过使用基于𝓁2范数或基于logcosh的目标函数对网络进行微调。优化过程采用随机梯度下降(SGD)技术进行。学习过程以0.1的步长开始,并且在每182,500次迭代之后以因子10减小。权重衰减参数的值为 1 0 − 4 10^{−4} 104,用于执行卷积运算。[20]的方法用于初始化卷积运算的参数。选择数值64作为批量。目标函数从基于𝓁1范数切换到基于𝓁2范数或基于logcosh的迭代次数是547,500,这是经验确定的数字。

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

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

相关文章

软件测试期末

考原题就是爽 软件测试技术 知识点整理 https://wenku.baidu.com/view/524c900f4b2fb4daa58da0116c175f0e7cd11913.html 关键知识点 https://www.cnblogs.com/whylaughing/category/813559.html?page1 边界值法不选择无效数据 边界值分析法的基本思想 选取正好等于&am…

PageObject设计模式,在selenium自动化测试中的运用

PageObject设计模式 Web自动化测试框架(WebTestFramework)是基于Selenium框架且采用PageObject设计模式进行二次开发形成的框架。web测试时,建议强烈推荐使用_谷歌或_火狐浏览器。PageObject设计模式:是将某个页面的所有"元素&#xff…

【网络原理3】TCP连接管理

TCP这种传输层协议必须是有连接的。连接管理,就是TCP当中管理如何建立连接、如何断开连接的方式。 目录 TCP建立连接的方式(三次握手) 合并两次连接之后变成"三次握手" 站在具体发送什么报文的视角,理解三次握手 发送报文之前 第一步:客…

Git - 在主分支上创建分支并提交代码

拉取最新代码 因为当前在 master 分支下,你必须拉取最新代码,保证当前代码与线上同步(最新),执行以下命令: git pull origin master创建分支 目前我们在 master 主分支上,需要执行以下命令&…

【Unity】[入门tips与通用性原则] 一些经验技巧和更好地写出简洁易懂的程序的原则方法

本文将持续间断更新 本文主要面向初级程序员,为了方便Unity开发,有些快捷键的方式和一些通用性的技巧tips等会在这篇博客内持续更新,欢迎点赞收藏 快捷键 Ctrl S ; 快捷保存!闲着没事就来两下!CtrlShif…

CMake基础使用和实战详解

CMake基础使用和实战详解一、CMake简介1.1、cmake 的特点1.2、注意1.3、使用建议二、安装 cmake三、CMake的简单使用3.1、准备工作3.2、开始构建3.3、解释CMakeLists.txt的内容3.4、基本语法规则四、更像样的CMake工程4.1、准备工作4.2、构建4.3、语法解释4.4、修改保存目标二进…

水文监测场景的数据通信规约解析和落地实践

[小 迪 导 读]:江苏云上需要通过云平台接入水文设备来实现水文数据的采集、存储、显示、控制、报警及传输等综合功能。企业介绍江苏云上智联物联科技有限公司是专业从事物联网相关产品与解决方案服务的高科技公司,总部位于美丽的江苏无锡。公司遵循“智联…

linux高级命令之死锁

死锁学习目标能够知道产生死锁的原因1. 死锁的概念死锁: 一直等待对方释放锁的情景就是死锁为了更好的理解死锁,来看一个现实生活的效果图:说明:现实社会中,男女双方一直等待对方先道歉的这种行为就好比是死锁。死锁的结果会造成应用程序的停止响应&…

面试官:你是怎样理解Fiber的

hello,这里是潇晨,今天我们来聊一聊Fiber。不知道大家面试的时候有没有遇到过和react Fiber相关的问题呢,这一类问题比较开放,但也是考察对react源码理解深度的问题,如果面试高级前端岗,恰巧你平时用的是re…

细谈JavaWeb中的Request和Response

文章目录1,Request和Response的概述2,Request对象2.1 Request继承体系2.2 Request获取请求数据2.2.1 获取请求行数据2.2.2 获取请求头数据2.2.3 获取请求体数据2.2.4 获取请求参数的通用方式2.4 请求参数中文乱码问题2.4.1 POST请求解决方案2.4.2 GET请求…

MySQL使用C语言连接

文章目录MySQL使用C语言连接引入库下载库文件在项目中使用库使用库连接数据库下发SQL请求获取查询结果MySQL使用C语言连接 引入库 要使用C语言连接MySQL,需要使用MySQL官网提供的库。 下载库文件 下载库文件 首先,进入MySQL官网,选择DEVEL…

Java代码使用最小二乘法实现线性回归预测

最小二乘法简介最小二乘法是一种在误差估计、不确定度、系统辨识及预测、预报等数据处理诸多学科领域得到广泛应用的数学工具。它通过最小化误差(真实目标对象与拟合目标对象的差)的平方和寻找数据的最佳函数匹配。利用最小二乘法可以简便地求得未知的数…

如何写一个 things3 client

Things3[1] 是一款苹果生态内的任务管理软件,是一家德国公司做的,非常好用。我前后尝试了众多任务管理软件,最终选定 things3,以后有机会会写文章介绍我是如何用 things3 来管理我的日常任务。本文主要介绍欧神写的 tli[2] 工具来…

3D沉浸式体验开发技巧【Three.js】

在本文中,我们将看看如何使用 Three.js 创建一个充满后期效果和微交互的迷你城市。 推荐:将 NSDT场景编辑器 加入你的3D开发工具链。 1、背景介绍 我是一个游戏爱好者。 我一直梦想创建一个交互式迷你城市,使用饱和的颜色,类似于…

Android自动化测试(UiAutomator)——UiObject

本文主要讲解使用UiAutomator的一些技巧,希望对于初学者有一定的帮助 UiObject 1、首先要声明对象 UiObject XXX new UiObject(new Selector) ; 2、其次对对象进行操作 操作类型包括: 执行类:文本输入与清除、点击/长按、拖动/滑动、 …

JAVA JDK 常用工具类和工具方法

目录 Pair与Triple Lists.partition-将一个大集合分成若干 List集合操作的轮子 对象工具Objects 与ObjectUtils 字符串工具 MapUtils Assert断言 switch语句 三目表达式 IOUtils MultiValueMap MultiMap JAVA各个时间类型的转换(LocalDate与Date类型&a…

开源软件AirByte:入湖入仓,数据集成管道

从ETL到ELT就传统的 ETL而言,当我们开始构建数据仓库时,都要先去了解业务流程,明晰业务是如何运转的,数据是如何留痕的。通过收集用户的相关需求,从而去规划设计报表。企业需要进行数仓分域、分层、逻辑建模等一系列操…

Linux下程序调试的方法【GDB】GDB相关命令和基础操作(命令收藏)

目录 1、编译 2、启动gdb调试 2.1 直接运行 2.2 运行gdb后使用run命令 2.3 调试已运行的程序 3、图形界面提示 4、调试命令 1、查看源码 2、运⾏程序/查看运⾏信息 3、设置断点 5、单步/跳步执⾏ 6、分割窗口 7、其他命令 8、相关参数 1、编译 在编译时要加上-g选…

stm32f407探索者开发板(十七)——串口寄存器库函数配置方法

文章目录一、STM32串口常用寄存器和库函数1.1 常用的串口寄存器1.2 串口相关的库函数1.3 状态寄存器(USART_ SR)1.4 数据寄存器(USART_ DR)1.5 波特率寄存器(USART_BRR)二、串口配置一般步骤一、STM32串口常…

java static关键字 万字详解

目录 一、为什么需要static关键字: 二、static关键字概述 : 1.作用 : 2.使用 : 三、static修饰成员变量详解 : 1.特点 : 2.细节 : ①什么时候考虑使用static关键字? ②静态变量和非静态变量的区别? ③关于静态变量的初始化问题 : ④关于静态变…