Home

Awesome

Remote Sensing Image Classification via Improved Cross-Entropy Loss and Transfer Learning Strategy Based on Deep Convolutional Neural Networks

Official implementation for Remote Sensing Image Classification via Improved Cross-Entropy Loss and Transfer Learning Strategy Based on Deep Convolutional Neural Networks, IEEE Geoscience and Remote Sensing Letters 2019

Citation

Please cite our project if it is helpful for your research

A. Bahri, S. G. Majelan, S. Mohammadi, M. Noori and K. Mohammadi, "Remote Sensing Image Classification via Improved Cross-Entropy Loss and Transfer Learning Strategy Based on Deep Convolutional Neural Networks," in IEEE Geoscience and Remote Sensing Letters.

UCMerced land-use dataset

<p align="center"> <img src="https://github.com/AliBahri94/Remote-Sensing-Image-Classification/blob/master/docs/d5a84f12-91af-4b3d-8096-2d4a5e641ecc-usa.png"> </p> <p align="center"> 21 class UC Merced land-use Dataset (RGB) </p>

Architecture

<p align="center"> <img src="https://github.com/AliBahri94/Remote-Sensing-Image-Classification/blob/master/docs/08191186-61c0-4298-80f0-85825f8ba2b4-udsd.png"> </p> <p align="center"> Our Architecture </p>

Dependencies

Download original datasets

Use ready datasets (splited to train and valid parts)

Trained models

Project layout (recommended)

Remote_Sensing_Image_Classification/
├── checkpoint
├── data
│   ├── AID (train:70%, valid:30%)
│   ├── AID (train:50%, valid:50%)
│   ├── UCMerced (train:80%, valid:20%)
│   ├── NWPU-RESISC45 (train:30%, valid:70%)
│   └── NWPU-RESISC45 (train:20%, valid:80%)
├── docs
└── trained_models
    ├── NasNet_Mobile_New_Loss3.02-0.9810(AID_70_30).h5
    ├── NasNet_Mobile_New_Loss3.19-0.9708(AID_50_50).h5
    ├── NasNet_Mobile_New_Loss3.117-0.9952(UCMerced_80_20).h5
    ├── NasNet_Mobile_New_Loss3_Dore_3.06-0.9356(NWPU_20_80).h5
    └── NasNet_Mobile_New_Loss3_94.43(NWPU_30_70).h5

Quick start to validate(using ready datasets)

  1. Use ready dataset path (only valid part)
  2. Download trained models and put into trained_models/ directory
  3. Run python predict.py
  4. Results will be shown.

Start to validate (using original datasets)

  1. Download original dataset and put into data/ directory.
  2. Unzip dataset
  3. Run python divide_dataset.py to split dataset to train and valid folder
  4. Download trained models and put into trained_models/ directory
  5. Run python predict.py
  6. Results will be shown.

Quick start to Training (using ready datasets)

  1. Use ready dataset path
  2. Run python train.py
  3. All Models will be saved into checkpoint/ direcory

Start to Training (using original datasets)

  1. Download original dataset and put into data/ directory
  2. Unzip dataset
  3. Run python divide_dataset.py to split dataset to train and valid folder
  4. Run python train.py
  5. All Models will be saved into checkpoint/ direcory

Quantitative and Qualitative results

<p align="center"> <img src="https://github.com/AliBahri94/Remote-Sensing-Image-Classification/blob/master/docs/Bootstrap Chart.PNG"> </p> <p align="center"> Bootstrap Chart for NWPU-RESISC45 Dataset </p> <!-- blank line --> <br> <!-- blank line --> <!-- blank line --> <br> <!-- blank line --> <p align="center"> <img src="https://github.com/AliBahri94/Remote-Sensing-Image-Classification/blob/master/docs/t_1.PNG"> </p> <p align="center"> OVERALL ACCURACY OF THE REFERENCE AND THE PROPOSED METHOD ON THE UC MERCED DATASET </p> <!-- blank line --> <br> <!-- blank line --> <!-- blank line --> <br> <!-- blank line --> <p align="center"> <img src="https://github.com/AliBahri94/Remote-Sensing-Image-Classification/blob/master/docs/t_2.PNG"> </p> <p align="center"> OVERALL ACCURACY OF THE REFERENCE AND THE PROPOSED METHOD ON THE AID DATASET (50% TRAINING, 50% TESTING) </p> <!-- blank line --> <br> <!-- blank line --> <!-- blank line --> <br> <!-- blank line --> <p align="center"> <img src="https://github.com/AliBahri94/Remote-Sensing-Image-Classification/blob/master/docs/t_3.PNG"> </p> <p align="center"> OVERALL ACCURACY OF THE REFERENCE AND THE PROPOSED METHOD ON THE AID DATASET (70% TRAINING, 30% TESTING) </p> <!-- blank line --> <br> <!-- blank line --> <!-- blank line --> <br> <!-- blank line --> <p align="center"> <img src="https://github.com/AliBahri94/Remote-Sensing-Image-Classification/blob/master/docs/t_4.PNG"> </p> <p align="center"> OVERALL ACCURACY OF THE REFERENCE AND THE PROPOSED METHOD ON THE NWPU-RESISC45 DATASET (20% TRAINING,80% TESTING) </p> <!-- blank line --> <br> <!-- blank line --> <!-- blank line --> <br> <!-- blank line --> <p align="center"> <img src="https://github.com/AliBahri94/Remote-Sensing-Image-Classification/blob/master/docs/t_5.PNG"> </p> <p align="center"> OVERALL ACCURACY OF THE REFERENCE AND THE PROPOSED METHOD ON THE NWPU-RESISC45 DATASET (30% TRAINING,70% TESTING) </p>