Skip to content

场景02:消防通道占用监测

当前阶段: 🔍 探索中 | 行业: 消防安全 | 关键词: 消防通道、占用监测、区域监测 | 返回消防场景 →


一、需求探索

1.1 痛点时刻

具体场景:

晚上8点,某商场3号消防通道被货物占用超过30分钟,监控室未及时发现。直到顾客投诉"消防通道被堵了",安保人员才赶到现场清理。

此时面临的问题:

  • 消防通道被占用30分钟,期间如果发生火灾,疏散通道不畅
  • 监控室有20个摄像头,安保人员无法实时盯着所有画面
  • 没有自动报警机制,依赖顾客投诉或巡查发现
  • 如果被消防部门检查发现,将面临罚款

业务背景:

  • 场所规模:大型商场/写字楼,消防通道10-30条
  • 占用情况:货物堆放、车辆停放、装修材料、垃圾堆积
  • 监控覆盖:每条消防通道配备1-2个摄像头
  • 管理难点:监控画面多,安保人员无法实时盯屏,容易遗漏

1.2 核心痛点

问题1:发现滞后

  • 消防通道被占用后,可能30分钟-1小时才发现
  • 没有自动报警机制,依赖人工巡查或顾客投诉
  • 夜间安保人员少,更容易遗漏

问题2:处置慢

  • 发现后需要人工通知相关部门清理
  • 不知道是谁占用的,责任不清
  • 清理不及时,影响消防安全

问题3:追溯难

  • 事后无法追溯占用时长、占用原因
  • 无法统计哪些区域经常被占用
  • 无法评估安保人员的响应速度

1.3 业务规则(行业标准)

《消防法》相关要求:

  • 不得占用、堵塞、封闭疏散通道、安全出口、消防车通道(第28条)
  • 占用、堵塞、封闭消防车通道的,由消防救援机构责令改正,处五千元以上五万元以下罚款(第60条)

《建筑设计防火规范》相关要求:

  • 疏散通道的净宽度不应小于1.4米
  • 疏散通道不应设置门槛、台阶,不应堆放物品

实际业务规则(基于行业调研):

  • 10分钟预警:消防通道占用 > 10分钟 → 推送预警给安保人员
  • 30分钟报警:消防通道占用 > 30分钟 → 推送报警给安保主管
  • 1小时紧急:消防通道占用 > 1小时 → 推送紧急通知给消防责任人
  • 夜间降低阈值:夜间(22:00-6:00)→ 5分钟预警(人员少,响应慢)

成本测算:

  • 占用成本:罚款5000-50000元 + 整改成本
  • 安全风险:消防通道被占用,影响疏散和救援
  • 声誉损失:被媒体曝光,影响商场声誉
  • 平衡点:宁可误报,不可漏报

二、方案设计

2.1 业务规则设计

规则1:占用判定规则

typescript
// 消防通道占用判定
interface PassageOccupancy {
  // 判定条件
  passageId: string;          // 通道ID
  occupancyDuration: number;  // 占用时长(分钟)
  currentTime: Date;          // 当前时间
  isNightTime: boolean;       // 是否夜间(22:00-6:00)

  // 判定结果
  status: 'NORMAL' | 'WARNING' | 'ALERT' | 'CRITICAL';
  alertLevel: 'INFO' | 'WARNING' | 'CRITICAL';
  occupancyType: 'GOODS' | 'VEHICLE' | 'CONSTRUCTION' | 'GARBAGE' | 'UNKNOWN';
}

