【深度学习实践】基于深度学习的图像去雾算法-ChaIR-实践

news2024/11/24 10:58:18

本文介绍一个去雾算法ChaIR的使用方法,可以完成图像去雾,也可以用于图像去雨、去噪音等任务。本文不涉及论文原理,只包含源代码的跑通和使用。

先展示一下效果:

原图去雾

论文:Exploring the potential of channel interactions for image restoration

代码地址:https://github.com/c-yn/ChaIR/tree/main/Dehazing

本文的代码及数据集、训练好的权重:图像去雾代码-SOTS划分好的8:2数据集-训练好的去雾权重-包含推理代码

一、准备数据集

作者在github中给出了去雾数据集reside-indoor,reside-outdoor ,SOTS的地址,因为reside-indoor/outdoor太大了,本文介绍SOTS数据集的使用方法。

数据集地址:

数据集google drive百度云
reside-indoorhttps://drive.google.com/drive/folders/1pbtfTp29j7Ip-mRzDpMpyopCfXd-ZJhC?usp=sharing百度网盘 请输入提取码
reside-outdoorhttps://drive.google.com/drive/folders/1eL4Qs-WNj7PzsKwDRsgUEzmysdjkRs22?usp=sharing-
SOTShttps://drive.google.com/file/d/16j2dwVIa9q_0RtpIXMzhu-7Q6dwz_D1N/view?usp=sharing百度网盘 请输入提取码

这里请注意,使用SOTS需要将其转换为如下格式:

SOTS数据集也有indoor和outdoor,本文只使用outdoor,本文将SOTS outdoor数据集按照8:2划分训练集和测试集,并提供转换好的数据连接:SOTS数据集8:2划分训练和验证集,可用于训练去雾模型

准备好了数据集之后,按照如下目录结构放置即可:

至此数据集准备完成。

二、安装环境

接下来安装conda环境,首先下载代码:

git clone https://github.com/c-yn/ChaIR.git
cd ChaIR

创建虚拟环境:

conda create -n chair python=3.10
conda activate chair 

按照官网教程安装pytorch,我安装的是torch 2.3.1 cuda118(可以跳过):

conda install pytorch torchvision torchaudio pytorch-cuda=11.8 -c pytorch -c nvidia

安装pytorch-gradual-warmup-lr:

cd pytorch-gradual-warmup-lr
python setup.py install

后续使用过程中会提示缺少相关库,因为源代码未提供requirements.txt库,缺少的库需要自行安装,本文不做赘述。

三、训练验证

环境安装完成,因为本文只介绍去雾模型,所以进入ChaIR/Dehazing/OTS目录:

cd ChaIR/Dehazing/OTS

开始训练,如果显存不够,可以降低batch size,我用的rtx3060,我把batch size降低为2:

python main.py --mode train --data_dir  SOTS/outdoor

训练完成后,results/ChaIR目录的ots里面有权重,如下图:

使用best权重进行验证:

python main.py --data_dir  SOTS/outdoor --test_model  results/ChaIR/ots/Best.pkl

可以看到我训练的精度:

四、推理

因为ChaIR没有推理代码,所以自己写了一个推理代码进行推理,效果如下图:

原图标签ChaIR推理结果(自己的权重)

本文提供训练好的模型和推理代码以及数据集,地址:图像去雾代码-SOTS划分好的8:2数据集-训练好的去雾权重-包含推理代码

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

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

相关文章

ZAN与Mysten Labs合作推进Web3基础设施开发

Mysten Labs是一家Web3基础设施公司,也是Sui区块链的开发公司,今天宣布与蚂蚁数字科技的技术品牌ZAN建立合作伙伴关系。 通过整合Sui,ZAN旨在加速其Web3应用程序的开发和采用。该合作将专注于为Mysten Labs在两个关键领域提供技术支持&#…

Redis 缓存预热、雪崩、穿透、击穿

缓存预热 缓存预热是什么 缓存预热就是系统上线后,提前将相关的缓存数据直接加载到缓存系统。避免在用户请求的时候,先查询数据库,然后再将数据缓存的问题!用户直接查询事先被预热的缓存数据!解决方案 使用 PostConstr…

day2-网络连接网卡配置原理

1.window网卡 理解: window 有 2 块网卡 本地网卡 192.168.13.253 用于连接外网 vmnet8 10.0.0.1(装虚拟机自动生成的 如果没有自动生成…) 虚拟机添加 2 块网卡: 第一块网卡 NAT 模式 添加网卡的时候设置 NAT 模式 2 个作用,用于连接 wi…

Linux服务管理-Nginx进阶

通常会通过rewrite将用户的80请求转化为443请求,也就意味着Nginx需要去做虚拟主机,一个80端口的虚拟主机和一个443端口的虚拟主机,当访问80端口的虚拟主机时返回一个信息让用户去访问443端口的虚拟主机。

技术证书认证-附考试答案-AIGC与大模型通识-英特尔大湾区科技创新中心证书认证

目录 课程简介 面向人群 考核步骤 试题答案 知孤云出岫主页 课程以及考试链接:AIGC与大模型通识 - 英特尔大湾区科技创新中心 【英特尔大湾区科技创新中心】公益新课《AIGC与大模型通识》上线官网!首期结业认证进行中,提升AI应用技能&…

解决Element-ui el-tree数据与显示不对应的问题

如图&#xff1a; 后端返回的权限列表&#xff0c;并没有列表这一项&#xff0c;但是由于父节点 版本打包 为选中状态&#xff0c;导致所有子节点都为选中状态。 实现代码如下&#xff1a; <el-treeref"tree":data"records"show-checkboxnode-key&quo…

RuoYi-Vue新建模块

