基于YOLOv12与MediaPipe的人体跌倒检测系统
程序概览
本系统采用计算机视觉技术,结合YOLOv12人体检测与MediaPipe姿态估计,实现实时跌倒监测。系统配备直观的数据看板,支持跌倒事件分析与追踪。
核心功能
• 实时检测:支持摄像头或视频文件的实时流处理
• 跌倒类型分类:可识别四种跌倒模式
- 踏空跌倒
- 滑倒
- 绊倒
- 踏绊跌倒
• 现代化PyQt5看板:含统计图表与历史记录的可视化界面
• 多人同步追踪:支持多目标检测与分析
• 高级姿态分析:通过肩部/髋部/足部关键点精确判定跌倒
• 灵敏度调节:可适应不同环境阈值设定
• 智能计数机制:基于目标追踪与冷却期避免重复计数
• 自动快照:跌倒事件触发图像存档功能
• 声音警报:检测到跌倒时播放警示音
• 命令行模式:支持无界面部署方案
环境要求
• Python 3.7-3.10(部分依赖库暂不支持3.11+)
• PyTorch
• OpenCV
• MediaPipe
• Ultralytics(YOLOv12)
• PyQt5
• Matplotlib
• NumPy
安装指南
- 仓库:
cd Human-Fall-Detection-Yolov12-Mediapipe

2. 安装依赖:
```bash
pip install -r requirements.txt
pip install PyQt5==5.15.10 PyQt5-Qt5==5.15.2 PyQt5-sip==12.13.0 matplotlib
- YOLOv12模型(首次运行自动下载,或手动放置于项目根目录)
使用说明
▸ 看板模式(推荐)
python fall_detection_system.py --mode dashboard
▸ 命令行模式
python fall_detection_system.py --mode cli --source 0
参数选项
• --mode:运行模式(dashboard/cli)
• --model:YOLOv12模型路径(默认yolov12n1.pt)
• --conf:检测置信度阈值(0-1)
• --source:视频源(0为摄像头,或视频文件路径)
• --fall-threshold:跌倒检测灵敏度(0-1)
• --angle-threshold:身体倾斜角度阈值(0-90°)
• --save-falls:保存跌倒触发帧
• --output-dir:快照存储目录
系统架构
- YOLOv12人体检测:定位视频帧中的目标人物
- MediaPipe姿态估计:提取人体骨骼关键点
- 跌倒判定算法:
✓ 身体与垂直面的夹角
✓ 高宽比变化(水平/垂直方向)
✓ 垂直位置突变检测
✓ 运动模式分析 - 目标追踪:跨帧身份保持
- PyQt5看板:实时监控与数据分析
分类标准
• 踏空跌倒:渐进式角度变化+中等速度
• 滑倒:剧烈角度变化+高速移动
• 绊倒:前倾动量+中度角度变化
• 踏绊跌倒:微小水平位移+显著垂直跌落
项目结构
fall-detection-system/
├── models/ # 核心检测模型
├── dashboard/ # PyQt5交互界面
├── utils/ # 工具函数
├── fall_snapshots/ # 跌倒快照存档
├── fall_detection_system.py # 主程序
└── requirements.txt # 依赖清单
近期优化
✓ 强化跌倒判定逻辑
✓ 新增防重复计数的冷却机制
✓ 环境自适应灵敏度调节
✓ 完善跌倒类型分类体系
✓ 关键点检测精度提升
✓ 摄像头异常处理优化
✓ 快照存储空间管理
✓ 界面升级至PyQt5框架
未来规划
• 邮件通知功能
• 移动端应用集成
• 多摄像头组网支持
• 基于运动模式的跌倒风险预测
• 云端远程监控方案
• AI驱动的跌倒风险预判