/wildfire-smoke-detector

Training a YOLOv8 model for wildfire smoke detection.

Primary LanguagePython

wildfire-smoke-detector

ML project for wildfire smoke detection with YOLOv8.

Follow this article as a detailed guide.

This project is connected to a repository on DagsHub.

DagsHub is a GitHub for Machine Learning projects. It eases MLOps practices by enabling data scientists and machine learning engineers to version their data, models, experiments, and code, through its integration with DVC and MLflow.

Project Organization

├── Makefile           <- Makefile with commands like `make env` or `make requirements`.
├── README.md          <- Documentation for using this project.
├── params.yaml        <- configuration parameters e.g for training 
├── data
│   ├── processed      <- Processed dataset.
│   └── raw            <- The original dataset (immutable data).
│
├── models             <- Trained and serialized models, model predictions, or model summaries
├── reports            <- Generated analysis as HTML, PDF, LaTeX, etc.
│   └── figures        <- Generated graphics and figures to be used in reporting
│   └── train_metrics.csv    <- Relevant metrics after evaluating the model.
│   └── train_params.yaml    <- Params for training the model.
│
├── requirements.txt   <- The requirements file for reproducing the environment.
│
├── src                <- Source code for use in this project.
│   ├── __init__.py    <- Makes src a Python module
│   ├── train.py       <- Scripts to train the model 
│   ├── predict.py     <- Script to make predictions on test data
│   └──utils.py       <- Utility functions 
│
├── dvc.lock           <- The version definition of each dependency, stage, and output from the 
│                         DVC data pipeline.
└── dvc.yaml           <- Defining the data pipeline stages, dependencies, and outputs.

Run the project locally

  1. Clone the project:
git clone https://github.com/RihabFekii/
  1. Set up a virtual python environment, by running the following commands:
make env
source env/bin/activate .
  1. Install requirements, by running this command:
make requirements
  1. Pull the data
dvc pull

Run experiments with DVC

  1. You can experiment with the different models of YOLOv8 and edit its hyperparameters by editing the params.yaml file.

  2. Since the data pipeline is created with dvc, you can easily reproduce experiments by runing:

dvc exp run 
  1. Visualize experiments by running:
dvc exp show