Giter Club home page Giter Club logo

industrialsmokeplumedetection's Introduction

Industrial Smoke Plume Detection

This repository contains the code base for our publication Characterization of Industrial Smoke Plumes from Remote Sensing Data, presented at the Tackling Climate Change with Machine Learning workshop at NeurIPS 2020.

segmentation example images

About this Project

The major driver of global warming has been identified as the anthropogenic release of greenhouse gas (GHG) emissions from industrial activities. The quantitative monitoring of these emissions is mandatory to fully understand their effect on the Earth’s climate and to enforce emission regulations on a large scale. In this work, we investigate the possibility to detect and quantify industrial smoke plumes from globally and freely available multiband image data from ESA’s Sentinel-2 satellites. Using a modified ResNet-50, we can detect smoke plumes of different sizes with an accuracy of 94.3%. The model correctly ignores natural clouds and focuses on those imaging channels that are related to the spectral absorption from aerosols and water vapor, enabling the localization of smoke. We exploit this localization ability and train a U-Net segmentation model on a labeled subsample of our data, resulting in an Intersection-over-Union (IoU) metric of 0.608 and an overall accuracy for the detection of any smoke plume of 94.0%; on average, our model can reproduce the area covered by smoke in an image to within 5.6%. The performance of our model is mostly limited by occasional confusion with surface objects, the inability to identify semi-transparent smoke, and human limitations to properly identify smoke based on RGB-only images. Nevertheless, our results enable us to reliably detect and qualitatively estimate the level of smoke activity in order to monitor activity in industrial plants across the globe. Our data set and code base are publicly available.

The full publication is available on arxiv.

The data set is available on zenodo.

Content

classification/: Resnet-50 classifier code, training and evaluation routines segmentation/: U-Net segmentation model code, training and evaluation routines

How to Use

Download this repository as well as the data and decompress the latter. For both model training and evaluation, you will have to modify the directory paths appropriately so that they point to the image and segmentation label data.

It is expected that the data are split into separate data sets for training, validation, and evaluation. For our publication, this has been done in such a way that all observations of a single location are contained in a single data set. Other strategies are possible and will be left to the user.

Either model can be trained by invoking:

python train.py

with the following optional parameters:

  • -bs <int> to define a batch size,
  • -ep <int> to define the number of training epochs,
  • -lr <float> to define a starting learning rate, and
  • -mo <float> to define a momentum value.

The models can be evaluated on the test data set by calling the corresponding eval.py script.

Acknowledgements

If you use this code for your own project, please cite the following conference contribution:

Mommert, M., Sigel, M., Neuhausler, M., Scheibenreif, L., Borth, D.,
"Characterization of Industrial Smoke Plumes from Remote Sensing Data",
Tackling Climate Change with Machine Learning Workshop,
NeurIPS 2020.

industrialsmokeplumedetection's People

Contributors

mommermi avatar damianborth 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.