Skip to content
/ GLBS Public
forked from Cogito2012/GLBS

The source code for Group Lasso based Band Selection.

License

Notifications You must be signed in to change notification settings

SamMZhang/GLBS

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GLBS

Group Lasso-Based Band Selection for Hyperspectral Image Classification.

Created by Wentao Bao at Wuhan University.

Introduction

GLBS is an algorithm for band selection and multi-label landcover classification. It is the first that introduces the group lasso algorithm for the band selection problem of multilabel land-cover classification for HSIs. The paper of proposed algorithm (see GLBS paper) has been submited to IEEE Geoscience and Remote Sensing Letters (GRSL).

We have visualized the main results of GLBS on Indian Pines dataset as shown in following picture. GLBS is compared with an unsupervised algorithm E-FDPC, and two supervised algorithms, SBMLR and RSBS.

License

GLBS is release under the Apache License 2.0. This code is only for academic usage.

Citing GLBS

If you find GLBS useful in your research, please consider citing:

@article{GLBS2017, 
    author={D. Yang and W. Bao}, 
    journal={IEEE Geoscience and Remote Sensing Letters}, 
    title={Group Lasso-Based Band Selection for Hyperspectral Image Classification}, 
    year={2017}, 
    volume={14}, 
    number={12}, 
    pages={2438-2442}, 
    month={Dec}
}

Contents

  1. Requirements
  2. Preparation
  3. Simple Demo
  4. Training and Test

Requirements

The code has been tested on Windows 10 (x64) system with MATLAB2013a and MATLAB2016b. To make fully use of our code, you need to prepare these toolkits for MATLAB.

  • glmnet. We used glmnet MATLAB toolkit to implement group-lasso algorithm provided by Trevor Hastie at Stanford University. Just unzip glmnet_matlab.zip into MATLAB toolkit directory and add its path to MATLAB.
  • libsvm. We used the most widely recognized libsvm-3.21 MATLAB interfaces to train Support Vector Machine (SVM) classifier based on GLBS for hyperspectral image classification.

You can also access these toolkits in Google Drive or Baidu Netdisk

Data Preparation

We implement our proposed GLBS on two representative hyperspectral image datasets, i.e. Indian Pines, Botswana. You can access them and other datasets with MATLAB data format in GIC Group.

In order to run the training and test codes, we have provided code script to generate stardard training and test sets. Just clone this repo and switch MATLAB working directory to data folder in GLBS master (<ProjectRoot>/data/), then run the script script_generate_clsdata.m after modifying some configurations.

You can also access the source datasets and our prepared datasets by the script in Google Drive or Baidu Netdisk

Simple Demo

Just switch to the path <ProjectRoot>/GLBS/ as MATLAB working directory, then modify the root_dir in script_demo.m and run the script. Results are recorded in log file at <ProjectRoot>/results/sequences/.

Training and Test

We have provided the training and test scripts for both GLBS algorithm and its re-implementation on SVM and kNN classifiers. Just follow instructions in the head of script files at <ProjectRoot>/GLBS/. You can also access the trained models and test results in Google Drive or Baidu Netdisk.

Since group-lasso based model incorporates iterative search for the best coefficient parameter, which is denoted as $\lambda$ described in equation (6) in our paper, we implemented the 10-fold Cross-Validation method with glmnet for GLBS. Corresponding code scripts are provided in <ProjectRoot>/GLBSCV, and you can also access the trained models and test results in Google Drive or Baidu Netdisk

About

The source code for Group Lasso based Band Selection.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • MATLAB 98.9%
  • Batchfile 1.1%