Tiger AI Platform 烟火告警与人员聚集告警功能汇总导读本文汇总平台检测告警能力——规则引擎如何挂在目标检测结果之上、烟火 / 人员聚集两条内置规则、与 YOLO 等检测模型的配合、摄像头弹窗与视频中央叠加实践以及管理页配置项说明。文中配图位请按说明截取平台页面放入docs/images/alert/后替换占位图。文章目录Tiger AI Platform 烟火告警与人员聚集告警功能汇总一、功能概览二、框架与任务模型告警依赖什么2.1 分层关系2.2 推荐检测模型对照2.3 规则类型对比三、内置规则与默认阈值种子3.1 烟火告警 fire-smoke3.2 人员聚集告警 crowd-gathering3.3 叠加 vs 事件务必区分四、规则配置项详解管理实践4.1 触发条件字段说明4.2 中央叠加样式五、端到端实践流程5.1 摄像头实时检测5.2 视频检测5.3 事件管理六、数据模型与 API6.1 表结构要点6.2 API 一览6.3 权限与菜单七、架构示意八、调优与常见问题九、相关文档一、功能概览告警不是独立视觉模型而是对每帧或每次检测结果detections的后处理匹配类别 / 人数 → 连续帧防抖 → 冷却 → 写事件 / 弹窗 / 画面叠加。能力说明烟火告警fire-smoke画面出现 fire / smoke / flame 等类别即条件成立高级别人员聚集告警crowd-gathering人员类目标数量达到阈值中级别检测告警页/ai/alert规则列表、事件确认/删除、管理员配置阈值与叠加样式摄像头实时检测勾选「启用告警」→ 每帧评估 →ElNotification 画布中央大图标视频检测勾选「启用告警」→ 输出视频烧录中央叠加统计叠加帧数等图 1侧栏「视觉识别 → 检测告警」入口二、框架与任务模型告警依赖什么2.1 分层关系┌─────────────────────────────────────────┐ │ 告警规则引擎alert_engine │ ← 本模块 │ class_presence / count_threshold │ │ 连续帧 冷却 叠加样式 │ └──────────────────▲──────────────────────┘ │ detections[{className, confidence, bbox}] ┌──────────────────┴──────────────────────┐ │ 目标检测推理图片 / 视频 / 摄像头 │ │ library: ultralytics / rfdetr / transformers │ │ task: object-detection │ └─────────────────────────────────────────┘层级本项目选型说明检测框架Ultralytics YOLO主、RF-DETR、Transformers 检测产出框与类别名告警引擎自研backend/services/alert_engine.py纯规则无额外神经网络叠加绘制OpenCV PIL中文视频服务端烧录摄像头前端 Canvas2.2 推荐检测模型对照告警规则建议模型种子library / task为何烟火烟雾探测fire-smoke-detectionultralytics / object-detection输出 fire/smoke 等类别HFyolov26-fire-detection人员聚集YOLO26n / YOLO26s等通用检测ultralytics / object-detection需检出person烟火专用模型通常没有person实践要点同一摄像头会话只能选一个检测模型。要同时验证两条规则需分别换模型测或使用同时含烟火类与 person 的自定义权重平台默认种子未提供合二为一模型。2.3 规则类型对比规则类型rule_type判定逻辑内置实例class_presence任一检测框类别模糊匹配classes且置信度 ≥ 阈值烟火告警count_threshold人员类配置名 内置别名数量 ≥min_count人员聚集告警类别匹配不区分大小写支持互相包含如smoke可匹配smoke-dense。人员别名内置person/people/human/pedestrian/行人/人/人体再叠加配置中的class_names。三、内置规则与默认阈值种子后端启动时seed_alert_rules()幂等写入已存在规则只补齐缺失配置键不覆盖管理员已改字段。3.1 烟火告警fire-smoke项默认值级别high类型class_presence目标类别fire,smoke,flame最低置信度0.35连续帧2冷却30秒标题模板疑似烟火检测到 {classes}叠加红色面板FIRE / DANGEROUS / ALERTpriority0优先于聚集3.2 人员聚集告警crowd-gathering项默认值级别medium类型count_threshold统计类别person 等别名列表人数阈值事件/摄像头叠加4视频叠加阈值3可低于事件阈值便于预览更早出现黄框最低置信度0.25连续帧2冷却60秒标题模板人员聚集当前 {count} 人阈值 {minCount}叠加黄色面板CROWD ALERT「注意安全 / 防止拥挤踩踏」priority103.3 叠加 vs 事件务必区分中央叠加画面大图标告警事件 / 弹窗连续帧不要求需 ≥consecutive_frames冷却不要求冷却期内同source_key不重复记事件聚集人数视频用video_min_count摄像头评估叠加跟条件态事件用min_count始终min_count多规则同时满足取priority 数值更小的一条叠加烟火优先各规则可独立触发事件图 2检测告警页「规则」表烟火 人员聚集含级别、状态、配置入口四、规则配置项详解管理实践在检测告警页对规则点配置需ai:alert:edit可调触发条件、文案与叠加样式。4.1 触发条件字段说明字段适用含义与实践建议目标 / 统计类别烟火 / 聚集须与检测模型输出的className对齐烟火示例fire,smoke,flame最低置信度两者过滤低分框烟火建议 0.300.45聚集 0.200.35人数阈值聚集达到后才可能写事件 / 弹窗再叠加连续帧与冷却视频叠加阈值聚集仅影响视频输出画面叠加可低于人数阈值连续帧数两者防单帧抖动误报叠加显示不受此限冷却(秒)两者抑制同来源刷屏生产建议烟火 2060s、聚集 30120s模板占位符{classes}{count}{minCount}{name}{maxConfidence}等。4.2 中央叠加样式可配置启用、填充/边框/文字色、主副标题行、面板宽高比、透明度、警示三角、显示优先级。配置对话框内带样式预览。图 3规则配置对话框触发条件说明区 叠加样式与预览五、端到端实践流程5.1 摄像头实时检测勾选「启用告警」→ 开始检测 → 每帧 POST /api/ai/model/{id}/detect → POST /api/alerts/evaluatepersistsourceKeycamera-live → 满足连续帧冷却 → 写 AlertEvent 右上角通知 → 返回 overlay → Canvas 中央大图标 → 停止 → POST /api/alerts/reset-runtime清连续帧状态烟火实测步骤模型管理拉取烟雾探测fire-smoke-detection权重。打开摄像头实时检测选该模型勾选「启用告警」。用含火焰/烟雾的画面或测试图连续满足约 2 帧后应弹窗并出现红色中央叠加。在检测告警页事件列表中确认 / 删除。聚集实测步骤选YOLO26n/s或其它含 person 的通用检测模型。勾选「启用告警」画面人数 ≥ 4 且过连续帧/冷却后弹窗黄色叠加。若只想早看叠加、少记事件在规则配置中把video_min_count/min_count分开调整摄像头事件看min_count。*图 4摄像头页「启用告警」勾选位置图 5烟火触发时右上角通知 画面红色中央叠加图 6人员聚集黄色中央叠加与识别框5.2 视频检测上传视频 → 勾选「启用告警」→ 开始 → POST /api/ai/model/{id}/detect-videoalertEnabled1 → 工作线程加载启用中的 AlertRule → 每帧检测 → 按 video 模式算叠加并烧入输出 → 内存 evaluate一般不落库→ 统计 alertTriggered 等 → 进度轮询 → 下载结果视频可看 alertOverlayFrames / maxPersonPerFrame支持告警叠加的视频管线库ultralytics、rfdetr、transformers。图 7视频检测页「启用告警」与开始检测图 8输出视频中烧录的中央告警面板烟火红或聚集黄5.3 事件管理操作说明列表分页可按状态、规则过滤确认未确认 → 已确认ack删除需ai:alert:remove详情可查看 payload检测摘要等图 9检测告警页「事件」列表标题、级别、来源、确认状态六、数据模型与 API6.1 表结构要点alert_rulerule_key、name、rule_type、config_json阈值模板overlay、severity、status。alert_event关联规则快照字段、source_typecamera/image/video、source_key、model_id、payload_json、status0 未确认 / 1 已确认。6.2 API 一览前缀/api/alertsJWT 权限。方法路径权限说明GET/rulesai:alert:list规则列表GET/rules/:idai:alert:query规则详情PUT/rules/:idai:alert:edit更新规则名称、级别、状态、configGET/eventsai:alert:list事件分页PUT/events/:id/ackai:alert:edit确认DELETE/events/:idai:alert:remove删除POST/evaluateai:alert:list评估一帧{detections, sourceKey, sourceType, modelId, persist}→{triggered, overlay}POST/reset-runtimeai:alert:list清连续帧/冷却运行时状态视频侧POST /api/ai/model/:id/detect-video表单字段alertEnabled。6.3 权限与菜单权限用途ai:alert:list菜单与列表、评估ai:alert:query规则详情ai:alert:edit确认事件、配置规则ai:alert:remove删除事件菜单路径/ai/alert组件ai/alert/index。检测本身仍需模型相关权限如ai:model:query。七、架构示意告警子系统inference / YOLO 等检测工作台persisttriggeredcameravideo摄像头视频图片可选detectionsevaluate_rulesactive_overlay_stylealert_eventalert_rule前端通知Canvas 叠加烧入输出视频代码位置职责backend/models/alert.pyORMbackend/services/alert_engine.py规则评估、叠加解析、运行时 streak/cooldownbackend/routes/alert.pyRESTbackend/inference.py_apply_alert_center_overlay、视频帧告警backend/seed.pyseed_alert_rules、菜单、烟火/YOLO 模型种子frontend/src/views/ai/alert/index.vue规则与事件 UIfrontend/src/views/ai/camera/index.vue启用告警 evaluatefrontend/src/views/ai/video/index.vuealertEnabledbackend/tests/test_alert_engine.py引擎单测八、调优与常见问题现象可能原因处理烟火从不触发用了通用 COCO 模型无 fire/smoke 类换fire-smoke-detection聚集从不触发用了烟火专用模型无 person换 YOLO26 等画面有叠加但无事件叠加不看冷却/连续帧或未过min_count属预期查事件阈值与冷却事件刷屏cooldown_sec过小或为 0调高冷却视频无叠加未勾选启用告警 / 库不支持 / 人数未达video_min_count检查表单与规则配置中文叠加乱码旧实现用 cv2.putText当前用 PIL 系统字体保持后端环境有可用中文字体九、相关文档文档说明detection-alerts.md模块速查API / 快速上手本文框架与模型配合、规则与实践、配图占位文档与当前种子默认值聚集人数 4、视频叠加 3、连续帧 2 等及管理端可配置叠加样式同步若库中规则已被管理员修改以数据库alert_rule.config_json为准。