// 判定逻辑
function checkPassageOccupancy(
  passage: FirePassage,
  currentTime: Date
): PassageOccupancy {
  const occupancyDuration = Math.floor(
    (currentTime.getTime() - passage.occupancyStartTime.getTime()) / (1000 * 60)
  );

  // 判断是否夜间
  const hour = currentTime.getHours();
  const isNightTime = hour >= 22 || hour < 6;

  // 夜间降低阈值
  const warningThreshold = isNightTime ? 5 : 10;
  const alertThreshold = isNightTime ? 15 : 30;
  const criticalThreshold = isNightTime ? 30 : 60;

  if (occupancyDuration >= criticalThreshold) {
    // 占用1小时 → 紧急
    return {
      status: 'CRITICAL',
      occupancyDuration,
      alertLevel: 'CRITICAL',
      action: '立即清理,通知消防责任人'
    };
  } else if (occupancyDuration >= alertThreshold) {
    // 占用30分钟 → 报警
    return {
      status: 'ALERT',
      occupancyDuration,
      alertLevel: 'CRITICAL',
      action: '立即清理,通知安保主管'
    };
  } else if (occupancyDuration >= warningThreshold) {
    // 占用10分钟 → 预警
    return {
      status: 'WARNING',
      occupancyDuration,
      alertLevel: 'WARNING',
      action: '安排人员清理'
    };
  }

  return { status: 'NORMAL', occupancyDuration };
}

规则2:自动提醒规则

typescript
// 自动提醒动作
interface AutoReminder {
  // 10分钟预警(夜间5分钟)
  warning: {
    condition: '消防通道占用 > 10分钟(夜间5分钟)';
    notifyTo: ['安保人员', '值班人员'];
    channel: ['系统消息', '手机APP'];
    message: '3号消防通道被占用10分钟,请及时清理';
    displayInfo: {
      passageLocation: '通道位置、楼层';
      occupancyType: '占用类型(货物/车辆/装修材料)';
      snapshot: '监控截图';
      nearbyStaff: '附近安保人员列表';
    };
  };

  // 30分钟报警(夜间15分钟)
  alert: {
    condition: '消防通道占用 > 30分钟(夜间15分钟)';
    notifyTo: ['安保人员', '安保主管', '物业经理'];
    channel: ['系统消息', '手机APP', '短信'];
    message: '3号消防通道被占用30分钟,请立即清理';
    priority: 'HIGH';
  };

  // 1小时紧急(夜间30分钟)
  critical: {
    condition: '消防通道占用 > 1小时(夜间30分钟)';
    notifyTo: ['安保人员', '安保主管', '物业经理', '消防责任人'];
    channel: ['系统消息', '手机APP', '短信', '电话'];
    message: '3号消防通道被占用1小时,请立即清理';
    priority: 'CRITICAL';
    autoActions: [
      '调取监控录像',
      '记录占用时长',
      '通知相关部门'
    ];
  };
}

规则3:处置闭环规则

typescript
// 处置流程
interface DisposalProcess {
  // 步骤1:安保人员确认(必须)
  step1_confirm: {
    action: '前往现场查看,确认占用情况';
    timeLimit: 5;  // 5分钟内到达
    recordRequired: true;  // 必须记录占用类型、占用原因
  };

  // 步骤2:清理占用(必须)
  step2_clear: {
    action: '清理占用物品或通知相关部门清理';
    timeLimit: 15;  // 15分钟内完成清理
    reportRequired: true;  // 必须上报清理结果
  };

  // 步骤3:结果记录(必须)
  step3_record: {
    mustRecord: [
      '占用时长',
      '占用类型',
      '占用原因',
      '清理措施',
      '清理时长',
      '责任人'
    ];
    autoArchive: true;  // 自动归档到消防台账
  };
}

2.2 技术方案

技术架构

监控摄像头 → AI视频分析 → 规则引擎 → 报警推送

          占用检测(目标识别)

          可视化大屏 + 移动端

核心技术点

1. AI视频分析

  • 目标识别:识别消防通道内的货物、车辆、人员
  • 占用判定:通道内有物体停留 > 阈值时间 → 判定为占用
  • 占用类型:识别占用物品类型(货物/车辆/装修材料/垃圾)

2. 占用检测逻辑

  • 实时分析:每30秒分析一次监控画面
  • 占用判定:通道内有物体 && 停留时间 > 10分钟 → 触发预警
  • 夜间特殊处理:夜间降低阈值(5分钟预警)

3. 规则引擎

  • 基于时间窗口的规则判断
  • 支持规则配置(预警/报警阈值可调整)
  • 支持时段配置(夜间降低阈值)

