Downloads · 30 days
66
100% of all-time downloads
select-ai/fire-smoke-detection
fire-smoke-detection is a machine learning model from select-ai. Use it for the machine learning task on the model card, and read the license before you ship it in a product. It is set up for ultralytics.
- Model name: YOLO26L Fire and Smoke Detection - Version: v1 - Status: experimental - Repository visibility: internal - Upstream base model: YOLO26L (Ultralytics), pretrained on COCO - Inventory owner: Nishant - Archi…
Downloads · 30 days
66
100% of all-time downloads
All-time downloads
66
Public
Repo size
158 MB
Likes
0
Public
Click a slice to open those files.
.pt158 MB · 100%
From the Hugging Face model README
v1experimentalThis repository contains the Version 1 fire and smoke detection system designed for real-time CCTV safety monitoring. The model detects fire and smoke in video frames with high precision, enabling early warning systems for industrial facilities, public spaces, and residential buildings.
The model achieves 84% accuracy for fire detection and 68% accuracy for smoke detection on benchmark evaluation datasets
Early detection of fire and smoke is critical for preventing property damage, injuries, and loss of life. Traditional smoke detectors have limitations:
The primary inference script processes CCTV frames and detects fire/smoke events:
python scripts/run.py \
--video /path/to/cctv_feed.mp4 \
--model models/best.pt \
--conf 0.25 \
--imgsz 960 \
--output output_detections/
The system will:
uint8 OpenCV arrays or video pathThe system uses end-to-end YOLO26L object detection with no manual feature engineering:
Model architecture:
Training augmentations:
Detection output:
Production configuration thresholds:
CONF_THRESHOLD = 0.25 # Minimum detection confidence
IOU_THRESHOLD = 0.7 # NMS IoU threshold
IMAGE_SIZE = 960 # Input image size (square)
MAX_DETECTIONS = 300 # Maximum detections per image
Tunable confidence threshold:
CONF_THRESHOLD (0.0–1.0): Controls detection sensitivity
Adjust CONF_THRESHOLD based on deployment priorities:
For each detected fire or smoke region, the system outputs:
{
"detection_id": 1,
"box_xyxy": [x1, y1, x2, y2],
"class": "fire",
"class_id": 0,
}
Visualized output frames are saved with:
[ Frame ]
│
▼
YOLO26L Detector
(960×960 input)
│
├──► Backbone: C3k2 + C2PSA blocks
├──► Neck: FPN with multi-scale fusion
└──► Head: Multi-scale detection (P3, P4, P5)
│
▼
Detection Output
│
├──► Fire bounding boxes (class 0)
├──► Smoke bounding boxes (class 1)
└──► Confidence scores
│
▼
Post-processing
│
├──► Non-Maximum Suppression (IoU=0.7)
├──► Confidence filtering (>0.25)
│
▼
[ Annotated Frame ]
Install dependencies:
pip install -r requirements.txt
For GPU acceleration (recommended for real-time processing):
This model is intended for CCTV-based fire and smoke detection in:
Training dataset: 65,195 images (86.3% split, 5 combined datasets)
Validation dataset: 10,382 images (13.7% split)
Total dataset: 75,577 images
Best checkpoint: models/best.pt (epoch with best validation mAP)
Training date: 2026-07-23 to 2026-07-29
Training completed successfully with early stopping. Model converged after ~70 epochs on large-scale multi-dataset training.
Benchmark dataset: 100 images (90 positive fire/smoke samples, 10 hard negatives)
Evaluation script: Custom presence accuracy metric (image-level hazard detection)
Confidence threshold: 0.25
Evaluation date: 2026-07-29
============================================================
BENCHMARK DATASET BREAKDOWN
============================================================
Total Images Evaluated : 100
Positive Images (Fire/Smoke): 90
Hard Negatives (Background) : 10
============================================================
Multi-threshold performance analysis:
The model was evaluated across 5 confidence thresholds to characterize the precision-recall tradeoff:
| Threshold | Fire Acc | Fire Prec | Fire Rec | Fire F1 | Smoke Acc | Smoke Prec | Smoke Rec | Smoke F1 | Overall Acc | Overall Prec | Overall Rec | Overall F1 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0.25 (prod) | 0.96 | 1.0 | 0.9494 | 0.9740 | 0.83 | 0.9844 | 0.7975 | 0.8811 | 0.96 | 0.9886 | 0.9667 | 0.9775 |
| 0.50 | 0.88 | 1.0 | 0.8481 | 0.9178 | 0.68 | 1.0 | 0.5949 | 0.7460 | 0.88 | 1.0 | 0.8667 | 0.9286 |
| 0.65 | 0.75 | 1.0 | 0.6835 | 0.8120 | 0.54 | 1.0 | 0.4177 | 0.5893 | 0.76 | 1.0 | 0.7333 | 0.8462 |
| 0.75 | 0.60 | 1.0 | 0.4937 | 0.6610 | 0.44 | 1.0 | 0.2911 | 0.4510 | 0.56 | 1.0 | 0.5111 | 0.6765 |
| 0.95 | 0.21 | 0.0 | 0.0 | 0.0 | 0.21 | 0.0 | 0.0 | 0.0 | 0.10 | 0.0 | 0.0 | 0.0 |
Key performance insights:
Missed detections (false negatives):
Training and evaluation datasets are stored at:
/home/ctspl/Nishant/fire_overnight/dataset/fire_master/
Dataset structure:
fire_master/
├── train/
│ ├── images/ # 65,195 training images (86.3%)
│ └── labels/ # YOLO format annotations
├── valid/
│ ├── images/ # 10,382 validation images (13.7%)
│ └── labels/ # YOLO format annotations
└── data.yaml # Dataset configuration (75,577 total images)
Dataset is not included in this repository due to size constraints.
The following features are explicitly out of scope for this version:
fire-smoke-detection/
├── README.md
├── MODEL_CARD.md
├── CHANGELOG.md
├── config.json
├── requirements.txt
├── tp.txt
├── scripts/
│ ├── train.py # Training script
│ ├── run.py # Inference script
│ └── evaluate.ipynb # Evaluation notebook
├── models/
│ └── best.pt # Best validation checkpoint
└── docs/
├── spec.md # Development specification
├── train.log.md # Complete training log
└── data.md # Dataset documentation