/PdRSCD

基于『飞桨』的遥感变化检测工具(Remote sensing change detection tool based on『PaddlePaddle』)

Primary LanguagePythonApache License 2.0Apache-2.0

PdRSCD

Python 3.7 Paddle 2.1.0 License GitHub Repo stars

PdRSCD(PaddlePaddle Remote Sensing Change Detection)是一个基于飞桨PaddlePaddle的遥感变化检测的项目,pypi包名为ppcd。目前0.2版本,最新支持图像列表输入的训练和预测,如多期影像、多源影像甚至多期多源影像。可以快速完成分割、变化检测等任务。

注:此repo不再更新,相关工作和维护更新在3SPP/PdRSCD中。

在线项目实例

  1. 【ppcd快速入门】经典LEVIR数据集变化检测
  2. 【ppcd快速入门】大图滑框变化检测与拼接
  3. 【ppcd快速入门】多光谱遥感影像变化检测
  4. 【ppcd快速入门】多光谱遥感影像分割
  5. 【ppcd快速入门】多标签遥感图像变化检测(待更)
  6. 【ppcd快速入门】分类标签遥感变化检测(待更)

特点

  1. 适应$N(N\ge1)$期图像的读取和增强,支持jpg、tmp、tif和npy等格式,支持多光谱/波段
  2. 有更多有特色的数据增强
  3. 适应分割图标签、分类标签以及多标签(分割+变化标签)
  4. 网络多返回、多标签和多损失之间的组合
  5. 适应单通道预测图及双通道预测图的输出(argmax与threshold)
  6. 支持大图滑框/随机采样训练和滑框预测与拼接
  7. 支持保存为带地理坐标的tif

代码结构

PdRSCD的主要代码在ppcd中,文件夹组织如下。可以根据自己的任务修改和添加下面的代码。

ppcd
  ├── core  # 包含训练和预测的代码
  ├── datasets  # 包含创建数据列表和定义数据集的代码
  ├── losses  # 包含损失函数的代码
  ├── metrics  # 包含指标评价的代码
  ├── models  # 包含网络模型、特殊层、层初始化等代码
  ├── traditions  # 包含一些传统计算方法的代码
  ├── transforms  # 包含数据增强的代码
  ├── utils  # 包含其他代码,如计时等
  └── tools  # 包含工具代码,如分块、图像查看器等

现有资产与自定义

  1. 自定义数据集
  2. 模型库与自定义模型
  3. 损失函数与自定义损失函数
  4. 数据增强与自定义数据增强
  5. 传统处理方法
  6. 工具组

使用入门

  • 可以通过pip使用官方原直接进行安装。
pip install ppcd -i https://pypi.org/simple
  • 也可以通过克隆PdRSCD到项目中,并添加到环境变量。
# 克隆项目
# git clone https://github.com/geoyee/PdRSCD.git  # github可能较慢
git clone https://gitee.com/Geoyee/pd-rscd.git
    
import sys
sys.path.append('pd-rscd')  # 加载环境变量

说明

  1. 当前更新后需要在PaddlePaddle2.1.0及以上上运行,否则可能会卡在DataLoader上。除此之外DataLoader可能还存在问题,例如在一个CPU项目上卡住了,不知道原因,建议在2.1.0及以上版本的GPU设备上运行(至少AI Studio的GPU肯定是没问题的)。
  2. 由于GDAL无法直接通过pip安装,所以如果需要使用GDAL的地方目前需要自行安装GDAL。

后续重点

  • 添加多源数据输入,栅格得分结果输出的空间分析功能(问号)
  • 添加将tif转为shp以及读取shp进行训练。预测(尽量)

相关链接

交流与反馈

Email:Geoyee@yeah.net