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