基于 YOLO11 的学生课堂行为检测:从数据集准备到云上训练实践
1. 业务场景与需求分析
在智慧教育领域,利用计算机视觉技术自动分析学生课堂行为,已成为提升教学质量、优化教学互动的重要手段。传统的课堂观察依赖人工记录,不仅耗时费力,且难以量化分析。通过目标检测模型,可以实时识别学生是否在听课、举手、阅读、写字、讨论,甚至是睡觉或使用手机,从而为教师提供客观的教学反馈数据。
本文以“学生课堂行为检测”为场景,详细阐述如何基于 YOLO11 模型,从数据集构建、标注管理、训练配置到模型评估,完成一套可迁移至云上环境的工程化实践流程。YOLO11 作为最新的轻量级目标检测框架,在保持高精度的同时,显著降低了推理延迟,非常适合部署在教室边缘设备或云服务上。
2. 数据集说明(来源:数据集说明表)
本实践使用的数据集来源于“学生课堂行为检测数据集5.99”,项目名称为 xueshengketangxingwei599。该数据集聚焦于真实课堂监控场景,包含从多个教室环境中采集的学生行为画面。
- 数据规模:当前已整理出 100 张代表性图片,并生成了对应的 Label Studio 导入 JSON 文件和标注界面配置,适用于快速启动标注和模型训练演示。
- 标注类别:数据集涵盖了 12 种典型课堂行为,包括:
normal(正常)、sleep(睡觉)、Using_phone(使用手机)、bend(弯腰)、bow_head(低头)、hand-raising(举手)、reading(阅读)、turn_head(转头)、upright(端坐)、writing(写字)、discuss(讨论)、stand(站立)。 - 数据形式:原始素材以图片形式存储,同时提供了一段由这些图片生成的轮播视频,可用于项目展示或数据集预览。
- 适用任务:该数据集适用于目标检测任务,特别是多类别、小目标(如单个学生的手部动作)的识别场景。

3. 数据集准备与标注管理
3.1 数据清洗与筛选
在开始训练前,需要对原始数据进行质量检查。课堂场景中常见的问题包括:
- 光照不均:教室不同区域亮度差异大,可能导致模型对暗部学生行为漏检。
- 遮挡问题:前后排学生之间、书本与手部之间可能存在严重遮挡。
- 视角多样性:摄像头安装位置不同(正面、侧面、俯视),需要确保数据集覆盖多种视角。
建议剔除模糊、重复或标注争议较大的图片,保留 100 张高质量样本作为初始训练集。
3.2 使用 Label Studio 进行标注
Label Studio 是一个开源的数据标注工具,支持图像分类、目标检测、语义分割等多种任务。本数据集已预先配置好 Label Studio 导入格式,开发者可以直接导入 JSON 文件并开始标注。

在标注过程中,需重点关注以下难点:
- 相似行为区分:
bend(弯腰)和bow_head(低头)在视觉上容易混淆,需要制定严格的标注规则(如弯腰指上半身倾斜超过45度,低头仅指头部下垂)。 - 群体行为检测:
discuss(讨论)通常涉及多个学生,标注时需用单个框框住整个讨论小组,还是分别框选每个学生?建议统一为“以人为单位”,当多人面对面且伴有手势时,为该组内每个学生标注discuss标签。 - 小目标标注:
Using_phone和hand-raising的手部区域在远距离画面中可能只有几十个像素,需要放大图片后精确绘制边界框。
3.3 云上存储与版本管理建议
当数据集规模增长到数千甚至数万张图片时,本地存储和管理将变得低效。建议将数据集迁移至云对象存储服务(如阿里云 OSS),并建立以下目录结构:
oss://your-bucket/classroom-behavior/
├── raw/ # 原始图片
├── annotations/ # 标注文件(COCO/YOLO格式)
├── datasets/ # 训练集、验证集、测试集划分
│ ├── train/
│ ├── val/
│ └── test/
├── configs/ # 训练配置文件
└── models/ # 模型权重和日志
使用云存储的优势包括:
- 弹性扩展:按需付费,无需提前规划磁盘空间。
- 版本控制:通过 OSS 的版本管理功能,可以回溯数据集的历史版本。
- 多端共享:团队成员可以基于同一份数据源进行协作标注和训练。
4. 基于 YOLO11 的训练任务设计
4.1 数据格式转换
YOLO11 要求标注文件为 TXT 格式,每行代表一个目标:class_id x_center y_center width height(坐标均为归一化值)。Label Studio 导出的 JSON 格式需要转换为 YOLO 格式。可以使用 label-studio-converter 工具或自定义脚本完成转换。
4.2 训练配置示例
以下是一个适用于本数据集的 YOLO11 训练配置文件(classroom.yaml):
# 数据集路径
path: /path/to/classroom-behavior # 数据集根目录
train: datasets/train/images # 训练集图片路径
val: datasets/val/images # 验证集图片路径
test: datasets/test/images # 测试集图片路径(可选)
# 类别信息
nc: 12 # 类别数量
names: ['normal', 'sleep', 'Using_phone', 'bend', 'bow_head', 'hand-raising',
'reading', 'turn_head', 'upright', 'writing', 'discuss', 'stand']
训练命令示例:
yolo train model=yolo11n.pt data=classroom.yaml epochs=100 imgsz=640 batch=16 device=0
关键参数说明:
model:选择 YOLO11n(nano)作为基础模型,适合边缘设备部署;如果追求更高精度,可替换为yolo11s.pt或yolo11m.pt。imgsz:输入图片尺寸设为 640x640,平衡精度与速度。epochs:初始训练 100 轮,后续根据验证集损失曲线决定是否提前停止。batch:根据 GPU 显存大小调整,建议 16 或 32。

