Project repository for EarthMapper. This is a toolbox for the semantic segmentation of non-RGB (i.e., multispectral/hyperspectral) imagery. We will work on adding more examples and better documentation.
This is a classification pipeline from various projects that we have worked on over the past few years. Currently available options include:
- MinMaxScaler - Scale data (per-channel) between a given feature range (e.g., 0-1)
- StandardScaler - Scale data (per-channel) to zero-mean/unit-variance
- PCA - Reduce dimensionality via principal component analysis
- Normalize - Scale data using the per-channel L2 norm
- Stacked Convolutional Autoencoder (SCAE)
- Stacked Multi-Loss Convolutional Autoencoder (SMCAE)
- SVMWorkflow - Support vector machine with a given training/validation split
- SVMCVWorkflow - Support vector machine that uses n-fold cross-validation to find optimal hyperparameters
- RandomForestWorkflow - Random Forest classifier
- MLP - Multi-layer Perceptron Neural Network classifier
- SSMLP - Semi-supervised MLP Neural Network classifier
- Markov Random Field (MRF)
- Fully-Connected Conditional Random Field (CRF)
- Python 3.5/3.7 (We recommend the Anaconda Python Distribution)
- numpy, scipy, and matplotlib
- scikit-learn
- spectral python (spectral 0.23.1)
- gdal - conda install conda-forge gdal==3.5.2
- tensorflow (tensorflow 1.14)
- pydensecrf (pydensecrf 1.0)
- gco_python (pip instal pygco) (pygco 0.0.16)
$ python setup.py
$ python examples/example_pipeline.py
We give full credit to the author of the repository, Ronald kemker, for the code and implementation of the research paper: *Kemker, R., Gewali, U. B., Kanan, C. - "EarthMapper: A Toolbox for the Semantic Segmentation of Remote Sensing Imagery."