Skip to content

AbhishekRS4/HTSM_Oil_Spill_Segmentation

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Oil Spill Segmentation using Deep Encoder-Decoder models

To cite this work

  • Use the following to cite this work
@conference{icpram25,
author={Abhishek Ramanathapura Satyanarayana and Maruf A. Dhali},
title={Oil Spill Segmentation Using Deep Encoder-Decoder Models},
booktitle={Proceedings of the 14th International Conference on Pattern Recognition Applications and Methods - ICPRAM},
year={2025},
pages={741-748},
publisher={SciTePress},
organization={INSTICC},
doi={10.5220/0013259600003905},
isbn={978-989-758-730-6},
issn={2184-4313},
}

Paper available

  • The paper that outlines the results of this work has been accepted at ICPRAM 2025 conference in the industrial applications section because of the impact the work has in the remote sensing industrial applications domain. The link to the ICPRAM paper
  • An older version of the paper with the results of this work is also available in the ArXiv. This will be updated soon.

Info about the project

  • This repo contains the project work done as part of the HTSM Masterwork at University of Groningen.
  • Research work carried as part of the HTSM Masterwork to train deep learning CNN model for segmentation task to detect oil spills from the satellite Synthetic Aperture Radar (SAR) data.
  • This research is towards application of AI for good, particularly towards conservation of nature with AI.
  • This project was done under the supervision of Mr. Maruf A. Dhali

Dataset information

  • The details about the dataset used in this Masterwork project can be found here - dataset details.
  • This dataset contains labels for 5 classes --- sea surface, oil spill, oil spill look-alike, ship, and land.
  • ThIs dataset is a relatively smaller dataset when compared to other popular benchmark datasets for the segmentation task.

Required dependencies for training

  • To install pytorch use the following command
pip install torch==1.12.1+cu113 torchvision==0.13.1+cu113 torchaudio==0.12.1 --extra-index-url https://download.pytorch.org/whl/cu113
  • The other required dependencies for training are available in requirements.txt.

Instructions to run the code for training

  • For any python script, use the following to list all the command-line options
python3 script_name.py --help

Docker deployment instructions

  • The streamlit app has been developed for deployment.
  • The detailed python package requirements for the streamlit app can be found in src/requirements_deployment.txt.
  • To build the container, run the following command inside src directory
docker build -t app_oil_spill .
  • To the run the container, run the following command inside src directory
docker run -p 8000:8000 -t app_oil_spill

Huggingface deployment

  • A streamlit application, with the best performing model, has been deployed to Huggingface

Qualitative results - sample test set predictions

Sample predicted mask 1 Sample predicted mask 2 Sample predicted mask 3 Sample predicted mask 4 Sample predicted mask 5

  • Since the dataset is not publicly available, the original test set images from the dataset are not uploaded but only their predictions are included in the repo.

Quantitative results

  • The best model's class-wise and mean IoU performance is presented below.
class class IoU (%)
sea surface 96.422
oil spill 61.549
oil spill look-alike 40.773
ship 33.378
land 92.218
mean IoU 64.868

Sphinx docstring generation

  • The following are the steps to generate docstrings using sphinx
  • Create a directory named docs and go to that directory
mkdir docs && cd docs
  • Run the everyone of following commands inside docs directory
  • Run the following command with appropriate options
sphinx-quickstart
  • Open the file index.rst and add modules to it
  • In the file conf.py, make the following changes
    • set html_theme = 'sphinx_rtd_theme'
    • set extensions = ["sphinx.ext.todo", "sphinx.ext.viewcode", "sphinx.ext.autodoc"]
    • add the following to the beginning of the conf.py file
    import os
    import sys
    
    sys.path.insert(0, os.path.abspath(".."))
    
  • Run the following command
sphinx-apidoc -o . ..
  • Create html files with documentation
make html

References