4. 提醒推送

  • 多通道推送:系统消息、手机APP、短信、电话
  • 分级推送:预警(APP)、报警(APP+短信)、紧急(APP+短信+电话)
  • 推送确认:重要提醒需要确认收到

5. 处置闭环

  • 安保人员确认:前往现场查看,记录占用情况
  • 清理占用:清理占用物品或通知相关部门
  • 结果记录:记录占用时长、清理措施、责任人

数据模型

typescript
// 消防通道信息
interface FirePassage {
  id: string;
  name: string;               // 通道名称
  location: string;           // 位置(楼层、区域)
  cameraId: string;           // 监控摄像头ID
  status: 'CLEAR' | 'OCCUPIED' | 'BLOCKED';  // 通道状态
  width: number;              // 通道宽度(米)
}

// 占用记录
interface OccupancyRecord {
  id: string;
  passageId: string;
  passageName: string;
  occupancyStartTime: Date;   // 占用开始时间
  occupancyEndTime: Date;     // 占用结束时间
  occupancyDuration: number;  // 占用时长(分钟)
  occupancyType: 'GOODS' | 'VEHICLE' | 'CONSTRUCTION' | 'GARBAGE' | 'UNKNOWN';
  snapshot: string;           // 监控截图

  // 提醒记录
  reminders: {
    sentAt: Date;
    type: 'WARNING' | 'ALERT' | 'CRITICAL';
    recipients: string[];
    confirmed: boolean;
  }[];

  // 处置记录
  disposal: {
    confirmedAt: Date;        // 确认时间
    confirmedBy: string;      // 确认人
    clearedAt: Date;          // 清理时间
    clearedBy: string;        // 清理人
    clearanceMethod: string;  // 清理方式
    remarks: string;          // 备注
  };
}

三、AI辅助开发方案

3.1 技术迁移分析

复用已有资产:矿山场景的"人员定位异常预警"规则

相似点:

  • 都是基于时间的异常判断
  • 都需要实时监测 + 自动报警
  • 都需要分级提醒 + 处置闭环

差异点:

维度人员定位异常消防通道占用
监测对象人员定位信号消防通道占用状态
判定条件信号消失 > 3分钟通道占用 > 10分钟
数据来源UWB定位系统AI视频分析
特殊规则夜间降低阈值

技术复用度:80%

  • 规则引擎逻辑:100%复用
  • 提醒推送逻辑:100%复用
  • 异常判断逻辑:80%复用(改为区域占用监测)
  • 新增:AI视频分析(20%新开发)

3.2 Cursor Skill设计

Skill名称: personnel-location-anomaly.md (复用并调整)

调整说明:

  • 将"人员定位信号"改为"消防通道占用状态"
  • 将"信号消失"改为"通道占用"
  • 将"3分钟"改为"10分钟"(夜间5分钟)
  • 新增"夜间降低阈值"规则
  • 新增"AI视频分析"逻辑

3.3 PROMPT模板

PROMPT 1:生成占用判断代码

你是一个业务逻辑开发专家。请根据以下业务规则,生成消防通道占用判断的代码。

## 业务场景
消防通道被占用超过一定时间需要自动报警,确保消防通道畅通。

## 业务规则
1. 占用判定:
   - 占用 > 10分钟(夜间5分钟) → 预警
   - 占用 > 30分钟(夜间15分钟) → 报警
   - 占用 > 1小时(夜间30分钟) → 紧急

2. 提醒推送:
   - 预警:推送给安保人员(手机APP)
   - 报警:推送给安保人员、安保主管(APP+短信)
   - 紧急:推送给安保人员、安保主管、物业经理、消防责任人(APP+短信+电话)

3. 夜间特殊处理:
   - 夜间(22:00-6:00)降低阈值
   - 5分钟预警、15分钟报警、30分钟紧急

## 数据模型
- FirePassage:消防通道信息(id, name, location, status)
- OccupancyRecord:占用记录(passageId, occupancyStartTime, occupancyDuration)

