当前位置: 首页 > news >正文

超分辨率重建——2022冠军RLFN网络推理测试(详细图文教程)

💪 专业从事且热爱图像处理,图像处理专栏更新如下👇:
📝《图像去噪》
📝《超分辨率重建》
📝《语义分割》
📝《风格迁移》
📝《目标检测》
📝《暗光增强》
📝《模型优化》
📝《模型实战部署》


在这里插入图片描述

RLFN方法由ByteESR团队设计,在NTIRE 2022高效超分辨率挑战赛中获得了赛道(主赛道)第一名和整体性能赛道(子赛道2)第二名。

目录

  • 一、RLFN
    • 1.1 高效提取和融合图像特征
    • 1.2 残差局部特征块
    • 1.3 空间注意力机制
  • 二、源码包准备
  • 三、环境准备
  • 四、测试
    • 4.1 参数修改
    • 4.2 开始测试
    • 4.3 输出结果
  • 五、推理速度
    • 5.1 GPU
    • 5.2 CPU
  • 六、超分效果展示
  • 七、总结

一、RLFN

Residual Local Feature Network (RLFN) 的核心思想是在传统的卷积神经网络(CNN)架构中引入残差局部特征提取模块,以提高超分辨率任务的效率和效果。具体来说,RLFN包含以下几个关键组件:
在这里插入图片描述

1.1 高效提取和融合图像特征

在这里插入图片描述

RFDB(Residual Feature Distillation Block)主要用于高效提取和融合图像特征,以增强图像超分辨率重建的效果。RFDB在RLFN网络结构中的具体作用和功能:

高效特征提取和蒸馏
RFDB模块通过特征蒸馏机制,有效提取和融合图像特征,增强网络的表示能力。特征蒸馏可以理解为对特征进行筛选和精炼,从而保留重要的信息,去除冗余的特征。这一过程有助于提高模型的计算效率,同时保持甚至提升超分辨率图像的质量。

残差连接
RFDB采用了残差连接(Residual Connection),这使得每个RFDB模块在进行特征提取和处理的同时,保留了输入的原始信息。这种设计有助于缓解深层网络中的梯度消失问题,使得网络更容易训练。此外,残差连接还可以帮助保留输入特征的高频信息,从而增强细节恢复能力。

多层次特征融合
RFDB通常包含多个卷积层,每个卷积层都提取不同层次的特征,并通过特征融合机制将这些特征组合在一起。这种多层次特征融合方式可以捕捉到图像的细节信息和全局信息,提升重建图像的质量。

提高模型的非线性表示能力
RFDB中的非线性激活函数(如ReLU)增加了网络的非线性表示能力,使得模型能够更好地处理复杂的图像特征,从而提高超分辨率效果。

1.2 残差局部特征块

通过引入残差连接,使得网络在训练过程中更容易优化,并且可以更好地捕捉图像的细节信息。

在这里插入图片描述

RLFB(Residual Local Feature Block)是RLFN网络中的一个核心模块,旨在高效提取和融合局部特征。RLFB主要通过残差连接和局部特征提取来增强网络的表示能力。RLFB具有以下特点:

残差连接
使用残差连接(Residual Connection)来缓解梯度消失问题,使得深层网络更容易训练。
残差连接还可以帮助保留输入特征信息,增强特征表示的丰富性。

局部特征提取
RLFB通过多个卷积层提取局部特征,以捕捉图像中的细节信息,用于提取局部特征。
每个卷积层后面通常跟随一个非线性激活函数(如ReLU)来增加网络的非线性表示能力。

多尺度特征融合
RLFB使用不同尺度的卷积核来提取多尺度特征,从而更好地捕捉不同尺度的图像信息。

1.3 空间注意力机制

在这里插入图片描述

ESA(Enhanced Spatial Attention)模块用于增强空间注意力机制,以提升网络在重要特征区域的表示能力。ESA通过引入空间注意力机制,使得网络能够更加关注图像中具有高辨识度的区域,从而提高超分辨率效果。

空间注意力机制
通过空间注意力机制,网络能够识别和加强图像中具有重要特征的区域,同时抑制不重要的背景信息。
空间注意力机制通常通过一个全局平均池化层和一个卷积层来实现,以生成注意力图。

增强特征表示
通过应用注意力图,网络可以增强重要特征区域的表示能力,从而提高重建图像的质量。

二、源码包准备