一、环境准备 附:RuoYi-Vue下载与运行 二、新建模块 在RuoYi-Vue下新建模块ruoyi-test。 三、父pom文件添加子模块 在RuoYi-Vue的pom.xml中,引入子模块。 <dependency><groupId>com.ruoyi</groupId><artifactId>ruoyi-test</artifactId>&…

【AI人工智能】文心智能体 - 你的专属车牌设计师

引言 自AI盛行以来&#xff0c;不断有各种各样的人工智能产品崭露头角。我们逐步跟着不断产生的人工智能来使自己的工作和生活变得更加智能化&#xff01;那么我们是否能够创造一款专属于自己的人工智能产品呢&#xff1f; 文心智能体平台就给我们提供了这样的机会&#xff0c…

品牌维价的含义和方法

品牌维价是指通过一系列手段和方法&#xff0c;对品牌产品的价格进行统一管理和控制&#xff0c;确保品牌在各个销售渠道都能保持合理稳定的价格体系&#xff0c;从而保障品牌自身以及各级经销商的合理利润。 常见的品牌维价方法可以参考下面这些 品牌自我管控的方法&#xff…

8.2.数据库基础技术-数据模型

概念模型是从用户的角度进行建模的&#xff0c;是现实世界到信息世界的第一抽象&#xff0c;是真正的实体-联系模型。关系模型是二维表的形式表示的实体-联系模型&#xff0c;是将实体-联系模型转换而来的&#xff0c;经过开发人员设计的&#xff1b;网状模型表示实体类型及其实…

【背包蛙】游戏 高端链游 链游开发

#游戏#链游 #深圳软件开发公司#游戏开发公司 以背包整理和物品摆放为核心的策略博弈 那么以背包中的物品&#xff0c;我们就开始了冒险之旅——角色固定拥有3点AP&#xff0c;盾牌或者剑以及后续获得的其他武器&护甲使用绝大部分都需要AP(也包含很多伤害低&次数也受限…

计算数学精解【12】-fortran计算精解(1)

文章目录 概述hello,world环境接收输入与输出 读取csv文件if and select case循环formatread,write format 概述 FORTRAN是英文“FORmulaTRANslator”的缩写&#xff0c;译为“公式翻译器”&#xff0c;它是世界上最早出现的计算机高级程序设计语言&#xff0c;广泛应用于科学…

2024.8.13-算法学习(原创+转载)

一、什么是张量并行&#xff08;Tensor Parallelism&#xff09; &#xff1f; 张量并行&#xff08;Tensor Parallelism&#xff09; 是一种分布式矩阵算法。 随着模型越来越大&#xff0c;模型内的矩阵也越来越大。一个大矩阵的乘法可以拆分成多个小矩阵的运算&#xff0c;…

文件上传漏洞(四,靶场详解)

前言&#xff1a; 本文基于github上的upload-labs&#xff0c;PHP study以及bp抓包软件进行操作。 靶场环境搭建及pass-1.pass-2请转到&#xff1a; 文件上传漏洞&#xff08;二&#xff0c;靶场搭建及漏洞利用&#xff09; 文件上传漏洞&#xff08;三&#xff0c;靶场详解…

【机器学习西瓜书学习笔记——半监督学习】

机器学习西瓜书学习笔记【第十二章】 第十三章 半监督学习13.1 未标记样本13.2 生成式方法13.3 半监督 S V M SVM SVM基本思想优点和注意事项适用场景 13.4 图半监督标签传播算法多类标签传播算法Label PropagationLabel Spreading 13.5 基于分歧的方法数据视图协同训练 13.6 半…

映客基于Apache SeaTunnel 打造高效的一站式数据集成平台

背景 随着业务的增加&#xff0c;数据集成任务大量增长&#xff0c;越来越多的数据源的需要支持&#xff0c;原有的系统已经无法完全支撑现有体量。 现有的数据集成平台短板慢慢展现导致部分业务线无法快速对接。数据源的架构在变得繁多和复杂,数据应用也逐渐变得更加垂直和场…

opencv-python图像增强四:多曝光融合(方法一)

文章目录 一、简介&#xff1a;二、多曝光融合方案&#xff1a;三、算法实现步骤3.1 读取图像与曝光时间&#xff1a;3.2 计算响应曲线并合并3.3 色调映射 四&#xff1a;整体代码实现五&#xff1a;效果 一、简介&#xff1a; 在摄影和计算机视觉领域&#xff0c;高动态范围&…

关于IP子网掩码的解释

关于IP子网掩码的解释 1、掩码 10.1.1.0/27 掩码 10.1.1.0/27 表示一个子网&#xff0c;其中/27是子网掩码的表示方式&#xff0c;指的是前27位是网络位&#xff0c;剩下的5位是主机位&#xff0c;这种掩码意味着每个子网有32个IP地址(2^532)&#xff0c;其中包括一个网络地址…

GitHub提交PR(GitHub提交个人代码到社区)

GitHub提交PR&#xff08;GitHub提交个人代码到社区&#xff09; 1. 设置基本信息 确保你的本地 git 配置中的用户名和邮箱地址与你在 GitHub 账户中设置的信息一致。‌如果不一致&#xff0c;‌使用 git config --global user.name "Your Name" 和 git config --g…

三层架构与解耦——IoCDI机制【后端 7】

三层架构与解耦——IoC&DI机制 在软件开发领域&#xff0c;三层架构&#xff08;Controller、Service、Dao&#xff09;是一种广泛采用的架构模式&#xff0c;它通过将应用程序分为三个主要层次来组织代码&#xff0c;旨在提高代码的可维护性、复用性和可扩展性。而解耦&am…