超分辨率重建——BSRN网络训练自己数据集并推理测试(详细图文教程)

news2024/10/7 12:29:35

在这里插入图片描述

目录

  • 一、BSRN网络总结
  • 二、源码包准备
  • 三、环境准备
    • 3.1 报错KeyError: "No object named 'BSRN' found in 'arch' registry!"
    • 3.2 安装basicsr源码包
    • 3.3 参考环境
  • 四、数据集准备
  • 五、训练
    • 5.1 配置文件参数修改
    • 5.2 启动训练
      • 5.2.1 命令方式训练
      • 5.2.2 配置Configuration方式训练
    • 5.3 模型保存
  • 六、测试
    • 6.1 配置文件参数修改
    • 6.2 启动测试
      • 6.2.1 命令方式测试
      • 6.2.2 配置Configuration方式测试
    • 6.3 测试结果
  • 七、推理速度
  • 八、效果展示
  • 九、总结

一、BSRN网络总结

BSRN(Blueprint Separable Residual Network)是一种轻量级的单图像超分辨率网络。它的设计灵感来自于残差特征蒸馏网络 (RFDN)和蓝图可分离卷积 (BSConv)。BSRN采用了与RFDN类似的架构,同时引入了一种更高效的蓝图浅残差块 (blueprint shallow residual block, BSRB),即在RFDN的浅层残差块 (shallow residual block, SRB)中使用BSConv替换标准卷积。

BSRN的特点:

高效性:BSRN-S的一个较小的变体在NTIRE 2022 Efficient SR Challenge的模型复杂度赛道中获得了第一名。

轻量级:BSRN的设计目标是在保持高性能的同时,降低模型的复杂性和计算成本。

注意力机制:BSRN引入了两个注意力模块,即增强空间注意力 (ESA)和对比通道注意力 (CCA),从空间和通道的角度增强模型的能力。

二、源码包准备

本教程配套源码包获取方法文章末扫码到公众号「视觉研坊」中回复关键字:超分辨率重建BSRN。获取下载链接。

官网源码包链接为:BSRN

论文地址:论文

我提供的配套源码包下载解压后的样子如下:

在这里插入图片描述

源码包中提供了100张训练集,还有部分测试集,位于跟目录下的datasets文件夹中,见下:

在这里插入图片描述

三、环境准备

3.1 报错KeyError: “No object named ‘BSRN’ found in ‘arch’ registry!”

如果下载官网源码包后,直接运行测试,可能会报错:
在这里插入图片描述
该问题是由于之前使用pip install basicsr命令安装了basicsr包,对于该网络,必须安装basicsr源码包,具体安装方法见3.2。

3.2 安装basicsr源码包

源码包中根目录下有setup.py文件。

在终端使用安装命令,版本为1.3.4.9:

python setup.py develop

在这里插入图片描述

安装成功的样子如下:

在这里插入图片描述

3.3 参考环境

下面是我自己的训练和测试环境,仅供参考,其它版本也可以:

在这里插入图片描述

四、数据集准备

该网络要求为lmdb格式的数据集,关于lmdb格式数据集的制作,参考我的另外一篇博文:lmdb文件制作

在我提供的源码包中,make_lmdb.py脚本就是制作lmdb数据集的,修改路径后可直接使用。

制作好后的lmdb文件内容如下:

在这里插入图片描述

五、训练

5.1 配置文件参数修改

训练前,需要在train_BSRN_x4.yml配置文件中修改一些参数,常用修改参数见下:

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

5.2 启动训练

下面有两中启动训练方式,任选一种都可以。

5.2.1 命令方式训练

在终端输入命令:

python basicsr/train.py -opt options/train/train_BSRN_x4.yml

在这里插入图片描述

5.2.2 配置Configuration方式训练

先打开Configuration,在其中添加参数。

在这里插入图片描述

在这里插入图片描述

配置好后,直接run就行。

在这里插入图片描述

正常训练过程如下:

在这里插入图片描述

5.3 模型保存

训练的最终结果保存在路径下:BSRN\experiments\

在这里插入图片描述

六、测试

6.1 配置文件参数修改

在benchmark_BSRN_x4.yml配置文件中修改相关测试参数。

修改超分倍数:

在这里插入图片描述

修改测试集路径:

在这里插入图片描述

修改模型路径:

在这里插入图片描述

6.2 启动测试

测试方式也是有两种,任选一种即可。

6.2.1 命令方式测试

