This repository contains the official implementation of the paper:
"Feature-Preserving Generative Adversarial Network Data Augmentation Strategy for Hyperspectral Image Classification"
📄 Paper Link: View on ScienceDirect
In recent years, deep learning has led to significant progress in hyperspectral image (HSI) tasks, including classification, object detection, and anomaly detection. However, these models often suffer from limited labeled samples and data imbalance.
To address these challenges, we propose a novel data augmentation strategy called:
FPGANDA – Feature-Preserving Generative Adversarial Network Data Augmentation
FPGANDA differs from existing GAN-based methods by preserving key spectral features of real HSI data using a dedicated band selection method. These preserved bands are then fused with GAN-generated spectral features to create more diverse and informative synthetic data, improving classification performance and robustness.
- ✅ Feature Preservation: Maintains critical spectral bands using a novel band selection algorithm.
- ✅ Synthetic + Real Fusion: Combines generated and real bands to enhance diversity while retaining core information.
- ✅ Improved Classification: Outperforms state-of-the-art methods on multiple HSI datasets.
- ✅ Modular Pipeline: Three-step workflow for GAN training, band selection, and final classification.
A standard PyTorch environment is required.
✅ We recommend configuring the environment based on DeepHyperX, which serves as the baseline for classification and dataset loading in this project.
After setting the dataset paths in the config, run:
python keepGAN.py
Once GAN training and sample generation are complete, select important bands:
python Band_Select.py
Merge selected real and generated bands to form augmented data, then train the classifier. Detailed configs can be found in Completed_Band_Select.py
.
python Completed_Band_Select.py
- This project builds on open-source GAN variants such as WGAN, WGAN-GP, and CGAN.
- Classification and data loading methods are adapted from the DeepHyperX framework.
- You may reuse or extend this code for other HSI tasks by modifying the band selection logic or classifier modules.
If you find this work useful in your research, please consider citing the paper (citation info will be provided upon acceptance).