当前位置: 首页 > news >正文

深度学习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) / stdc = np.min(img)d = 0 - cimg += dc = np.max(img)img /= cimg *= 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数据集场景复杂度的描述如下:
    在这里插入图片描述
    下图可视化地展示了其场景复杂度:
    在这里插入图片描述

相关文章:

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

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

求最大公约数math.gcd()

【小白从小学Python、C、Java】 【计算机等级考试500强双证书】 【Python-数据分析】 求最大公约数 math.gcd() [太阳]选择题 下列代码执行输出的结果是? import math print("【执行】print(math.gcd(6, 8))") print(math.gcd(6, 8)) print(&quo…...

数据结构之队列

目录 引言 队列的概念与结构 队列的实现 定义 初始化 销毁 入队 判断队列是否为空 出队 获取队头元素 获取队尾元素 检测队列中有效元素个数 元素访问 源代码 queue.h queue.c test.c 引言 数据结构之路经过栈后,就来到了与栈联系紧密的兄弟—…...

MySQL数据库——存储过程-循环(while、repeat、loop)

目录 while 介绍 案例 repeat 介绍 案例 loop 介绍 案例一 案例二 while 介绍 while 循环是有条件的循环控制语句。满足条件后,再执行循环体中的SQL语句。具体语法为: -- 先判定条件,如果条件为true,则执行逻辑&#…...

Django路由

路由系统 1.Django1中的路由1.1 普通形式1.2 分组1.2.1 无名分组1.2.2 有名分组 2. Django2版本2.1 传统的路由2.2 正则表达式路由 3. 路由分发3.1 include(一般使用此方式做路由分发)3.2 手动分发 4. name别名及使用name的反向URL生成4.1 一般情况下的别名使用及反向生成4.2 分…...

头歌实践平台-数据结构-二叉树及其应用

第1关:实现二叉树的创建 #include "binary_tree.h"BiTreeNode* CreatBiTree(char* s, int &i, int len) // 利用先序遍历创建二叉树 // 参数:先序遍历字符串s,字符串初始下标i0,字符串长度len。 // 返回&#xff1…...

2023.11.11通过html内置“required-star“添加一个红色的星号来表示必填项

2023.11.11通过html内置"required-star"添加一个红色的星号来表示必填项 在HTML中&#xff0c;可以使用标签来为元素添加说明。同时可以通过添加一个红色的星号来表示必填项。 <!DOCTYPE html> <html lang"en"> <head><meta charse…...

pcie【C#】

根据提供的引用内容&#xff0c;使用C#编写PCIE的Demo需要遵循以下步骤&#xff1a;1.连接好硬件后&#xff0c;烧录bit文件&#xff0c;安装PCIe内核驱动&#xff0c;然后重启计算机。2.打开VS工程&#xff0c;创建一个新的C#控制台应用程序项目。3.在项目中添加对C DLL的引用…...

西门子精智屏数据记录U盘插拔问题总结

西门子精智屏数据记录U盘插拔问题总结 注意: 数据记录过程中不允许带电插拔 U 盘! 数据记录的相关功能可参考以下链接中的内容: TIA博途wincc V16 如何进行变量周期归档?...

(论文阅读27/100)Deep Filter Banks for Texture Recognition and Segmentation

27.文献阅读笔记 简介 题目 Deep Filter Banks for Texture Recognition and Segmentation 作者 Mircea Cimpoi, Subhransu Maji, Andrea Vedaldi, 原文链接 http://www.cv-foundation.org/openaccess/content_cvpr_2015/papers/Cimpoi_Deep_Filter_Banks_2015_CVPR_pap…...

ARMday06(串口)

代码&#xff1a; #include "gpio.h" #include "stm32mp1xx_gpio.h" #include "stm32mp1xx_rcc.h" #include "stm32mp1xx_uart.h" void init(); char getc(); void putc(const char data); int main() {init();//初始化putc(j);char …...

Rust字符串详解

文章目录 字符串切片String迭代方法基础字符串方法容量操作增删改查 字符串切片 我们所熟知的由双引号括起来的字符串&#xff0c;在Rust中只是个字符串切片&#xff0c;又叫字符串字面值。这种类型一旦创建&#xff0c;则不可更改。但支持索引&#xff0c;从切片中索引出来的…...

(四)七种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB

一、七种算法&#xff08;DBO、LO、SWO、COA、LSO、KOA、GRO&#xff09;简介 1、蜣螂优化算法DBO 蜣螂优化算法&#xff08;Dung beetle optimizer&#xff0c;DBO&#xff09;由Jiankai Xue和Bo Shen于2022年提出&#xff0c;该算法主要受蜣螂的滚球、跳舞、觅食、偷窃和繁殖…...

Window安装MongoDB

三种NOSQL的一种,Redis MongoDB ES 应用场景: 1.社交场景:使用Mongodb存储用户信息,以及用户发表的朋友圈信息,通过地理位置索引实现附近的人,地点等功能 2.游戏场景:使用Mongodb存储游戏用户信息,用户的装备,积分等直接以内嵌文档的形式存储,方便查询,高效率存储和访问…...

20.有效的括号(LeetCode)

思路&#xff1a;用栈的后进先出的特性&#xff0c;来完成题目的要求 因为C有库&#xff0c;可以直接用&#xff0c;而C语言没有&#xff0c;所以我们直接把写好的栈拷贝上来用。 首先&#xff0c;完成框架的搭建 其次&#xff0c;再实现循环内的部分。1.左括号入栈 2.右括…...

Vue3组件传参之Mitt插件方式

在vue3中$on&#xff0c;$off 和 $once 实例方法已被移除&#xff0c;组件实例不再实现事件触发接口&#xff0c;因此大家熟悉的EventBus便无法使用了。然而我们习惯了使用EventBus&#xff0c;对于这种情况我们可以使用Mitt库&#xff08;其实就是我们视频中讲的发布订阅模式的…...

【数据仓库】数仓分层方法

文章目录 一. 数仓分层的意义1. 清晰数据结构。2. 减少重复开发3. 方便数据血缘追踪4. 把复杂问题简单化5. 屏蔽原始数据的异常6. 数据仓库的可维护性 二. 如何进行数仓分层&#xff1f;1. ODS层2. DW层2.1. DW层分类2.2. DWD层2.3. DWS 3. ADS层 4、层次调用规范 一. 数仓分层…...

Linux网络——自定义协议

目录 一.什么是协议 二.协议与报文 三.自定义协议 1.封装套接字 2.构建请求与响应 3.序列化和反序列化 4.报头添加和去除 5.报文读取 四.服务器端程序 五.客户端程序 一.什么是协议 协议在生活中泛指&#xff1a;双方或多方为了完成某项任务或达成某种目的而制定的共…...

【OpenCV实现图像:用OpenCV图像处理技巧之巧用直方图】

文章目录 概要前置条件统计数据分析直方图均衡化原理小结 概要 图像处理是计算机视觉领域中的重要组成部分&#xff0c;而直方图在图像处理中扮演着关键的角色。如何巧妙地运用OpenCV库中的图像处理技巧&#xff0c;特别是直方图相关的方法&#xff0c;来提高图像质量、改善细…...

【Android】画面卡顿优化列表流畅度四之Glide几个常用参数设置

好像是一年前快两年了&#xff0c;笔者解析过glide的源码&#xff0c;也是因为觉得自己熟悉一些&#xff0c;也就没太关注过项目里glide的具体使用对当前业务的影响&#xff1b;主要是自负&#xff0c;还有就是真没有碰到过这样的数据加载情况。暴露了经验还是不太足够 有兴趣的…...

DMA-330地址空间限制与扩展方案解析

1. DMA-330地址空间限制解析DMA-330作为Arm CoreLink系列中的直接内存访问控制器&#xff0c;其物理寻址能力直接由AxADDR信号宽度决定。这个32位地址总线宽度意味着它原生仅支持4GB&#xff08;2^32字节&#xff09;的物理地址空间访问。在实际嵌入式系统设计中&#xff0c;这…...

环境光遮蔽(Ambient Occlusion):揭秘那个让虚拟世界“有重量感“的阴影魔法

一、一个让我"开窍"的老木匠故事 我有个朋友是传统家具的修复师&#xff0c;他给我讲过一个让我至今难忘的故事。他说他刚入行时跟着一位 70 多岁的老木匠师父学习——师父让他做的第一件事不是雕花、不是榫卯——而是"看阴影"——这个看似奇怪的训练改变了…...

开发转兼职DBA(二):执行计划教我做事

开发转兼职DBA&#xff08;二&#xff09;&#xff1a;执行计划教我做事 查询慢了不知道为什么&#xff0c;加了索引还是慢&#xff0c;复合索引怎么建&#xff0c;执行计划怎么看——这些不是DBA的专利&#xff0c;是每个写SQL的开发者迟早要面对的事。 文章目录 开发转兼职DB…...

2026 文章代码高亮方案选型

将基于 Prism.js 或 Highlight.js 的传统高亮方案与基于 Shiki 的现代化高亮方案进行对比&#xff0c;其核心区别在于底层解析原理的不同&#xff08;正则表达式 vs. TextMate 语法树&#xff09;。 以下是两种方案的底层原理、各自优缺点、核心对比矩阵以及适用场景的详细分析…...

危急时刻的六条基本安全提示

人机协作&#xff0c;AI模型&#xff1a;Deepseek 仅供参考 危急时刻的六条基本安全提示 以下内容仅为通用性安全建议&#xff0c;供在紧急情况下保持冷静、保护自身安全时参考。所有建议均基于常理和公共安全常识&#xff0c;不包含任何具体操作细节或可能被不当使用的信息…...

告别手动复制!用这个自定义编辑器脚本一键备份/克隆Unity Terrain Data

告别手动复制&#xff01;用这个自定义编辑器脚本一键备份/克隆Unity Terrain Data在Unity关卡设计和技术美术的工作流中&#xff0c;地形数据的灵活复用往往意味着反复的手动操作——导出高度图、备份材质参数、复制植被分布&#xff0c;每个环节都可能成为效率瓶颈。想象这样…...

Arduino ADC自检:用RC电路诊断模数转换器故障

1. 项目概述&#xff1a;当你的体重秤开始“说谎”你有没有遇到过这样的情况&#xff1a;站上家里的电子体重秤&#xff0c;屏幕上跳出来的数字让你瞬间怀疑人生&#xff1f;要么是轻得离谱&#xff0c;要么是重得吓人&#xff0c;更诡异的是&#xff0c;它可能只在两个固定的、…...

OpenCore Legacy Patcher完整指南:让老旧Mac焕发新生,运行最新macOS

OpenCore Legacy Patcher完整指南&#xff1a;让老旧Mac焕发新生&#xff0c;运行最新macOS 【免费下载链接】OpenCore-Legacy-Patcher Experience macOS just like before 项目地址: https://gitcode.com/GitHub_Trending/op/OpenCore-Legacy-Patcher 你是否有一台被苹…...

Video2X专业级AI视频增强实战指南:GPU加速无损放大的深度技术解析

Video2X专业级AI视频增强实战指南&#xff1a;GPU加速无损放大的深度技术解析 【免费下载链接】video2x A machine learning-based video super resolution and frame interpolation framework. Est. Hack the Valley II, 2018. 项目地址: https://gitcode.com/GitHub_Trendi…...

如何快速获取Steam游戏清单:Onekey工具的终极使用指南

如何快速获取Steam游戏清单&#xff1a;Onekey工具的终极使用指南 【免费下载链接】Onekey Onekey Steam Depot Manifest Downloader 项目地址: https://gitcode.com/gh_mirrors/one/Onekey 还在为Steam游戏清单的繁琐获取过程而烦恼吗&#xff1f;Onekey作为一款完全免…...