Skip to content

Goblin66dog/Deep_Learning

Repository files navigation

Deep Learning

深度学习算法总结(Personal Configuration)

目录:

项目の目的

项目の结构

 Datasets
->数据读取
->数据处理
->数据分配
->网络训练<-训练策略(损失函数+优化器)
->输出

项目の详述

训练准备

数据读取

Data_Reader

  • 数据读取模块
  • 用于各种栅格数据读取
    • 读取包括.TIF/.PNG/.JPG的各种图像
    • 返回的栅格类型为:C·H·W
  • 代码更加精简
- Dataset          : 定义了一个Dataset类
  - input_file_path: 输入文件路径
  - self.data      : gdal对象
  - self.width     : 图像宽
  - self.height    : 图像高
  - self.proj      : 地图投影信息
  - self.geotrans  : 仿射变换参数
  - self.array     : 图像数据
  - self.bands     : 图像波段(通道数)
  - self.type      : 图像数据格式
- 无返回值

数据处理

Padding

  • 对单张图像进行Padding操作
- Padding           : 定义了一个Padding类
  - image           : 输入图像栅格
  - image_shape     : N·C·H·W的顺序
  - self.mir        : 镜像Padding操作
    - target_height : Padding目标高 
    - target_width  : Padding目标宽
  - self.nor        : 常规Padding操作(直接补0)
    - target_height : Padding目标高 
    - target_width  : Padding目标宽
  - self.min        : 最小Padding操作(用于适应多层下采样或卷积)
    - divide        : 需要适应的被除数
    - 函数返回为输入图像与divide之间的最小公倍数大小的图像
- 返回一个经Padding操作的图像

Random_Flip

  • 对原始图像和标签图像进行随机反转操作
- RandomFlip        : 定义了一个RandomFlip类
  - image           : 输入原始图像栅格
  - label           : 输入标签图像栅格
  - self.random_flip     : 随机翻转
- 返回一对经随机翻转的图像元组

Flip8x

  • 对图像进行包括翻转、旋转在内的所有角度翻转操作
- Flip8x        : 定义了一个Flip8x类
  - image           : 输入图像栅格
  - image_shape     : N·C·H·W的顺序
  - self.flip8x     : 8种角度翻转
    - 函数返回的是8种角度翻转的列表栅格
  - self.flip       : 返回8种角度反转的图像,保存到本地

Percent_Linear_Enhancement

  • 线性拉伸

DataPreProcessor

  • 对图像进行预处理操作,并将图像保存到本地
- Processor              : 定义了一个Processor类
  - self.batch_processor : 数据批处理
    - input_pack_path    : 输入数据集路径
    - output_pack_path   : 输出文件夹名称
    - image_shape        : N·C·H·W的顺序
    - mode               : 处理模式
      - L                : 线性拉伸
      - P                : Padding 
      - F                : 翻转
  - 调用batch_processor函数后将直接保存批处理的图像到指定文件夹

Data_Loader

  • 数据加载模块
  • 适应于单输入图像网络
  • 不进行任何数据预处理
  • 用于将样本进行读取
    • 读取后将栅格存储进入Dataloader中
    • 返回为栅格序列
    • 返回的栅格类型为:N·C·H·W
- DataLoader            : 定义了一个DataLoader类
  - input_datasets_path : 输入数据集路径
- 返回一对数据数组(image, label)
Attention!:数据集路径文件夹应当按照一下定义要求进行分配:
--Datasets
 ->image1(模型输入1文件夹)
 ->image2(模型输入2文件夹)
 ...
 ->label(标签文件夹)

网络库

包含:

U-Net :经典的U-Net语义分割模型

AG-U-Net :于跳层链接&上采样间增加注意力门

ASPP-U-Net :增加ASPP空间金字塔池化模块

DeepLabV3+ :经典的DeepLabV3+语义分割模型

SegFormer :经典的SegFormer语义分割模型

SegFormer-OutConv :将最后的多层感知机解码器更换为多层卷积解码器

BenchSegNet :为面向露天矿台阶识别任务修改的SegFormer变体

参数调整:

- in_channels :输入通道数
- num_classes :输出类别数
- backbone    :骨干网络
- pretrained  :使用预训练参数

About

集成深度学习算法(Personal Configuration)

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages