超分辨率遥感图像去云的扩散增强训练

news2024/10/5 14:21:10

GitHub - littlebeen/Cloud-removal-model-collection: A collection of the existing end-to-end cloud removal model
readme

云恢复的扩散增强

基于ADM的超分辨率遥感图像去云扩散增强算法。

几种传统的CR模型可以参考https://github.com/littlebeen/Cloud-removal-model-collection!

使用

训练

纯扩散 respace.py: gaussian_diffusion;unet.py: UnetModel

锁定扩散+训练WA:gaussian_diffusion_enhance;unet.py: UnetModel256;锁定在train_util.py的第74行

全部更改  train_util.py第74行

测试

将预训练模型放入` pre_train `中
python super_res_sample.py
权重

在带有mn和mdsa的RICE2上进行预训练的模型被上传。百度网盘 请输入提取码 密码bean

CUHK-CR
一个新的多光谱云去除数据集
下载链接 百度网盘 请输入提取码 密码bean

-CUHK-CR1(薄云数据集CUHK-CR1的RGB图像)

-CUHK-CR2 (厚云数据集CUHK-CR2的RGB图像)

-近红外(CUHK-CR1及CUHK-CR2的近红外图像)
如果你需要4个波段(RGB + 近红外)的图像,你可以加载RGB数据集和近红外数据集中的图像,并将4个通道组合在一起。

  File "super_res_train.py", line 124, in <module>
    main()
  File "super_res_train.py", line 27, in main
    dist_util.setup_dist()
  File "D:\learn\txhf\DDPM-Enhancement-for-Cloud-Removal-main\guided_diffusion\dist_util.py", line 42, in setup_dist
    dist.init_process_group(backend=backend, init_method="env://")
  File "D:\an\anaconda\envs\inpaint\lib\site-packages\torch\distributed\distributed_c10d.py", line 602, in init_process_group
    default_pg = _new_process_group_helper(
  File "D:\an\anaconda\envs\inpaint\lib\site-packages\torch\distributed\distributed_c10d.py", line 727, in _new_process_group_helper
    raise RuntimeError("Distributed package doesn't have NCCL " "built in")
RuntimeError: Distributed package doesn't have NCCL built in

 首先你要有一个cuda环境,然后安装资源包

pip install blobfile
pip install mpi4py

 运行 一个是训练一个是测试,先运行训练。

python super_res_train.py
python super_res_sample.py

运行报错

ImportError: DLL load failed while importing MPI: 找不到指定的模块。
因为本机缺乏MPI程序,直接此处下载 https://www.microsoft.com/en-us/download/details.aspx?id=57467,安装到默认C盘地方因为也不大。

运行报错

RuntimeError: No CUDA GPUs are available
super_res_train.py中的os.environ["CUDA_VISIBLE_DEVICES"] = "1" 改为0,电脑默认的cuda是0

运行报错

   raise RuntimeError("Distributed package doesn't have NCCL " "built in")
RuntimeError: Distributed package doesn't have NCCL built in
windows不支持NCCL backend 原代码可能用的linux系统
super_res_train.py中加入
import os
os.environ["PL_TORCH_DISTRIBUTED_BACKEND"] = "gloo"
同时将报错的地方 guided_diffusion/dist_util.py路径下的
dist.init_process_group(backend=backend, init_method="env://")
修改为     dist.init_process_group(backend='gloo', init_method="env://")

运行报错

FileNotFoundError: [Errno 2] No such file or directory: './guided_diffusion/cloudnet/mn/pretrain/mn2.pth'
找不到预训练权重我们 到百度网盘下载同时 路径放到这个下面并修改文件名称(模型+数据) 保证路径一致 './guided_diffusion/cloudnet/mn/pretrain/mn2.pth'
我直接将guided_diffusion/diff/gaussian_diffusion_enhance.py路径下的  self.cloudnet.load_state_dict(th.load('./guided_diffusion/cloudnet/'+model+'/pretrain/'+model+'2.pth'),strict=True)直接r+绝对路径self.cloudnet.load_state_dict(th.load(r'weight/ema_0.9999_010000.pt.pth'),strict=True) pt和pth本质一样后缀名随意改

运行报错

raise RuntimeError('Error(s) in loading state_dict for {}:\n\t{}'.format(
RuntimeError: Error(s) in loading state_dict for MPRNet:

load_state_dict方法参数的官方说明 strict 参数默认是true,他的含义是 是否严格要求state_dict中的键与该模块的键返回的键匹配。在报错代码guided_diffusion/diff/gaussian_diffusion_enhance.py路径下,将strict=True改为strict=False

if(data=='RICE1'):
                    # self.cloudnet.load_state_dict(th.load('./guided_diffusion/cloudnet/'+model+'/pretrain/'+model+'rice2.pth'),strict=True)
                    self.cloudnet.load_state_dict(
                        th.load('./guided_diffusion/cloudnet/' + 'pretrain/' + model + '_rice2.pth'),
                        strict=True)#改为False
                    print(model+'1 is load')
                elif(data=='RICE2'):
                    # self.cloudnet.load_state_dict(th.load('./guided_diffusion/cloudnet/'+model+'/pretrain/'+model+'rice2.pth'),strict=True)
                    self.cloudnet.load_state_dict(
                        th.load('./guided_diffusion/cloudnet/' + 'pretrain/' + model + '_rice2.pth'),
                        strict=True)#改为False
                    print(model+'2 is load')

改参数为False即可:

下载的这两个模型和数据集都加载不了 全换成别的 
FileNotFoundError: The system cannot find the path specified: './pre_train'
在DDPM-Enhancement-for-Cloud-Removal-main路径下创建一个pre_train文件夹
RuntimeError: a leaf Variable that requires grad is being used in an in-place operation.

 出现报错

    work.wait()
RuntimeError: a leaf Variable that requires grad is being used in an in-place operat

这个可能是多卡运行的问题, 注释掉报错代码,路径在guided_diffusion/train_util.py

       self._load_and_sync_parameters()

 找不到数据集,修改数据集路径

  File "D:\an\anaconda\envs\inpaint\lib\site-packages\blobfile\_context.py", line 353, in scandir
    raise FileNotFoundError(f"The system cannot find the path specified: '{path}'")
FileNotFoundError: The system cannot find the path specified: '../data/RICE2/train/cloud'

DDPM-Enhancement-for-Cloud-Removal-main根目录下,新建data文件夹,将数据按照格式放进去。

代码正常运行了

看论文得知, 

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

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

相关文章

短链接推荐:一个可以监测用户行为的“营销神器”

客户对我的推广有兴趣吗&#xff1f;他喜欢我的产品吗&#xff1f;他打开了我的营销信息吗&#xff1f;这三个问题相信每一位推广者都遇到过。接下来&#xff0c;就将给大家介绍一位大聪明——它能帮你监测每一位用户的行为&#xff0c;让你分分秒秒掌握用户的心理&#xff01;…

深入了解Redis内存淘汰策略中的LRU算法应用

LRU算法简析 LRU&#xff08;Least Recently Used&#xff0c;最近最少使用&#xff09;算法是一种常见的内存淘汰策略&#xff0c;它根据数据的访问时间来决定哪些数据会被淘汰。LRU算法的核心思想是&#xff1a;最久未被访问的数据&#xff0c;被认为是最不常用的数据&#…

UE5 GAS开发P41-43 永久效果,去除永久效果,伤害区域,EnumClass,开始重叠与结束重叠事件

这一部分学习了怎么创建一个伤害性的地形(火焰地形,毒沼泽等都可以用这个方式创建) AuraEffectActor.h // Fill out your copyright notice in the Description page of Project Settings.#pragma once#include "CoreMinimal.h" #include "GameplayEffect.h&q…

Linux驱动开发:掌握SPI通信机制

目录标题 1、SPI简介2、SPI通信机制3、Linux内核中的SPI支持4、SPI核心API5、SPI控制器驱动6、SPI设备驱动 7、编写SPI设备驱动8、调试SPI驱动 在Linux驱动开发中&#xff0c;串行外设接口(SPI)是一种常见的高速全双工通信协议&#xff0c;用于连接处理器和各种外设。本文将深入…

React【Day4下+5】

环境搭建 使用CRA创建项目&#xff0c;并安装必要依赖&#xff0c;包括下列基础包 Redux状态管理 - reduxjs/toolkit 、 react-redux路由 - react-router-dom时间处理 - dayjsclass类名处理 - classnames移动端组件库 - antd-mobile请求插件 - axios pnpm i reduxjs/toolkit r…

企业规模扩大,SD-WAN实现跨省快速组网

随着数字化时代的飞速发展&#xff0c;企业面临着前所未有的挑战与机遇。5G、VoIP、AI和物联网等新技术的兴起&#xff0c;不仅改变了商业格局&#xff0c;也对企业网络提出了更高的要求。随着企业规模的不断扩大&#xff0c;企业如何搭建跨省的、高性能、超融合、简化运维的组…

防火墙技术基础篇:认识安全策略、安全区域、域间转发及报文转发流程

防火墙技术基础篇&#xff1a;认识安全策略、安全区域、域间转发及报文转发流程 一、安全策略匹配机制 简单通俗的讲&#xff0c;防火墙设备最基本的用途就是定义数据如何转发&#xff0c;靠什么定义呢&#xff1f;最基本的就是安全策略&#xff0c;当流量来到防火墙之后首先…

LeetCode_链表的回文结构

✨✨所属专栏&#xff1a;LeetCode刷题专栏✨✨ ✨✨作者主页&#xff1a;嶔某✨✨ 题目描述&#xff1a; 对于一个链表&#xff0c;请设计一个时间复杂度为O(n),额外空间复杂度为O(1)的算法&#xff0c;判断其是否为回文结构。给定一个链表的头指针A&#xff0c;请返回一个bo…

Edge下载文件提示无法安全下载的解决方法

问题描述&#xff1a;最近Edge在下载文件时总是提示&#xff1a;无法安全下载&#xff0c;本文记录一下解决方法。 提示截图&#xff1a; 解决方式一&#xff1a; 1. 点击下图红框的三个点&#xff0c;选择保留 2. 选择仍然保留 解决方式二&#xff1a; 第一种方式每下载一次…

微信小程序中,plugins 配置项如何配置多个插件

在微信小程序中&#xff0c;如果需要配置多个插件&#xff0c;你可以在 app.json 文件的 plugins 配置项中为每个插件指定一个唯一的自定义名称&#xff0c;并分别提供它们的 version 和 provider 信息。下面是一个配置多个插件的示例&#xff1a; json复制代码 { "pages…

Python 0基础_变现_38岁_day 16(文件操作)

在python&#xff0c;使用内置函数open()进行文件的一些读写操作 文件操作格式&#xff1a;open(文件路径&#xff0c;访问模式&#xff0c;字符编码) 前面两个参数是必备参数&#xff0c;后面的字符编码为选填&#xff0c;但是大多数情况下都会协商字符编码 访问模式 r 只读 w…

如何看待AIGC技术

目录 1.概述 2.技术应用 2.1.媒体与内容创作 2.2.教育与学习 ​​​​​​​2.3.艺术创作 ​​​​​​​2.4.游戏产业 ​​​​​​​2.5.工业设计 ​​​​​​​2.6.对未来社会的影响 2.7.可能的发展方向 ​​​​​​​2.8.小结 3.伦理与风险 3.1.AIGC技术面临…

科研工作学习中常用的录制动图软件——screenToGif

一、前言 俗话说&#xff0c;字不如表&#xff0c;表不如图&#xff0c;静图不如动图。 动图给人的直观感受&#xff0c;还是很不错的。在曾经的学生期间&#xff0c;进行组会汇报&#xff1b;还是如今工作中&#xff0c;给领导汇报。我经常使用screenToGif这款软件&#xff…

基于STM32F4系列的ETH IAP在线升级程序

目录 1、前言 2、以太网的移植&#xff08;无操作系统&#xff09; 3、移植FATS 系统 4、移植ETH 驱动及 DP83848驱动 5、Tftp 服务程序 6、注意事项 ​7、代码 资料下载地址&#xff1a;基于STM32F4系列的ETH IAP在线升级程序 1、前言 此bootloader程序可以通过http…

数字科技助力垃圾分类展厅,增强内容交互新体验!

如今&#xff0c;许多行业都开始运用数字技术&#xff0c;探索其在展览展示领域中的应用&#xff0c;其中垃圾分类展厅作为现代城市文明建设的重要一环&#xff0c;也通过这些技术的运用&#xff0c;打造出了更加生动且富有科技感的展示空间&#xff0c;它不仅提升公众对垃圾分…

TCP详解

2.1TCP 由IETF的RFC793定义的传输控制协议&#xff08;Transmission Control Protocol&#xff0c;TCP&#xff09;是一种基于字节流的传输层通信协议。在传输数据前需要在发送与接收者之间建立连接&#xff0c;通过相应机制保证其建立连接的可靠性。 TCP协议具备以下特性&am…

信息化工作人员必备常识8——DNS缓存【查看缓存与清理dns缓存】

信息化工作人员必备常识8——DNS缓存【查看缓存与清理dns缓存】 前言信息化人员必备常识回顾&#xff08;不想看回顾的直接往下滑哦~&#xff09;pingtelnetnslookup命令ipconfig命令域名DNS DNS缓存主机上解析DNS的优先级 清理DNS缓存查看当前电脑有哪些DNS缓存 前言 信息化相…

【超详细保姆教程】手把手教你如何修改el-tab的默认样式,把el-tab的label变成我们想要的

目录 前言实现效果官方的样式修改后的结果 步骤1、去掉分割线和下划线去掉前去掉后 2、设置插槽&#xff0c;自定义label的内容&#xff0c;加上border等结果 3、为选中的tab修改高亮结果 前言 做前端实习也有一段时间了&#xff0c;昨天晚上在学校上项目工程管理这门课的时候…

Edge浏览器下载文件提示 “无法安全下载” 的解决方法

提示如下&#xff1a; 虽然我们可以通过 "保留" 进行下载&#xff0c;但是每次需要选择&#xff0c;比较麻烦 解决方法&#xff1a; 1、打开注册表 HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft 2、创建2个 "项" Edge\InsecureContentAllowedForUrls…

数据链路层(计算机网络,待完善)

0、前言 本文大多数图片都来自于 B站UP主&#xff1a;湖科大教书匠 的教学视频&#xff0c;对高军老师及其团队制作出这么优质的课程表示感谢。文章增加了部分个人理解&#xff0c;内容并不是对视频的静态化翻译。 1、概述 1.1、数据链路层在计算机网络体系中的位置 1.2、对…