ui外包网站/线上营销推广渠道
目录
- 一、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网络训练自己数据集并推理测试的详细图文教程,超分效果学者自行评价,对比其它网络效果参考我超分辨率重建专栏。
总结不易,多多支持,谢谢!
感谢您阅读到最后!关注公众号「视觉研坊」,获取干货教程、实战案例、技术解答、行业资讯!
相关文章:

超分辨率重建——BSRN网络训练自己数据集并推理测试(详细图文教程)
目录 一、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方式训…...

C语言实现贪吃蛇
目录 前言一 . 游戏背景1. 背景介绍2. 项目目标3. 技术要点 二 . 效果演示三 . 游戏的设计与分析1. 核心逻辑2. 设计与分析游戏开始Gamestart()函数游戏运行Gamerun()函数游戏结束Gameend()函数 四 . 参考代码五 . 总结 前言 本文旨在使用C语言和基础数据结构链表来实现贪吃蛇…...

高可用系列四:loadbalancer 负载均衡
负载均衡可以单独使用,也常常与注册中心结合起来使用,其需要解决的问题是流量分发,这是就需要定义分发策略,当然也包括了故障切换的能力。 故障切换 故障切换是负载均衡的基本能力,和注册中心结合时比较简单…...

Ruby递归目录文件的又一种方法
经常派得上用场,记录一下。 递归文件做一些操作 #encoding:utf-8require pathnamedef recursive_enum_files(from_path)from_path Pathname.new(from_path)raise ArgumentError,must start at a directory. unless from_path.directory?from_path.enum_for(:fin…...

【爬虫】爬取A股数据写入数据库(一)
1. 对东方财富官网的分析 步骤: 通过刷新网页,点击等操作,我们发现https://datacenter-web.eastmoney.com/api/data/v1/get?请求后面带着一些参数即可以获取到相应数据。我们使用python来模拟这个请求即可。 我们以如下选择的页面为切入点…...

1-38 流资源类结构
一 简介 1. Java中所说的流资源--IO流 2.为什么学习留资源? --要操作文件中的数据 将数据写入指定的文件 将数据从指定的文件读取 3.分类 -- 四大基流 , 八大子流 (重点) 按照流向分 : 输入流 和输出流 按照操作数据资源的类型划分 字符流 (重点) Reader -- 字符…...

nginx的前世今生(二)
书接上回: 上回书说到,nginx的前世今生,这回我们继续说 3.缓冲秘籍,洪流控水 Nginx的缓冲区是其处理数据传输和提高性能的关键设计之一,主要用于暂存和管理进出的数据流,以应对不同组件间速度不匹配的问题…...

浏览器跨域详解
一、什么是跨域 浏览器跨域是指当一个Web应用程序试图访问另一个协议、主机或端口不同的资源时,所发生的情况。这主要是由于浏览器的同源策略造成的,它是为了网站的安全而设置的安全限制,防止一个网站恶意访问另一个网站的资源。当然这是比较…...

华为5700配置
恢复出厂设置,清空配置 1、更改名字 system-view sysname tp-10-50-01-04 2、配置管理接口 int vlan 1 ip add 10.50.1.4 255.255.254.0 quit 2、链路汇聚 interface eth-trunk 1 mode lacp quit 3、绑定端口 interface eth-trunk 1 trunkport gigabitethernet …...

