Inspiration
The early detection of wildfires is the very first step in organizing an efficient and coordinated response. Many cameras have been disseminated across the state to monitor the onset of wildfires and raise an alarm as early as possible. There is, however, no automated smoke detection software consistently deployed and the videos still have to be monitored by the human eye. The FUEGO team at Berkeley (https://fuego.ssl.berkeley.edu/), in collaboration with Fireball international (http://fireballit.com/), has build a smoke detector based on convolutional neural network (inception v3). While the algorithm works well, it still raises a significant number of false positive every day, requiring non-negligible human input. For this project, I joined the team in their effort to hunt those false positive, using classical machine learning approaches (for now). The attached images shows examples of the different cases of true/false positive/negative raised by the current iteration of the deep learning model.
What it does
Building on initial exploratory work by another member of the team, a pipeline is being build to test and deploy false positive rejection algorithms. In a near future, the pipeline should be able to download the camera frames for +/- 10-20min around the detection time and perform a second analysis to confirm or dismiss the alarm. In its current iteration the pipeline can be used for offline test of false positive rejection algorithms, given a set of camera images. Some methods were previously implemented and tested on a few real and false alarms already, but their robustness can only be validated against a larger number of cases. The pipeline thus aims at facilitating the analysis of many datasets, by providing a convenient way to customize the analysis and save results in a consistent and user-friendly way. Its initial primary use will be for the optimization of hyperparameters, but it is built having in mind that it will eventually be deployed with the live detection software suite and to used to test new algorithm.
How I built it
I unfortunately cannot give access to the code, as it is developed under a non-disclosure agreement in collaboration with Fireball International. I nonetheless want to share what I can. The pipeline is build in python and consist of two main steps: preprocessing, where functions are applied on single image upon loading, and analysis, where a stack of pre-processed image are analyzed. Preprocessing typically includes elementary operations such as cropping and filtering, while the analysis implements the algorithm themselves. New preprocess and analysis functions can easily be added or removed without a deep knowledge of the underlying pipeline code, by following a few simple rules.
Challenges I ran into
This project took a while to get started. For the most part, I was not aware of the status of smoke detection softwares, and wasn't sure if and where contribution was needed. It then took a couple of weeks to finally reach out to the right team. Retrospectively, the idea of building a deep learning model from scratch for this project was way too ambitious and I am glad I could collaborate on an existing project, where my contribution can really mean something.
Accomplishments that I'm proud of
Rapidly being able to use my knowledge of python and data analysis and apply it to a pressing issue. Hopefully we will be able to deploy this pipeline during this fire season already, and I would be extremely proud to have contributed to it.
What I learned
I learned a lot about the challenges that the fight against wildfire was posing. In particular, I did not realize this was such a constant and recurring issue, nor the incredible amount of people involved in every step of this fight. From a technical point of view, I learned about the opencv libraries, and am now learning the basics of the google python API and interaction with SQL databases in order to deploy the pipeline.
What's next for Early wildfire detection: false positive rejection
I will definitely continue working on the project over the summer, as there is still a lot to be done. Ideally we would be able to deploy it as soon as possible for real-time analysis, filtering the alarms raised by the main software. The main code itself will also go under another round of training and I hope to be able to jump in, taking the opportunity to learn more about deep learning.

Log in or sign up for Devpost to join the conversation.