181623428a
feat(aiot): 告警冷却时间调整 + 截图本地保留 + 中文路径修复
...
- 离岗检测冷却时间: 300s → 600s(10分钟)
- 入侵检测冷却时间: 120s → 300s(5分钟)
- 入侵告警级别改为高(alarm_level=3)
- COS 不可用时保留本地截图文件,不再上报后删除
- 修复 cv2.imwrite 中文路径失败,改用 imencode + write_bytes
- 配置订阅在 LOCAL 模式下跳过 Redis 连接
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-11 09:57:02 +08:00
3065bb948e
chore: 注释掉人群聚集检测算法
...
- 注释 CrowdDetectionAlgorithm 类
- 注释 AlgorithmManager 中的 crowd_detection 相关代码
- 保留代码以便后续需要时启用
当前仅保留2个算法:leave_post、intrusion
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-02-05 15:16:47 +08:00
e4605e8702
fix: AlgorithmManager处理type=full配置更新时全量重载
...
之前_config_update_worker只处理type=roi和type=bind,
收到type=full或type=camera时静默忽略,导致全量推送不生效。
现在对未识别的type统一执行reload_all_algorithms()。
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-02-05 09:59:48 +08:00
98595402c6
fix: 修复10个关键bug提升系统稳定性和性能
...
1. YOLO11输出解析错误: 移除不存在的objectness行,正确使用class_scores.max()
2. CPU NMS逻辑错误: keep_mask同时标记保留和抑制框导致NMS失效,改用独立suppressed集合
3. 坐标映射缺失: _build_tracks中scale_info未使用,添加revert_boxes还原到ROI裁剪空间
4. batch=1限制: 恢复真正的动态batch推理(1~8),BatchPreprocessor支持多图stack
5. 帧率控制缺失: _read_frame添加time.monotonic()间隔控制,按target_fps跳帧
6. 拉流推理耦合: 新增独立推理线程(InferenceWorker),生产者-消费者模式解耦
7. 攒批形同虚设: 添加50ms攒批窗口+max_batch阈值,替代>=1立即处理
8. LeavePost双重等待: LEAVING确认后直接触发告警,不再进入OFF_DUTY二次等待
9. register_algorithm每帧调用: 添加_registered_keys缓存,O(1)快速路径跳过
10. GPU context线程安全: TensorRT infer()内部加锁,防止多线程CUDA context竞争
附带修复:
- reset_algorithm中未定义algorithm_type变量(NameError)
- update_roi_params中循环变量key覆盖外层key
- AlertInfo缺少bind_id字段(TypeError)
- _logger.log_alert在标准logger上不存在(AttributeError)
- AlarmStateMachine死锁(Lock改为RLock)
- ROICropper.create_mask坐标解析错误
- 更新测试用例适配新API
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-02-04 16:47:26 +08:00
fa0304aa47
feat: 重构数据库schema分离空间与业务配置 - 新增algorithm_registry和roi_algo_bind表 - roi_configs简化为纯空间配置 - 新增AlgorithmInfo/ROIAlgoBind数据模型
2026-02-03 14:26:52 +08:00
0a1d61c1e2
fix: 修复 TensorRT bindings 问题
...
- tensorrt_engine.py 添加 pycuda 支持
- CUDA 上下文和流管理
- _is_in_working_hours 支持字符串格式
2026-02-02 14:00:21 +08:00
f90ff60f6c
feat: 添加离岗时长记录
...
- alert_records 添加 duration_minutes 字段
- AlgorithmManager 输出 duration_minutes
- AlertRecord 添加 duration_minutes 字段
2026-01-30 17:26:12 +08:00
4632ae74f3
fix: 修复运行错误
...
- algorithms.py 添加 threading/redis/logger 导入
- ResultReporter 添加 report_heartbeat() 和 close() 方法
2026-01-30 15:15:09 +08:00
101b26fc95
feat: 实现配置热更新机制
...
数据库扩展:
- roi_configs 新增算法参数字段(working_hours, confirm_on_duty_sec等)
- 新增 config_update_log 表记录配置变更日志
Redis缓存:
- ROI/摄像头配置缓存到 Redis(TTL 1小时)
- sync_all_to_redis() 批量同步配置
- notify_config_change() 发布配置变更通知
热更新:
- AlgorithmManager 订阅 Redis config_update 频道
- load_from_redis() 从 Redis 加载算法参数
- reload_algorithm() 热更新单个算法
- reload_all_algorithms() 重新加载所有算法
配置模型:
- ROIInfo 添加算法参数字段
2026-01-30 13:51:58 +08:00
56820622c6
fix: 统一算法参数
...
- confirm_seconds 默认值改为 5 秒
- 同步 default_params 中的默认值为 5
2026-01-30 13:27:28 +08:00
c4baf2fd1f
fix: 重构算法逻辑
...
LeavePostAlgorithm:
- 重构状态机:WAITING ON_DUTY LEAVING OFF_DUTY
- 移除 INIT 状态,增加 LEAVING 确认期防抖动
- 添加目标类型过滤 (target_class)
- 统一使用 datetime
IntrusionAlgorithm:
- 修复冷却逻辑 Bug:只在告警后重置
- 添加确认机制:持续检测 N 秒才触发告警
- 添加目标类型过滤 (target_class)
- 二次告警时间改为 2 分钟 (120秒)
AlgorithmManager:
- 更新默认参数
- 统一参数命名
2026-01-30 13:23:22 +08:00
6733344b11
初始化边缘推理服务
2026-01-29 18:33:12 +08:00