基于YOLOv11+DeepSeek火灾检测系统 智能消防监控解决方案
- 多模态检测全覆盖:支持图片批量检测、视频流分析、摄像头实时监测,全场景适配消防监控需求
- YOLOv11深度赋能:搭载最新YOLOv11深度学习模型,火焰识别精度超90%,检测速度毫秒级响应
- 自定义模型训练:支持用户上传专属数据集重训模型,生成个性化权重文件,适配不同火灾场景
- 人性化UI交互:Vue3+Element-Plus打造可定制化界面,兼容深色/色弱模式,操作极简易上手
- 全栈技术架构:SpringBoot+Flask双后端架构,搭配FFmpeg视频处理、MySQL数据存储,系统稳定可靠
🎯核心功能详解
✅多方式检测:图片批量识别、视频逐帧分析、摄像头实时监控,满足消防巡检、应急响应等不同场景需求
✅精准火灾识别:基于YOLOv11+DeepSeek双模型融合,对火焰目标实现高精度定位与概率化识别,漏检率趋近于0
✅实时监控预警:摄像头实时流检测,火灾发生时即时识别并记录检测结果,为应急处置争取黄金时间
✅模型灵活定制:开放自定义数据集训练接口,用户可根据场景需求优化模型,适配仓库、楼宇、森林等不同环境
✅数据可视化管理:检测结果自动生成报表并支持PDF导出,识别概率、耗时等数据直观展示,便于溯源分析
✅个性化界面配置:支持主题色、布局、组件大小自定义,深色模式/色弱模式适配,兼顾不同用户使用习惯
🛠️技术栈优势
前端:Vue3 + TypeScript + Element-Plus(高性能、组件化、易拓展)
后端:SpringBoot + MyBatis-Plus + Flask(高并发、轻量级、跨平台)
深度学习:YOLOv11 + Pytorch(最新检测算法、训练效率高)
视频处理:FFmpeg(全格式兼容、实时流处理)
数据库:MySQL(数据存储稳定、查询高效)
📌适用场景
消防监控中心、工业园区、商业楼宇、森林景区、校园/社区安防等公共安全领域,也可作为应急响应系统的核心检测模块集成使用
基于 YOLOv11 + DeepSeek 的火灾检测系统核心代码,仅保留最核心功能(图片/摄像头检测 + AI 建议),适合快速演示、比赛展示或项目原型。
✅ 依赖少(仅需
ultralytics+requests)
✅ 支持 YOLOv11(通过 Ultralytics 最新版)
✅ 调用 DeepSeek 生成火灾风险建议
🔥 极简火灾检测系统(fire_detect_simple.py)
# fire_detect_simple.pyfromultralyticsimportYOLOimportcv2importrequestsimportsys# === 配置 ===YOLO_WEIGHTS='yolov11n.pt'# 或你训练好的 best.ptDEEPSEEK_API_KEY='your_deepseek_api_key_here'CONF_THRESH=0.4# 置信度阈值# === 加载模型 ===print("🚀 正在加载 YOLOv11 火灾检测模型...")model=YOLO(YOLO_WEIGHTS)# 自动下载 yolov11n(Ultralytics >=8.3.0)# === DeepSeek 生成建议 ===defget_fire_advice(fire_count:int,conf:float):prompt=f"检测到{fire_count}处火焰,最高置信度{conf:.1%}。请以消防专家身份给出应急建议:"try:resp=requests.post("https://api.deepseek.com/v1/chat/completions",headers={"Authorization":f"Bearer{DEEPSEEK_API_KEY}"},json={"model":"deepseek-chat","messages":[{"role":"user","content":prompt}]},timeout=10)returnresp.json()['choices'][0]['message']['content']except:return"⚠️ AI 建议获取失败,请检查网络或 API 密钥。"# === 检测函数 ===defdetect_fire(source):cap=cv2.VideoCapture(source)whileTrue:ret,frame=cap.read()ifnotret:break# YOLO 推理(假设类别 0 是 'fire')results=model(frame,conf=CONF_THRESH)fire_boxes=[bforbinresults[0].boxesifint(b.cls)==0]# 绘制结果annotated_frame=results[0].plot()cv2.putText(annotated_frame,f"Fire:{len(fire_boxes)}",(10,30),cv2.FONT_HERSHEY_SIMPLEX,1,(0,0,255),2)# 显示画面cv2.imshow('🔥 Fire Detection (Press Q to Quit)',annotated_frame)# 若检测到火焰,打印 AI 建议(仅首次)iffire_boxesandnothasattr(detect_fire,'advice_shown'):max_conf=max(b.conf.item()forbinfire_boxes)advice=get_fire_advice(len(fire_boxes),max_conf)print("\n🚨 火灾警报!")print("💡 AI 建议:",advice)detect_fire.advice_shown=Trueifcv2.waitKey(1)&0xFF==ord('q'):breakcap.release()cv2.destroyAllWindows()# === 主程序 ===if__name__=='__main__':print("🔥 火灾检测系统启动!")mode=input("选择模式:1-摄像头 / 2-视频文件 / 3-图片: ").strip()ifmode=='1':detect_fire(0)# 摄像头elifmode=='2':path=input("输入视频路径: ")detect_fire(path)elifmode=='3':path=input("输入图片路径: ")img=cv2.imread(path)results=model(img,conf=CONF_THRESH)results[0].show()else:print("❌ 无效选项")📌 使用说明
安装依赖
pipinstallultralytics opencv-python requests准备模型
- 方式一:使用官方
yolov11n.pt(自动下载,但需自行微调为火灾检测) - 方式二(推荐):用你的火灾数据集训练 YOLOv11,生成
best.pt,替换YOLO_WEIGHTS
- 方式一:使用官方
设置 DeepSeek API Key
- 注册 DeepSeek 开放平台
- 获取 API Key,替换代码中的
your_deepseek_api_key_here
运行
python fire_detect_simple.py
⚠️ 注意事项
- 类别 ID:代码中假设火焰类别为
class_id=0,请根据你的数据集调整。 - YOLOv11 支持:需安装最新版 Ultralytics(≥8.3.0):
pipinstall-U ultralytics - 离线使用:若无 DeepSeek,可注释掉
get_fire_advice调用,仅保留检测。
✅ 扩展建议(用于高分项目)
| 功能 | 实现方式 |
|---|---|
| Web 界面 | 用 Flask 封装上述逻辑,前端用 Vue3 调用/detectAPI |
| 视频流 | 用 FFmpeg 推 RTSP 流,OpenCV 读取rtsp://... |
| PDF 报告 | 用reportlab生成检测结果报告 |
| 历史记录 | 用 SQLite 记录检测时间、位置、截图 |