fire-detection-cnn
fire-detection-cnn 是一款基于深度学习的开源工具,专为在视频或静态图像中实时检测火焰而设计。它利用卷积神经网络(CNN)技术,能够在不依赖时间序列信息(即单帧分析)的情况下,快速准确地识别画面中的火情区域。
该工具主要解决了传统火灾检测方法计算量大、难以满足实时性要求,或过度依赖连续帧分析导致延迟的问题。通过采用实验定义的轻量化网络架构(如 FireNet 及多种优化的 Inception 变体),fire-detection-cnn 在保证高准确率(整图检测准确率可达 0.93)的同时,显著降低了计算复杂度。在现代硬件上,其处理速度最高可达每秒 17 帧,实现了效率与精度的良好平衡。
这款工具非常适合计算机视觉开发者、安防系统研究人员以及需要部署实时火灾预警系统的工程师使用。对于希望探索紧凑型神经网络架构的学术研究者而言,其提供的多种模型变体及基于超像素的定位框架也具有重要的参考价值。需要注意的是,项目原版基于 TensorFlow 构建,若需更现代的 PyTorch 支持,官方也指引了后续的更新版本资源。
使用场景
某大型物流仓储中心需要在夜间无人值守时,通过现有监控摄像头实时监测仓库内的早期火情,以确保在消防队到达前自动触发喷淋系统。
没有 fire-detection-cnn 时
- 误报率极高:传统基于颜色或运动检测的算法常将叉车警示灯、夕阳反光或红色货物误判为火焰,导致安保人员频繁无效出勤。
- 响应延迟严重:依赖人工轮询监控画面或复杂的云端视频分析,从起火到确认往往需要数分钟,错过了黄金灭火时间。
- 硬件成本高昂:为了实现实时分析,必须采购昂贵的专用边缘计算服务器或升级全套热成像设备,预算难以获批。
- 无法处理复杂光影:在仓库昏暗且存在移动阴影的环境下,旧算法极易失效,无法区分真实火源与环境干扰。
使用 fire-detection-cnn 后
- 精准识别火源:利用经过 ICIP 和 ICMLA 论文验证的卷积神经网络架构,fire-detection-cnn 能准确区分火焰与类似颜色的干扰物,将二元检测准确率提升至 93%。
- 真正的实时响应:凭借精简的网络结构,该工具在普通硬件上即可达到 17 FPS 的处理速度,能在火灾发生的秒级时间内发出警报并联动喷淋。
- 利旧降本显著:无需更换摄像头或购买昂贵硬件,直接复用现有的普通监控视频流和普通工控机即可部署,大幅降低落地成本。
- 抗干扰能力强:不依赖时序信息(即单帧即可判断),有效克服了仓库内灯光闪烁、阴影移动等非火灾动态因素的干扰。
fire-detection-cnn 通过将学术界的轻量化深度学习成果转化为工业级应用,以极低的算力成本实现了高准确率、低延迟的实时火灾预警。
运行环境要求
- Linux
- macOS
可选(支持 GPU 加速),需安装 tensorflow-gpu==1.15,具体显存和 CUDA 版本未说明(对应 TF 1.15 通常需 CUDA 10.0 和 cuDNN 7.6)
未说明(数据集约 10.5GB,建议预留足够内存)

