FPGA & FreeNet

Fast Patch-Free Global Learning Framework for Fully End-to-End Hyperspectral Image Classification

by Zhuo Zheng, Yanfei Zhong, Ailong Ma and Liangpei Zhang

This is an official implementation of FPGA framework and FreeNet in our TGRS 2020 paper "FPGA: Fast Patch-Free Global Learning Framework for Fully End-to-End Hyperspectral Image Classification".

We hope the FPGA framework can become a stronger and cleaner baseline for hyperspectral image classification research in the future.

Features

  1. Patch-free training and inference
  2. Fully end-to-end (w/o preprocess technologies, such as dimension reduction)

Citation

If you use FPGA framework or FreeNet in your research, please cite the following paper:

@article{zheng2020fpga,
  title={FPGA: Fast Patch-Free Global Learning Framework for Fully End-to-End Hyperspectral Image Classification},
  author={Zheng, Zhuo and Zhong, Yanfei and Ma, Ailong and Zhang, Liangpei},
  journal={IEEE Transactions on Geoscience and Remote Sensing},
  year={2020},
  publisher={IEEE},
  note={doi: {10.1109/TGRS.2020.2967821}}
}

Getting Started

1. Install SimpleCV

pip install --upgrade git+https://github.com/Z-Zheng/SimpleCV.git

2. Prepare datasets

It is recommended to symlink the dataset root to $FreeNet.

The project should be organized as:

FreeNet
├── configs     // configure files
├── data        // dataset and dataloader class
├── module      // network arch.
├── scripts 
├── pavia       // data 1
│   ├── PaviaU.mat
│   ├── PaviaU_gt.mat
├── salinas     // data 2
│   ├── Salinas_corrected.mat
│   ├── Salinas_gt.mat
├── GRSS2013    // data 3
│   ├── 2013_IEEE_GRSS_DF_Contest_CASI.tif
│   ├── train_roi.tif
│   ├── val_roi.tif

3. run experiments

1. PaviaU

bash scripts/freenet_1_0_pavia.sh

2. Salinas

bash scripts/freenet_1_0_salinas.sh

3. GRSS2013

bash scripts/freenet_1_0_grss.sh

GitHub

https://github.com/Z-Zheng/FreeNet