Giter VIP home page Giter VIP logo

gigcn's Introduction

Graph-in-Graph Convolutional Network for Hyperspectral Image Classification (TNNLS 2022)

Sen Jia, Shuguo Jiang, Shuyu Zhang, Meng Xu, Xiuping Jia

The first two authors contribute equally to this work


Abstract: With the development of hyperspectral sensors, accessible hyperspectral images (HSIs) are increasing, and pixel-oriented classification has attracted much attention. Recently, graph convolutional networks (GCN) have been proposed to process graph-structured data in non-euclidean domains, and have been employed in HSI classification. But most methods based on GCN are hard to sufficiently exploit information of ground objects due to feature aggregation. To solve this issue, in this paper, we proposed a graph-in-graph (GiG) model and a related GiG convolutional network (GiGCN) for HSI classification from superpixel viewpoint. The graph-in-graph representation covers information inside and outside superpixels, respectively corresponding to the local and global characteristics of ground objects. Concretely, after segmenting HSI into disjoint superpixels, each one is converted to an internal graph. Meanwhile, an external graph is constructed according to the spatial adjacent relationships among superpixels. Significantly, each node in the external graph embeds a corresponding internal graph, forming the so-called graph-in-graph structure. Then, GiGCN composed of internal and external graph convolution is designed to extract hierarchical features and integrate them into multiple scales, improving the discriminability of GiGCN. Ensemble learning is incorporated to further boost the robustness of GiGCN. It is worth noting that we are the first to propose graph-in-graph framework from superpixel point and the GiGCN scheme for HSI classification. Experiment results on four benchmark data sets demonstrate that our proposed method is effective and feasible for HSI classification with limited labeled samples. For study replication, the code developed for this study is available at https://github.com/ShuGuoJ/GiGCN.git.


Network Architecture

This is our ensemble flowchart. With the ensmeble learning, GiGCN is more robust in various scenes.

Comparison with State-of-the-art Methods

In comparative experiments, GiGCN is compared with other eight state-of-the-art methods for hyperspectral image classification. Ten samples for each class is chosen for training models and the others are used to test. To alleviate biases, the above operation is run ten times.

<style> th.head {border-style:none;} </style>
PaviaU Salinas GF5 YC
OA (%) AA (%) kappa OA (%) AA (%) kappa OA (%) AA (%) kappa OA (%) AA (%) kappa
Two-CNN 78.20 76.02 0.71 76.37 85.25 0.74 87.08 82.37 0.85 85.20 81.18 0.82
3DVSCNN 76.43 75.47 0.69 89.17 94.07 0.88 84.99 79.02 0.83 77.33 75.14 0.73
HSGAN 72.17 74.66 0.64 83.44 89.67 0.82 88.84 81.50 0.87 92.74 88.46 0.91
SSLstm 69.59 72.77 0.62 81.20 87.04 0.79 70.29 58.55 0.66 89.01 78.20 0.87
MDGCN 75.44 79.75 0.69 93.49 95.60 0.93 85.23 75.60 0.83 92.28 88.09 0.91
S-DMM 83.77 90.98 0.79 88.53 94.53 0.87 88.72 84.20 0.87 81.17 82.85 0.78
3DCAE 59.14 71.58 0.51 72.64 75.58 0.70 70.58 60.98 0.66 70.65 81.47 0.68
MDL4OW 76.55 81.42 0.70 82.44 90.57 0.81 87.46 83.41 0.86 93.65 94.98 0.92
GiGCN 93.51 94.07 0.92 97.34 98.34 0.97 92.50 86.52 0.91 97.51 95.88 0.97

Our GiGCN siginificantly outperforms other methods especially when labeled samples are a few.

Note: access code for Baidu Disk is mst1.

1. Create Envirement:

  • Python 3 (Recommend to use Anaconda)

  • NVIDIA GPU + CUDA

  • Python packages:

    cd graph-in-graph
    pip install -r requirements.txt

2. Data Preparation:

  • Before trainig, every data set is split by runing trainTestSplit.py, shown as follow:

    python trainTestSplit.py --name PaviaU (data set name)

3. Training

To train a model, run

# Training on PaviaU data set
python train.py --name PaviaU --block 100 --gpu 0

Here, --block denots the number of superpixel, which lies in [50, 100, 150, 200] in our ensemble setup.

The model with best accuracy will be saved.

4. Prediction:

To test a trained model, run

# Testing on PaviaU data set
python predict.py --name PaviaU --block 100 --gpu 0

The code will load the best model in the last phase automatically.

Citation

If this repo helps you, please consider citing our works:

@ARTICLE{9801664,
  author={Jia, Sen and Jiang, Shuguo and Zhang, Shuyu and Xu, Meng and Jia, Xiuping},
  journal={IEEE Transactions on Neural Networks and Learning Systems}, 
  title={Graph-in-Graph Convolutional Network for Hyperspectral Image Classification}, 
  year={2022},
  volume={},
  number={},
  pages={1-15},
}

gigcn's People

Contributors

shuguoj avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.