# aiWatchdog-main **Repository Path**: wangzhibo369/ai-watchdog-main ## Basic Information - **Project Name**: aiWatchdog-main - **Description**: 本项目是一个基于多模态视觉模型的智能视频监控预警系统。系统能够实时分析监控视频画面,自动检测异常行为并生成预警信息。通过结合视频处理、异常检测和实时预警推送等技术,为安防监控提供智能化解决方案。 同时支持自定义的提示词,可以覆盖不同场景的异常情况 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 5 - **Forks**: 4 - **Created**: 2025-04-06 - **Last Updated**: 2026-03-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README [English](readme_en.md) | 中文 # 智能视频监控预警系统 ## 项目概述 本项目是一个基于多模态视觉模型的智能视频监控预警系统。系统能够实时分析监控视频画面,自动检测异常行为并生成预警信息。通过结合视频处理、异常检测和实时预警推送等技术,为安防监控提供智能化解决方案。 同时支持自定义的提示词,可以覆盖不同场景的异常情况。 ## 系统流程 ### 1. 视频处理流程 ```mermaid graph LR A[视频输入源] --> B[视频处理器] B -->|视频帧| C[帧缓冲区] C -->|批量帧| D[多模态分析器] D -->|分析| E[内容描述生成] E -->|描述文本| F[异常行为检测] F -->|检测结果| G{异常判断} ``` ### 2. 预警服务流程 ```mermaid graph TB G{异常判断} -->|是| H[预警服务] G -->|否| I[历史记录存储] H -->|WebSocket| J[客户端推送] H -->|触发| K[异常视频保存] H -->|触发| L[异常截图保存] I -->|定期| M[历史内容总结] ``` ### 3. RAG系统流程(可选) ```mermaid graph TB E[内容描述生成] -->|文本向量化| V[向量数据库] H[预警服务] -->|预警信息| V M[历史总结] -->|总结文本| V X[用户查询] -->|向量化| Y[相似度检索] Y -->|结果| Z[智能问答] ``` ## 主要功能 1. **实时视频分析** - 支持本地视频文件和RTSP视频流 - 自动分析视频内容并生成场景描述 2. **异常行为检测** - 智能识别可疑行为和异常情况 - 实时生成预警信息 3. **实时预警推送** - 通过WebSocket推送预警信息 - 支持视频流实时推送 4. **异常记录存档** - 自动保存异常视频片段 - 记录详细的异常描述 ## 使用说明 ### 1. 环境配置 ```bash # 创建虚拟环境 python -m venv venv # 激活虚拟环境 # Windows系统 venv\Scripts\activate # 安装必要的Python库 pip install -r requirements.txt ``` 配置说明: 1. 修改`config.py`中的参数,包括: - 视频源配置:可以使用本地视频文件或RTSP视频流 - API配置:设置通义千问和语言模型的API地址和API_KEY - 视频处理参数:根据需要调整分析间隔、缓冲时长等 2. 提示词配置: - 在`prompt.py`中根据实际监控场景修改提示词 - 可以针对不同的监控对象(人、宠物、车辆等)调整关注点 ### 2. 运行系统 ```bash # 确保在虚拟环境中运行 # Windows系统 venv\Scripts\activate python app.py # 使用本地视频文件 python video_server.py --video_source "./uploads/xxx.mp4" # 或使用RTSP视频流 python video_server.py --video_source "rtsp://xxx.xxx.xxx.xxx/xxx" # 可选参数 # --video_interval 1800 # 视频分段时长(秒) # --analysis_interval 10 # 分析间隔(秒) # --buffer_duration 11 # 滑窗分析时长 # --host 127.0.0.1 # 服务器主机地址 # --port 8000 # 服务器端口 ``` 启动后,可以通过浏览器访问 http://127.0.0.1:8000 查看Web界面。 ### 3. WebSocket推送服务访问 ``` ws://127.0.0.1:8000/ws/video # 视频流WebSocket ws://127.0.0.1:8000/ws/alert # 预警信息WebSocket ``` ## 推送到Git仓库 ```bash # 初始化Git仓库 git init # 添加远程仓库 git remote add origin https://gitee.com/wangzhibo369/ai-watchdog-main.git # 添加所有核心代码文件 git add . # 提交更改 git commit -m "Initial commit" # 推送到远程仓库 git push -u origin master ``` ## 项目结构 ``` ├── app.py # Flask Web应用入口 ├── video_server.py # 视频服务器核心代码 ├── config.py # 配置文件 ├── multi_modal_analyzer.py # 多模态分析器 ├── prompt.py # 提示词模板 ├── utility.py # 工具函数 ├── requirements.txt # 依赖库列表 ├── templates/ # HTML模板 │ ├── index.html # 首页模板 │ └── results.html # 结果页模板 ├── static/ # 静态资源 ├── uploads/ # 上传的视频文件 └── video_warning/ # 异常视频片段存储 ``` ## 核心模块说明 1. **视频服务器 (video_server.py)** - 负责视频流的获取、处理和分发 - 管理WebSocket连接和消息推送 - 处理视频帧的缓冲和分析调度 2. **多模态分析器 (multi_modal_analyzer.py)** - 集成视觉模型进行视频内容分析 - 生成视频内容的文本描述 - 检测异常行为并触发预警 3. **Web应用 (app.py)** - 提供用户界面和交互功能 - 处理视频上传和分析请求 - 展示分析结果和预警信息 ### 4. 输出文件 - 异常视频片段:`video_warning/`目录 - 视频内容描述:`video_histroy_info.txt` - 系统日志:`code.log` ## RAG知识库配置(可选) 如需启用RAG本地知识库功能,需要: 1. 安装向量数据库(如Milvus) 2. 配置数据库连接 3. 配置数据库插入api等 3. 修改系统配置,启用RAG模式 4. 测试utils.py中的insert_txt插入代码 启用后,视频内容描述将存储在向量数据库中,支持智能问答功能。 注意:本开源版本仅包含智能监控报警的核心功能,RAG知识库和大模型api需要自行配置。