Created by Wentao Bao at Wuhan University.
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.
GLBS is release under the Apache License 2.0. This code is only for academic usage.
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}
}
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
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
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/
.
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 <ProjectRoot>/GLBSCV
, and you can also access the trained models and test results in Google Drive or Baidu Netdisk