We trained our very own model (Natural) to detect fire, which is able to detect fires with an accuracy of 93.7%. We then used this model in conjunction with another model to create a comprehensive strategy in fire detection.

Our Natural model was trained on Azure Notebooks. We also used the Firenet model found here. Both models are hosted on Azure Machine Learning Services.

Strategy

We chose a multimodal approach to detecting fire from the drone field of view image. We believe this was the most effective method due to the shortcomings of the Firenet model discussed more in depth here. The FireNet model struggled to classify forest fires, street fires (important for the theme of this hackathon), and sunsets, so we chose to use this model along with our custom model. The Natural network is a much smaller network than FireNet, but it performs better in the specific cases where FireNet struggles. We also generated a custom bitmask to frames where we detected fire using our networks to complete the complex scoring objective of the hackathon. The biggest challenge that we faced in our model building was correctly classifying frames from sunsets. Our models rarely reached consensus on these frames, and it was difficult to choose between the two.

To balance the two models, we start with analysis using Natural, if a fire is not detected we check Firenet, and then if nothing is detected we use a persistant mask. The persistant mask operates on an observation from the drone where we noticed adjacent frames had redundant information, which we may have classified correctly in the frame prior. To improve accuracy, we chose to shift our mask by an equivalent drone movement to correctly score newer misclassified frames using prior information.

Running

To run our fireDrone.py program, install the dependencies with

pip install -r requirements.txt

and

python3 fireDrone.py

We’ve also released some of the utilities we used throughout the hackathon to create our project which can be found in the Github repo below.

The program will ask you for the scene ID you want to run. A full list of scene IDs can be found here.

Built With

Share this project:

Updates