ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

基于 YOLOv8 的摔倒检测系统

基于 YOLOv8 的摔倒检测系统 基于 YOLOv8 的摔倒检测系统利用深度学习目标检测技术实现对人员摔倒行为的实时识别与预警保障老年人、独居者等弱势群体的安全。一、项目概述本项目基于Ultralytics YOLOv8目标检测框架构建了一套完整的摔倒检测系统。系统能够自动识别图像或视频中是否存在人员摔倒行为并通过直观的图形化界面GUI实时展示检测结果包括目标类别、置信度、边界框坐标等信息。应用场景养老院、医院等医疗机构的跌倒监护独居老人家庭安全监测公共场所如地铁站、商场的安全预警智能安防视频分析二、数据集介绍2.1 数据来源本项目的训练数据集来源于Roboflow Universe平台wizo 数据集采用CC BY 4.0开源许可协议。数据集经过 Roboflow 平台统一预处理和标注标注格式为YOLO v7 PyTorch格式与 YOLOv8 兼容。2.2 数据集规模划分图片数量说明训练集Train909 张用于模型参数学习验证集Valid101 张用于训练过程中的模型评估测试集Test51 张用于最终模型性能测试合计1061 张—2.3 识别类别本系统为二分类目标检测任务共识别2 个类别类别 ID英文名称中文名称说明0Fall Detected摔倒检测到人员处于摔倒/跌倒状态1NoFall Detected正常检测到人员处于正常站立/行走状态2.4 数据预处理与增强数据集在 Roboflow 平台上进行了以下预处理和增强操作预处理自动方向校正去除 EXIF 方向信息统一缩放到640×640像素拉伸方式数据增强50% 概率的水平翻转Horizontal Flip等概率的 90° 旋转无旋转 / 顺时针 / 逆时针三、模型训练3.1 模型架构采用YOLOv8nnano 版本作为基础模型该模型在精度与推理速度之间取得了良好的平衡非常适合实时检测场景。3.2 训练超参数参数值说明模型YOLOv8n轻量级目标检测模型训练轮数Epochs50最大训练轮数批次大小Batch Size4每批次处理的图片数量输入尺寸Image Size640×640模型输入分辨率优化器SGD随机梯度下降初始学习率0.01学习率起点动量Momentum0.937SGD 动量参数权重衰减0.0005正则化参数IOU 阈值0.7NMS 交并比阈值数据增强Mosaic、Flip、Rotate马赛克增强 翻转 旋转3.3 训练结果模型训练完成后最佳权重保存于models/best.pt。训练过程中生成了以下评估图表PR 曲线Precision-Recall Curve评估精确率与召回率的权衡F1 曲线综合评估模型性能P 曲线 / R 曲线分别展示精确率和召回率随置信度的变化混淆矩阵分析各类别的分类准确性四、系统功能4.1 技术栈技术版本用途Python≥ 3.8开发语言PyTorch1.9.0深度学习框架Ultralytics8.0.199YOLOv8 模型库OpenCV4.8.1.78图像处理与视频读取PyQt55.15.2图形用户界面NumPy / SciPy—科学计算4.2 核心功能图片检测打开单张图片进行摔倒检测并展示结果视频检测加载视频文件逐帧实时检测并播放摄像头实时检测调用本地摄像头实现实时摔倒监控批量图片检测选择文件夹自动检测其中所有图片结果保存将检测结果图片/视频保存到本地参数调节置信度阈值滑块默认 0.25IOU 阈值滑块默认 0.45标签显示开关检测结果展示目标类别与置信度目标边界框坐标xmin, ymin, xmax, ymax检测结果表格序号、文件路径、类别、置信度、坐标位置五、界面运行效果5.1 初始界面系统启动后呈现整洁的蓝白配色界面主要区域包括顶部标题栏显示基于YOLOv8的摔倒检测系统左侧显示区图片/视频/摄像头画面的展示区域初始状态显示提示文字请点击左侧按钮打开图片/视频/摄像头开始摔倒检测右侧参数面板检测参数设置置信度阈值和交并比IOU阈值的滑块调节以及标签显示复选框检测结果显示检测用时、目标数目、目标选择下拉框、类别、置信度和目标位置坐标操作按钮打开图片、打开文件夹、打开视频、打开摄像头底部表格检测结果与坐标信息表包含序号、文件路径、类别、置信度、坐标位置五列5.2 检测效果展示当打开一张包含摔倒人员的图片后系统自动完成检测并展示结果检测画面图片中摔倒人员被蓝色矩形框准确框选框上方标注类别名称 “Fall Detected” 和置信度 “0.85”检测结果面板用时0.047 秒极速推理目标数目1类型摔倒置信度84.81%目标位置xmin0, ymin0, xmax638, ymax640底部表格详细记录了检测目标的文件路径、类别摔倒、置信度84.81%和坐标位置 [0, 0, 638, 640]六、项目结构摔倒检测系统8_gui/ ├── MainProgram.py # 主程序入口GUI 界面逻辑 ├── Config.py # 全局配置模型路径、类别名称等 ├── detect_tools.py # 检测工具函数绘图、坐标转换等 ├── train.py # 模型训练脚本 ├── login_widget.py # 登录界面组件 ├── datasets/ # 数据集目录 │ ├── train/ # 训练集909张 │ ├── valid/ # 验证集101张 │ ├── test/ # 测试集51张 │ └── data.yaml # 数据集配置文件 ├── models/ # 模型权重 │ ├── best.pt # 最佳模型权重 │ └── exp35/ # 训练实验输出 ├── UIProgram/ # 界面程序 │ ├── UiMain.py # PyQt5 界面代码 │ ├── UiMain.ui # Qt Designer 界面文件 │ └── style.css # 界面样式表 ├── Font/ # 字体文件 ├── save_data/ # 检测结果保存目录 └── requirements.txt # 项目依赖七、快速开始7.1 环境安装# 克隆或下载项目后安装依赖pipinstall-rrequirements.txt核心依赖包括torch1.9.0 ultralytics8.0.199 opencv-python4.8.1.78 PyQt55.15.2 numpy scipy7.2 运行系统python MainProgram.py7.3 重新训练模型如需使用自定义数据集重新训练python train.py训练参数可在train.py或datasets/data.yaml中修改。八、总结本项目基于 YOLOv8 目标检测算法构建了一套功能完善的摔倒检测系统。系统具备以下特点高精度基于 1061 张标注图片训练能够准确区分摔倒和正常两种状态实时性单张图片推理仅需约 0.047 秒满足实时检测需求易用性提供友好的图形化界面支持图片、视频、摄像头等多种输入方式灵活性支持置信度和 IOU 阈值的实时调节适应不同场景需求可扩展性基于 YOLOv8 框架可方便地扩展更多检测类别或迁移到其他场景未来可进一步引入时序分析如结合连续帧判断摔倒动作的发生过程和报警机制检测到摔倒后自动发送通知使系统更加完善和实用。九、代码下载路径有训练代码和训练好的模型以及训练过程提供数据提供GUI界面代码项目完整文件下载请见演示与介绍视频的简介处给出➷➷➷https://www.bilibili.com/video/BV16JaS6sEtH/
返回列表