本教程配套源码包获取方法文章末扫码到公众号「视觉研坊」中回复关键字:超分辨率重建RLFN。获取下载链接。我在源码基础上做了一些小改动。

官网源码链接为:RLFN

论文:paper

下载源码包解压后的样子如下:

在这里插入图片描述

三、环境准备

下面是我的测试环境,仅供参考,其它版本也行。

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

四、测试

4.1 参数修改

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

4.2 开始测试

在终端输入下面命令进行测试:

python test_demo.py

在这里插入图片描述

4.3 输出结果

测试结果保存到RLFN\result_images\DIV2K_test_LR_results路径下:

在这里插入图片描述

五、推理速度

5.1 GPU

GPU测试环境:Nvidia GeForce RTX 3050,测试图片120*90,平均推理时间:4.88ms/fps。

在这里插入图片描述

5.2 CPU

测试环境:12th Gen Intel® Core™ i7-12700H 2.30 GHz,测试图片120*90,推理速度:63.6ms/fps。

在这里插入图片描述

六、超分效果展示

下面左图为bicubic上采样4倍结果,中间为原图,右图为RLFN网络超分4倍结果图。

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

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

下面测试集为官网自带的,左图为bicubic上采样4倍结果,右图为RLFN网络超分4倍结果图。

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

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

七、总结

以上就是2022超分冠军RLFN网络推理测试的详细过程,展示了多场景超分效果,供学者参考。训练代码作者没有开源,可以自己复现。

感谢您阅读到最后!😊总结不易,多多支持呀🌹 点赞👍收藏⭐评论✍️,您的三连是我持续更新的动力💖

关注公众号「视觉研坊」,获取干货教程、实战案例、技术解答、行业资讯!

相关文章:

超分辨率重建——2022冠军RLFN网络推理测试(详细图文教程)

💪 专业从事且热爱图像处理,图像处理专栏更新如下👇: 📝《图像去噪》 📝《超分辨率重建》 📝《语义分割》 📝《风格迁移》 📝《目标检测》 📝《暗光增强》 &a…...

国际荐酒师香港协会受邀参加2024年美国独立日庆祝活动

国际荐酒师(香港)协会受邀参加2024年美国独立日庆祝活动促进世界酒中国菜的全球化发展 2024年6月18日,国际荐酒师(香港)协会大中华区驻广州办事处荣幸地接受了美国驻广州总领事馆 Nicholas Burns大使和Lisa Heller总领…...

(微服务实战)聚合支付系统商户线上聚合收银台接口设计

1 概述 聚合支付收款分为线上和线下业务场景,本文中的商户收银台接口设计主要是指线上业务场景,线下业务场景聚合收款方式后续会进行单独设计和分析。 主流的线上支付渠道有微信支付,支付宝支付,云闪付。这三种支付渠道都有各自…...

【漏洞复现】CRMEB开源电商系统 /api/products SQL注入漏洞(CVE-2024-36837)

0x01 产品简介 CRMEB开源电商系统是一款由西安众邦网络科技有限公司打造的全栈式电商解决方案,旨在为开发者和商家提供高性能、智能化的电商平台服务。该系统集成了CRM(客户关系管理)、ERP(企业资源规划)和EB(电子商务)的功能,通过深度结合这些功能&…...

摄像头图像矫正的表格生成方法

1.设置单元格高宽 点击表格左上角 的 小三角 列宽: HOME -> Rows and Columns -> Column Width 5 CM 行高: HOME -> Rows and Columns -> Row Height 5 CM 2.设置 条件格式 HOME -> Conditional Formatting-> Manager Rules 点击 左上方 New Rule…...

【Arc gis】Arc gis出现ERROR 999999问题的解决办法

地址:ArcGIS中ERROR 999999报错Configuration RasterCommander ImageServer can not be started解决_投影栅格失败error999999-CSDN博客...

优化 Flutter 应用开发:探索 ViewModel 的威力

介绍 1.1 什么是 ViewModel? ViewModel,顾名思义,就是视图的模型。在 Flutter 中,ViewModel 是一种用于管理视图状态和业务逻辑的重要概念。它承载了应用程序的核心功能,像是一个精心设计的控制中心,负责…...

Android开发系列(四)Jetpack Compose之Button

在Jetpack Compose中,Button是一个常用的用户界面组件,用于执行某些操作或触发某些事件。Button控件是可触摸的,并且通常会显示一个文本或图标来表示其功能。 要在Jetpack Compose中创建一个Button,可以使用Button()函数&#xf…...

