Home

Awesome

Looking Closer at the Scene: Multi-Scale Representation Learning for Remote Sensing Image Scene Classification

This is the Pytorch implementation of SKAL for remote sensing scene image classification, which is accepted by TNNLS 2020.

Requirements

Pytorch 1.7, python 3.8, CUDA 11.0

Usage

Dataset would be arranged as the following form (taking AID as an example):

./datasets/AID/
│
├── images/                  
│   ├── agricultural
│   ├── airplane
│   ├── baseballdiamond
│   └── ...
└── splits

Build the training and validation list (Taking AID as an example):

cd ./datasets
python build_list --data_dir ./AID/images --out_dir ./AID/splits --train_ratio 0.5

Train the model at two seperate scales (validate the model every epoch):

cd ..
firstly, training global_area: python main.py --dataset selected_dataset --arch selected_cnn_arch --mode s1
secondly, training local_area: python main.py --dataset selected_dataset --arch selected_cnn_arch --mode s2

Results

NWPU_RESISC45

Method10% for training20% for training
GoogleNet_{global}77.4483.69
GoogleNet_{global+local}80.2885.34
ResNet18_{global}88.9191.77
ResNet18_{global+local}90.0492.79
GoogleNet_{global}89.4091.93
GoogleNet_{global+local}90.4192.95

Citation

If you want to use the code, please cite:

title={Looking Closer at the Scene: Multi-Scale Representation Learning for Remote Sensing Image Scene Classification},
author={Q. Wang, W. Huang, Z. Xiong, and X. Li},
journal={IEEE Transactions on Neural Networks and Learning Systems},
year={2020},
}