当前位置: 首页 > 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数据集场景复杂度的描述如下:
    在这里插入图片描述
    下图可视化地展示了其场景复杂度:
    在这里插入图片描述
http://www.lryc.cn/news/229125.html

相关文章:

  • 求最大公约数math.gcd()
  • 数据结构之队列
  • MySQL数据库——存储过程-循环(while、repeat、loop)
  • Django路由
  • 头歌实践平台-数据结构-二叉树及其应用
  • 2023.11.11通过html内置“required-star“添加一个红色的星号来表示必填项
  • pcie【C#】
  • 西门子精智屏数据记录U盘插拔问题总结
  • (论文阅读27/100)Deep Filter Banks for Texture Recognition and Segmentation
  • ARMday06(串口)
  • Rust字符串详解
  • (四)七种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB
  • Window安装MongoDB
  • 20.有效的括号(LeetCode)
  • Vue3组件传参之Mitt插件方式
  • 【数据仓库】数仓分层方法
  • Linux网络——自定义协议
  • 【OpenCV实现图像:用OpenCV图像处理技巧之巧用直方图】
  • 【Android】画面卡顿优化列表流畅度四之Glide几个常用参数设置
  • js控制手机蓝牙
  • C++11 原始字符串字面量R“()“
  • 【Vue原理解析】之虚拟DOM
  • HCIE-灾备技术和安全服务
  • 【图论实战】Boost学习 01:基本操作
  • Rust 中的引用与借用
  • Azure 机器学习:在 Azure 机器学习中使用 Azure OpenAI 模型
  • XML Web 服务 Eclipse实现中的sun-jaxws.xml文件
  • 16.1 二次根式 教学设计及课堂检测设计
  • Android数据流的狂欢:Channel与Flow
  • Java 单元测试最佳实践:如何充分利用测试自动化