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.
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
git clone https://github.com/JackieLin2004/Intelligent-RS.git
cd Intelligent-RS/
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.
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/
/AlexNet/train.py
/AlexNet/predict.py
/AlexNet/draw_indicators.ipynb
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 |
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.
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
/SRResNet/train.py
/SRResNet/evaluate.ipynb
/SRResNet/test.py
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.