课堂行为分析系统-python+计算机视觉
基于计算机视觉的课堂行为分析系统
项目描述
智慧教室是一个基于计算机视觉的课堂行为分析系统,由 AlphaPose 全身姿态估计、人脸识别和表情识别组合而成,核心定位是课堂专注度分析和考试作弊检测。系统通过摄像头或图片输入,识别人体姿态、面部表情和身份,输出每名学生的专注状态和作弊嫌疑,并支持课堂动态点名。
项目功能
课堂专注度分析:基于头部姿态(pitch/yaw 角度)和表情识别,给出每个学生的专注度评分。作弊检测:通过关键点计算识别三类作弊动作——转头(probe)、低头(peep)、传递物品(passing),并用逻辑回归/随机森林分类器综合判定。人脸识别与点名:基于 dlib 68 点人脸对齐和 ResNet 人脸编码,结合 FaceBoxes 检测器实现学生注册和课堂点名。姿态数据可视化(本次新增):PyQt5 桌面界面,支持图片上传推理、结果图片浏览、136 关键点数据展示和统计整理分析。
运行环境
操作系统为 Windows(已在 Win10 验证),Python 3。依赖 PyTorch(支持 CUDA GPU 加速,无 GPU 时回退 CPU)、OpenCV、dlib、AlphaPose、PyQt5、matplotlib、Pillow。运行前需手动下载多份权重文件放到指定目录(halpe136 姿态模型、yolov3-spp 检测器、dlib 人脸模型、FaceBoxes、作弊分类器等),其中 reid 跟踪权重和 FaceBoxes 在当前环境已跳过。
项目技术
姿态估计采用 AlphaPose 的 Fast Pose,ResNet50 主干 + YOLOv3 检测器,输出 Halpe 136 全身关键点(17 躯干 + 6 脚 + 68 面部 + 42 手部)。人脸识别用 dlib 的 shape_predictor_68(对齐)+ resnet_model_v1(编码)+ FaceBoxes(检测)。作弊动作识别用关键点几何特征训练的逻辑回归/随机森林分类器(cheating_detector_rfc_kp.pkl)。跨帧身份关联用 OSNet-AIN reid 模型(本项目已关闭)。可视化界面用 PyQt5,matplotlib 嵌入画统计图表,通过 subprocess 调用 demo_inference.py 实现零侵入推理。
数据集
Halpe FullBody(136 关键点全身姿态标注,用于训练 Fast Pose 主模型)。MSMT17(reid 行人重识别数据集,用于训练 OSNet-AIN 跟踪模型,本项目跳过)。COCO(YOLOv3 目标检测预训练,用于人体框检测)。dlib 自带 68 点人脸对齐预训练模型和 ResNet 人脸编码模型。FaceBoxes 人脸检测预训练模型。课堂动作分类器和作弊分类器为作者自训练(classroom_action_lr_front_v2.pth、cheating_detector_rfc_kp.pkl),训练数据未公开。项目自带 examples/demo 下 3 张测试图片用于验证流程。
以上系统源码经过技术整理与调试,确保能正常运行


