Skip to content

This is the model repository of YNU's deep learning principles and platform course assignments, which mainly use remote sensing image datasets to achieve classification, colorization and super-resolution.

License

Notifications You must be signed in to change notification settings

JackieLin2004/Intelligent-RS

Repository files navigation

Logo

Intelligent-RS

   

This is the model repository of YNU's deep learning principles and platform course assignments, which mainly use remote sensing image datasets to achieve classification, colorization and super-resolution.

The NWPU-RESISC45 dataset, which is publicly available from the Northwestern Polytechnical University, is the main dataset used in this project. In this dataset, there are a total of 45 categories of remote sensing images, and each category contains 700 remote sensing images, all of which are 256x256 in size.

At the same time, the project is divided by network architecture, and the separate network architecture folder is also a relatively complete code for that network, which can be taken down and run directly.

Requirements

pip install torch==1.12.0
pip install torchvision==0.13.0
pip install pillow==9.4.0
pip install matplotlib==3.5.1
pip install seaborn==0.13.2
pip install scikit-learn==1.2.1
pip install scikit-image==0.24.0

Get Started

git clone https://github.com/JackieLin2004/Intelligent-RS.git
cd Intelligent-RS/

1. Image Classification

This repository utilizes five classical convolutional neural networks for image classification and also experiments with the Transformer architecture for image classification.

Convolutional Neural Networks include network architectures such as AlexNet, VGGNet, GoogLeNet, ResNeXt, and DenseNet, while Transformer architectures include Swin Transformer.

1.1 Preparing the Dataset

Using AlexNet as an example, if you want to use these networks for classification model training, you first need to place the appropriate dataset:

/dataset/NWPU-RESISC45/

1.2 Run the Training Script

/AlexNet/train.py

1.3 Classification Projections

/AlexNet/predict.py

1.4 Charting Indicators

/AlexNet/draw_indicators.ipynb

1.5 Indicator Charts for Various Models

1.6 Classification Model Comparison

Networks & Metrics AlexNet VGGNet GoogLeNet ResNeXt DenseNet Swin Transformer
Accuracy 0.864 0.920 0.905 0.938 0.929 0.884
Loss 0.545 0.367 0.417 0.374 0.316 0.456
Precision 0.867 0.922 0.910 0.939 0.931 0.886
Recall 0.864 0.920 0.905 0.938 0.929 0.884
F1 Score 0.864 0.920 0.905 0.938 0.929 0.884
AUC 0.997 0.998 0.998 0.999 0.998 0.997

2. Image Super-Resolution

In this section, this project uses two network architecture implementations, SRResNet and SRGAN. The former is a traditional convolutional approach and the latter is a generative adversarial network.

2.1 Create Data List

Using SRResNet as an example, first you create the data list:

/SRResNet/create_data_list.py

Then the json file will be obtained:

/SRResNet/data/test_images.json and train_images.json

2.2 Run the Training Script

/SRResNet/train.py

2.3 Evaluation of Test Sets

/SRResNet/evaluate.ipynb

2.4 Prediction of a Single Image

/SRResNet/test.py

2.5 Comparison of Data on Indicators

SRResNet SRGAN
PSNR 34.524 30.628
SSIM 0.935 0.891
Time 0.008 0.008

For SRResNet, the loss varies as shown in Fig:

For SRGAN, the loss varies as shown in Fig:

Obviously, as can be seen from the above graph of the loss curve of SRGAN, the loss of adversarial neural network is not stable, especially the generative loss and discriminative loss are doing fierce confrontation between each other. We do not directly judge the effect by the loss.

2.6 Effective Demonstration

To be continue...

About

This is the model repository of YNU's deep learning principles and platform course assignments, which mainly use remote sensing image datasets to achieve classification, colorization and super-resolution.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published