Science Score: 26.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (14.7%) to scientific vocabulary
Last synced: 9 months ago · JSON representation

Repository

Basic Info
  • Host: GitHub
  • Owner: DamianKos
  • Default Branch: main
  • Size: 741 MB
Statistics
  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • Open Issues: 3
  • Releases: 0
Created over 2 years ago · Last pushed about 2 years ago
Metadata Files
Readme Citation

README.md

I am currently working on my final year project where I am using Computer Vision and training You Only Look Once (YOLO) models that will be able to detect fire and smoke for early wildfires detection and prevention. I am training and evaluating the performance and accuracy of three versions of the YOLO object detection models: YOLOv5, YOLOv6, and YOLOv7. My goal is to develop a reliable system capable of detecting fire and smoke signs in various environments to assist in rapid response and mitigation efforts.

YOLO is a state-of-the-art, real-time object detection system that is known for its speed and accuracy. It divides images into a grid system and predicts bounding boxes and probabilities for each grid cell. The versions used in this project, YOLOv5, YOLOv6, and YOLOv7, represent advancements in architecture, speed, and accuracy, making them ideal for real-world applications like wildfire detection.

Getting started

Python 3.8 or later

Conda environment

To get started with YOLOv5, clone the official repository and install the required dependencies.

!git clone https://github.com/ultralytics/yolov5

%cd yolov5

%pip install -r requirements.txt

Due to library conflicts after installing YOLOv7 dependencies in the same environment, additional environment variables are set to prevent errors. (warnings.warn("loaded more than 1 DLL from .libs:")

set PYTHONWARNINGS=ignore # Ignore Python DLL conflict warnings

set KMPDUPLICATELIB_OK=TRUE # Resolve OpenMP library conflict

KMP Error

How To Train

To train a YOLO model with your dataset, use the following command template. Replace placeholders with your specific dataset location, chosen model weights file, desired number of epochs, and number of workers if necessary.

python train.py --data (dataset location)/data.yaml --weights (choose model weights .pt file) --epochs (choose number of epochs) --workers (set workers if needed)

40epoch_yolov5s

How to Detect

After training your model, you can perform detection on new images or videos by using the trained weights as follows

python detect.py --source (test file location) --weights (weights location from trained model)

detect eg

Screenshot 2024-02-26 215134

Project Structure

  • yolov5/: YOLOv5 repository cloned from Ultralytics.

  • yolov7/: Directory for YOLOv7-specific files and weights (setup similar to YOLOv5).

  • Wildfire-V2-5/: Contains datasets, including images and annotations for training and testing.

  • models/: Custom model configuration files for YOLOv5, YOLOv6, and YOLOv7.

  • runs/: Output directory for training sessions and detection results.

Freezing Layers

Freezing layers is a technique used to prevent certain layers of a neural network from being updated during training.

When training your model, you can specify which layers to freeze by using the --freeze command followed by the layer indices.

python train.py --data (dataset location)/data.yaml --weights (model weights .pt file) --epochs (number of epochs) --freeze 0-8

freezing backbone

Owner

  • Login: DamianKos
  • Kind: user

GitHub Events

Total
Last Year