5b2440c467ea23993367d1a07d0df53c98d09128
重构目标: - 更清晰的状态机设计 - 滑动窗口平滑检测结果 - 更准确的告警判断逻辑 核心改进: 1. 状态机优化(6个状态 → 7个状态) - INIT: 初始化 - CONFIRMING_ON_DUTY: 上岗确认中 - ON_DUTY: 在岗 - CONFIRMING_OFF_DUTY: 离岗确认中 - OFF_DUTY_COUNTDOWN: 离岗倒计时 - ALARMED: 已告警 - NON_WORK_TIME: 非工作时间 2. 滑动窗口机制 - 10秒滑动窗口,存储检测历史 - 计算命中率(person_count / total_frames) - 上岗条件:命中率 ≥ 70%(允许30%漏检) - 离岗条件:命中率 = 0(窗口内完全没人) 3. 参数优化 - confirm_on_duty_sec: 上岗确认(默认10秒) - confirm_off_duty_sec: 离岗确认(默认30秒) - confirm_return_sec: 回岗确认(默认10秒) - leave_countdown_sec: 离岗倒计时(默认300秒) - 向后兼容:confirm_leave_sec → confirm_off_duty_sec 4. 状态监控增强 - get_state() 返回详细状态信息 - 包含倒计时剩余时间、检测命中率等 5. 日志分级 - INFO: 关键状态转换(确认上岗、确认离岗) - DEBUG: 次要状态转换(进入确认状态) - WARNING: 告警触发 技术细节: - 使用deque实现O(1)滑动窗口更新 - 兼容旧参数名(confirm_leave_sec) - 回岗自动发送resolve事件 - 非工作时间自动清理状态 影响范围: - 告警判断更准确(抗漏检干扰) - 状态转换更合理(细化确认流程) - 调试更友好(详细状态信息) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Description
边缘推理层
Languages
Python
100%