STANet 代码实现

Github地址

LEVIR-CD数据集下载

STANet论文解读


LEVIR-CD是一种新型的大型遥感建筑物变化检测数据集。

Prerequisites:

windows or Linux

Python 3.6+

CPU or NVIDIA GPU

CUDA 9.0+

PyTorch > 1.0

visdom==0.1.8.1

dominate

pip install visdom==0.1.8.1

pip install dominate

数据集准备,文件路径:

STANet 代码实现_第1张图片

数据集图片原始大小为1024x1024,我们给切成无重叠的256x256。

要确保A,B,label文件夹里图片命名是一致的。

RUN-----baseline

1.Baseline

python ./train.py --save_epoch_freq 1 --angle 15 --dataroot ./LEVIR-CD/train --val_dataroot ./LEVIR-CD/val --name LEVIR-CDF0 --lr 0.001 --model CDF0 --batch_size 8 --load_size 256 --crop_size 256 --preprocess rotate_and_crop

 报错:

from scipy.misc import imresize

ImportError: cannot import name 'imresize'

解决方法:

Imresize在scipy新版本里已经没有了。卸载当前的scipy,pip install scipy==1.0.0

一共200个epoch。我们对前100个epoch保持相同的学习速率,并在剩余的100个epoch中将其线性衰减为0。

结果:

(epoch: 200) Overall_Acc: 0.975 Mean_IoU: 0.794 0: 0.973 1: 0.614 precision_1: 0.627 recall_1: 0.967 F1_1: 0.761

STANet 代码实现_第2张图片

STANet 代码实现_第3张图片

TEST

val.py

更改:

Test文件夹位置;改baseline训练的名称,产生的epoch文件。

STANet 代码实现_第4张图片

python val.py

测试集上性能:

(epoch: 152_F1_1_0.76574) Overall_Acc: 0.972 Mean_IoU: 0.803 0: 0.971 1: 0.636

             precision_1: 0.657 recall_1: 0.950 F1_1: 0.777

STANet 代码实现_第5张图片

RUN-----PAM

2.PAM

python ./train.py --save_epoch_freq 1 --angle 15 --dataroot ./LEVIR-CD/train --val_dataroot ./LEVIR-CD/val --name LEVIR-CDFAp0 --lr 0.001 --model CDFA --SA_mode PAM --batch_size 8 --load_size 256 --crop_size 256 --preprocess rotate_and_crop

报错:显存不够,提示需要64G显存。val,test的图片是1024x1024,需要将val和test的数据切成256的。

训练过程中指标较好的一组:

(epoch: 116)

Overall_Acc: 0.984 Mean_IoU: 0.845 0: 0.983 1: 0.708

precision_1: 0.743 recall_1: 0.937 F1_1: 0.829

TEST

val.py

更改:Test文件夹位置;改baseline训练的名称,产生的epoch文件。

(epoch: 116_F1_1_0.82883) Overall_Acc: 0.980 Mean_IoU: 0.840 0: 0.979 1: 0.700

precision_1: 0.739 recall_1: 0.930 F1_1: 0.824

precision_1: 0.838 recall_1: 0.910 F1_1: 0.873 (论文)

结果对比:

STANet 代码实现_第6张图片

STANet 代码实现_第7张图片

增加了金字塔时空注意力模块PAM后,变化检测性能提升,在一定程度上可以缓解光照变化,配准误差带来的影响。

 

你可能感兴趣的:(目标检测/分割,代码解读,深度学习,变化检测,代码,STANet)