基于YOLOv9的课堂行为检测系统
项目概述
本项目是一个基于YOLOv9深度学习模型的课堂行为检测系统,旨在通过计算机视觉技术自动识别和监测课堂中学生的各种行为状态,帮助教师更好地了解课堂教学效果。
项目结构
课堂行为检测/
├── data/
│ ├── images/ # 训练和验证图像
│ │ ├── train/ # 训练集图像
│ │ └── val/ # 验证集图像
│ ├── labels/ # YOLO格式的标签文件
│ │ ├── train/ # 训练集标签
│ │ └── val/ # 验证集标签
│ └── data.yaml # 数据集配置文件
├── models/ # 保存训练好的模型
│ ├── yolov8/ # YOLOv8模型
│ └── yolov9/ # YOLOv9模型
├── runs/ # 训练过程输出
│ ├── train/ # YOLOv8训练结果
│ └── train_yolov9/ # YOLOv9训练结果
├── src/ # 源代码
│ ├── train.py # YOLOv8训练脚本
│ ├── train_yolov9.py# YOLOv9训练脚本
│ └── predict.py # 预测脚本
└── results/ # 预测结果保存目录
数据集结构
数据集分为三个部分:
- 训练集(train):位于 train/images 目录
- 验证集(val):位于 valid/images 目录
- 测试集(test):位于 test/images 目录
行为类别
数据集包含12种学生课堂行为标注:
nc: 12
names: ['Using_phone', 'bend', 'book', 'bow_head', 'hand-raising', 'phone', 'raise_head', 'reading', 'sleep', 'turn_head', 'upright', 'writing']
- Using_phone(使用手机):学生在课堂上使用手机的行为
- bend(弯腰):学生弯腰的姿势
- book(看书):学生在看书本的状态
- bow_head(低头):学生低头的姿势
- hand-raising(举手):学生举手提问或回答问题的动作
- phone(手机):手机设备的存在
- raise_head(抬头):学生抬头的姿势
- reading(阅读):学生在阅读的状态
- sleep(睡觉):学生在课堂上睡觉的状态
- turn_head(转头):学生转头看其他方向的动作
- upright(端正):学生坐姿端正的状态
- writing(写字):学生在写字或做笔记的状态
行为分类特点
这些行为可以大致分为几个类别:
积极行为
- reading(阅读)
- writing(写字)
- upright(端正)
- hand-raising(举手)
- book(看书)
消极行为
- Using_phone(使用手机)
- phone(手机)
- sleep(睡觉)
姿态行为
- bend(弯腰)
- bow_head(低头)
- raise_head(抬头)
- turn_head(转头)
数据集来源
数据集托管在Roboflow平台上,项目名称为"student-behaviour-detection-neazg",由"mywork-lkwz4"工作空间维护。完整数据集可以通过以下URL访问: https://download.csdn.net/download/qq_42492056/90628780
模型性能