7ba73247afa45cda57fca2a07ebbd81089c87168
监控视频分析系统
项目简介
本项目是一个基于视觉语言模型的行为识别系统,用于识别和分析监控视频中的人类行为。系统包含视频采集、人脸识别、行为分析和Web展示等多个模块。
更新日志
- 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/)
-
视频采集模块
rtsp2video.py: RTSP视频流采集和录制video2image.py: 视频关键帧提取
-
人脸分析模块
face.py: 人脸检测和识别face-emb.py: 人脸特征提取pose.py: 人体姿态检测
-
行为分析模块
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
部署步骤
-
确保配置文件中的各项参数正确设置
-
启动Redis服务
-
使用启动脚本运行所有服务:
chmod +x start.sh stop.sh # 首次运行时赋予执行权限 ./start.sh # 启动所有服务 ./stop.sh # 停止所有服务或者手动依次启动各个模块:
python app/function/rtsp2video.pypython app/function/video2image.pypython app/function/pose.pypython app/function/face.pypython app/function/qwen.py
-
启动web程序:
python app/app/main.py
服务管理
-
启动脚本
start.sh会自动:- 创建日志目录
- 检查必要文件是否存在
- 按顺序启动所有服务
- 监控服务启动状态
- 所有日志保存在
logs/目录下
-
停止脚本
stop.sh会:- 按顺序停止所有Python进程
- 检查进程是否成功停止
- 显示任何未能正常停止的进程
注意事项
- 所有目录都已通过
.gitkeep文件保持在版本控制中 - 各目录中的实际数据文件已通过
.gitignore配置忽略 - 确保系统有足够的GPU内存用于模型推理
- 定期清理过期数据
- 监控系统资源使用情况
Description
Languages
HTML
50.4%
Python
46.8%
JavaScript
1.7%
Shell
1.1%