返回作品

高校办公楼火灾监测预警与疏散辅助系统

创建于 2026 年 5 月 9 日

标签
  • Python
  • FastAPI
  • SQLAlchemy
  • Vue 3
  • Element Plus
  • YOLOv8
  • Tailwind CSS

项目介绍

高校办公楼人员密集、疏散路径单一,火灾发生时楼梯间等竖向交通空间是核心风险传播路径。这个项目把一份建筑火灾研究文档中的阶段数据、预警阈值和蔓延规律提炼成可运行的软件系统,用”建筑空间 + 监测指标 + 风险判断 + 疏散引导”的方式回答建筑学问题:起火层、相邻层、顶部层的风险如何传递,楼梯间何时由”可通行”转为”限制通行”,哪些空间仍可作为有效疏散区域。

系统以”高校行政办公楼 A 座”为建模对象,内置 6 层楼、9 个空间单元(办公室、会议室、设备间、东西楼梯间、起火办公室、前室/出口、主走道)和 50 个传感器探测点。参考数据中的 6 个火灾阶段(阴燃向明火过渡、初期增长、充分发展、温度梯度形成、稳定平台、稳态)与 6 个关键时间节点(75s、100s、300s、500s、700s、900s)被完整录入数据库,作为阶段分析、预警触发和疏散策略切换的依据。

项目架构

系统采用前后端分离架构。后端基于 FastAPI + SQLAlchemy 2 构建 REST API,默认连接 SQLite 开发库,生产环境可切换 MySQL(提供 schema.sql);前端使用 Vue 3 + Element Plus + Tailwind CSS,通过 Vite 构建并可直接打包进后端静态目录,实现”只启动后端即可访问”的轻量交付。

数据层围绕建筑对象建模:buildingsfloorsspacessensors 构成”建筑—楼层—空间—传感器”四级台账,rule_configs 存放阈值规则,reference_snapshots 保存六个时间节点的指标快照,monitor_recordsvision_detectionsalertsevacuation_suggestions 分别记录监测数据、视觉检测、告警事件与疏散建议。种子数据由 system-data.json + seed.py 在首次启动时自动初始化。

视觉检测模块以 Ultralytics YOLOv8 为推理引擎(模型 fire-smoke-yolov8-best.pt),通过 vision.py 封装模型加载与推理,检测结果归一化为火焰、烟雾、人员、出口受阻等类型,连同置信度、检测框坐标和关联空间一起写入数据库。依赖管理使用 uv,模型权重可由 scripts/download_model.py 脚本下载。

核心功能

  • 五维指标监测与分级预警:温度、能见度、CO、CO₂、RSET 五项指标按阈值自动分级。规则引擎对温度 ≥85℃、能见度 ≤5m、CO ≥0.00025、CO₂ ≥0.039 触发”紧急预警”,对温度 ≥120℃、能见度 ≤3m、CO ≥0.001、CO₂ ≥0.05 触发”危险预警”,生成带空间位置和触发原因的告警记录。
  • 火灾阶段联动分析:六个时间节点各保存一份完整快照,包含当前阶段、风险等级、起火楼层判读、四类指标核心值、逐层风险状态和空间平面风险标注,可在阶段分析页切换时间轴观察火势演化全过程。
  • 疏散辅助决策:每个时间节点给出推荐主路径与备用路径(含经过的空间序列)、东西楼梯间通行状态(畅通/限制通行及原因)、RSET 疏散窗口(最佳 ≤300s、上限 700s)以及处置动作建议。
  • YOLOv8 火焰烟雾检测:在实时监测页上传现场图片(JPG/PNG/WEBP),后端调用 YOLO 模型推理,返回识别类型、置信度、检测框并记录检测历史,支持按楼层和空间关联。
  • 台账管理与批量导入:建筑空间、传感器点位、阈值规则三类台账支持在线维护,也支持 CSV/XLSX 模板批量导入(表头兼容中英文别名),历史监测、视觉事件与告警记录可导出为 CSV/XLSX 报告。

功能截图

暂无运行截图。

快速上手

项目使用 uv 管理依赖,后端环境为 Python 3.11。进入 code/back 目录执行 uv sync 安装依赖,然后运行 uv run python scripts/download_model.py 下载 YOLO 模型权重;若模型未下载,前端模型列表会为空。

开发模式下先后端后前端:ALLOW_SQLITE_DEV=1 uv run server.py --host 127.0.0.1 --port 8000 启动 API(首次启动自动初始化种子数据),在 code/front 目录执行 npm installnpm run dev 启动前端(默认 http://127.0.0.1:5173)。默认账号 admin / admin123

给客户演示时使用根目录的 一键启动-Windows.bat:脚本自动检查 Python 与 uv、安装后端依赖、复用 front/dist 构建产物并启动服务,随后自动打开浏览器访问 http://127.0.0.1:8000,无需客户手动启动前后端。

总结

这个项目的价值在于没有停留在”有没有火”的简单判断上,而是把建筑空间特征、火灾阶段演化、风险阈值和疏散路径统一到一个系统中:楼梯间作为竖向交通空间被单独建模和重点监测,疏散建议随能见度、温度和气体浓度实时切换,RSET 参与疏散窗口判定。对建筑学课程设计或毕业设计来说,它既是一套可运行的演示系统,也是一份把论文数据落到软件界面的完整示例。

系统在检测与预警闭环上已经成形,后续可扩展的方向包括接入真实传感器数据流、补充建筑剖面烟气蔓延可视化,以及基于疏散仿真算法生成更精细的动态路径规划。