Fire detection CNNs that trade hype for throughput
Academic-grade fire detection in video, built to run fast enough to matter on ordinary hardware.

What it does
This repo implements several CNN architectures for real-time fire detection in video frames without using temporal information—no motion vectors, no frame differencing. It offers both full-frame binary classification (fire / no fire) and superpixel-based localization that segments a frame and classifies each patch. The code ships as straightforward Python scripts with pre-trained models you download via shell script.
The interesting bit
The authors went against the 2018-2019 trend of ever-deeper networks. They experimentally shrank Inception-derived architectures and found that a stripped-down “FireNet” hits 17 fps while their best-performing “InceptionV4-OnFire” still manages 12 fps—both on then-contemporary hardware. The superpixel approach (SLIC segmentation + per-patch classification) is the slower but more precise option for actually locating fire within a frame.
Key highlights
- Five model variants: FireNet, InceptionV1/V3/V4-OnFire, plus superpixel versions of the latter three
- Full-frame accuracy up to 0.96 (InceptionV4-OnFire) or 0.93 (InceptionV1-OnFire) per the 2018/2019 papers
- Superpixel localization accuracy up to 0.94 (SP-InceptionV4-OnFire)
- Pre-trained models and training datasets available via DOI-backed Durham Collections archives
- Includes conversion notes for OpenCV DNN and TensorFlow Lite deployment
Caveats
- Locked to TensorFlow 1.x and TFLearn 0.3.2; TF 2.x requires a virtualenv workaround
- V3 and V4 models suffer degraded performance if converted to .pb or .tflite due to a long-standing TensorFlow BatchNorm export bug—stick to FireNet or V1 for deployment formats
- The newer PyTorch successor lives in a separate repo by co-author Neel Bhowmik
Verdict
Worth a look if you need a battle-tested, citation-backed fire detector for embedded or surveillance use and can tolerate legacy TensorFlow. Skip if you want modern PyTorch/TF2 code out of the box—there’s a successor repo for that.