快速开始
非时序实时火灾检测的实验性卷积神经网络架构变体
[以及后续相关工作:非时序实时火灾检测的紧凑型卷积神经网络架构实验探索]
本项目使用 Python 3.7.x、TensorFlow 1.15、TFLearn 0.3.2 和 OpenCV 3.x / 4.x 进行测试(需要 OpenCV 的额外模块——用于超像素分割的 ximgproc 模块)。
架构:
FireNet 架构(上图)
InceptionV1-OnFire 架构(上图)
InceptionV3-OnFire 架构(上图)
InceptionV4-OnFire 架构(上图)
用于火灾检测的新更新架构及 PyTorch 模型现已发布——
摘要:
“在本工作中,我们研究了在不依赖场景时间信息的情况下,在实时范围内自动检测视频(或静态图像)中火灾像素区域的方法。作为该领域先前工作的扩展,我们考察了为此任务设计的、经过实验验证的低复杂度深度卷积神经网络(CNN)架构的性能。与当前领域的主流趋势不同,我们的研究展示了整张图像二值化火灾检测的最高准确率为 0.93(1),而在我们的超像素定位框架下,准确率可达 0.89(2),且仅需使用显著降低复杂度的网络架构即可实现。这些简化架构还带来了 3–4 倍的计算性能提升,在当代硬件上可独立于时间信息以高达 17 帧/秒的速度进行处理(1)。我们通过基准数据集对比了与先前工作的相对性能,从而证明了所提出的方案在实时火灾区域检测方面的最大鲁棒性。”
(1) 使用 InceptionV1-OnFire CNN 模型 (2) 使用 SP-InceptionV1-OnFire CNN 模型
[邓宁斯、布雷肯,《国际图像处理会议论文集》,IEEE,2018 年]
“……与当前领域的主流趋势相反,我们的研究展示了一种基于 InceptionV4 概念的实验性简化 CNN 架构,在全帧二值化火灾检测方面达到了 0.96 的最高总体准确率(3),在超像素定位方面则达到了 0.94 的准确率(4)。值得注意的是,我们实现了 0.06 的较低假阳性率,优于该领域的先前工作,从而提供了一种高效、鲁棒且实时的火灾区域检测解决方案。”
(3) 使用 InceptionV4-OnFire CNN 模型 (4) 使用 SP-InceptionV4-OnFire CNN 模型
[萨马特、鲍米克、布雷肯,《国际机器学习应用会议论文集》,IEEE,2019 年]
参考实现:
简而言之,我们的全帧二分类检测(FireNet、InceptionV1-OnFire、InceptionV3-OnFire、InceptionV4-OnFire)架构用于全局判断图像帧中是否存在火焰;而基于超像素的方法(SP-InceptionV1-OnFire、SP-InceptionV3-OnFire、SP-InceptionV4-OnFire)则将帧分割成多个区域,并对每个超像素区域进行分类,从而实现火焰的帧内定位。
本仓库包含与论文中的二分类(全帧)检测模型相对应的 firenet.py 和 inceptionVxOnFire.py 文件。此外,superpixel-inceptionVxOnFire.py 文件对应于论文中提出的基于超像素的帧内火焰定位方法。
要使用这些脚本,必须通过 shell 脚本 download-models.sh 下载预训练的网络模型,该脚本会在 Linux/MacOS 系统上创建一个名为 models 的目录,其中包含网络权重数据。或者,您也可以手动从 http://dx.doi.org/10.15128/r19880vq98m [Dunnings, 2018] 和 http://doi.org/10.15128/r25x21tf409 [Samarth, 2019] 手动下载预训练的网络模型,并将其解压到与 Python 文件同一目录下的 models 目录中。
基于超像素的方法经过训练,能够在给定帧内执行超像素级别的火焰检测与定位,具体步骤如下:
- 使用 SLIC 超像素分割算法将图像帧分割成多个区域;
- 对每个超像素区域应用经过训练的 SP-InceptionVx-OnFire 卷积架构(其中 _x = 1, 3, 4 分别对应 InceptionV1、InceptionV3 和 InceptionV4),该架构专门用于检测单个超像素区域内的火焰;
- 在运行时(推理阶段),所选的 SP-InceptionVx-OnFire 网络会依次应用于 SLIC 分割得到的每一个超像素区域。
我应该使用哪个模型?
若追求最佳检测性能(即高真正率、低假正率),请使用 InceptionV4-OnFire(示例:inceptionVxOnFire.py -m 4),其运行速度为每秒 12 帧;若追求最佳吞吐量(17 帧/秒),则可使用 FireNet(示例:firenet.py),不过其性能稍逊(即真正率较低、假正率较高)。
InceptionV1-OnFire 和 InceptionV3-OnFire 则在检测效果、误报率和吞吐量方面提供了不同的性能权衡——例如,可以分别使用 inceptionVxOnFire.py -m 1 或 inceptionVxOnFire.py -m 3。
对于超像素级的火焰定位任务,SP-InceptionV4-OnFire 模型具有最佳的检测性能(示例:superpixel-inceptionVxOnFire.py -m 4),但其吞吐量低于性能稍逊的 SP-InceptionV1-OnFire 和 SP-InceptionV3-OnFire 超像素模型(示例:superpixel-inceptionVxOnFire.py -m 1 或 superpixel-inceptionVxOnFire.py -m 3)。完整对比请参阅最新论文——[Samarth, 2019]。
注意: 如果需要将模型转换为协议缓冲区 (.pb) 格式(供 OpenCV DNN、TensorFlow 等使用)以及 tflite 格式(用于 TensorFlow),目前建议使用 FireNet 或 InceptionV1-OnFire / SP-InceptionV1-OnFire 版本。这是因为 TensorFlow 在导出(冻结)批量归一化层时存在一个长期未解决的问题(issue),导致 ...V3-OnFire 和 ...V4-OnFire 的协议缓冲区 (.pb) 和 .tflite 版本性能显著下降,这也是我们采用绕过方案处理该问题后的预期结果。
火焰检测数据集:
用于训练和评估的自定义数据集可在 [Durham Collections - Dunnings/Breckon, 2018] 和 [Durham Collections - Samarth/Breckon, 2019] 上找到(连同已训练好的网络模型一同发布)。数据集的直接下载链接分别为 [Dunnings, 2018 - 原始数据] 和 [Samarth, 2019 - 补充数据]。
此外,还使用了诸如 furg-fire-dataset 等标准数据集进行训练和评估,并将其作为子集包含在上述数据集中([Dunnings, 2018 - 原始数据])。
同时提供了一个下载脚本 download-dataset.sh,它会创建一个名为 dataset 的目录,其中包含训练数据集(大小约为 10.5GB,在 Linux/MacOS 系统上可用)。
原始帧(左)、超像素分割后的帧(中)、超像素火焰预测后的帧(右)
预训练模型测试说明:
要下载并测试提供的代码及预训练模型(需安装 TensorFlow 1.x / TFLearn 0.3.2 / OpenCV 4.x),请按以下步骤操作:
$ git clone https://github.com/tobybreckon/fire-detection-cnn.git
$ cd fire-detection-cnn
$ sh ./download-models.sh
$ python firenet.py models/test.mp4
$ python inceptionVxOnFire.py -m 1 models/test.mp4
$ python superpixel-inceptionVxOnFire.py -m 1 models/test.mp4
其中,-m x 参数用于指定使用 InceptionV1OnFire、InceptionV3OnFire、InceptionV4OnFire 中的哪一个模型,取值范围为 [1,3,4]。若未指定 -m 参数,则默认使用 InceptionV1OnFire。
如果您系统中默认安装的是 TensorFlow 2.x,则可通过搭建 TensorFlow 1.x 虚拟环境来使本项目在您的系统上正常运行(因为 TFLearn 不支持 TensorFlow 2.0——详见此 issue),具体流程如下:
$ virtualenv -p python3 ~/venv/tf-1.1.5-gpu
$ source ~/venv/tf-1.1.5-gpu/bin/activate
$ pip install tensorflow-gpu==1.15
$ pip install tflearn
$ pip install opencv-contrib-python
....
$ python3 firenet.py models/test.mp4
使用预训练模型与其他框架的说明:
要将提供的 TFLearn 检查点格式的预训练模型转换为协议缓冲区 (.pb) 格式(由 OpenCV DNN、TensorFlow 等使用)以及 tflite 格式(用于 TensorFlow),请执行以下操作:
$ cd converter
$ python firenet-conversion.py
$ python inceptionVxOnFire-conversion.py -m 1
这将在 converter 目录下生成一组六个 .pb 和 .tflite 文件(firenet.xxx / inceptionv1onfire.xxx / sp-inceptionv1onfire.xxx,其中 xxx 可以是 [pb, tflite])。同样地,可以使用 -m 3 和 -m 4 运行 inceptionVxOnFire-conversion.py,分别为 InceptionV3OnFire 和 InceptionV4OnFire 模型生成相应的转换文件。
然后,可以使用 OpenCV DNN 模块(OpenCV ≥ 4.1.0-pre)和 TensorFlow 对这些不同格式的文件与原始的 (tflearn) 版本进行验证,以确保它们在相同目录下产生的输出一致(精确到小数点后三位),具体步骤如下:
$ python firenet-validation.py
从 ../models/FireNet 加载 tflearn 模型 ... 成功
从 firenet.pb 加载 protocolbuf (pb) 模型 ... 成功
从 firenet.tflite 加载 tflite 模型 ... 成功
从 ../models/test.mp4 加载测试视频 ...
帧: 0 : TFLearn(原版): [[9.999914e-01 8.576833e-06]] : Tensorflow .pb(通过 opencv): [[9.999914e-01 8.576866e-06]] : TFLite(通过 tensorflow): [[9.999914e-01 8.576899e-06]]: 全部相等 测试 - 通过
帧: 1 : TFLearn(原版): [[9.999924e-01 7.609045e-06]] : Tensorflow .pb(通过 opencv): [[9.999924e-01 7.608987e-06]] : TFLite(通过 tensorflow): [[9.999924e-01 7.608980e-06]]: 全部相等 测试 - 通过
帧: 2 : TFLearn(原版): [[9.999967e-01 3.373572e-06]] : Tensorflow .pb(通过 opencv): [[9.999967e-01 3.373559e-06]] : TFLite(通过 tensorflow): [[9.999967e-01 3.373456e-06]]: 全部相等 测试 - 通过
帧: 3 : TFLearn(原版): [[9.999968e-01 3.165212e-06]] : Tensorflow .pb(通过 opencv): [[9.999968e-01 3.165221e-06]] : TFLite(通过 tensorflow): [[9.999968e-01 3.165176e-06]]: 全部相等 测试 - 通过
...
同样的方法也可以用于 inceptionVxOnFire-validation.py 脚本,只需添加 -m x 参数(其中 x 可以是 [1,3,4]),即可分别对每个 InceptionVxOnFire 模型进行验证。此外,还可以使用 -sp 选项来验证超像素版本的 InceptionVxOnFire 模型(例如,inceptionVxOnFire-validation.py -m 3 -sp 将验证 InceptionV3OnFire 的超像素模型,以此类推)。需要注意的是,这里对超像素 InceptionVxOnFire 模型的验证是基于整张图像帧,而非单独的超像素区域,目的是展示原始模型与转换后模型之间的一致性。根据严格的小数点后三位精度标准,可能会报告一些 FAIL 情况,但仔细检查通常会发现差异很小,大约在 0.1 左右(除了前面提到的 ...V3-OnFire 和 ...V4-OnFire 的特殊情况)。
若需将这些 TensorFlow 格式的模型转换为其他框架(如 PyTorch、MXNet、Keras 等),请参考 MMdnn 项目提供的丰富的深度神经网络模型转换工具。
示例视频:
参考文献:
如果您以任何方式使用本工作成果(包括我们的预训练模型或数据集),_务必_在任何报告、出版物、演示文稿、软件发布或其他相关材料中引用以下文章:
用于非时序实时火灾检测的实验性卷积神经网络架构变体 (Dunnings, Breckon),IEEE 国际图像处理会议论文集,2018 年。
@InProceedings{dunnings18fire,
author = {Dunnings, A. and Breckon, T.P.},
title = {Experimentally defined Convolutional Nerual Network Architecture Variants for Non-temporal Real-time Fire Detection},
booktitle = {Proc. International Conference on Image Processing},
pages = {1558-1562},
year = {2018},
month = {September},
publisher = {IEEE},
doi = {10.1109/ICIP.2018.8451657},
keywords = {简化 CNN、深度学习、火灾检测、实时、非时序、非平稳视觉火灾检测、FireNet、InceptionV1OnFire},
}
用于非时序实时火灾检测的紧凑型卷积神经网络架构的实验探索 (Samarth, Bhowmik, Breckon),IEEE 国际机器学习应用会议论文集,2019 年。
@InProceedings{samarth19fire,
author = {Samarth, G. and Bhowmik, N. and Breckon, T.P.},
title = {Experimental Exploration of Compact Convolutional Neural Network Architectures for Non-temporal Real-time Fire Detection},
booktitle = {Proc. International Conference on Machine Learning Applications},
pages = {653-658},
year = {2019},
month = {December},
publisher = {IEEE},
doi = {10.1109/ICMLA.2019.00119},
keywords = {火灾检测、CNN、深度学习实时、非时序、InceptionV3OnFire、InceptionV4OnFire},
}
此外,还必须遵守 LICENSE 中的条款。
致谢:
Atharva (Art) Deshmukh(杜伦大学,负责 [Dunnings/Breckon, 2018] 工作的 GitHub 项目及数据集整理)。
版本历史
ICIP-20182019/12/19常见问题
相似工具推荐
openclaw
OpenClaw 是一款专为个人打造的本地化 AI 助手,旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚,能够直接接入你日常使用的各类通讯渠道,包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息,OpenClaw 都能即时响应,甚至支持在 macOS、iOS 和 Android 设备上进行语音交互,并提供实时的画布渲染功能供你操控。 这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地,用户无需依赖云端服务即可享受快速、私密的智能辅助,真正实现了“你的数据,你做主”。其独特的技术亮点在于强大的网关架构,将控制平面与核心助手分离,确保跨平台通信的流畅性与扩展性。 OpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者,以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力(支持 macOS、Linux 及 Windows WSL2),即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你
stable-diffusion-webui
stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。
everything-claude-code
everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上
ComfyUI
ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。
gemini-cli
gemini-cli 是一款由谷歌推出的开源 AI 命令行工具,它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言,它提供了一条从输入提示词到获取模型响应的最短路径,无需切换窗口即可享受智能辅助。 这款工具主要解决了开发过程中频繁上下文切换的痛点,让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用,还是执行复杂的 Git 操作,gemini-cli 都能通过自然语言指令高效处理。 它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口,具备出色的逻辑推理能力;内置 Google 搜索、文件操作及 Shell 命令执行等实用工具;更独特的是,它支持 MCP(模型上下文协议),允许用户灵活扩展自定义集成,连接如图像生成等外部能力。此外,个人谷歌账号即可享受免费的额度支持,且项目基于 Apache 2.0 协议完全开源,是提升终端工作效率的理想助手。
markitdown
MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具,专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片(含 OCR)、音频(含语音转录)、HTML 乃至 YouTube 链接等多种格式的解析,能够精准提取文档中的标题、列表、表格和链接等关键结构信息。 在人工智能应用日益普及的今天,大语言模型(LLM)虽擅长处理文本,却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点,它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式,成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外,它还提供了 MCP(模型上下文协议)服务器,可无缝集成到 Claude Desktop 等 LLM 应用中。 这款工具特别适合开发者、数据科学家及 AI 研究人员使用,尤其是那些需要构建文档检索增强生成(RAG)系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性,但其核心优势在于为机器
