深度学习AIR-PolSAR-Seg图像数据预处理

文章目录

  • 深度学习sar图像数据预处理
    • 一.图片预处理操作
      • 1.log(1+x)处理
      • 2.sqrt平方化处理
    • 二.原网络训练效果展示
      • 原始数据训练效果展示:
    • 三.对比实验
      • 1.采用原始数据
      • 2.采用取log(1+x)后的数据
      • 3.采用取平方后归一化处理:
    • 四.总结:
    • 五.思考

深度学习sar图像数据预处理

一.图片预处理操作

用于sar图像语义分割的图片为512x512x1的图片,有HH,HV,VH,VV四种极化方式
我们拿到的HH极化方式下的原始sar图像数据分布如下:
在这里插入图片描述
将该形式下的图像归一化到0~255后展示出的灰度图像是这样的:
在这里插入图片描述
肉眼可见这样的sar图像是一片漆黑,对于网络来说也较难识别,更加细节地展示图片0:
在这里插入图片描述

1.log(1+x)处理

为了让网络更好区分sar图像进行语义分割,我们可以采用对其取log(1+x)的方式进行处理

img = np.log(1+img)

然后再在log变换后的图像上计算均值和方差将图像normalize到均值为0,方差为1(这一步不是非常重要)
对图像进行log变换再归一化后的数据分布变为:
在这里插入图片描述

进一步将处理后的图像值域缩放到0~255展示成灰度图:
在这里插入图片描述
可以看出此时的图像明显用肉眼已经可以略微辨别一二了,可区别度比原来有了较大提升,网络训练和区分起来也应当相对容易。展示图片0的更多细节:
在这里插入图片描述

图片具体处理细节如下:

 img = io.imread(img_path)
 img = np.asarray(img, dtype=float)
 img = np.log(1 + img)
 img = (img - mean) / std
 c = np.min(img)
 d = 0 - c
 img += d
 c = np.max(img)
 img /= c
 img *= 255

从数据集中采样三张图片对比起处理前后的数据分布情况:
处理前:
在这里插入图片描述

处理后:
在这里插入图片描述
明显可以看出处理后的数据更接近于正态分布。

2.sqrt平方化处理

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

二.原网络训练效果展示

将未进行处理的图片和经过处理的图片分别放入卷积神经网络进行训练
采用的语义分割网络模型为MPresnet
MPresnet论文地址:https://arxiv.org/abs/2011.05088
训练参数如下:

args = {
    'lr': 0.01,
    'gpu': True,
    'epochs': 400,
    'momentum': 0.9,
    'print_freq': 4,
    'predict_step': 10,
    'val_batch_size': 2,
    'train_batch_size': 4,
    'weight_decay': 5e-4,
    'lr_decay_power': 0.5,
    'train_crop_size': False,
    'pred_dir': os.path.join(working_path, 'results', DATA_NAME),
    'chkpt_dir': os.path.join(working_path, 'checkpoints', DATA_NAME),
    'log_dir': os.path.join(working_path, 'logs', DATA_NAME, NET_NAME),
    'data_process': 'log_normalize', 
    'weight_loss': 'weight_loss' # 采用加权交叉熵损失函数
}

原始数据训练效果展示:

Total time: 38598.2s Best rec: Train acc 98.30, Val acc 77.37 fwiou 66.94, Val_loss 1.3840

在这里插入图片描述

训练最好结果在验证集上的性能表现:

Acc 77.37, fwIoU 66.94
class acc[80.57  63.75  85.61  1.48  83.76  61.94]
            #黄色   蓝色   青色   红色  绿色   白色
           #住宅区 工业区  河流   裸地  植被   其他
Avg F1 63.03

验证集第100张:
在这里插入图片描述

在这里插入图片描述
决策边界的差异:
在这里插入图片描述

三.对比实验

本数据集中作者使用不同网络在多地形分类任务上获得的结果:
在这里插入图片描述

1.采用原始数据

最好结果: Best rec: Train acc 95.53, Val acc 79.67 fwiou 69.38, Val_loss 1.3569
验证集具体推理结果:

Acc 79.62, fwIoU 69.32
class acc[82.88, 67.63, 87.27, 2.49, 85.89, 71.66]
Avg F1 65.23

2.采用取log(1+x)后的数据

最好结果:Best rec: Train acc 95.94, Val acc 79.30 fwiou 68.82, Val_loss 1.2038
验证集具体推理结果:

Acc 79.30, fwIoU 68.82
class acc:[82.40, 66.12, 87.20, 6.94, 85.36, 77.08]
Avg F1 65.61

3.采用取平方后归一化处理:

最好结果:Best rec: Train acc 95.70, Val acc 81.05 fwiou 70.43, Val_loss 1.4677
验证集具体推理结果:

