Add requirements
基于YOLOv8姿态估计的智能课堂行为分析系统,自动识别学生专注状态并生成可视化报告。
输入视频 → YOLOv8-pose → 关键点提取 → 行为分析 → 状态追踪 → 可视化输出 ↓ ByteTrack跟踪器 → 学生ID管理 ↓ 标注视频 & CSV报告
技术栈:
# 1. 克隆项目 git clone https://github.com/mzniu/classroom_attention.git cd classroom——attention # 2. 创建conda环境 conda create -n classroom_attention python=3.9 -y conda activate classroom_attention # 3. 安装依赖 pip install -r requirements.txt # 4. 如果没有下载本地模型,项目首次运行会自动下载YOLO模型 (~50MB)
GPU用户额外安装:
# CUDA 12.6版本 pip install torch torchvision --index-url https://download.pytorch.org/whl/cu126
# 基础检测(生成CSV报告) python ca_v2.py classroom_video.mp4 # 保存标注视频(推荐) python ca_v2.py classroom_video.mp4 --save-video # 调整敏感度(阈值越低越严格) python ca_v2.py classroom_video.mp4 --threshold 40 --save-video
--threshold
--skip-frames
--save-video
--output
--max-frames
# 场景1:快速测试前1000帧 python ca_v2.py /path/to/video.mp4 --save-video --max-frames 1000 # 场景2:严格模式,检测所有细微行为 python ca_v2.py video.mp4 --threshold 30 --skip-frames 1 --save-video # 场景3:处理长视频,只显示边框不显示文字 python ca_v2.py video.mp4 --save-video --no-labels --threshold 60 # 场景4:CPU模式(无GPU) python ca_v2.py video.mp4 --device cpu --save-video
attention_report.csv
student_id,time_sec,time_str,frame,score,reason,bbox 12,15.67,0:00:15,783,25,长时间低头(3.2s);发呆(4.1s),(125,340,189,456) 7,15.67,0:00:15,783,35,闭眼(2.4s),(234, 298, 267, 389)
============================================================ 课堂专注度检测报告 v2.0 ============================================================ 【学生ID: 12】 不专注事件次数: 5 总不专注时长: 87.3秒 不专注时间段: 1. 0:00:15 ~ 0:01:23 (持续 68.0秒) 主因: 长时间低头(3.2s) 2. 0:02:15 ~ 0:02:34 (持续 19.3秒) 主因: 发呆(4.1s) ============================================================ 总计不专注学生数: 8人 ============================================================
# 在 ca_v2.py 的Config类中修改 # 长时间低头: 从3秒改为2秒更敏感 HEAD_DOWN_DURATION = 2.0 # 闭眼检测: 从2秒改为1.5秒 EYE_CLOSED_DURATION = 1.5 # 发呆检测: 从4秒改为5秒更宽松 STILLNESS_DURATION = 5.0 # 专注度阈值: 越低越严格 ATTENTION_SCORE_THRESHOLD = 40 # <50分判定为不专注
--max-frames 500
RuntimeError: CUDA out of memory
解决: 降低批处理量或处理分辨率
python ca_v2.py video.mp4 --skip-frames 3 # 跳更多帧
VideoWriter无法创建文件
解决:
-o "C:/path/to/output.mp4"
ImportError: No module named 'ultralytics'
pip install ultralytics==8.3.0
欢迎提交Issue和Pull Request!
git checkout -b feature/AmazingFeature
git commit -m 'Add some AmazingFeature'
git push origin feature/AmazingFeature
本项目采用 MIT License - 查看 LICENSE.md 文件了解详情
如果觉得项目有帮助,请给颗⭐Star!
版权所有:中国计算机学会技术支持:开源发展技术委员会 京ICP备13000930号-9 京公网安备 11010802047560号
🎓 课堂专注度检测系统 (Classroom Attention Detection System)
基于YOLOv8姿态估计的智能课堂行为分析系统,自动识别学生专注状态并生成可视化报告。
✨ 核心功能
v2.0 增强版行为检测
🏗️ 系统架构
技术栈:
🚀 安装部署
环境要求
快速安装
GPU用户额外安装:
📖 使用方法
基础命令
高级参数
--threshold--skip-frames--save-video--output--max-frames命令示例
📊 输出结果
1. 可视化标注视频
2. CSV详细报告 (
attention_report.csv)3. 控制台汇总报告
⚙️ 配置调整指南
调整行为敏感度
🎯 性能指标
⚠️ 重要注意事项
✅ 最佳实践
--max-frames 500测试,确认效果再处理完整视频❌ 已知限制
🔧 故障排除
Q1:
RuntimeError: CUDA out of memory解决: 降低批处理量或处理分辨率
Q2:
VideoWriter无法创建文件解决:
-o "C:/path/to/output.mp4"Q3:
ImportError: No module named 'ultralytics'解决:
🚀 未来规划
🤝 贡献指南
欢迎提交Issue和Pull Request!
git checkout -b feature/AmazingFeature)git commit -m 'Add some AmazingFeature')git push origin feature/AmazingFeature)📄 许可证
本项目采用 MIT License - 查看 LICENSE.md 文件了解详情
📞 联系支持
如果觉得项目有帮助,请给颗⭐Star!