Windows环境下训练开源图像超分项目 ECBSR 教程

news2024/9/28 18:39:59

ECBSR

介绍

  1. ECBSR(Edge-oriented Convolution Block for Real-time Super Resolution)是一种针对移动设备设计的轻量级超分辨率网络。它的核心是一种可重参数化的构建模块,称为边缘导向卷积块(ECB),这种模块在训练阶段通过多个路径提取特征,包括普通的3x3卷积、通道扩展-压缩卷积以及一阶和二阶空间导数。在推理阶段,这些操作可以合并成一个单一的3x3卷积,从而提高推理速度。

  2. ECBSR的设计目标是在保持高效运行的同时提升图像的超分辨率效果。它通过优化计算结构,减少了运算负担,确保了在低功耗处理器上的流畅执行。ECBSR特别适合处理移动设备上的资源限制问题,同时保证了超分辨率处理的质量。

  3. 在实际应用中,ECBSR能够实现在移动设备上的实时超分辨率处理,例如在即时通讯软件的图像增强、直播应用中的画质升级、智能手机的相机增强插件等场景中。它能够在不增加过多计算成本的前提下,显著改善用户体验。

  4. ECBSR的模型结构包括多个ECB模块,这些模块可以通过重参数化技术等价转换为一个普通的3x3卷积模块,适用于移动端、嵌入式等严格限制算力的场景。模型只支持单通道图像处理,如果是RGB图像,需要将图像从RGB颜色空间转换为YCbCr格式并只提取Y通道部分输入给模型处理。

  5. 在性能方面,ECBSR在不同的硬件平台上展现了出色的推理速度。例如,在骁龙865 DSP上,ECBSR-M4C8模型在进行1080p分辨率的图像超分辨率处理时,推理时间仅需10ms,而相比之下,传统的SRCNN和ESPCN模型则需要1583ms和26ms。这表明ECBSR在保证图像质量的同时,大幅度提高了处理速度。

相关资源

  1. 论文:Edge-oriented Convolution Block for Real-time Super Resolution on Mobile Devices(也可以从这里下载论文)
  2. GitHub地址:https://github.com/xindongzhang/ECBSR

Windows环境训练步骤

  1. 下载源码:git clone https://github.com/xindongzhang/ECBSR.git

  2. 在本机上激活PyTorch的虚拟环境:conda activate deeplearning,前提条件是本机已经搭建过PyTorch的开发环境,关于Windows平台搭建教程可以参考:Windows11搭建GPU版本PyTorch环境详细过程
    在这里插入图片描述

  3. cd 到项目中,根据README.md安装依赖命令:pip install -r requirements.txt

  4. 下载数据集DIV2K 和 benchmark到本地,DIV2K有7.1G大小,benchmark有239M大小。【也可以根据自己的需求自己制作数据集】
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  5. 更改configs文件夹中配置文件的数据集的路径,改成上面步骤下载好的训练数据集路径。
    在这里插入图片描述

  6. 根据README.md,进行训令命令:python train.py --config ./configs/ecbsr_x2_m4c8_prelu.yml

  7. 报错缺少库,利用pip进行安装:imageio、scikit-image、pytorch_msssim

  8. 开始训练,加载数据集,原本的float64精度直接提示内存不够了,于是在div2k.py和benchmark.py中将数据集的精度改成float32的精度,本机24G内存也差一点跑满了。
    在这里插入图片描述

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

  1. 根据README.md中建议,再将 batch-size改小一点,改成16,进行训练。
    在这里插入图片描述
  2. 开始训练,【太耗内存了😂,得换电脑,笔记本还是不行😂】
    在这里插入图片描述

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

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

相关文章

数集相等定义凸显“R各元x的对应x+1的全体=R”是几百年重大错误

黄小宁 变量x所取各数也均由x代表,x代表其变域(x所有能取的数组成的集)内任一元。设集A{x}表A各元均由x代表,{x}中变量x的变域是A。其余类推。因各数x可是数轴上点的坐标所以x∈R变换…

详解ES5中的数组方法

7.9 ES5中的数组方法 ECMAScript 5定义了9个新的数组方法来遍历、映射、过滤、检测、简化、搜索数组。 7.9.1 forEach() 7.9.2 map() 将调用的数组的每个元素传递给指定的函数,并返回一个数组,包含函数的返回值。 例如数组的每个元素的立方&#xf…

基于SpringBoot+Vue的大学生勤工助学兼职管理系统

作者:计算机学姐 开发技术:SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等,“文末源码”。 专栏推荐:前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码 精品专栏:Java精选实战项目…

【优选算法】(第八篇)

目录 串联所有单词的⼦串(hard) 题目解析 讲解算法原理 编写代码 最⼩覆盖⼦串(hard) 题目解析 讲解算法原理 编写代码 串联所有单词的⼦串(hard) 题目解析 1.题目链接:. - 力扣&#…

防砸安全鞋这样挑,舒适又安心!

在复杂多变的工作环境中,安全始终放在首位,特别是对于那些在工地、车间等危险环境中工作的朋友们来说,一双好的防砸安全鞋无疑是工作中的“守护神”。然而,市面上的防砸安全鞋种类繁多,如何挑选一双既舒适又安心的鞋子…

unreal engine5制作动作类游戏时,我们使用刀剑等武器攻击怪物或敌方单位时,发现攻击特效、伤害等没有触发

UE5系列文章目录 文章目录 UE5系列文章目录前言一、问题分析二、解决方法1. 添加项目设置碰撞检测通道2.玩家角色碰撞设置3.怪物角色碰撞预设 最终效果 前言 在使用unreal engine5制作动作类游戏时,我们使用刀剑等武器攻击怪物或敌方单位时,发现攻击特效…

