117 lines
3.4 KiB
Markdown
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内存用于模型推理
|
|
- 定期清理过期数据
|
|
- 监控系统资源使用情况
|