# 基于PaddlePaddle的智慧课堂实时监测系统
## 项目简介
本项目基于 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 的方式调用,将会更好。
| 模型 ID | 模型功能 |
| ------- | -------------------------------------------- |
| 41825 | 识别学生上课的状态 |
| 26127 | 检测教室内的所有学生 |
| 26080 | 检测教室内不同状态的学生(直接分类物体检测) |
| 26109 | 检测教室内不同状态的学生(删掉模糊的标注) |
| 24516 | 识别教师的讲课的情感(12 分类) |
| 25450 | 识别教师的讲课语速(10 分类) |
| 42835 | 识别教师的讲课情感(4 分类) |
### YOLOv3 目标检测
项目中教室内学生的位置检测以及人数统计使用 Paddle 模型库中的 YOLOv3 模型
#### 数据集
采用我校教务处提供的一周(5 天)教学视频为基础,每天视频时长 14 小时(8:00——22:00,有前后两个摄像头),每隔 10 分钟截取一张图片,一共 289 张图片,进行人为手工标准(EasyDL 平台上也有相同模型)
![](https://www.writebug.com/myres/static/uploads/2021/12/12/72cf7c83008bcd6c84f9c00145a360a8.writebug)
#### 训练
在本机上以 batch_size=2,一共训练 20000 轮
![](https://www.writebug.com/myres/static/uploads/2021/12/12/98038822e7510090c30af10c43ba26a5.writebug)
### RestNet 图像分类
在目标检测将学生位置识别出来之后,将这些学生图像单独抠出来放入到图像分类模型中进行分类,分为:正常听课、看手机、睡觉、站立,采用 Paddle 模型库中的 ResNet 模型,56 层
#### 数据集
在上一步目标检测标注完的数据集基础上,将所有学生抠出来保存成单独的图片,进行分类,一共正常:2431 张,看手机:1149 张,睡觉:189 张,站立:56 张
为了不让数据样本偏差太大,随机抽取比较平衡的数据量:正常:300 张,看手机:300 张,睡觉:189 张,站立:56 张
![](https://www.writebug.com/myres/static/uploads/2021/12/12/5cf0c86e13fddc819275c8553ed6da82.writebug)![](https://www.writebug.com/myres/static/uploads/2021/12/12/34a301924b76c59148b819ad7726041c.writebug)![](https://www.writebug.com/myres/static/uploads/2021/12/12/e00edcbe7fed54d2f41b65bf1a0361c0.writebug)![](https://www.writebug.com/myres/static/uploads/2021/12/12/9cbce43428aef874746067c1740d1d66.writebug)
#### 训练
以 batch_size=8,进行 100 轮的训练
top1 acc=0.7
#### 调用方式
### 情感分类
使用 Paddle 模型库中 Senta 情感分类模型进行文字的情感倾向分析
#### 数据集
从互联网中查找在课堂场景中的语言文本,分为积极、消极两类
![](https://www.writebug.com/myres/static/uploads/2021/12/12/72ee0fc5cc58b6752531eeb2adeb247c.writebug)
#### 训练
batch_size=256 训练 100 轮
acc=0.9
### 代码结构
+---classroom 教室的监控视频
+---database 数据库相关操作
+---model
| +---Classification 图像分类模型
| | +---weight
| +---Detection 物体检测模型
| | +---weight
| +---Emotion
| | +---weight 情感分类模型
| \---KeyWord 敏感词识别
+---resource UI 的图片资源文件
+---threads 线程类,用于实时监测
+---util 工具文件
\---view qt 界面文件
+---css
+---html
+---images
+---js
+---ui
## 使用说明
GitHub 地址:[https://github.com/DragonistYJ/EduWatching.git](https://github.com/DragonistYJ/EduWatching.git)
项目监控视频链接:因学校教务处要求,视频涉及同学隐私,已删除该链接
需要克隆代码到本地,首先按照 requirements.txt 中的依赖进行依赖安装
将 FFmpeg 加入到环境变量中
需要在工程目录中新建 classroom 文件夹,将教室的监控视频放到 classroom 文件夹下,按照如下目录格式命名
文件夹序号 id 从 1 开始连续增加,前置视频名称为{id}.mp4,后置视频名称为{id}_back.mp4
![](https://www.writebug.com/myres/static/uploads/2021/12/12/7bedf83dfb64f8598c4f055c8901587c.writebug)
运行 Main.py 脚本开始运行项目
## 功能介绍
### 实时监测线程
本项目中的所有监测功能均采用线程的方式进行识别
对于 GPU 的调用、UI 的刷新都用线程锁进行控制
| 线程 | 功能 |
| ------------ | ------------------------------------------------------------------------------------- |
| ClassBrief | 每隔 10 秒对所有教室进行一次人数统计 |
| StudentState | 每隔 2 秒首先监测教室内的人数,然后对于每一个学生进行状态分类 |
| Speech | 每隔 5 秒对教师的语音进行语音识别,对识别出来的文字进行情感倾向的分类以及敏感词的识别 |
| Speech | 每隔 5 秒对教师的语音进行情感的分类 |
| Speech | 每隔 5 秒对教师的语音进行语速的分类 |
| TeacherVideo | 每隔 2 秒刷新教室后置摄像头的截图 |
### 总监控界面
总监控页显示了对于所有教室的统筹监控,显示该课堂的基本信息以及教室内的学生人数
![](https://www.writebug.com/myres/static/uploads/2021/12/12/89926f499bb092bd78fee99b16b2de01.writebug)
用户可以在教学楼栏里按照校区、教学楼、楼层进行筛选
在状态栏里可以根据该教室是上课还是下课进行筛选
![](https://www.writebug.com/myres/static/uploads/2021/12/12/702efb952f47587d8f3678d1a568b8a6.writebug)
在异常栏里只显示到课学生数量不足 60% 的教室
![](https://www.writebug.com/myres/static/uploads/2021/12/12/45d21f82d010bbc313bd22dd8dfce52e.writebug)
### 实时监控界面
![](https://www.writebug.com/myres/static/uploads/2021/12/12/b5b3cec874ee3dee7051a2ea698f9415.writebug)
在本页面中首先展示教室内学生状态的检测,对于玩手机的学生以用红色圈出,睡觉的学生用黄色圈出,站立的学生用蓝色圈出,同时描绘柱状图
下面展示教师的监控视频,检测教师的语速、情感,用折线图显示
右边显示识别出来的教师语音,有情感分析和敏感词识别
### 课程回看
没有合适的资源?快使用搜索试试~ 我知道了~
项目基于 PaddlePaddle 和 EasyDL 平台,以教务处和学工为一级用户,高校教师为二级用户,针对提升整体课堂教学质
共832个文件
w_0:122个
b_0:91个
weights:75个
需积分: 5 0 下载量 46 浏览量
2023-01-30
15:51:54
上传
评论
收藏 244.63MB ZIP 举报
温馨提示
项目基于 PaddlePaddle 和 EasyDL 平台,以教务处和学工为一级用户,高校教师为二级用户,针对提升整体课堂教学质量为目的开发的一款实时课堂监测系统。 本项目主要监测课堂的出勤人数、学生的上课状态、教师的语速、情感,以及语言的用词方面。项目中语音的模型均采用 EasyDL 平台进行训练,调用在线 API 进行预测分析。而图像模型由于在线 API 无法达到实时性的要求,采用本地训练 Paddle 模型库中的模型并使用。详细设计见md文件。
资源推荐
资源详情
资源评论
收起资源包目录
项目基于 PaddlePaddle 和 EasyDL 平台,以教务处和学工为一级用户,高校教师为二级用户,针对提升整体课堂教学质 (832个子文件)
__model__ 462KB
__model__ 454KB
__model__ 25KB
lstm_1.b_0 4KB
lstm_0.b_0 4KB
fc_1.b_0 2KB
fc_0.b_0 2KB
fc_2.b_0 408B
batch_norm_48.b_0 280B
conv2d_56.b_0 280B
batch_norm_43.b_0 280B
batch_norm_54.b_0 280B
conv2d_54.b_0 280B
batch_norm_50.b_0 280B
batch_norm_55.b_0 280B
batch_norm_38.b_0 280B
batch_norm_47.b_0 280B
batch_norm_42.b_0 280B
conv2d_42.b_0 280B
conv2d_39.b_0 280B
batch_norm_49.b_0 280B
conv2d_46.b_0 280B
batch_norm_41.b_0 280B
batch_norm_40.b_0 280B
batch_norm_46.b_0 280B
conv2d_52.b_0 280B
conv2d_48.b_0 280B
batch_norm_53.b_0 280B
conv2d_44.b_0 280B
batch_norm_44.b_0 280B
batch_norm_52.b_0 280B
batch_norm_39.b_0 280B
batch_norm_45.b_0 280B
batch_norm_56.b_0 280B
batch_norm_51.b_0 280B
conv2d_50.b_0 280B
conv2d_27.b_0 152B
conv2d_31.b_0 152B
batch_norm_24.b_0 152B
batch_norm_23.b_0 152B
batch_norm_32.b_0 152B
batch_norm_36.b_0 152B
batch_norm_27.b_0 152B
batch_norm_30.b_0 152B
batch_norm_35.b_0 152B
conv2d_35.b_0 152B
conv2d_23.b_0 152B
batch_norm_25.b_0 152B
batch_norm_19.b_0 152B
batch_norm_33.b_0 152B
conv2d_29.b_0 152B
batch_norm_22.b_0 152B
batch_norm_26.b_0 152B
conv2d_25.b_0 152B
conv2d_37.b_0 152B
batch_norm_29.b_0 152B
batch_norm_34.b_0 152B
batch_norm_28.b_0 152B
conv2d_20.b_0 152B
conv2d_33.b_0 152B
batch_norm_37.b_0 152B
batch_norm_31.b_0 152B
batch_norm_21.b_0 152B
batch_norm_20.b_0 152B
conv2d_8.b_0 88B
batch_norm_18.b_0 88B
batch_norm_10.b_0 88B
conv2d_18.b_0 88B
batch_norm_13.b_0 88B
conv2d_6.b_0 88B
conv2d_10.b_0 88B
conv2d_14.b_0 88B
batch_norm_8.b_0 88B
batch_norm_16.b_0 88B
batch_norm_7.b_0 88B
conv2d_2.b_0 88B
batch_norm_6.b_0 88B
batch_norm_12.b_0 88B
batch_norm_11.b_0 88B
batch_norm_0.b_0 88B
batch_norm_4.b_0 88B
batch_norm_15.b_0 88B
batch_norm_14.b_0 88B
batch_norm_9.b_0 88B
batch_norm_2.b_0 88B
batch_norm_5.b_0 88B
conv2d_12.b_0 88B
batch_norm_17.b_0 88B
conv2d_16.b_0 88B
batch_norm_1.b_0 88B
batch_norm_3.b_0 88B
conv2d_4.b_0 88B
fc_0.b_0 40B
fc_3.b_0 32B
yolo_output.0.conv.bias 96B
yolo_output.1.conv.bias 96B
yolo_output.2.conv.bias 96B
bootstrap.replay.css 149KB
bootstrap.real.css 138KB
bootstrap.min.css 122KB
共 832 条
- 1
- 2
- 3
- 4
- 5
- 6
- 9
资源评论
计算机毕设论文
- 粉丝: 1w+
- 资源: 399
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功