在终端输入测试命令:

python basicsr/test.py -opt options/test/benchmark_BSRN_x4.yml

6.2.2 配置Configuration方式测试

配置文件中添加参数:

在这里插入图片描述

输出如下:

在这里插入图片描述

6.3 测试结果

测试结果最终会自动保存到根目录下的BSRN\results文件夹中:

在这里插入图片描述

七、推理速度

GPU测试环境:Nvidia GeForce RTX 3050。

CPU测试环境:12th Gen Intel® Core™ i7-12700H 2.30 GHz。

下面是不同分辨率在不同平台即不同超分倍数下推理耗时:

在这里插入图片描述

八、效果展示

下面展示图中,最左侧图为原图通过OpenCv直接上采样4倍图,中间为BSRN网络超分4倍结果,最右侧为高分辨率原图。

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

九、总结

以上就是超分辨率重建BSRN网络训练自己数据集并推理测试的详细图文教程,超分效果学者自行评价,对比其它网络效果参考我超分辨率重建专栏。

总结不易,多多支持,谢谢!

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

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

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

相关文章

zTasker v1.88.1一键定时自动化任务

软件介绍 zTasker是一款完全免费支持定时、热键或条件触发的方式执行多种自动化任务的小工具,支持win7-11。其支持超过100种任务类型,50种定时/条件执行方法,而且任务列表可以随意编辑、排列、移动、更改类型,支持任务执行日志&a…

SEED-X:多模态智能助手

SEED-X:多模态智能助手 SEED-X 是一个多模态智能助手,已经将所有的模型和代码开源了!它是一个统一且多用途的多模态基础模型,最新开放了图像编辑模型。 相较于传统的多模态交互框架,SEED-X 具有以下优点:…

【请投票】嘉立创EDA中LED发光二极管是否应有统一的引脚定义?

LED发光二极管的引脚定义应该是唯一的吗? 从下面原理图可以看到,器件型号仅尾缀不同,R代表RED红色发光二极管,W代表WHITE指白色发光二极管,是同一家制造商KENTO, 左侧红色发光二极管的1脚是阴极K,2脚是阳极…

Android关于SparseArray面试题

问题1: 什么是SparseArray&#xff0c;它与HashMap有什么不同&#xff1f; 回答&#xff1a; SparseArray是一个用于优化特定情况下内存使用的数据结构&#xff0c;主要用于替代HashMap<Integer, Object>。SparseArray使用两个数组分别存储键和值&#xff0c;而不是使用…

初识Linux -- Linux的背景和发展史介绍

点赞关注不迷路&#xff01;&#xff0c;本节涉及初识Linux&#xff0c;主要为背景介绍和xshell登录主机。 1.Linux背景 1.1 发展史 Linux从哪里来&#xff1f;它是怎么发展的&#xff1f;在这里简要介绍Linux的发展史。 要说Linux&#xff0c;还得从UNIX说起。 1.2 UNIX发…

【Linux】掌握Linux系统编程中的权限与访问控制

&#x1f49e;&#x1f49e; 前言 hello hello~ &#xff0c;这里是大耳朵土土垚~&#x1f496;&#x1f496; &#xff0c;欢迎大家点赞&#x1f973;&#x1f973;关注&#x1f4a5;&#x1f4a5;收藏&#x1f339;&#x1f339;&#x1f339; &#x1f4a5;个人主页&#x…

博客网站SpringBoot+Vue项目练习

博客网站SpringBootVue简单案例 前言 学了vue后一直没用找到应用的机会&#xff0c;在Github上找到了一个看起来比较友好的项目&#xff08;其实具体代码我还没看过&#xff09;。而且这个项目作者的readme文档写的也算是比较好的了。 项目链接&#xff1a;https://github.c…

Docker入门指南:Docker容器的部署(一)

&#x1f340; 前言 博客地址&#xff1a; CSDN&#xff1a;https://blog.csdn.net/powerbiubiu &#x1f44b; 简介 当今软件开发领域中&#xff0c;Docker 成为了一种流行的容器化技术。Docker 可以帮助开发者将应用程序及其依赖项打包到一个独立且可移植的容器中&#xf…

AAA、RADIUS、TACACS、Diameter协议介绍

准备软考高级时碰到的一个概念&#xff0c;于是搜集网络资源整理得出此文。 概述 AAA是Authentication、Authorization、Accounting的缩写简称&#xff0c;即认证、授权、记帐。Cisco开发的一个提供网络安全的系统。AAA协议决定哪些用户能够访问服务&#xff0c;以及用户能够…

