基于YOLOv8与Streamlit的实时火灾检测系统
项目概述
本系统是一款基于YOLOv8深度学习模型和Streamlit框架的轻量级火灾检测应用,能够实时分析视频流,高精度识别火焰并触发警报。该系统适用于智能安防、工业监控、家庭安全等场景,具备低延迟、高鲁棒性和易部署的特点。
Fire-Detection
🚀 核心功能
✅ 实时火焰检测
- 采用YOLOv8目标检测算法,优化推理速度与检测精度,支持**30FPS+**的实时分析。
- 可适配多种输入源(摄像头、视频文件、RTSP流)。
✅ 交互式可视化界面(Streamlit)
- 提供用户友好的Web界面,支持实时视频流展示、检测框标注及置信度显示。
- 可调整检测阈值(Confidence Threshold)和IOU参数,灵活适应不同场景需求。
✅ 智能警报系统
- 检测到火焰时立即触发声光警报(支持本地蜂鸣器或云端通知)。
- 可选配短信/邮件报警功能(集成Twilio或SMTP协议)。
✅ 轻量化与易部署
- 依赖库精简,支持Docker一键部署,兼容Windows/Linux/macOS。
- 提供CPU/GPU双模式,适配边缘计算设备(如Jetson Nano)。
🧠 模型训练
1. 数据集
- 采用自定义火灾数据集,包含10,000+标注样本,覆盖室内外火灾、烟雾、火炬等场景。
- 数据增强策略:随机翻转、亮度调整、模糊处理,提升模型泛化能力。
2. 训练配置
- 模型架构:YOLOv8s(平衡速度与精度)。
- 训练参数:Epochs=100, Batch Size=16, Optimizer=AdamW, LR=0.001。
- 硬件环境:NVIDIA RTX 3090(训练时间约4小时)。
3. 评估指标
📊 性能曲线
- 精确率-召回率曲线(PR Curve):验证模型在不同阈值下的稳定性。
- F1分数曲线:综合衡量精确率与召回率,最优值达0.92。
📉 混淆矩阵
未归一化 | 归一化 |
---|---|
![Unnormalized Matrix] | ![Normalized Matrix] |
- 火焰类别的召回率(Recall)>90%,误检率(False Positive)低于5%。
🖼️ 验证结果示例
![Validation Samples]
- 测试集mAP@0.5达到89.3%,适应复杂光照和遮挡场景。
⚙️ 技术栈
- 深度学习框架:PyTorch, Ultralytics YOLOv8
- 前端交互:Streamlit, OpenCV(视频处理)
- 警报系统:PyAudio(声音报警), Requests(HTTP通知)
- 部署工具:Docker, ONNX Runtime(模型优化)
📁 项目结构
├── models/
│ ├── yolov8s_fire.pt # 预训练权重
│ └── onnx/ # 优化后的ONNX模型
├── datasets/
│ ├── train_images/ # 训练集
│ └── val_labels/ # 标注文件
├── app.py # Streamlit主程序
└── requirements.txt # 依赖清单
🎯 应用场景
- 工业安全:化工厂、仓库的实时火灾监控。
- 智慧家庭:集成智能家居系统,联动灭火装置。
- 公共区域:商场、地铁站的安防摄像头增强分析。
🔮 未来扩展
- 增加烟雾检测多任务模型。
- 支持多摄像头同步分析(分布式部署)。
- 开发移动端APP(TensorFlow Lite适配)。
📌 使用说明
- 克隆仓库并安装依赖:
pip install -r requirements.txt
- 运行Streamlit应用:
streamlit run app.py
- 浏览器访问
http://localhost:8501
即可启动检测!
通过结合YOLOv8的高效检测能力与Streamlit的低代码交互优势,本项目为火灾预防提供了开箱即用的解决方案,助力安全防护的智能化升级。
(注:文中部分图片链接需替换为实际项目截图)