Java17 --- RabbitMQ之插件使用

目录 一、Federation插件 1.1、运行两个rabbitmq实例 1.2、启用插件 1.3、在下游端点添加上游端点 1.4、创建策略 1.6、测试 二、联邦队列 2.1、创建策略 2.2、创建交换机与队列 2.2.1、创建52000的队列与交换机 2.2.2、创建62000的队列 三、Shovel 3.1、启…...

6.18总结

省赛排位赛2&#xff1a; 省赛排名赛2 - Virtual Judge 思路&#xff1a; 设两个方程直接解出来就行 代码&#xff1a; #include<bits/stdc.h> using namespace std; int n, m; int main() {int n, m;int ans1, ans2;cin >> n >> m;ans1 n - (-3 sqr…...

【ARM Cache 及 MMU 系列文章 1.4 -- 如何判断 L3 Cache 是否实现?】

请阅读【ARM Cache 及 MMU/MPU 系列文章专栏导读】 及【嵌入式开发学习必备专栏】 文章目录 Cluster Configuration Register代码实现什么是Single-Threaded Core?什么是PE(Processor Execution units)?Single-Threaded Core与PE的关系对比多线程(Multithreading)Cluster…...

打印mybatis的sql日志

1、application.xml: logging.level.com.xxx.xxx.daodebug2、log4j2.xml: <Logger name"com.xxx.xxx.dao" level"debug" additivity"true" />...

QT day4(对话框 事件机制)

1&#xff1a;思维导图 2&#xff1a; #include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this);ui->setupUi(this);//去除头部this->setWindowFlag(Qt::Frameles…...

序列化与反序列化漏洞实例

实验环境&#xff1a; 本次的序列化与反序列化漏洞为2021年强网杯上的一道比赛题目&#xff0c;我使用phpstudy集成环境将其测试环境搭建在了本地&#xff0c;如下。涉及的几个页面php为&#xff1a; index.php function.php myclass.php index.php : <?php // inde…...

6、while循环 - 习题解析

目录 解析部分&#xff1a;分支练习1244. 请问一个正整数能够整除几次2问题描述解题思路代码实现代码解析 1062. 求落地次数问题描述解题思路代码实现代码解析 1254. 求车速问题描述解题思路代码实现代码解析 1261. 韩信点兵问题描述解题思路代码实现代码解析 解析部分&#xf…...

ReentrantLock可重入锁

可重⼊锁&#xff0c;这个锁可以被线程多次重复进⼊进⾏获取操作。 ReentantLock继承接⼝Lock并实现了接⼝中定义的⽅法&#xff0c;除了能完成synchronized所能完成的所有⼯作 外&#xff0c;还提供了诸如可响应中断锁、可轮询锁请求、定时锁等避免多线程死锁的⽅法。 在并发量…...

如何秒杀系统架构设计

原文路径:https://learn.lianglianglee.com/%e4%b8%93%e6%a0%8f/%e5%a6%82%e4%bd%95%e8%ae%be%e8%ae%a1%e4%b8%80%e4%b8%aa%e7%a7%92%e6%9d%80%e7%b3%bb%e7%bb%9f/00%20%e5%bc%80%e7%af%87%e8%af%8d%20%e7%a7%92%e6%9d%80%e7%b3%bb%e7%bb%9f%e6%9e%b6%e6%9e%84%e8%ae%be%e8%ae%…...

深度神经网络——什么是降维?

引言 什么是降维&#xff1f; 降维是用于降低数据集维度的过程&#xff0c;采用许多特征并将它们表示为更少的特征。 例如&#xff0c;降维可用于将二十个特征的数据集减少到仅有几个特征。 降维通常用于无监督学习任务 降维是一个用于降低数据集维度的过程&#xff0c;采用许…...

SpringMVC—RequestMapping注解

一、RequestMapping注解 RequestMapping注解&#xff1a;是Spring MVC框架中的一个控制器映射注解&#xff0c;用于将请求映射到相应的处理方法上&#xff0c;具体来说&#xff0c;他可以将指定URL的请求绑定到一个特定的方法或类上&#xff0c;从而实现对请求的处理和响应。 …...

Java线程池基本概念

全局和局部线程池 全局线程池 在Spring框架中&#xff0c;全局线程池如ThreadPoolTaskExecutor通常是作为Spring Bean存在的&#xff0c;它们的生命周期由Spring容器管理。当Spring容器关闭时&#xff0c;这些线程池也会被适当地清理和关闭。因此&#xff0c;开发者通常不需要手…...

