Files
2025-02-13 02:18:27 +00:00

117 lines
3.4 KiB
Markdown

# 监控视频分析系统
## 项目简介
本项目是一个基于视觉语言模型的行为识别系统,用于识别和分析监控视频中的人类行为。系统包含视频采集、人脸识别、行为分析和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内存用于模型推理
- 定期清理过期数据
- 监控系统资源使用情况