# 监控视频分析系统 ## 项目简介 本项目是一个基于视觉语言模型的行为识别系统,用于识别和分析监控视频中的人类行为。系统包含视频采集、人脸识别、行为分析和Web展示等多个模块。 ## 更新日志 - 2025-02-13 更新代码结构,将功能模块和配置文件、工具模块分离 - 2025-01-23 更新代码结构 - 2025-01-15 将生成行为分析报告功能改为后台进行,不阻塞其他路由使用,API从siliconflow改为deepseek - 2025-01-14 修复了时间轴事件在筛选后显示不全的问题,更新了时间轴颜色配置,优化了动作类别 - 2025-01-12 Initial commit ### 后端模块 (app/) - `main.py`: FastAPI Web应用主程序 - `models.py`: 数据模型和业务逻辑 - `config.py`: 系统配置文件 ### 功能模块 (function/) 1. **视频采集模块** - `rtsp2video.py`: RTSP视频流采集和录制 - `video2image.py`: 视频关键帧提取 2. **人脸分析模块** - `face.py`: 人脸检测和识别 - `face-emb.py`: 人脸特征提取 - `pose.py`: 人体姿态检测 3. **行为分析模块** - `qwen.py`: 基于Qwen2-VL-7B模型的视频内容分析 - `info.json`: 行为和场景类别定义 ### 前端界面 (frontend/) - `web.html`: 主界面文件 - `cls.js`: 行为类别及颜色配置 ### 数据存储 (files/) - `recordings/`: 视频录制目录 - `images/`: 图片存储目录 - `crop/`: 人体裁剪图片目录 - `data/`: 人脸特征数据目录 ## 主要功能 ### 1. 视频采集 - 支持多路RTSP视频流采集 - 定时录制视频片段 - SFTP自动上传备份 ### 2. 人脸识别 - 实时人脸检测 - 人脸特征提取和匹配 - 身份识别和记录 ### 3. 行为分析 - 人体姿态检测 - 行为识别和分类 - 场景理解 - 异常行为检测 ### 4. Web接口 - 摄像头数据查询 - 分析报告生成 - 历史数据下载 ## 部署说明 ### 服务器配置 - 后端API: https://dev.obscura.work/web - 前端页面: https://beta.obscura.work/web/web.html - 服务器: 222.186.10.253 - 端口: 6005 ### Redis配置 - 服务器: 222.186.10.253 - 数据库映射: - 摄像头数据: 210、211 - 人脸注册数据: 212 - 分析报告: 213 ### 部署步骤 1. 确保配置文件中的各项参数正确设置 2. 启动Redis服务 3. 使用启动脚本运行所有服务: ```bash chmod +x start.sh stop.sh # 首次运行时赋予执行权限 ./start.sh # 启动所有服务 ./stop.sh # 停止所有服务 ``` 或者手动依次启动各个模块: - `python app/function/rtsp2video.py` - `python app/function/video2image.py` - `python app/function/pose.py` - `python app/function/face.py` - `python app/function/qwen.py` 4. 启动web程序: `python app/app/main.py` ### 服务管理 - 启动脚本 `start.sh` 会自动: - 创建日志目录 - 检查必要文件是否存在 - 按顺序启动所有服务 - 监控服务启动状态 - 所有日志保存在 `logs/` 目录下 - 停止脚本 `stop.sh` 会: - 按顺序停止所有Python进程 - 检查进程是否成功停止 - 显示任何未能正常停止的进程 ## 注意事项 - 所有目录都已通过 `.gitkeep` 文件保持在版本控制中 - 各目录中的实际数据文件已通过 `.gitignore` 配置忽略 - 确保系统有足够的GPU内存用于模型推理 - 定期清理过期数据 - 监控系统资源使用情况