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

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


一个使用计算机视觉技术的实时跌倒检测系统,采用YOLOv12进行人体检测,MediaPipe进行姿态估计。该系统具有直观的仪表盘,用于监控和分析跌倒事件。

功能特点

  • 实时检测:实时处理来自网络摄像头或视频文件的视频流
  • 跌倒类型分类:区分四种跌倒类型:绊倒、滑倒、跌倒和绊跌
  • 现代化PyQt5仪表盘:具有统计信息、图表和历史记录跟踪的用户友好界面
  • 多人检测:可同时跟踪和分析多个人员
  • 高级姿态分析:监测关键身体点(肩膀、臀部、脚部)以准确评估跌倒
  • 可调节灵敏度:为不同环境微调检测阈值
  • 智能跌倒计数:通过人员跟踪和冷却时间防止重复计数
  • 自动跌倒快照:检测到跌倒时捕获并存储图像
  • 声音警报:检测到跌倒时发出音频通知
  • 命令行模式:还支持无头命令行模式以进行部署

系统要求

  • Python 3.7-3.10(Python 3.11+可能与某些依赖项存在兼容性问题)
  • PyTorch
  • OpenCV
  • MediaPipe
  • Ultralytics (YOLOv12)
  • PyQt5
  • Matplotlib
  • NumPy

安装说明

  1. 下载源码:

  2. 安装依赖项:

    复制代码
    pip install -r requirements.txt
  3. 安装PyQt5(如果requirements中未包含):

    复制代码
    pip install PyQt5==5.15.10 PyQt5-Qt5==5.15.2 PyQt5-sip==12.13.0 matplotlib
  4. 下载YOLOv12模型(首次运行时自动下载,或手动放置在项目根目录)

使用方法

仪表盘模式(推荐)

复制代码
python fall_detection_system.py --mode dashboard

命令行模式

复制代码
python fall_detection_system.py --mode cli --source 0

选项参数

  • --mode:应用程序模式(dashboardcli
  • --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/
│   └── fall_detector.py        # 核心跌倒检测模型
├── dashboard/
│   └── dashboard_app.py        # PyQt5仪表盘UI应用程序
├── utils/
│   └── utils.py                # 工具函数
├── fall_snapshots/             # 跌倒图像目录
├── fall_detection_system.py    # 主应用程序脚本
├── README.md                   # 项目文档
└── requirements.txt            # 项目依赖

最近改进

  • 增强了跌倒检测算法,采用更严格的标准
  • 添加了冷却时间以防止重复跌倒计数
  • 改进了针对不同环境的灵敏度控制
  • 添加了全面的跌倒类型分类
  • 修复了关键点检测以获得更准确的姿态分析
  • 改进了摄像头访问和处理的错误处理
  • 优化了快照保存以减少磁盘使用
  • 从Tkinter迁移到PyQt5以获得更现代的界面
相关推荐
Coding茶水间27 分钟前
基于深度学习的水果检测系统演示与介绍(YOLOv12/v11/v8/v5模型+Pyqt5界面+训练代码+数据集)
图像处理·人工智能·深度学习·yolo·目标检测·机器学习·计算机视觉
夏天是冰红茶2 小时前
YOLO目标检测模型如何对接Apipost平台
yolo
q_30238195562 小时前
告别“笨重”检测!VA-YOLO算法让疲劳驾驶识别更轻更快更准
算法·yolo
AI街潜水的八角3 小时前
基于YOLOv12摔倒检测系统1:摔倒检测数据集说明(含下载链接)
yolo
YANQ6625 小时前
13.长视频和短视频的目标追踪(yolo_insightface模型)
yolo
前网易架构师-高司机9 小时前
标注好的胃病胃炎胃溃疡数据集,支持yolo,coco json, pascal voc xml格式的标注
yolo·数据集·医学·胃病·胃炎
AI街潜水的八角9 小时前
摔倒检测和识别3:基于深度学习YOLOv12神经网络实现摔倒检测和识别(含训练代码、数据集和GUI交互界面)
深度学习·神经网络·yolo
智驱力人工智能10 小时前
高速公路无人机车流密度监测 构建动态交通新维度 基于YOLOv8的无人机车辆检测算法 边缘计算无人机交通监测设备
人工智能·安全·yolo·目标检测·视觉检测·无人机·边缘计算
Katecat9966310 小时前
基于YOLOv8-Slimneck-WFU模型的苹果目标检测实现
人工智能·yolo·目标检测
ZZY_dl19 小时前
训练数据集(三):真实场景下采集的课堂行为目标检测数据集,可直接用于YOLO各版本训练
人工智能·yolo·目标检测