waterbody-detection-via-deep-learning

Source code for the paper, "Water Body Extraction from Sentinel-2 Imagery with Deep Convolutional Networks and Pixelwise Category Transplantation".

https://github.com/joshuabillson/waterbody-detection-via-deep-learning

Science Score: 67.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 1 DOI reference(s) in README
  • Academic publication links
    Links to: mdpi.com
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (8.2%) to scientific vocabulary

Keywords

computer-vision deep-learning landcover-classification machine-learning python waterbody-detection
Last synced: 6 months ago · JSON representation ·

Repository

Source code for the paper, "Water Body Extraction from Sentinel-2 Imagery with Deep Convolutional Networks and Pixelwise Category Transplantation".

Basic Info
  • Host: GitHub
  • Owner: JoshuaBillson
  • License: mit
  • Language: Python
  • Default Branch: main
  • Homepage:
  • Size: 267 KB
Statistics
  • Stars: 16
  • Watchers: 2
  • Forks: 3
  • Open Issues: 0
  • Releases: 1
Topics
computer-vision deep-learning landcover-classification machine-learning python waterbody-detection
Created almost 4 years ago · Last pushed almost 3 years ago
Metadata Files
Readme License Citation

README.md

Waterbody Detection Via Deep Learning

This project explores the application of deep learning to waterbody detection.

Dataset

https://drive.google.com/file/d/1faVYayxdNFGx2m0IxswDncoKmIxusdf7/view

Running The Script

To run the script, simply execute main.py with the index of the GPU you want to train with specified as an optional parameter. If no GPU is specified, the script will default to GPU 0. bash python3 main.py [GPU]

Configuration

The script expects an external file called config.json in which the use should specify the desired configuration. Below is an example of such a file and a table outlining the effects of each setting.

Example Configuration

json { "timestamp": 1, "patch_size": 512, "experiment_tag": "unet_multispectral", "create_logs": true, "train": true, "test": true, "experiments": 1, "use_mixed_precision": true, "hyperparameters": { "model": "unet", "bands": ["RGB", "NIR", "SWIR"], "backbone": null, "learning_rate": 0.00005, "fusion_head": "naive", "loss": "jaccard_bce", "batch_size": 4, "epochs": 50, "apply_transfer": false, "random_subsample": false, "water_threshold": 0 } }

Available Settings

| Setting | Effects | |---------------------|----------------------------------------------------------------------| | timestamp | The timestamp to use (1, 2 or 3) | | patchsize | The desired size of the generated patches | | experimenttag | The human-readable tag with which to lable the experiment | | createlogs | Indicates whether or not we want to create logs for the experiment | | train | Whether or not we want to run the training loop | | test | Whether or not we want to test the trained model on the test set | | experiments | Indicate the number of identical experiments we want to run | | usemixed_precision | Indicate the number of identical experiments we want to run |

Available Hyperparameters

| Hyperparameter | Effects | |------------------|-----------------------------------------------------------------------------------| | model | The model we want to use | | bands | The bands used as inpiut to the model | | backbone | The model of the pre-trained backbone we want to use | | learningrate | The learning rate used by the optimizer | | fusionhead | The type of fusion head to use to combine spectral bands | | loss | The loss to use during training | | batchsize | The size of batches used in training | | epochs | The number of epochs to train for | | applytransfer | Whether or not to apply the PCT water transfer method | | randomsubsample | Whether or not to randomly sample patches for training | | waterthreshold | The threshold at which to stop transplanting water bodies if apply_transfer=true |

Citation

Please cite our work if it is helpful for your research. @article{rs15051253, title={Water Body Extraction from Sentinel-2 Imagery with Deep Convolutional Networks and Pixelwise Category Transplantation}, author={Billson, Joshua and Islam, MD Samiul and Sun, Xinyao and Cheng, Irene}, journal={Remote Sensing}, volume={15}, year={2023}, number={5}, article-number={1253}, url={https://www.mdpi.com/2072-4292/15/5/1253}, issn={2072-4292}, doi={10.3390/rs15051253} }

Owner

  • Login: JoshuaBillson
  • Kind: user

Citation (CITATION.cff)

cff-version: 1.2.0
message: "If you use this software, please cite it as below."
authors:
- family-names: "Billson"
  given-names: "JoshuaE"
title: "Waterbody-Detection-Via-Deep-Learning"
version: 1.0.0
date-released: 2022-08-04
url: "https://github.com/JoshuaBillson/Waterbody-Detection-Via-Deep-Learning"

GitHub Events

Total
  • Watch event: 6
  • Fork event: 2
Last Year
  • Watch event: 6
  • Fork event: 2

Issues and Pull Requests

Last synced: 10 months ago

All Time
  • Total issues: 0
  • Total pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Total issue authors: 0
  • Total pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 0
  • Pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 0
  • Pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
Pull Request Authors
Top Labels
Issue Labels
Pull Request Labels