Skip to content

ahestevenz/busfires-object-detector

Repository files navigation

Bushfires Detector

A bushfires object detector using mobilenet v2/v3 as feature extractor.

Dataset

AI For Mankind downloaded the public domain HPWREN Cameras images and annotated these images with bounding boxes for object detection.

Bounding Box Annotated Wildfire Smoke Dataset (Pascal VOC annotation format) Version 1.0 for smoke detection. Thank you our founder Wei Shung Chung in creating this first set of bounding boxes. In total, 744 bounding box annotated images are created.

Bounding Box Annotated Wildfire Smoke Dataset (Pascal VOC annotation format) Version 2.0 This is the latest annotated images we created with the help of our volunteers. It has 2192 annotated images.

Credits to AI For Mankind and HPWREN.

Datasets: https://github.com/aiformankind/wildfire-smoke-dataset

Training and Testing

Requirements

Python environment

It is highly recomomended to run the training scrips inside of python environment, in case the system does not have any use the following procedure (check Virtualenvwrapper Installation for more details).

$ pip install --user virtualenvwrapper virtualenv

Add three lines to your shell startup file (.bashrc, .profile, etc.) to set the location where the virtual environments should live:

export WORKON_HOME=$HOME/.virtualenvs
export PROJECT_HOME=$HOME/Devel
source /usr/local/bin/virtualenvwrapper.sh

After editing it, reload the startup file (e.g., run source ~/.bashrc) and create a python environment:

$ mkvirtualenv venv_py 
$ workon venv_py

Installing the package

Once the python environment was configured, run the following procedure to install all the required packages

(venv_py)$ git clone https://github.com/ahestevenz/bushfires-object-detection
(venv_py)$ cd bushfires-object-detection
(venv_py)$ pip install .

Training

The following script will be used to train the model.

(venv_py)$ bn-run-train --help                                                          
usage: bn-run-train [-h] [-j JSON_FILE] [-v] [-p output.prof]

Welcome to the Bushfires Detector training script

optional arguments:
  -h, --help            show this help message and exit
  -j JSON_FILE, --json_file JSON_FILE
                        JSON configuration (default: "/Users/ahestevenz/Desktop/tech-projects/1_code/bushfires-object-detection/config.json")
  -v, --verbose         Increase logging output (default: INFO)(can be specified several times)
  -p output.prof, --profile output.prof
                        Run with profiling and store output in given file

Run the above command to start the training (check the data and artefacts paths in config.json first)

(venv_py)$ bn-run-train --json_file config.json   

Testing

To evaluate the model indicated in config.json file, run this command:

(venv_py)$ bn-run-test --json_file config.json 

Results

Result using Smoke V1 dataset:

Result using Smoke V2 dataset:

TODO List

  • Add Docker container option to run/train models
  • Add release revision for Smoke datasets by using DVC
  • Notebook example

Releases

No releases published

Packages

No packages published

Languages