10.C++程序中的循环语句

C中提供了三种循环语句(for循环,while循环以及do-while循环)来使程序员可以更方便地对数据进行迭代操作。 if语句 for语句的格式为: for(初始化语句;循环条件;迭代语句) { 代码块 &#x…

网上找旅游搭子靠谱吗?分享国庆与旅行搭子出行的冒险记

国庆将至,我那颗渴望旅行的心愈发躁动不安。一直想在这个难得的假期里去领略祖国的大好河山,思来想去,决定去神秘而美丽的张家界。然而,身边的朋友不是已有安排,就是对这个目的地不感兴趣。无奈之下,我只好…

ArcGIS与ArcGIS Pro去除在线地图服务名单

我们之前给大家分享了很多在线地图集,有些地图集会带有制作者信息,在布局制图的时候会带上信息影响出图美观。 一套GIS图源集搞定!清新规划底图、影像图、境界、海洋、地形阴影图、导航图 比如ArcGIS: 比如ArcGIS Pro&#xff1a…

书生大模型实战(从入门到进阶)L2-茴香豆:企业级知识库问答工具

目录 茴香豆介绍 茴香豆本地标准版搭建 环境搭建 配置服务器: 搭建茴香豆虚拟环境: 安装茴香豆 下载茴香豆 安装茴香豆所需依赖 下载模型文件 更改配置文件 知识库创建 测试知识助手 命令行运行 Gradio UI 界面测试 本文是对书生大模型L2-茴香…

电脑录屏怎么录视频和声音?苹果macOS、windows10都可以用的原神录屏工具来啦

在当今数字化时代,电脑录屏已经成为一项非常实用的技能,无论是制作教学视频、记录游戏精彩瞬间,还是进行线上会议演示,都离不开高质量的录屏。那么,电脑录屏怎么录视频和声音呢?今天就为大家详细介绍一下&a…

<<迷雾>> 第 2 章 用电来表示数 示例电路

开关的通断对应着1和0 info::操作说明 鼠标单击开关切换开合状态 primary::在线交互操作链接 https://cc.xiaogd.net/?startCircuitLinkhttps://book.xiaogd.net/cyjsjdmw-examples/assets/circuit/cyjsjdmw-ch02-01-represent-number-by-switch.txt 原图 通过使用多个开关、可…

数据结构与算法——Java实现 21.栈

目录 一、概述 二、基于链表的栈的实现 接口 链表接口实现类 测试类 ​编辑 三、基于数组的栈的实现 接口 数组接口实现类 测试类 妈妈,生日快乐,希望你健康快乐没有烦恼也不会有病痛 —— 24.9.28 一、概述 计算机科学中,stack是一种线性的…

构造性神经组合优化的学习编码需要反悔

文章目录 Abstract1 Introduction2 Related Work用于构造性启发式的深度强化学习当前用于更好编码的方法3 LCH-Regret学习构造性启发式反悔机制LCH - Regret 机制的 L R L_R LR​Abstract 深度强化学习的神经组合优化中,学习构造性启发式(LCH)通过快速的自回归解构建过程实…

Redis中String类型的常用命令(append,getrenge,setrange等命令)

Redis----String命令 前言.常见的String存储类型. 常见命令1. set 命令2. get 命令3. mget命令与mset命令4. setnx命令5. setex与psetex命令6. incr与incrby与incrbyfloat命令7. decr与decrby命令8. append命令9. getrange和setrange命令10. strlen命令. 前言. 常见的String存…

《开题报告》基于SpringBoot框架的高校专业实习管理系统开题报告的设计与实现源码++学习文档+答辩讲解视频

开题报告 研究背景 在当今高等教育日益普及与深化的背景下,高校专业实习作为学生将理论知识转化为实践能力、提前适应社会工作环境的重要环节,其重要性不言而喻。然而,传统的高校专业实习管理模式往往存在信息不对称、流程繁琐、效率低下、…

C# Blazor Server 调用海康H5Player播放摄像头画面

目标 调用海康综合安防平台api,通过摄像头的cameraIndexCode调用【获取监控点预览取流URLv2】api,得到websocket 的url,然后在blazor server中使用htplayer.js播放摄像头实时画面。 步骤 根据摄像头名字,调用【查询监控点列表v2…

CGAL Surface_Mesh 示例

CGAL Surface_Mesh 示例 创建一个简单的网格曲面Surface_Mesh对象&#xff0c;然后通过半边结构遍历某个面的顶点以及遍历整个网格对象的所有顶点&#xff0c;最后计算网格所有顶点的3D凸包网格。 项目 sm_points.cpp #include <CGAL/Simple_cartesian.h> #include &l…

Virtio半虚拟化基本原理简介

virtio半虚拟化基本原理简介 在本文中&#xff0c;将首先了解VirtIO的基本概念及其应用原因&#xff0c;然后从技术角度深入探讨VirtIO的关键领域&#xff0c;包括VirtIO设备与驱动程序、VirtQueues和VRings。在介绍完这些基础知识后&#xff0c;将通过一个在Qemu中的VirtIO设备…

【C++】函数模板,类模板,全特化,偏特化详解

目录 1. 函数模板 1.1 函数模板概念 1.2 函数模板格式 1.3 函数模板的原理 1.4 函数模板的实例化 1.4.1 隐式实例化 1.4.2 显示实例化 1.5 模板参数的匹配原则 2. 类模板 2.1 类模板的定义格式 2.2 类模板的实例化 3. 非类型模板参数 4. 模板的特化 4.1 类模板…