fingercd/SafeCommunity-AI

GitHub: fingercd/SafeCommunity-AI

Moniter是一个多模态AI智能视频监控系统,通过目标检测、异常识别和大模型审查,实现主动视频分析与报警。

Stars: 6 | Forks: 0

# Moniter — 多模态AI智能视频监控系统 [![Python](https://img.shields.io/badge/Python-3.10%2B-blue)](https://www.python.org/) [![PyTorch](https://img.shields.io/badge/PyTorch-2.3%2B-EE4C2C?logo=pytorch)](https://pytorch.org/) [![Flask](https://img.shields.io/badge/Flask-2.3%2B-green?logo=flask)](https://flask.palletsprojects.com) [![License](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE) **YOLO检测 · ViT异常识别 · VLM语义审查** [中文介绍](README-CN.md)
## Moniter是什么? **Moniter**是一个多模态AI驱动的智能视频监控系统,它将 **YOLO目标检测**、**ViT视频异常识别**和**VLM视觉语言模型审查**这三级推理串联成一个统一的实时监控流水线。 与传统仅被动录像的系统不同,Moniter能够“理解”视频: 1. **感知层** — YOLOv8实时检测物体(人员、车辆、火、烟)。 2. **认知层** — VideoMAE v2 + MIL分析连续视频片段以识别异常行为。 3. **理解层** — Qwen-VL为异常事件生成语义描述(例如“打架”、“火灾”)。 目标用户:安防操作员、AI研究人员,以及任何需要自动化视频分析的人员。 ## ✨ 核心亮点 - 🎥 **多源视频** — 支持RTSP流和本地文件,通过Web UI动态管理。 - 🧠 **三级AI流水线** — 检测 → 异常识别 → 语义审查,逐级精细化。 - 🌐 **优雅的Web仪表盘** — 毛玻璃风格UI,包含MJPEG流、状态面板和ROI绘制。 - 📊 **灵活的规则引擎** — ROI入侵、滞留时间、违禁物品、车辆超时报警。 - 🚀 **一键启动** — `python launch.py` 即可启动后端并打开浏览器。 ## 🚀 快速开始 ### 系统要求 - Python >= 3.10 - CUDA >= 11.8(推荐使用GPU,显存 >= 12 GB) - Windows / Linux ### 安装 ``` git clone cd moniter conda create -n moniter python=3.10 conda activate moniter pip install -r yolo/requirements.txt pip install -r Vit/lab_anomaly/requirements.txt pip install -r vlm/requirements.txt pip install Flask ``` ### 准备权重文件 | 模型 | 默认路径 | 备注 | |-------|-------------|------| | YOLO | `yolo/logs/best_epoch_weights.pth` | 目标检测权重 | | ViT | `Vit/lab_dataset/derived/end2end_classifier/checkpoint_best.pt` | 异常检测检查点(准确率 **92.66%**,AUC **98.05%**) | | VLM | `vlm/outputs/merged/` | 微调后的Qwen-VL(可选) | 可通过环境变量覆盖:`YOLO_WEIGHTS`、`VIT_CHECKPOINT`、`VLM_MERGED`。 ### 启动 ``` python launch.py ``` 将自动打开 `http://127.0.0.1:5000`。 ## 🏗️ 系统架构 ``` flowchart TD A["Video Source
RTSP / Local"] --> B["OpenCV Capture"] B --> C["YOLO + ByteTrack"] C --> D["Rule Engine
ROI / Dwell / Vehicle"] D --> E{"ViT Anomaly"} E -->|Normal| F["Frame Cache"] E -->|Anomaly| G["VLM Review
Qwen-VL"] G --> F F --> H["Flask API"] H --> I["Web Dashboard"] H --> J["Alert Push"] ``` ### 流水线详情 | 层级 | 输入 | 模型 | 输出 | |-------|-------|-------|--------| | **L1 YOLO** | 帧 (640×640) | YOLOv8-L | 边界框,82类,置信度 | | **L2 ViT** | 16帧片段 (224×224) | VideoMAE v2-Base + MIL | 异常概率 + 标签 | | **L3 VLM** | 触发的片段帧 | Qwen-VL(基础或微调版) | JSON: `{"classification":"...", "reason":"..."}` | ## 📁 项目结构 ``` moniter/ ├── launch.py # One-click launcher ├── predict.py # CLI real-time entry ├── config.yaml # Unified config │ ├── yolo/ # Object detection ├── Vit/ # Anomaly detection (VideoMAE v2 + MIL) ├── vlm/ # Vision-language review (Qwen-VL) └── web/ # Flask dashboard ``` ## ⚙️ 配置说明 `config.yaml` 中的关键字段: | 节 | 字段 | 默认值 | 说明 | |---------|-------|---------|-------------| | `sources` | `uri`, `type` | — | 视频源(文件 / rtsp) | | `streams` | `rois` | `[]` | ROI多边形 | | `yolo` | `confidence` | `0.3` | 检测阈值 | | `vit` | `known_checkpoint` | — | ViT检查点路径 | | `vit` | `clip_len` | `16` | 每个片段的帧数 | | `system` | `alarm_cooldown_sec` | `30` | 报警冷却时间 | | `system` | `vit_anomaly_threshold` | `0.55` | ViT触发阈值 | Web控制台支持按流进行独立配置。 ## 📡 API 端点 | 方法 | 端点 | 描述 | |--------|----------|-------------| | `GET` | `/api/streams` | 列出所有流 + 模型状态 | | `POST` | `/api/streams` | 添加一个流 | | `DELETE` | `/api/streams/` | 移除一个流 | | `POST` | `/api/streams//start` | 启动流 | | `POST` | `/api/streams//stop` | 停止流 | | `PATCH` | `/api/streams/` | 更新配置(阈值、ROI、类别) | | `GET` | `/api/streams//status` | 获取状态 + ViT/VLM结果 | | `GET` | `/video/` | MJPEG 实时流 | | `GET` | `/api/streams//snapshot` | 最新帧 JPEG | ## ⚠️ 常见问题 1. **ViT 参数必须对齐** — `clip_len`、`window_stride` 和 `encoder_model` 在训练和推理时必须匹配。 2. **类别名称大小写敏感** — `config.yaml` 和 Web UI 中的类别名称必须与 `coco_classes_chinese.txt` 完全匹配。 3. **Web 与 CLI 模式** — `predict.py` 是本地窗口模式(无Flask);`launch.py` / `web/app.py` 是Web模式(加载VLM)。 4. **VLM "未加载"** — 检查 `vlm/outputs/merged/` 是否存在。使用 `VLM_MERGED` 环境变量覆盖路径。 ## 📄 许可证 [MIT 许可证](LICENSE)
**⭐ 如果这个项目对您有帮助,请给它一个Star! ⭐**
标签:AI安防系统, AI管道, ByteTrack视频跟踪, CUDA加速, Flask Web框架, MJPEG流显示, Python开发, PyTorch框架, Qwen-VL大模型审查, ROI入侵检测, VideoMAE异常识别, Web仪表板, YOLO目标检测, 停留时间警报, 凭据扫描, 多模态AI, 多源视频支持, 安全操作, 安防技术, 异常行为识别, 智能检测, 智能视频监控, 深度学习, 禁止物体识别, 自动化监控, 规则引擎报警, 视觉语言模型, 视频分析, 视频流处理, 计算机视觉, 语义描述生成, 车辆超时监控, 逆向工具