Jupyter Notebook Open Source ★ 2 Stars Branch: main

FinalYearProject

Final Year Project (Jupyter Notebook).

Final Year Project

Debris-Covered Glacier Mapping using Deep Learning

This repository contains the code for our final year project, which focuses on mapping debris-covered glaciers from satellite imagery using deep learning models, specifically Spatial and Spectral Convolutional Neural Networks.

Table of Contents

  1. Problem Statement
  2. Data
  3. Models
  4. Convolutional Neural Networks
  5. Generative Adversarial Networks
  6. Fully Convolutional Network
  7. Differentiation Table
  8. Debris-Covered Glaciers
  9. Clean-Ice Glaciers
  10. Quantitative Results
  11. Algorithms
  12. Usage
  13. Results
  14. Conclusion
  15. Future Work

Problem Statement

Mapping debris-covered glaciers using traditional digitalization methods is challenging due to the surface similarity between the glacier and surrounding land. This project aims to accurately map debris-covered glaciers, ice, and land from multispectral satellite images using deep learning.

Data

The data used consists of Sentinel-2 satellite images covering the Shisper glacier region in Pakistan. It contains 10 spectral bands at 10m resolution acquired at different time periods from 2018-2019.

Models

The following deep learning models are used:

Convolutional Neural Networks

We use Convolutional Neural Networks (CNNs) to automatically extract spatial and spectral features from the satellite images. CNNs are ideal for imagery data as they can capture localized features via convolution filters and pool the features hierarchically to build robust representations.

Our model uses two CNN streams - a 1D CNN to extract spectral features from pixel vectors, and a multiscale 2D CNN to extract spatial features using varying kernel sizes. This allows combining both spectral and complementary spatial information efficiently.

Generative Adversarial Networks

Since debris-covered glacier pixels are underrepresented compared to land/ice pixels, we use a Generative Adversarial Network (GAN) to augment the minority glacier class and balance the training data.

GANs consist of a generator and discriminator network competing against each other. The generator creates augmented glacier images to fool the discriminator, while the discriminator tries to identify real vs. fake images. This training stabilizes once the generated images are indistinguishable from real ones.

Fully Convolutional Network

The final classification map is produced using a Fully Convolutional Network (FCN). FCNs are convolutional networks that take input of any size and output classification maps via end-to-end learning. This allows efficient pixel-wise classification unlike patch-based CNNs. Our FCN takes the concatenated spatial-spectral feature vectors from the CNNs and classifies each pixel into glacier, ice, or land.

Differentiation Table

Spatial CNN Spectral CNN
Input Data 2D image patches (width x height x channels) 1D vectors of pixel values across channels
Capture Local spatial patterns and shapes in images Spectral signatures of materials/objects
Convolution 2D kernels convolve across width and height 1D kernels convolve across channels/spectra
Kernels Learn Visual patterns and textures Distinct spectral profiles
Pooling Aggregate responses spatially Aggregate responses spectrally
Architecture Standard 2D CNN (LeNet, AlexNet, VGG, etc) 1D CNN with 1D conv and pool layers
Use Cases Image classification, segmentation Hyperspectral image analysis, material detection
Advantages Translation invariance, efficient for computer vision Sensitive to subtle spectral differences
Disadvantages No spectral info, sensitive to rotations Loses all spatial context
Examples - ImageNet classification - Crop type mapping
- Semantic segmentation - Mineral identification

Debris-Covered Glaciers

Clean-Ice Glaciers

Quantitative Results

Model Accuracy
CNN + GAN 96%
SVM 92%
Random Forest 94%

Algorithms

Approaches

k-Nearest Neighbors (kNN):

Random Forest (RF):

Support Vector Machine (SVM):

hyperplane to separate classes. - Margin maximization and regularization prevent overfitting.

Multilayer Perceptron (MLP):

Gradient Boosting:

Usage

The models are implemented in Keras with the Tensorflow backend. To train a model:

python train.py --model cnn

To evaluate on test data:

python test.py --model cnn --weights path/to/weights.h5

Results

Our proposed model achieves XX% accuracy in classifying debris-covered glaciers from satellite imagery. Some sample results on the test regions are shown below:

Conclusion

Our deep learning approach, which combines CNNs, GANs, and FCNs, can accurately map debris-covered glaciers from multispectral satellite imagery. The automatic spatial-spectral feature learning capabilities make it superior to traditional digitalization methods.

Future Work