智慧课堂实时监测系统


项目简介

本项目基于PaddlePaddle和EasyDL平台,以教务处和学工为一级用户,高校教师为二级用户,针对提升整体课堂教学质量为目的开发的一款实时课堂监测系统。

本项目主要监测课堂的出勤人数、学生的上课状态、教师的语速、情感,以及语言的用词方面。项目中语音的模型均采用EasyDL平台进行训练,调用在线API进行预测分析。而图像模型由于在线API无法达到实时性的要求,采用本地训练Paddle模型库中的模型并使用。

硬件环境

CPU:Intel 酷睿 I7-7700 四核8线程

内存:三星 DDR4 16G

GPU:NVIDIA GTX1070 8G


软件环境

OS:Windows 10

IDE:PyCharm 2019.2.4

ffmpeg(需要加入环境变量)

Python 3.7

CUDA10 CUDNN7.3


Python依赖

baidu_aip==2.2.18.0 jieba==0.39 opencv_python==4.1.1.26 requests==2.22.0 PyMySQL==0.9.3 paddlepaddle_gpu==1.6.0.post107 numpy==1.16.5 Pillow==6.2.0 PyQt5==5.10.1

模型详解

EasyDL平台模型

EasyDL平台的快速训练和快速上线是目前人工智能开发进程中的一大亮点,能够作为项目中的一个在线API进行快速调用。但是在线调用非常受网速限制,对于图片这种体积较大的文件则更加耗时,在实时性方面有待提高。但是本地部署需要企业帐号,对于一部分开发者来说无法实现。如果能将模型下载到本地进行类似SDK的方式调用,将会更好。


智慧课堂实时监测系统的图1



YOLOv3目标检测

项目中教室内学生的位置检测以及人数统计使用Paddle模型库中的YOLOv3模型

数据集

采用我校教务处提供的一周(5天)教学视频为基础,每天视频时长14小时(8:00——22:00,有前后两个摄像头),每隔10分钟截取一张图片,一共289张图片,进行人为手工标准(EasyDL平台上也有相同模型)


智慧课堂实时监测系统的图2



训练

在本机上以batch_size=2,一共训练20000轮


智慧课堂实时监测系统的图3

RestNet图像分类

在目标检测将学生位置识别出来之后,将这些学生图像单独抠出来放入到图像分类模型中进行分类,分为:正常听课、看手机、睡觉、站立,采用Paddle模型库中的ResNet模型,56层

数据集

在上一步目标检测标注完的数据集基础上,将所有学生抠出来保存成单独的图片,进行分类,一共正常:2431张,看手机:1149张,睡觉:189张,站立:56张

为了不让数据样本偏差太大,随机抽取比较平衡的数据量:正常:300张,看手机:300张,睡觉:189张,站立:56张


智慧课堂实时监测系统的图4


训练

以batch_size=8,进行100轮的训练

top1 acc=0.7

调用方式

情感分类

使用Paddle模型库中Senta情感分类模型进行文字的情感倾向分析

数据集

从互联网中查找在课堂场景中的语言文本,分为积极、消极两类


智慧课堂实时监测系统的图5

功能介绍

实时监测线程

本项目中的所有监测功能均采用线程的方式进行识别

对于GPU的调用、UI的刷新都用线程锁进行控制


智慧课堂实时监测系统的图6

总监控界面

总监控页显示了对于所有教室的统筹监控,显示该课堂的基本信息以及教室内的学生人数


智慧课堂实时监测系统的图7

用户可以在教学楼栏里按照校区、教学楼、楼层进行筛选

在状态栏里可以根据该教室是上课还是下课进行筛选


智慧课堂实时监测系统的图8

实时监控界面

智慧课堂实时监测系统的图9

在本页面中首先展示教室内学生状态的检测,对于玩手机的学生以用红色圈出,睡觉的学生用黄色圈出,站立的学生用蓝色圈出,同时描绘柱状图

下面展示教师的监控视频,检测教师的语速、情感,用折线图显示

右边显示识别出来的教师语音,有情感分析和敏感词识别

课程回看列表

在回看列表里面显示已经上过的课程的列表

智慧课堂实时监测系统的图10



课程回看

在这里可以看到对于一堂课中教师、学生出现的异常状态的记录

该功能由于帐号管理问题,未开发完全

智慧课堂实时监测系统的图11

智慧课堂实时监测系统的图12





默认 最新
当前暂无评论,小编等你评论哦!
点赞 评论 收藏
关注