## 技术要求
- 使用TypeScript
- 实时监测(每30秒检查一次)
- 支持规则配置(预警/报警阈值可调整)
- 记录所有占用和处置过程

请生成完整的代码实现。

PROMPT 2:生成AI视频分析代码

你是一个业务逻辑开发专家。请根据以下业务规则,生成AI视频分析的代码。

## 业务场景
通过AI视频分析,实时监测消防通道是否被占用。

## 业务规则
1. 目标识别:
   - 识别消防通道内的货物、车辆、人员
   - 判断物体是否停留在通道内

2. 占用判定:
   - 通道内有物体 && 停留时间 > 10分钟 → 判定为占用
   - 识别占用类型(货物/车辆/装修材料/垃圾)

3. 实时分析:
   - 每30秒分析一次监控画面
   - 记录占用开始时间、占用类型、监控截图

## 技术要求
- 调用AI视频分析API(目标识别)
- 支持多路监控同时分析
- 记录所有分析结果和截图

请生成完整的代码实现。

3.4 开发周期预估

基于已有资产(人员定位异常预警):

  • 原型验证:2天

    • Day 1:复用personnel-location-anomaly规则,调整判定条件
    • Day 2:对接AI视频分析API,测试占用检测
  • 首版上线:7-10天

    • Day 3-4:完善占用判断逻辑,支持夜间降低阈值
    • Day 5-6:开发AI视频分析模块
    • Day 7-8:完善提醒推送逻辑,对接微信/短信
    • Day 9:测试处置闭环流程
    • Day 10:部署上线
  • 迭代优化:根据实际使用反馈调整阈值、优化AI识别准确率


四、开发资产

4.1 Cursor Skill

文件名: personnel-location-anomaly.md (复用并调整)

调整内容:

  • 监测对象:人员定位信号 → 消防通道占用状态
  • 判定条件:信号消失 > 3分钟 → 通道占用 > 10分钟
  • 数据来源:UWB定位系统 → AI视频分析
  • 新增:夜间降低阈值规则

4.2 技术迁移说明

可复用的已有资产:

  1. 矿山场景:人员定位异常预警规则

    • 复用:规则引擎框架、提醒推送逻辑、异常判断逻辑
    • 调整:监测对象(人员 → 区域)、判定条件(3分钟 → 10分钟)
    • 复用度:80%
  2. 新增部分:

    • AI视频分析模块(20%)
    • 夜间降低阈值规则
    • 占用类型识别

4.3 实施指南

步骤1:准备环境

bash
# 安装依赖
npm install

# 配置AI视频分析API
# 编辑 config/video-analysis-config.json

步骤2:使用Cursor Skill

1. 将 personnel-location-anomaly.md 保存到 .cursor/rules/
2. 在Cursor中告诉AI:
   "参考 personnel-location-anomaly.md 中的业务规则,
   实现消防通道占用监测功能,
   注意夜间需要降低阈值"
3. AI会基于规则生成代码

步骤3:调整配置

typescript
// config/occupancy-rules.ts
export const OCCUPANCY_CONFIG = {
  daytime: {
    warningMinutes: 10,        // 白天预警阈值
    alertMinutes: 30,          // 白天报警阈值
    criticalMinutes: 60,       // 白天紧急阈值
  },
  nighttime: {
    warningMinutes: 5,         // 夜间预警阈值
    alertMinutes: 15,          // 夜间报警阈值
    criticalMinutes: 30,       // 夜间紧急阈值
    startHour: 22,             // 夜间开始时间
    endHour: 6,                // 夜间结束时间
  },
  analysisInterval: 30,        // 分析间隔(秒)
};

步骤4:测试验证

bash
# 运行测试
npm test

# 模拟占用场景
npm run simulate:occupancy

五、下一步行动

如果您对这个场景感兴趣

  1. 快速验证:我们可以用2天时间,基于模拟数据做原型演示
  2. 技术对接:提供AI视频分析API文档,评估对接工作量
  3. 成本预估:根据监控数量、分析频率,给出详细报价

相关场景

相关资产


← 返回消防场景 | 联系合作 →

基于 AI 辅助开发,快速、灵活、可靠