这是一个基于计算机视觉的人体跌倒检测与跟踪系统,可以实时检测视频中的人体跌倒行为,并跟踪人体运动轨迹。
项目主要包含以下几个核心模块:
-
人体检测模块
- 使用 YOLOv3 进行人体检测
- 支持 ONNX 模型加速
- 输出人体边界框和置信度
-
姿态估计模块
- 使用 AlphaPose 进行人体关键点检测
- 支持 ONNX 模型加速
- 输出人体骨架关键点
-
目标跟踪模块
- 使用 SORT 算法进行目标跟踪
- 基于卡尔曼滤波器的运动预测
- 支持多目标跟踪和ID保持
-
动作识别模块
- 使用 ST-GCN 模型进行动作分类
- 支持 ONNX 模型加速
- 支持跌倒、躺下等动作识别
- 基于时序骨架序列分析
-
视频输入处理
- 支持单视频文件处理
- 支持批量处理zip压缩包中的视频
- 支持实时摄像头输入
-
检测与跟踪流程
- 使用 YOLOv3 检测人体
- 使用 AlphaPose 提取骨架
- 使用 SORT 算法跟踪目标
- 使用 ST-GCN 识别动作
-
结果输出
- 生成处理后的视频文件
- 记录跌倒检测结果
- 可视化显示检测和跟踪效果
- Python 3.9+
- CUDA 支持(推荐)
- OpenCV
- PyTorch
- ONNX Runtime
- 其他依赖见 requirements.txt
- 克隆项目
git clone https://github.com/zzy7569/Human-Falling-Detect.git
cd Human-Falling-Detect- 程序包安装
# 1. 建立虚拟环境
conda create -n ar python==3.9
# 2. 安装依赖
pip install -r requirements.txt- 下载预训练模型 可以从百度网盘下载预训练模型:
链接: https://pan.baidu.com/s/1N0eMH_JqXqljgeszBRCQhA
提取码: 7fue
- 处理单个视频文件
python main.py -C video.mp4 --save_out output_directory- 处理zip压缩包中的多个视频
python main.py --zip_file videos.zip --save_out output_directory- 使用摄像头实时检测
python main.py -C 0 # 0 表示默认摄像头-C, --camera: 输入源(视频文件路径或摄像头ID)--zip_file: 包含多个视频的zip文件路径--detection_input_size: 检测模型的输入尺寸(默认416)--pose_input_size: 姿态估计模型的输入尺寸(默认224x160)--show_detected: 显示检测框--show_skeleton: 显示骨架--save_out: 输出目录--device: 运行设备(cpu/cuda)--use_onnx: 使用ONNX模型加速
- 处理后的视频文件保存在指定输出目录
- 检测结果记录在
fall_detection_results.txt文件中 - 结果格式:
时间戳 | 视频名称: 检测结果