GithubHelp home page GithubHelp logo

fireml's Introduction

Forest Fire detection with Machine Learning on Edge Devices.

Wildfire detection using Tensorflow and OpenVINO on a Raspberry Pi.

Wildfires are unplanned and unwanted fires, including lightning-caused fires, unauthorized human-caused fires, and escaped prescribed fire projects.

Only from my country (Honduras) I can share the following statistics:

  • Wildfires devastate a total of 22,132 hectares of forests in 2019
  • By February 10th 2020, 17 fires have been reported in the country.

In one of the most recent catastrophies, the Forest Fires in Australia have destroyed more than 11 million hectares, killing millions of animals and at least 33 people died.

That's is why a reliable method to detect fires in less time is unvaluable to prevent its consecuences protecting the nature and people lives around it.

Hardware

The main module of this prototype is build as follows:

  • Raspberry Pi 3b+
  • Raspberry Pi Camera
  • Pan-tilt Hat, camera holder and servo module.
  • Neural Computer Stick (NCS 1 to boost inference)

Future tests:

  • Drone
  • Raspberry GSM module

Model was training in Coogle Colab with GPU Instance.

Getting the data and format conversion.

I will be using a dataset of images with the labels in XML format from the FireNET project. As we will be using Tensorflow Detection API for this project we need to convert this data from .xml to TFRecord.

For this step I have prepare a Google Colab notebook with all the steps needed for this task.

https://colab.research.google.com/drive/1Pa_gYtkOQ60drFRZoOIdHLahfEfOMTyw

Using Tensorflow Object Detection API for Model Training.

Once we got the train.record and the test.record files we proceed with the enviroment preparation and the training of the Object Detection model, this process is clearly described in the following Google Colab Notebook:

https://colab.research.google.com/drive/1j5uQtf74f4ZWEinip5DavlWWtaqBbxGe

It is required also to upload the object-detection.pbtxt that you can find in this repository.

Converting the Tensorflow API model with OpenVino.

Following the steps described in the official Openvino documentation is possible to convert and run in the raspberry pi with a better perfomance:

https://docs.openvinotoolkit.org/latest/_docs_MO_DG_prepare_model_convert_model_tf_specific_Convert_Object_Detection_API_Models.html

I'm actually working on building a docker container to provide the trained model easy to use. I hope to be able to have this available soon.

Testing the model

Testing on the Pi camera I have used the video input to test the model so I could get very good results, these are the first test on flame images:

I will be adding more test images on outside fires or videos available on internet in the next weeks.

What this project is trying to achieve

This project is not limited to train a Deep Learning model to detect fire, I'm looking to work on a dron able to use electronics similar or better than the Raspberry Pi to detect fire during its Programmed flying route across a forest or protected area and when the model indicates the presence of fire it will a SMS with the coordinates to the Forest Ranger and a MMS with the photo of the model prediction, this is possible with a raspberry pi GSM module.

fireml's People

Contributors

cjriverflow avatar anshul-13j 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.