基于YOLOv12与MediaPipe的人体跌倒检测系统

基于YOLOv12与MediaPipe的人体跌倒检测系统

程序概览

本系统采用计算机视觉技术,结合YOLOv12人体检测与MediaPipe姿态估计,实现实时跌倒监测。系统配备直观的数据看板,支持跌倒事件分析与追踪。
在这里插入图片描述

核心功能
• 实时检测:支持摄像头或视频文件的实时流处理
• 跌倒类型分类:可识别四种跌倒模式

  • 踏空跌倒
  • 滑倒
  • 绊倒
  • 踏绊跌倒
    • 现代化PyQt5看板:含统计图表与历史记录的可视化界面
    • 多人同步追踪:支持多目标检测与分析
    • 高级姿态分析:通过肩部/髋部/足部关键点精确判定跌倒
    • 灵敏度调节:可适应不同环境阈值设定
    • 智能计数机制:基于目标追踪与冷却期避免重复计数
    • 自动快照:跌倒事件触发图像存档功能
    • 声音警报:检测到跌倒时播放警示音
    • 命令行模式:支持无界面部署方案
    在这里插入图片描述

环境要求
• Python 3.7-3.10(部分依赖库暂不支持3.11+)
• PyTorch
• OpenCV
• MediaPipe
• Ultralytics(YOLOv12)
• PyQt5
• Matplotlib
• NumPy

安装指南

  1. 仓库:

cd Human-Fall-Detection-Yolov12-Mediapipe

![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/43faa7a764b64834acf986ca1ef75e4e.png)

2. 安装依赖:  
```bash
pip install -r requirements.txt
pip install PyQt5==5.15.10 PyQt5-Qt5==5.15.2 PyQt5-sip==12.13.0 matplotlib
  1. 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:快照存储目录

系统架构

  1. YOLOv12人体检测:定位视频帧中的目标人物
  2. MediaPipe姿态估计:提取人体骨骼关键点
  3. 跌倒判定算法:
    ✓ 身体与垂直面的夹角
    ✓ 高宽比变化(水平/垂直方向)
    ✓ 垂直位置突变检测
    ✓ 运动模式分析
  4. 目标追踪:跨帧身份保持
  5. PyQt5看板:实时监控与数据分析

分类标准
• 踏空跌倒:渐进式角度变化+中等速度
• 滑倒:剧烈角度变化+高速移动
• 绊倒:前倾动量+中度角度变化
• 踏绊跌倒:微小水平位移+显著垂直跌落

项目结构

fall-detection-system/
├── models/               # 核心检测模型
├── dashboard/            # PyQt5交互界面
├── utils/                # 工具函数
├── fall_snapshots/       # 跌倒快照存档
├── fall_detection_system.py # 主程序
└── requirements.txt      # 依赖清单

近期优化
✓ 强化跌倒判定逻辑
✓ 新增防重复计数的冷却机制
✓ 环境自适应灵敏度调节
✓ 完善跌倒类型分类体系
✓ 关键点检测精度提升
✓ 摄像头异常处理优化
✓ 快照存储空间管理
✓ 界面升级至PyQt5框架

未来规划
• 邮件通知功能
• 移动端应用集成
• 多摄像头组网支持
• 基于运动模式的跌倒风险预测
• 云端远程监控方案
• AI驱动的跌倒风险预判