/HyFTech-Hyperspectral-Shallow-Deep-Feature-Extraction-Toolbox

This Toolbox includes Hyperspectral Feature Extraction Techniques including Unsupervised, Supervised, and Deep Feature Extraction

Primary LanguageMATLABMIT LicenseMIT

Hyperspectral-Shallow-Deep-Feature-Extraction-Toolbox (HyFTech)

HyFTech is a Matlab/Python toolbox, which includes Hyperspectral Feature Extraction Techniques including Unsupervised, Supervised, and Deep Feature Extraction approaches. This toolbox supports a review paper accepted in IEEE Geoscience and Remote Sensing Magazine entitled "Feature Extraction for Hyperspectral Imagery: The Evolution from Shallow to Deep". The link to the paper:

https://arxiv.org/abs/2003.02822

The paper provides a detailed and organized overview of hyperspectral feature extraction techniques, categorized into two general sections: shallow feature extraction techniques (further categorized into supervised and unsupervised) and deep feature extraction techniques. Each section provides a critical overview of the state-of-the-art that is mainly rooted in the signal and image processing, statistical inference, and machine (deep) learning fields. The toolbox also includes the Random Forest classifier plus training and test samples used for the Houston 2013 hyperspectral Dataset. The hyperspectral data can be downloaded here (http://hyperspectral.ee.uh.edu/?page_id=459). The shallow and deep feature extraction techniques given in HyFTech is listed below:

Shallow Unsupervised Feature Extraction:

1- PCA: Principal Component Analysis

2- MSTV: Multi-scale Structural Total Variation

3- OTVCA: Orthogonal Total Variation Component Analysis

4- LPP: Locality Preserving Projection

Shallow Supervised Feature Extraction:

5- LDA: Linear Discriminant Analysis

6- CGDA: Collaborative Graph-based Discriminant Analysis

7- LSDR: Least-Squares Dimension Reduction

8- JPlay: Joint & Progressive Learning Strategy

Deep Feature Extraction:

9- SAE: Stacked Autoencoder

10- RNN: Recurrent Neural Network

11- CNN: Convolutional Neural Network

12- CAE: Convolutional Autoencoder

13- CRNN: Convolutional RNN

14- PCNN: PCA is applied prior to CNN