Home

Awesome

SOLC (We have released our complete code !)

Remote Sensing Sar-Optical Land-use Classfication Pytorch

如果该仓库对您有用的话,欢迎star和fork,并提出您的疑问。尽量在issues中提问,有时间一定回复。

Source Dataset

Refer to https://github.com/AmberHen/WHU-OPT-SAR-dataset.

Datasets:Sar and Optical

https://pan.baidu.com/s/1sIGsD3lBEogSCqzbDOaclA password:i51o

Paper Link: MCANet: A joint semantic segmentation framework of optical and SAR images for land use classification

https://www.sciencedirect.com/science/article/pii/S0303243421003457

2022-06-01 News

SOLC
├── dataset
|   |whu-opt-sar-dataset-256     //  root
│   ├──   ├── train
│   ├──   │     ├── sar
│   ├──   │     │     ├── NH49E001013_1.tif
│   ├──   │     ├── opt
│   ├──   │     │     ├── NH49E001013_1.tif
│   ├──   │     ├── lbl
│   ├──   │     │     ├── NH49E001013_1.tif
│   ├──   ├── val
│   ├──   │     ├── sar
│   ├──   │     │     ├── NH49E001013_2.tif
│   ├──   │     ├── opt
│   ├──   │     │     ├── NH49E001013_2.tif
│   ├──   │     ├── lbl
│   ├──   │     │     ├── NH49E001013_2.tif
│   ├──   ├── test
│   ├──   │     ├── sar
│   ├──   │     │     ├── NH49E001013_3.tif
│   ├──   │     ├── opt
│   ├──   │     │     ├── NH49E001013_3.tif
│   ├──   │     ├── lbl
│   ├──   │     │     ├── NH49E001013_3.tif
├── libs     //  utils
├── models     //  model
├── tools     //  preprocessing
├── dataset.py
├── class_names.py
├── palette.py 
├── sync_transforms.py 
├── train.py     
├── _test.py / predict.py

2022-06-02 News

2022-06-03 News

2022-06-04 News SOLC (Ours)

2022-06-05 News SOLC (Ours)

2022-06-06 News SOLC (Ours)

2022-06-07 News

[0, '背景', 11824154.0, 1.0] (忽略)
[1, '农田', 708762053.0, 0.016682825992096393]
[2, '城市', 96237141.0, 0.12286476797975535]
[3, '村庄', 119738993.0, 0.09874940237721894]
[4, '水体', 292127191.0, 0.04047604729817842]
[5, '森林', 774385740.0, 0.015269075073618998]
[6, '道路', 19661970.0, 0.6013717852280317]
[7, '其他', 35164414.0, 0.3362534066400197]
weight in criterion: [1.0, 0.016682825992096393, 0.12286476797975535, 0.09874940237721894, 0.04047604729817842, 0.015269075073618998, 0.6013717852280317, 0.3362534066400197]

2022-06-08 News

SOLC V7 framework

image

Other stragety

Performance

策略模型总体性能
epoch=40, batch size=16, <br />Random Flip, lr=1e-3, wd=1e-4deeplabv3+ (pretrained=False)oa=0.8096,mIoU=0.4118,kappa=0.7261
epoch=40, batch size=16, <br />Random Flip, lr=1e-3, wd=1e-4unet (pretrained=False)oa=0.7846,mIoU=0.3847,kappa=0.6826
epoch=40, batch size=16, <br />Random Flip, lr=1e-3, wd=1e-4segnet (pretrained=False)oa=0.7370,mIoU=0.3139,kappa=0.6148
epoch=40, batch size=16, <br />Random Flip, lr=1e-3, wd=1e-4mcanet (pretrained=False)oa=0.8179,mIoU=0.4296,kappa=0.7352
epoch=40, batch size=16, <br />Random Flip, lr=1e-3, wd=1e-4solcv7 (pretrained=False)oa=0.8222,mIoU=0.4382,kappa=0.7428
模型farmlandcityvillagewaterforestroadothersbackground(ignored)
deeplabv3+0.7951/0.63140.9414/0.65780.3928/0.32910.7856/0.55110.9422/0.88430.3504/0.22310.0269/0.01730.0/0.0
unet0.7970/0.60810.5671/0.51740.3739/0.27550.7517/0.57580.9579/0.84180.5186/0.24670.0216/0.01200.0/0.0
segnet0.7248/0.61220.0083/0.00830.4314/0.26600.8837/0.48450.9691/0.82060.3984/0.29480.14046/0.02490.0/0.0
mcanet0.8320/0.64990.8394/0.65750.3892/0.33180.8177/0.62430.9476/0.87240.5036/0.28650.0169/0.01450.0/0.0
dcn(ours)0.8392/0.65050.9051/0.68800.3999/0.33370.7979/0.60350.9425/0.88780.5251/0.32500.0192/0.01670.0/0.0
模型OAmIOUkappa
deeplabv30.80960.41180.7261
unet0.78460.38470.6826
segnet0.73700.31390.6148
mcanet0.81790.42960.7352
dcn(ours)0.82220.43820.7428
左侧为各类别的平均精度OA,右侧为各类别的平均mIou
Note: 0->background,10->farmland,20->city,30->village,40->water,50->forest,60->road,70->others

Installation

  1. Clone this repo.
$ git clone https://github.com/yisun98/SOLC.git
$ cd SOLC
  1. Install Environments
   $ pip install -r requirements.txt
   $ source activate
  1. Dataset
   $ python tools/crop_sar.py
   $ python tools/crop_opt.py
   $ python tools/convert_lbl.py
   $ python tools/crop_lbl.py
   $ python tools/split_data.py
  1. Training
nohup python train.py >> train_<model_name>.out 2>&1 &

Please see train.py for details.

tensorboard --logdir=<your_log_dir> --bind_all 
  1. Test/Predict
nohup python train.py --model solcv7 --num_classes 8 >> train_<model_name>.out 2>&1 &

Please see train.py for details.

python predict.py --model solcv7 --model-path <model_path>

Result

More results please see here password:solc.

classification_25_21

image

classification_82_10

image

classification_94_2

image

classification_137_15

image

Reference

Citation (同等贡献度,排名不分先后)

If you have any questions, welcome to contact us !

Contributors 1: yisun98 - 1957240687@qq.com
Contributors 2: yiruzzz - 992371522@qq.com
Contributors 3: Bismarckwzc - 1558908027@qq.com
Contributors 4: 917596622 - 917596622@qq.com

If the project is helpful to you, please consider citing us.

@misc{SOLC2022,
  author = {Y. Sun, Y. Zhao, Z. Wang, Y. Fan},
  title = {SOLC},
  year = {2022},
  publisher = {GitHub},
  journal = {GitHub repository},
  howpublished = {\url{https://github.com/yisun98/SOLC}},
}