4.3 数据增强策略
课堂场景中,学生行为存在大量类内差异(如不同角度的举手),建议开启以下数据增强:
# YOLO11 数据增强参数(可在训练命令中覆盖)
hsv_h: 0.015 # 色调增强
hsv_s: 0.7 # 饱和度增强
hsv_v: 0.4 # 明度增强
degrees: 10.0 # 旋转角度(±10度)
translate: 0.1 # 平移(10%)
scale: 0.5 # 缩放(0.5~1.5倍)
mosaic: 1.0 # 马赛克增强(开启)
mixup: 0.1 # 混合增强(10%概率)
5. 模型评估与复核
5.1 评估指标
训练完成后,YOLO11 会自动输出验证集上的 mAP(平均精度均值)。对于本数据集,建议重点关注以下指标:
- mAP@0.5:整体检测精度,目标值应 >0.8。
- mAP@0.5:0.95:在更严格 IOU 阈值下的精度,反映定位准确性。
- 各类别 AP:检查
Using_phone、hand-raising等小目标类别的 AP 是否明显偏低。
5.2 人工复核
自动评估无法完全替代人工检查。建议对验证集和测试集进行逐图复核,重点关注:
- 漏检:模型是否遗漏了某些学生或行为?
- 误检:是否将
bend误判为bow_head? - 边界框质量:框是否过大或过小?

如果发现模型在特定类别上表现不佳,可考虑:
- 增加该类别样本:从原始视频中补充更多帧。
- 调整损失权重:在 YOLO11 的配置中增加小目标检测头的权重。
- 使用更复杂的模型:从
yolo11n升级到yolo11m或yolo11l。
6. 工程化落地注意点
6.1 推理服务封装
训练好的模型需要封装为推理服务。建议使用 ONNX Runtime 或 TensorRT 进行加速,并部署在容器化环境中(如 Docker + Kubernetes)。推理 API 设计如下:
# 伪代码示例
from ultralytics import YOLO
model = YOLO("best.pt")
def predict(image_path: str) -> list:
results = model(image_path)
detections = []
for r in results:
for box in r.boxes:
detections.append({
"class": model.names[int(box.cls)],
"confidence": float(box.conf),
"bbox": box.xyxy.tolist()
})
return detections
6.2 性能优化建议
- 批量推理:对于教室监控视频流,建议每 5-10 秒抽取一帧进行检测,而非逐帧处理。
- 模型量化:将 FP16 模型量化为 INT8,推理速度可提升 2-3 倍,精度损失通常 <1%。
- 边缘部署:如果需要在教室本地设备(如 Jetson Nano)上运行,建议使用 TensorRT 导出引擎文件。
6.3 数据闭环
生产环境中的模型需要持续迭代。建议建立数据闭环:
- 模型在线上产生预测结果。
- 人工对低置信度或错误结果进行修正。
- 将修正后的数据加入训练集。
- 定期重新训练模型。
7. 总结
本文从业务场景出发,详细介绍了基于 YOLO11 的学生课堂行为检测实践流程,涵盖数据集准备、标注管理、训练配置、模型评估和工程化部署建议。核心要点如下:
- 数据质量决定模型上限:课堂场景中的遮挡、光照和视角问题需要重点关注,标注规范必须清晰。
- YOLO11 兼顾精度与效率:作为轻量级模型,YOLO11 适合在云上和边缘设备间灵活迁移。
- 云上实践是趋势:将数据集、训练任务和模型权重托管在云服务上,可以显著提升团队协作效率和资源利用率。
本实践流程可迁移至其他视觉检测场景,如工业缺陷检测、智慧零售客流分析等,只需替换相应的数据集和类别定义即可。
8. 素材配图建议
以下图片素材均来自本数据集,建议在文章中按以下方式引用:
数据集样本展示:


标注流程示例:


模型验证结果:


训练配置界面:


以上配图仅用于说明数据集来源、标注界面和训练流程,具体检测结果以实际模型输出为准。