kharismasekarningtyas/rule-based-climbing-detection

GitHub: kharismasekarningtyas/rule-based-climbing-detection

该项目是一个基于 YOLOv8 姿态估计与 Norfair 跟踪的规则化视频监控系统,用于自动检测禁区内的攀爬行为并输出告警与日志。

Stars: 0 | Forks: 0

# 基于规则的攀爬检测 # 用于禁区监控的基于规则的攀爬检测 这是一个基于计算机视觉的监控系统,使用 **YOLOv8 Pose Estimation**、**Norfair Multi-Object Tracking** 和 **基于规则的检测**(Rule-Based Detection)来检测禁区内的攀爬活动。 该代码库包含一个实习项目,实现了一个用于检测禁区内攀爬活动的可视化监控系统。该系统结合了人体姿态估计、多目标跟踪以及基于人体关键点的预定义规则,以识别监控视频中的潜在攀爬行为。 ## 功能特性 * 使用 **YOLOv8 Pose** 进行人体姿态估计 * 使用 **Norfair** 进行多人目标跟踪 * 使用选定的身体关键点进行基于规则的攀爬检测 * 可配置的禁区(Restricted Area, ROI) * 实时可视化 * 检测到攀爬活动时的声音警报 * 检测结果的 CSV 日志记录 * 生成带有标注的输出视频 ## 项目结构 ``` rule-based-climbing-detection/ │ ├── data/ │ └── climbing.mp4 │ ├── outputs/ │ ├── output_climbing.mp4 │ └── climbing_log.csv │ ├── main.py ├── requirements.txt └── README.md ``` ## 检测流水线 1. 读取输入的监控视频。 2. 使用 **YOLOv8 Pose** 检测人体姿态。 3. 使用 **Norfair** 跟踪每个检测到的人。 4. 从每个检测到的人体中提取身体关键点。 5. 检查预定义的身体关键点是否进入禁区(ROI)。 6. 对人的活动进行分类: * **OK** – 未检测到攀爬活动。 * **CLIMBING** – 选定的身体关键点与禁区相交。 * **POSSIBLE** – 在身体关键点不可用时,人体中心进入禁区。 7. 生成带有标注的输出视频,并将检测日志保存为 CSV 格式。 ## 环境要求 * Python 3.10 或 3.11 * OpenCV * Ultralytics * Norfair * NumPy * Shapely 安装所有依赖项: ``` pip install -r requirements.txt ``` ## 用法 1. 将输入视频放置在 `data/` 目录下。 2. 运行应用程序: ``` python climbing.py ``` ## 输出结果 系统会生成: * **带标注的视频**,包含: * 边界框(Bounding boxes) * 人员 ID * 身体关键点 * 禁区(ROI) * 检测状态 * **CSV 日志**,包含: * 时间戳 * 帧编号 * 人员 ID * 检测状态 * 身体关键点索引 * 关键点坐标 ## 技术栈 * Python * OpenCV * YOLOv8 Pose (Ultralytics) * Norfair * NumPy * Shapely ## 作者 **Kharisma Sekarningtyas** Internet Engineering Technology Vocational College, Universitas Gadjah Mada
标签:YOLOv8, 姿态估计, 目标跟踪, 行为识别, 视频监控, 计算机视觉, 逆向工具