Skip to content

Latest commit

 

History

History
123 lines (94 loc) · 3.48 KB

README.md

File metadata and controls

123 lines (94 loc) · 3.48 KB

基于PaddleRS的遥感图像小目标语义分割优化方法

本案例为C2FNet基于PaddleRS的官方实现代码。本方法实现了一个从粗到细的模型,对现有的任意语义分割方法进行优化,实现对小目标的准确分割。

安装说明

环境依赖

Python: 3.8  
PaddlePaddle: 2.3.2
PaddleRS: 1.0

安装过程

a. (可选)创建并激活一个conda虚拟环境。

conda create -n paddlers python=3.8
conda activate paddlers

b. 安装PaddlePaddle 详见官方网址 (PaddlePaddle版本需要 >= 2.3)。

c. 克隆PaddleRS代码库。

git clone -b release/1.0 https://github.com/PaddlePaddle/PaddleRS

d. 安装PaddleRS环境依赖。

cd PaddleRS
pip install -r requirements.txt

e. 安装PaddleRS包。

cd PaddleRS
python setup.py install

f. 进入c2fnet目录。

cd examples/c2fnet

注意:后续的操作默认在c2fnet目录

数据集

iSAID数据集处理

a. 从官方网站下载iSAID数据集。

b. 运行针对c2fnet的iSAID处理脚本。

python data/prepare_isaid_c2fnet.py {下载的原始iSAID数据集存放路径}

c. 处理完的数据集目录结构如下所示:

{c2fnet}/data/iSAID
├── img_dir
│   ├── train
│   │   ├── *.png
│   │   └── *.png
│   ├── val
│   │   ├── *.png
│   │   └── *.png
│   └── test
└── ann_dir
│   ├── train
│   │   ├── *.png
│   │   └── *.png
│   ├── val
│   │   ├── *.png
│   │   └── *.png
│   └── test
├── label.txt
├── train.txt
└── val.txt

其中train.txtval.txtlabel.txt可以参考PaddleSeg的方式生成。

训练过程

a. 通过PaddleSeg或者PaddleRS训练一个粗分割模型,或者下载我们训练好的基线模型FCN_HRNetW18,并放置在如下位置:

{c2fnet}/coarse_model/{YOUR COARSE_MODEL NAME}.pdparams

c. 单GPU训练精细化模型。

# 指定显卡编号
export CUDA_VISIBLE_DEVICES=0
python train.py

c. 多GPU训练精细化模型。

# 指定显卡编号
export CUDA_VISIBLE_DEVICES={要使用的GPU编号}
python -m paddle.distributed.launch train.py

d. 其他训练的细节可以参考 PaddleRS的训练说明

实验结果

模型 主干网络 分辨率 Ship Large_Vehicle Small_Vehicle Helicopter Swimming_Pool Plane Harbor Links
FCN HRNet_W18 512x512 69.04 62.61 48.75 23.14 44.99 83.35 58.61 model
FCN_C2FNet HRNet_W18 512x512 69.31 63.03 50.90 23.53 45.93 83.82 59.62 model

联系人

wangqingzhong@baidu.com

silin.chen@cumt.edu.cn