基于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
模型性能