使用Axios从前端上传文件并且下载后端返回的文件
前端代码: function uploadAndDownload(){showLoading();const fileInput document.querySelector(#uploadFile);const file fileInput.files[0];const formData new FormData()formData.append(file, file)return new Promise((resolve, reject) > {axios({…...

open 函数到底做了什么
使用设备之前我们通常都需要调用 open 函数,这个函数一般用于设备专有数据的初始化,申请相关资源及进行设备的初始化等工作,对于简单的设备而言,open 函数可以不做具体的工作,你在应用层通过系统调用 open 打开设备…...

ue引擎游戏开发笔记(32)——为游戏添加新武器装备
1.需求分析: 游戏中角色不会只有一种武器,不同武器需要不同模型,甚至可能需要角色持握武器的不同位置,因此需要添加专门的武器类,方便武器后续更新,建立一个武器类。 2.操作实现: 1.在ue5中新建…...

【个人博客搭建】(17)使用FluentValidation 参数校验
FluentValidation 是一个用于 .NET 的开源验证库,它提供了一种流畅的接口和强类型验证规则,使得验证逻辑表达得更加清晰和简洁。(Apache-2.0) FluentValidation 的主要作用包括: 提高代码可读性:通过使用 F…...

数据结构===散列表
文章目录 概要散列思想散列函数散列冲突开放寻址法装载因子 链表法 代码Java小结 概要 散列表是一种很有趣的数据结构。 散列表是一个很有用的数据结构。它是数组演练而来的,又是一个基于数组的扩展的数据结构。接下来看看。 散列思想 散列表用的是数组支持按照下…...

10G MAC层设计系列-(2)MAC RX模块
一、概述 MAC RX模块的需要进行解码、对齐、CRC校验。 因为在空闲的时候10G PCS/PMA会一直向外吐空闲符(x07)所以需要根据开始符、结束符将有效数据从码流中截取,也就是解码。 因为开始字符的所在位置有两种形式,而结束字符的位…...

解码Starknet Verifier:深入逆向工程之旅
1. 引言 Sandstorm为: 能提交独立proof给StarkWare的Ethereum Verifier,的首个开源的STARK prover。 开源代码见: https://github.com/andrewmilson/sandstorm(Rust) L2Beat 提供了以太坊上Starknet的合约架构图&…...

【C++语言】类和对象--默认成员函数 (中)
文章目录 前言类的六个默认成员函数:1. 构造函数概念特性做了什么?易错注意:显式定义和默认构造函数 2. 析构函数概念特征做了什么?注意事项: 3.拷贝构造函数概念特征做了什么?注意事项: 4.赋值运算符重载…...

前端递归常见应用
概览 在 JavaScript 中,递归是一种编程技术,指的是函数直接或间接调用自身的过程。 递归通常用于解决可以分解为相同子问题的问题。通过不断地将问题分解成更小的、相似的子问题,直到达到某种基本情况(不再需要进一步递归的简单情…...

AI工具如何改变我们的工作与生活
AI工具在当今社会中扮演着越来越重要的角色,它们已经开始改变着我们的工作方式和生活方式。在接下来的2000字篇幅中,我将详细探讨AI工具如何影响我们的工作和生活。 AI工具在工作中的影响: 自动化和智能化生产流程: AI工具可以通…...

深入了解C/C++的内存区域划分
🔥个人主页:北辰水墨 🔥专栏:C学习仓 本节我们来讲解C/C的内存区域划分,文末会附加一道题目来检验成果(有参考答案) 一、大体有哪些区域?分别存放什么变量开辟的空间? …...

C++构造函数和析构函数的调用顺序
一般情况下,调用析构函数的次序正好与调用构造函数的次序相反,也就是最先被调用的构造函数,其对应的析构函数最后被调用,而最后被调用的构造函数,其对应的析构函数最先被调用。 当然对象的构造函数和析构函数调用时机和…...

智能家居1 -- 实现语音模块
项目整体框架: 监听线程4: 1. 语音监听线程:用于监听语音指令, 当有语音指令过来后, 通过消息队列的方式给消息处理线程发送指令 2. 网络监听线程:用于监听网络指令,当有网络指令过来后, 通过消息队列的方…...

Leetcode 3139. Minimum Cost to Equalize Array
Leetcode 3139. Minimum Cost to Equalize Array 1. 解题思路2. 代码实现 题目链接:3139. Minimum Cost to Equalize Array 1. 解题思路 这一题是一道hard的题目,而且看了一下答出率低的离谱,就一开始被吓到了,不过实际做了一下…...

【element-ui】el-table横向滚动后,通过is-scrolling-left获取滚动高度失效的问题
el-table横向滚动后,通过is-scrolling-left获取滚动高度失效的问题 需求 现在有一个需求,需要监听el-table的纵向滚动,当滚动高度达到特定值时进行一些操作。 代码如下: methods:{throttledHandleScroll() {// 如果已经有定时器…...

JAVA中的日期
获取当前的日期 LocalDate LocalDate today LocalDate.now();System.out.println("今天是:"today);//今天是:2024-05-06String format today.format(DateTimeFormatter.ofPattern("yyyy年MM月dd日"));System.out.println("今天是:"…...

一起了解开源自定义表单的优势表现
随着社会的进步和科技的发展,越来越多的中小企业希望采用更为先进的软件平台,助力企业实现高效率的流程化管理。低代码技术平台、开源自定义表单已经慢慢走入大众视野,成为一款灵活、高效的数字化转型工具。流辰信息专注于低代码技术平台的研…...

体育老师工资高吗,奖金有吗
教师的薪资水平与多种因素相关,包括教育经验、工作地点、学校类型以及个人的教学成果等。在讨论体育教师的工资问题时,不能仅仅关注数字,更应了解教育价值和个人发展。 初中体育教师的工资水平受多种因素影响。根据网络统计的数据,…...

Linux驱动开发——(十一)INPUT子系统
目录 一、input子系统简介 二、input驱动API 2.1 input字符设备 2.2 input_dev结构体 2.3 上报输入事件 2.4 input_event结构体 三、代码 3.1 驱动代码 3.2 测试代码 四、平台测试 一、input子系统简介 input子系统是管理输入的子系统,和pinctrl、gpio子…...

大数据毕业设计Python+Django旅游景点评论数据采集分析可视化系统 NLP情感分析 LDA主题分析 bayes分类 旅游爬虫 旅游景点评论爬虫 机器学习 深度学习 人工智能 计算机毕业设计
毕业论文(设计)开题报告 学生姓名 学 号 所在学院 信息工程学院 专 业 指导教师姓名 指导教师职称 工程师 助教 指导教师单位 论文(设计)题目 基于朴素贝叶斯算法旅游景点线上评价情感分析 开 题 报 告…...

FSNotes for Mac v6.7.1中文激活版:强大的笔记管理工具
FSNotes for Mac是一款功能强大的文本处理与笔记管理工具,为Mac用户提供了一个直观、高效的笔记记录和整理平台。 FSNotes for Mac v6.7.1中文激活版下载 FSNotes支持Markdown语法,使用户能够轻松设置笔记格式并添加链接、图像等元素,实现笔记…...