深度学习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变换和平方变换的效果图对比:
四.总结:
数据处理 | 数据增强 | OA | fwiou |
---|---|---|---|
原数据 | 随机水平翻转 | 77.37 | 66.94 |
原数据 | 随机水平,垂直翻转;随机旋转;亮度,饱和度,对比度随机±0.25变换 | 79.62 | 69.32 |
log变换 | 随机水平,垂直翻转;随机旋转;亮度,饱和度,对比度随机±0.25变换 | 79.30 | 68.82 |
平方变换 | 随机水平,垂直翻转;随机旋转;亮度,饱和度,对比度随机±0.25变换 | 81.05 | 70.43 |
平方变换 | 随机水平,垂直翻转;随机旋转; | 80.68 | 70.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。 // 返回࿱…...

2023.11.11通过html内置“required-star“添加一个红色的星号来表示必填项
2023.11.11通过html内置"required-star"添加一个红色的星号来表示必填项 在HTML中,可以使用标签来为元素添加说明。同时可以通过添加一个红色的星号来表示必填项。 <!DOCTYPE html> <html lang"en"> <head><meta charse…...
pcie【C#】
根据提供的引用内容,使用C#编写PCIE的Demo需要遵循以下步骤:1.连接好硬件后,烧录bit文件,安装PCIe内核驱动,然后重启计算机。2.打开VS工程,创建一个新的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(串口)
代码: #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迭代方法基础字符串方法容量操作增删改查 字符串切片 我们所熟知的由双引号括起来的字符串,在Rust中只是个字符串切片,又叫字符串字面值。这种类型一旦创建,则不可更改。但支持索引,从切片中索引出来的…...

(四)七种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB
一、七种算法(DBO、LO、SWO、COA、LSO、KOA、GRO)简介 1、蜣螂优化算法DBO 蜣螂优化算法(Dung beetle optimizer,DBO)由Jiankai Xue和Bo Shen于2022年提出,该算法主要受蜣螂的滚球、跳舞、觅食、偷窃和繁殖…...

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

20.有效的括号(LeetCode)
思路:用栈的后进先出的特性,来完成题目的要求 因为C有库,可以直接用,而C语言没有,所以我们直接把写好的栈拷贝上来用。 首先,完成框架的搭建 其次,再实现循环内的部分。1.左括号入栈 2.右括…...
Vue3组件传参之Mitt插件方式
在vue3中$on,$off 和 $once 实例方法已被移除,组件实例不再实现事件触发接口,因此大家熟悉的EventBus便无法使用了。然而我们习惯了使用EventBus,对于这种情况我们可以使用Mitt库(其实就是我们视频中讲的发布订阅模式的…...

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

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

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

【Android】画面卡顿优化列表流畅度四之Glide几个常用参数设置
好像是一年前快两年了,笔者解析过glide的源码,也是因为觉得自己熟悉一些,也就没太关注过项目里glide的具体使用对当前业务的影响;主要是自负,还有就是真没有碰到过这样的数据加载情况。暴露了经验还是不太足够 有兴趣的…...

大数据学习栈记——Neo4j的安装与使用
本文介绍图数据库Neofj的安装与使用,操作系统:Ubuntu24.04,Neofj版本:2025.04.0。 Apt安装 Neofj可以进行官网安装:Neo4j Deployment Center - Graph Database & Analytics 我这里安装是添加软件源的方法 最新版…...
vue3 字体颜色设置的多种方式
在Vue 3中设置字体颜色可以通过多种方式实现,这取决于你是想在组件内部直接设置,还是在CSS/SCSS/LESS等样式文件中定义。以下是几种常见的方法: 1. 内联样式 你可以直接在模板中使用style绑定来设置字体颜色。 <template><div :s…...
稳定币的深度剖析与展望
一、引言 在当今数字化浪潮席卷全球的时代,加密货币作为一种新兴的金融现象,正以前所未有的速度改变着我们对传统货币和金融体系的认知。然而,加密货币市场的高度波动性却成为了其广泛应用和普及的一大障碍。在这样的背景下,稳定…...

Docker 本地安装 mysql 数据库
Docker: Accelerated Container Application Development 下载对应操作系统版本的 docker ;并安装。 基础操作不再赘述。 打开 macOS 终端,开始 docker 安装mysql之旅 第一步 docker search mysql 》〉docker search mysql NAME DE…...

AI+无人机如何守护濒危物种?YOLOv8实现95%精准识别
【导读】 野生动物监测在理解和保护生态系统中发挥着至关重要的作用。然而,传统的野生动物观察方法往往耗时耗力、成本高昂且范围有限。无人机的出现为野生动物监测提供了有前景的替代方案,能够实现大范围覆盖并远程采集数据。尽管具备这些优势…...

【网络安全】开源系统getshell漏洞挖掘
审计过程: 在入口文件admin/index.php中: 用户可以通过m,c,a等参数控制加载的文件和方法,在app/system/entrance.php中存在重点代码: 当M_TYPE system并且M_MODULE include时,会设置常量PATH_OWN_FILE为PATH_APP.M_T…...

在 Spring Boot 中使用 JSP
jsp? 好多年没用了。重新整一下 还费了点时间,记录一下。 项目结构: pom: <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://ww…...

Cilium动手实验室: 精通之旅---13.Cilium LoadBalancer IPAM and L2 Service Announcement
Cilium动手实验室: 精通之旅---13.Cilium LoadBalancer IPAM and L2 Service Announcement 1. LAB环境2. L2公告策略2.1 部署Death Star2.2 访问服务2.3 部署L2公告策略2.4 服务宣告 3. 可视化 ARP 流量3.1 部署新服务3.2 准备可视化3.3 再次请求 4. 自动IPAM4.1 IPAM Pool4.2 …...

消防一体化安全管控平台:构建消防“一张图”和APP统一管理
在城市的某个角落,一场突如其来的火灾打破了平静。熊熊烈火迅速蔓延,滚滚浓烟弥漫开来,周围群众的生命财产安全受到严重威胁。就在这千钧一发之际,消防救援队伍迅速行动,而豪越科技消防一体化安全管控平台构建的消防“…...
数据库正常,但后端收不到数据原因及解决
从代码和日志来看,后端SQL查询确实返回了数据,但最终user对象却为null。这表明查询结果没有正确映射到User对象上。 在前后端分离,并且ai辅助开发的时候,很容易出现前后端变量名不一致情况,还不报错,只是单…...