Acc 81.05, fwIoU 70.43 # 采用亮度,对比度,饱和度随机0.25变换
Acc 80.68, fwIoU 70.05 # 未采用上述变换
class acc:[83.99, 67.32, 88.26, 2.28, 86.71, 78.38]
Avg F1 65.71

log变换和平方变换的效果图对比:
在这里插入图片描述

四.总结:

数据处理数据增强OAfwiou
原数据随机水平翻转77.3766.94
原数据随机水平,垂直翻转;随机旋转;亮度,饱和度,对比度随机±0.25变换79.6269.32
log变换随机水平,垂直翻转;随机旋转;亮度,饱和度,对比度随机±0.25变换79.3068.82
平方变换随机水平,垂直翻转;随机旋转;亮度,饱和度,对比度随机±0.25变换81.0570.43
平方变换随机水平,垂直翻转;随机旋转;80.6870.05

数据处理和数据增强使用前后预测效果对比:
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

五.思考

可能引起网络在该数据集上不足的原因:
1.可能是MPresnet实验中所使用的数据集分辨率与AIR-polar-sar数据集分辨率及场景复杂度不同

  • MPresnet中的数据集描述为:分辨率1~3m,所以包含的细粒度特征更多,且场景复杂度较低
    在这里插入图片描述
  • AIR-polar-sar数据集描述为分辨率8m,且AIR-ploar-sar与高分竞赛训练集的数据尺寸相同数量相近,这意味着所训练的场景是其大小的4倍左右,同时包含更大的场景复杂性。
    原论文中对AIR-polar-sar数据集场景复杂度的描述如下:
    在这里插入图片描述
    下图可视化地展示了其场景复杂度:
    在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

eNSP启动路由器一直出#号、以为是安装配置winpcap的问题。。。。(以为是win10安装winpcap失败的问题。。。)

问题描述:eNSP启动一直出#号的一种参考方法_ensp一直#_Hong的博客-CSDN博客 原因是看了这篇博客,觉得ensp启动路由器的时候一直出现#号是因为winpcap安装的时候出现的问题。查看自己的winpcap安装成功之后的目录是: 然后因为那篇…

2783爱心公益网站的设计与实现JSP【程序源码+文档+调试运行】

一、摘要 本文将详细介绍一个基于Web的爱心公益网站的设计和实现。该网站包括前台用户模块和后台管理员模块,能够满足用户和管理员的不同需求。通过对用户和管理员的功能需求分析,本文将重点阐述数据库设计和界面设计的关键环节,同时介绍如何…

北邮22级信通院数电:Verilog-FPGA(9)第九周实验(1)实现带同步复位功能、采用上升沿触发的D触发器

北邮22信通一枚~ 跟随课程进度更新北邮信通院数字系统设计的笔记、代码和文章 持续关注作者 迎接数电实验学习~ 获取更多文章,请访问专栏: 北邮22级信通院数电实验_青山如墨雨如画的博客-CSDN博客 目录 一.顶层模块的书写 二.两种验证方法 2.1使用…

Azure 机器学习:在 Azure 机器学习中使用 Azure OpenAI 模型

目录 一、环境准备二、Azure 机器学习中的 OpenAI 模型是什么?三、在机器学习中访问 Azure OpenAI 模型连接到 Azure OpenAI部署 Azure OpenAI 模型 四、使用自己的训练数据微调 Azure OpenAI 模型使用工作室微调微调设置训练数据自定义微调参数部署微调的模型 使用…

leetCode 92.反转链表 II + 图解

92. 反转链表 II - 力扣&#xff08;LeetCode&#xff09; 给你单链表的头指针 head 和两个整数 left 和 right &#xff0c;其中 left < right 。请你反转从位置 left 到位置 right 的链表节点&#xff0c;返回 反转后的链表 206. 反转链表 - 力扣&#xff08;LeetCode&am…

python RSA 2048位 已知P,Q计算出E和D

这个软件居然不保存D&#xff0c;吓死宝宝了。刚把公钥【公钥指数&#xff08;E&#xff09;和模数&#xff08;N&#xff09;】发给客户&#xff0c;自己写代码找D【私钥指数&#xff08;E&#xff09;】居然没保存。 试了一个随机的生成的一对key pair&#xff0c;可以找回。…

GPU Microarch 学习笔记【2】Unified Memory

目录 1. M3 Dynamic Caching 2. Unified Memory 3. Unified Memory是如何处理page fault的 4. Unified Memory Page Fault的相关论文 M3 Dynamic Caching 最新的Apple M3 芯片最亮眼的可能是支持dynamic caching&#xff0c;如下图所示。 具体说来就是传统的GPU分配内存时&…

MySQL的SQL预编译及防SQL注入

文章目录 1 SQL语句的执行处理1.1 即时SQL1.2 预处理SQL1.2.1 预编译SQL的实现步骤1.2.2 预编译SQL的C使用举例1.2.3 MYSQL_BIND()函数中的参数类型&#xff1a; 2 SQL注入2.1 什么是SQL注入2.2 如何防止SQL注入 1 SQL语句的执行处理 SQL的执行可大致分为下面两种模式&#xf…

