GithubHelp home page GithubHelp logo

dongfeicui / crgnet Goto Github PK

View Code? Open in Web Editor NEW

This project forked from yonghaoxu/crgnet

1.0 0.0 0.0 8.52 MB

[IEEE TIP 2022] Consistency-Regularized Region-Growing Network for Semantic Segmentation of Urban Scenes with Point-Level Annotations

License: MIT License

Python 100.00%

crgnet's Introduction

Consistency-Regularized Region-Growing Network for Semantic Segmentation of Urban Scenes with Point-Level Annotations


This research has been conducted at the Institute of Advanced Research in Artificial Intelligence (IARAI).

This is the official PyTorch implementation of the weakly supervised semantic segmentation method for very high-resolution remote sensing image in our paper Consistency-Regularized Region-Growing Network for Semantic Segmentation of Urban Scenes with Point-Level Annotations.

Table of content

  1. Preparation
  2. Usage
  3. Paper
  4. Results
  5. Acknowledgement
  6. License

Preparation

  • Package requirements: The scripts in this repo are tested with torch==1.8 and torchvision==0.9 using a single NVIDIA Tesla V100 GPU.
  • Remote sensing datasets used in this repo:
  • Pretrained models:
  • Data folder structure
    • The data folder is structured as follows:
├── <THE-ROOT-PATH-OF-DATA>/
│   ├── Vaihingen/     
|   |   ├── img/
|   |   ├── gt/
|   |   ├── point/
|   |   |   ├── an1/
|   |   |   ├── an2/
|   |   |   ├── an3/
|   |   |   ├── an4/
│   ├── Zurich/    
|   |   ├── img/
|   |   ├── gt/
|   |   ├── point/
|   |   |   ├── an1/
|   |   |   ├── an2/
|   |   |   ├── an3/
|   |   |   ├── an4/

Usage

  • Pretrain the region-growing network:
CUDA_VISIBLE_DEVICES=0 python CRGNet_Vaihingen.py
CUDA_VISIBLE_DEVICES=0 python CRGNet_Zurich.py

Alternatively, you can download our pretrained models on Vaihingen or Zurich Summer for a quick look.

  • Generate pseudo labels:
CUDA_VISIBLE_DEVICES=0 python GenVaihingen.py
CUDA_VISIBLE_DEVICES=0 python GenZurich.py
  • Finetue the network with pseudo labels:
CUDA_VISIBLE_DEVICES=0 python SelfTrain_Vaihingen.py
CUDA_VISIBLE_DEVICES=0 python SelfTrain_Zurich.py
  • Evaluate the performance on test set:
CUDA_VISIBLE_DEVICES=0 python TestVaihingen.py 
CUDA_VISIBLE_DEVICES=0 python TestZurich.py 

Results

  • Dynamically expanded annotations in different iterations:

  • Example segmentation results of an image in the test set on the Zurich Summer dataset:

  • Performance contribution of each module in CRGNet (reported in mean F1):

Method RG CR ST dCRF Vaihingen Zurich Summer
Baseline 61.63 60.13
+RG 63.89 65.58
+CR 65.48 68.61
+ST 68.07 71.26
+dCRF 70.92 75.68

Paper

Consistency-regularized region-growing network for semantic segmentation of urban scenes with point-level annotations

Please cite the following paper if the code is useful for your research:

@article{crgnet,
  title={Consistency-regularized region-growing network for semantic segmentation of urban scenes with point-level annotations}, 
  author={Xu, Yonghao and Ghamisi, Pedram},
  journal={IEEE Trans. Image Process.},  
  volume={31},
  pages={5038-5051},
  year={2022},
}

Acknowledgement

The authors would like to thank the International Society for Photogrammetry and Remote Sensing (ISPRS), and the German Society for Photogrammetry, Remote Sensing and Geoinformation (DGPF) for providing the Vaihingen dataset, and Dr. Michele Volpi for providing the Zurich Summer dataset.

Lovász-Softmax loss

PyDenseCRF

License

This repo is distributed under MIT License. The code can be used for academic purposes only.

crgnet's People

Contributors

yonghaoxu avatar dongfeicui avatar

Stargazers

Shuyue Jia 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.