web vue 项目 Docker化部署

Web 项目 Docker 化部署详细教程 目录 Web 项目 Docker 化部署概述Dockerfile 详解 构建阶段生产阶段 构建和运行 Docker 镜像 1. Web 项目 Docker 化部署概述 Docker 化部署的主要步骤分为以下几个阶段&#xff1a; 构建阶段&#xff08;Build Stage&#xff09;&#xff1a…...

利用ngx_stream_return_module构建简易 TCP/UDP 响应网关

一、模块概述 ngx_stream_return_module 提供了一个极简的指令&#xff1a; return <value>;在收到客户端连接后&#xff0c;立即将 <value> 写回并关闭连接。<value> 支持内嵌文本和内置变量&#xff08;如 $time_iso8601、$remote_addr 等&#xff09;&a…...

css实现圆环展示百分比,根据值动态展示所占比例

代码如下 <view class""><view class"circle-chart"><view v-if"!!num" class"pie-item" :style"{background: conic-gradient(var(--one-color) 0%,#E9E6F1 ${num}%),}"></view><view v-else …...

基于距离变化能量开销动态调整的WSN低功耗拓扑控制开销算法matlab仿真

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.算法仿真参数 5.算法理论概述 6.参考文献 7.完整程序 1.程序功能描述 通过动态调整节点通信的能量开销&#xff0c;平衡网络负载&#xff0c;延长WSN生命周期。具体通过建立基于距离的能量消耗模型&am…...

解锁数据库简洁之道:FastAPI与SQLModel实战指南

在构建现代Web应用程序时&#xff0c;与数据库的交互无疑是核心环节。虽然传统的数据库操作方式&#xff08;如直接编写SQL语句与psycopg2交互&#xff09;赋予了我们精细的控制权&#xff0c;但在面对日益复杂的业务逻辑和快速迭代的需求时&#xff0c;这种方式的开发效率和可…...

Golang dig框架与GraphQL的完美结合

将 Go 的 Dig 依赖注入框架与 GraphQL 结合使用&#xff0c;可以显著提升应用程序的可维护性、可测试性以及灵活性。 Dig 是一个强大的依赖注入容器&#xff0c;能够帮助开发者更好地管理复杂的依赖关系&#xff0c;而 GraphQL 则是一种用于 API 的查询语言&#xff0c;能够提…...

【服务器压力测试】本地PC电脑作为服务器运行时出现卡顿和资源紧张(Windows/Linux)

要让本地PC电脑作为服务器运行时出现卡顿和资源紧张的情况&#xff0c;可以通过以下几种方式模拟或触发&#xff1a; 1. 增加CPU负载 运行大量计算密集型任务&#xff0c;例如&#xff1a; 使用多线程循环执行复杂计算&#xff08;如数学运算、加密解密等&#xff09;。运行图…...

成都鼎讯硬核科技!雷达目标与干扰模拟器,以卓越性能制胜电磁频谱战

在现代战争中&#xff0c;电磁频谱已成为继陆、海、空、天之后的 “第五维战场”&#xff0c;雷达作为电磁频谱领域的关键装备&#xff0c;其干扰与抗干扰能力的较量&#xff0c;直接影响着战争的胜负走向。由成都鼎讯科技匠心打造的雷达目标与干扰模拟器&#xff0c;凭借数字射…...

mysql已经安装,但是通过rpm -q 没有找mysql相关的已安装包

文章目录 现象&#xff1a;mysql已经安装&#xff0c;但是通过rpm -q 没有找mysql相关的已安装包遇到 rpm 命令找不到已经安装的 MySQL 包时&#xff0c;可能是因为以下几个原因&#xff1a;1.MySQL 不是通过 RPM 包安装的2.RPM 数据库损坏3.使用了不同的包名或路径4.使用其他包…...

学校时钟系统,标准考场时钟系统,AI亮相2025高考,赛思时钟系统为教育公平筑起“精准防线”

2025年#高考 将在近日拉开帷幕&#xff0c;#AI 监考一度冲上热搜。当AI深度融入高考&#xff0c;#时间同步 不再是辅助功能&#xff0c;而是决定AI监考系统成败的“生命线”。 AI亮相2025高考&#xff0c;40种异常行为0.5秒精准识别 2025年高考即将拉开帷幕&#xff0c;江西、…...