计算机毕业设计选题推荐-课程学习微信小程序/安卓APP-项目实战

✨作者主页&#xff1a;IT研究室✨ 个人简介&#xff1a;曾从事计算机专业培训教学&#xff0c;擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Python…

Centos7 升级到 Centos8 教程以及关于dnf包管理工具的若干问题解决方案

目录 为什么升级一、参考文档二、升级步骤三、安装git编码错误缓存问题安装git依赖冲突问题解决办法 为什么升级 jenkins 2.4版本需要CentOS8 一、参考文档 点我 二、升级步骤 1.安装epel源 yum -y install epel-release2.安装rpmconf和yum-utils yum -y install rpmco…

基于RK3568的跑步机方案

I 方案简介 一、跑步机的来历 跑步机是家庭及健身房常备的健身器材&#xff0c;而且是当今家庭健身器材中最简单的一种&#xff0c;是家庭健身器的最佳选择。1965年北欧芬兰唐特力诞生了全球第一台家用的跑步机&#xff0c;设计师根据传速带的原理改变而成。 二、…

岗前酒精检测仪

岗前酒精检测仪&#xff1a;集“酒精检测智能测温人脸考勤”三合一智能检测仪。 酒精检测功能&#xff1a;采用电化学传感器检测检测酒精浓度&#xff0c;具有吹气中断及吹气流量侦测&#xff0c;吹气防欺骗设计&#xff0c;吹气温度及吸气侦测&#xff1b;响应时间≤20毫秒&am…

NIO的浅了解

一、五种IO类型 1、阻塞IO 用户进程一直等待数据准备好&#xff0c;在复制完成之前都是阻塞的 2、非阻塞IO 用户进程需要不断轮询查看是否数据准备好 优化了提升并发连接数量&#xff0c;但是每一个请求都需要创建一个socket建立连接&#xff0c;每个线程都需要去遍历轮询&am…

数字三角形模型 笔记

方格取数 走两次的最大值 f[k][i1][i2]来表示 k i1 j1 i2 j2; 每一个状态可由四种状态转换来&#xff0c;分别为 第一条路走下&#xff0c;第二条路走下 第一条路走下&#xff0c;第二条路走右 第一条路走右&#xff0c;第二条路走下 第一条路走右&#xff0c;第二条…

三国杀中的概率学问题4——曹冲

前言 这篇文章是围绕曹冲的称象技能展开的一些数学上的讨论&#xff0c;将涉及到积分、概率论等知识&#xff0c;并会做很多拓展。 值得说明的是&#xff0c;本文受到了这篇文章的一些启发。 连续情形1 先来看一个连续情形的问题。 问题一&#xff1a;假设每张牌的点数是0~1…

力扣刷题-二叉树-对称二叉树

101 对称二叉树 给你一个二叉树的根节点 root &#xff0c; 检查它是否轴对称。 示例 1&#xff1a; 输入&#xff1a;root [1,2,2,3,4,4,3] 输出&#xff1a;true 示例 2&#xff1a; 输入&#xff1a;root [1,2,2,null,3,null,3] 输出&#xff1a;false 思路 我的思路…

Unity--互动组件(Button)

1.组件的可交互 2.组件的过渡状态 3.组件的导航 4.组件的Event Button “”组件的可交互&#xff1a;“” Interactable&#xff1a; 该组件是否可点击&#xff08;设置为false时&#xff0c;将禁用交互&#xff0c;并且过渡状态将设置为禁用状态&#xff09;&#xff1b;…

深入理解C++关联式容器:set、multiset、map和multimap详解

序列式容器 与 关联式容器 我们知道&#xff1a; C 中&#xff0c;我们将 vector、list、queue 这种底层为线性序列的数据结构叫做 序列式容器&#xff0c;其存储的就是元素本身。而 关联式容器 以键-值对的形式存储数据。每个键在容器中必须是唯一的&#xff0c;而值则与相应…

Windows没有USB启动选项很常见,但解决方法更常见

当试图在计算机上重新安装Windows 11/10操作系统,或从安装介质启动时,一些用户看到错误–系统没有任何USB启动选项,请在启动管理器菜单中选择其他启动选项。此错误出现在不同OEM的多个设备,原因包括启用了安全引导、禁用了Legacy/CSM支持、联想服务引擎、未正确制作可引导U…

本地化小程序运营 同城小程序开发

时空的限制让本地化的线上平台成为一种追求&#xff0c;58及某团正式深挖人们城镇化、本地化的信息和商业需求而崛起的平台&#xff0c;将二者结合成本地化小程序&#xff0c;显然有着巨大的市场机会。本地化小程序运营可以结合本地化生活需求的一些信息&#xff0c;以及激发商…