Awesome
A Superpixel-Guided Unsupervised Fast Semantic Segmentation Method of Remote Sensing Images
English | 简体中文
This repo explains the working of our Unsupervised Segemntaion Algorithm published in IEEE Geoscience and Remote Sensing Letters. Our method can perform GPU acceleration computing, thus greatly improving the efficiency.
You can access the full paper here.
Abstract
Semantic segmentation is one of the fundamental tasks of pixel-level remote sensing image analysis. Currently, most high-performance semantic segmentation methods are trained in a supervised learning manner. These methods require a large number of image labels as support, but manual annotations are difficult to obtain. To address the problem, we propose an efficient unsupervised remote sensing image segmentation method based on superpixel segmentation and fully convolutional networks (FCNs) in this letter. Our method can achieve pixel-level images segmentation of various scales rapidly without any manual labels or prior knowledge. We use the superpixel segmentation results as synthetic ground truth to guide the gradient descent direction during FCN training. In experiments, our method achieved high performance compared with current unsupervised image segmentation methods on three public datasets. Specifically, our method achieves an adjusted mutual information (AMI) score of 0.2955 on the Gaofen Image Dataset (GID), while processing each image of size 7200 × 6800 pixels in just 30s.
Network Architecture
Following images shows the Complete Network Architecture.
Example Output
Original images and the segmentation results of different segmentation methods on the EvLab-SS, the GID and the ISPRSV datasets: (1) original image, (2) ground truth, (3) our proposed method, (4) ISODATA, (5) K-means
Getting Started
Requement
python=3.7.0
pytorch=1.8.1
gdal=3.4.0
scikit-image=0.18.1
scikit-learn=0.24.2
tqdm=4.61.2
Installation
Clone this repo:
git clone git@github.com:CVEO/Unsupervised-OBIC-Pytorch.git
cd Unsupervised-OBIC-Pytorch
Run the code
To run our unsupervised segmentation code, you need run the segmentation.py first.
python segmentation.py
python train_net.py -i data/GID_example
File Directory Description
filetree
├── /data/
│ ├── /GID_example/
│ │ └── example.tif
├── /figures/
│ ├── model.png
│ └── result.png
├── /losses/
│ ├── focal_loss.py
│ └── lovasz_losses.py
├── /results/
├── evaluate_gt.py
├── inference.py
├── model.py
├── README.md
├── segmentation.py
├── to_ave_color.py
└── train_net.py
Citation
If you like to use our work, please consider citing us:
@article{chen2022superpixel,
title={A Superpixel-guided Unsupervised Fast Semantic Segmentation Method of Remote Sensing Images},
author={Chen, Guanzhou and He, Chanjuan and Wang, Tong and Zhu, Kun and Liao, Puyun and Zhang, Xiaodong},
journal={IEEE Geoscience and Remote Sensing Letters},
year={2022},
publisher={IEEE}
}
License
Code is released for non-commercial and research purposes only. For commercial purposes, please contact the authors.
Reference
https://github.com/Yonv1943/Unsupervised-Segmentation
Asako Kanezaki. Unsupervised Image Segmentation by Backpropagation. IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP), 2018. (pdf)