- Create a conda environment with your OS using
env-mac.yml
orenv-ubuntu.yml
:
conda env create -f env-ubuntu.yml
conda activate hyperspec
- Optional update the
gin.config
with desired hyper-parameters. Current configuration matches the paper. - Run the training script
python train.py
- View training results in Tensorboard
tensorboard --logdir runs
Note: data will be downloaded to ~/.hyperspec/
- Deep Learning for Classification
of Hyperspectral Data: A Comparative Review
- An overview of the field relating to deep learning
- code base
- HybridSN: Exploring 3D-2D CNN Feature Hierarchy for Hyperspectral Image Classification
- Current state-of-the-art on the Indian Pines, Pavia University and Salinas Scene datasets
- code base
- Hyperspectral Image Classification with Deep Metric Learning and Conditional Random Field
- State of the art without additional data on the Indian Pines data set
- None :(
Hyper-spectral imaging is a upcoming field that has potential in the agriculture industry with many benefits including crop yield and carbon monitoring.
- Rigor vs. Empirical - Balanced?
- Readability - Excellent
- Algorithm Difficulty - Low
- Pseudo Code - None / Step-Code?
- Hyperparameters Specified - Yes
- Compute Needed - GPU
- Number of Equations - 2
- Number of Tables - 5
- Proposes a hybrid 3d and 2d model for general hyperspectral image(HSI) classification
- 3-D CNN: Employs principal component analysis on input data to reduce spatio-spectral images by its spectral bands(depth) in order to remove spatial redundancy
- 3D convolution → 3D kernel convolves on 3D-data(spatio-spectral image)
- Uses 3d patches to determine image classification
- 3D patches: overlapping spatio-spectral convolutions where the centered pixel is used for classification
- Computationally expensive
- Papers recommend 3 layered model to extract spectral features
- One paper dubs this the Deep Metric Learning followed by a Conditional Random Field layer to make predictions
- 2-D CNN: Input data is convolved with 2d kernels(normal)
- Hybrid of both 3D and 2D Kernels are used for learning
- Use of 3D convolutions to capture spatial data and 2D convolutions to decrease computational expense and learn non-spectral information (features of images for classification)
- Utilizes both spatio-spectral imaging in the form of 3-d convulsions and non spatio-spectral imaging in the form 2d convolutions
- This model also shows great performance with little data
Conclusion: We believe the paper is highly reproducible and very well documented. The only potential issue we foresee is within the preprocessing phase.