面试集中营—Spring篇

Spring 框架的好处 1、轻量&#xff1a;spring是轻量的&#xff0c;基本的版本大约2MB&#xff1b; 2、IOC&#xff1a;控制反转&#xff0c;Spring的IOC机制使得对象之间的依赖不再需要我们自己来控制了&#xff0c;而是由容易来控制&#xff0c;一个字&#xff1a;爽&#xf…

【c++】Resharper 去掉中文注释拼写

参考大神&#xff1a; Resharper 去掉注释拼写 reshaper的中文注释一堆下划线&#xff0c;看的很累、很乱&#xff1a; options 里 在code inspetion里 搜索 去掉 Typo in comment 就可以不在中文注释提示 重启vs reshaperd 中文注释下划线没了。小番茄的还在。

数智先锋 | 多场景数据治理案例,释放数据要素生产力

数据作为第五大生产要素&#xff0c;成为释放新质生产力的关键基础。 当前各个行业数字化建设如火如荼&#xff0c;全力挖掘数据价值以驱动行业高质量应用发展。数据治理成为数据要素价值发挥的重要基础和前提。 数据治理不单是技术问题&#xff0c;不是依赖工具就能解决的&a…

数据结构学习/复习8--树与二叉树的概念与基本性质练习

一、树 1.概念 2.树的表示 二、二叉树 1.二叉树的概念 2.与性质相关的题

如何选择最适合企业的项目管理方法

企业的项目管理应该采取综合性的方式&#xff0c;结合多种工具和方法来确保项目的成功。甘特图 是其中一种非常有用的工具&#xff0c;它可以帮助项目经理和团队成员可视化地展示项目的时间线和进度。以下是采取合适项目管理方式时需要考虑的几个关键点&#xff0c;结合甘特图的…

Python项目实战,用Python实现2048游戏

目录 写在前言项目介绍项目思路环境搭建项目实现初始化Python类初始化游戏窗口定义游戏棋盘和方块移动和合并游戏主循环 进一步探索 写在前言 hello&#xff0c;大家好&#xff0c;我是一点&#xff0c;专注于Python编程&#xff0c;如果你也对感Python感兴趣&#xff0c;欢迎…

2024年5月6日优雅草蜻蜓API大数据服务中心v2.0.3更新

v2.0.3更新 2024年5月6日优雅草蜻蜓API大数据服务中心v2.0.3更新-修复改版后搜索框漏掉的bug-增加搜索框 提示&#xff1a;优雅草大数据中心已经 上线137天 稳定运行 1181555 次 累积调用 目前大数据中心用户呈现增长趋势&#xff0c;目标2024年11月底突破1亿次调用&#xf…

2023ccpc深圳G题相似基因序列问题

样例&#xff1a; 6 4 4 1 kaki kika manu nana tepu tero kaka mana teri anan 输出&#xff1a; 2 2 1 0 解析&#xff1a; 如果是用暴力的话是 300*300*6000&#xff0c;这样子一定会超时。 这时候我们可以利用hash函数进行处理&#xff0c;对比一个字符串的小于为O&a…

linux系统-PXE高效批量网络装机

目录 一、PXE概述 PXE批量部署的优点 搭建PXE网络体系的前提条件 二、搭建PXE远程安装服务器 1.修改网络配置 2 .老样子关防火墙&#xff01;&#xff01;&#xff01;&#xff01; 3.确保挂载状态 和yum库 4. 安装TFTP服务 5.修改TFTP服务的配置文件 6.启动服务 7…

鸿蒙开发接口Ability框架:【@ohos.application.FormExtension (FormExtension)】

FormExtension FormExtension模块提供了FormExtension卡片扩展相关接口。 说明&#xff1a; 本模块首批接口从API version 9开始支持。后续版本的新增接口&#xff0c;采用上角标单独标记接口的起始版本。 本模块接口仅可在Stage模型下使用。 导入模块 import FormExtension …

pcm转MP3怎么转?只需3个步骤~

PCM&#xff08;Pulse Code Modulation&#xff09;是一种用于数字音频编码的基础技术&#xff0c;最早起源于模拟音频信号数字化的需求。通过PCM&#xff0c;模拟音频信号可以被精确地转换为数字形式&#xff0c;为数字音频的发展奠定了基础。 MP3文件格式的多个优点 MP3的优…