基于LabVIEW和深度视觉传感器的课堂智能管理系统①
2022-08-04谢忠志覃伟芳方肃贤
朱 艳,谢忠志,王 成,覃伟芳,方肃贤
(泰州职业技术学院 机电技术学院,泰州 225300)
随着社会的发展和教育改革的不断推进,我国的教育事业取得了巨大的进步,但是在教学管理过程中仍然存在明显的不足[1,2]. 现有的教学评价方法主要集中在课程考核结果分析方面,即通过学生的考试成绩来反映学习和教学效果,而对教学过程的监控和反馈较少. 课堂教学作为教学过程的主要手段,如何有效的记录学生的学习行为、学习热情和学习状态对于教师评估教学效果和提高教学方法异常重要. 近年来,随着计算机技术和人工智能的快速发展,基于视觉传感器的人脸识别和人体行为识别应用日益广泛[3–5]. 如何将视觉识别技术应用于课堂管理中,对于实现自动化、智能化和精准化的教学过程评价具有重要的意义[6,7].
目前,已经出现了一些应用于课堂教学过程管理的系统,主要集中在学生的课堂行为识别上,即通过人脸识别和人体行为识别来反映学生的学习专注度和课堂教学效果. 国内方面,王竑喜提出了基于图像采集和处理的学生课堂行为识别方法,研究了学生学习专注度与课堂行为之间的关系[8]. 廖鹏等人设计了基于深度学习的课堂异常行为识别系统,通过VGG 模型,对课堂上学生玩手机、睡觉、说话等注意力不集中行为进行了识别,得到了较高的检测精度[9]. 党冬利构建了基于机器学习的课堂行为识别模型,对课堂上学生的举手、站立和听讲3 种动作进行了识别,得到了较高的识别精度[10]. 何秀玲等人从人体骨架数据中提取特征向量,通过深度学习算法进行课堂行为识别,得到了97%的识别精度[11]. 国外方面,Wang 等人提出了一种基于卷积神经网络的人体动作识别方法,该方法通过生成的深度运动映射图提取识别特征数据,输入CNN 识别模型进行动作识别,识别精度达到了85%[12].Shi 等人提出了基于L2EMG 特征融合的学生课堂动作识别方法,对课堂上7 类常见动作进行了识别,得到了82%的识别精度[13]. 综上所述,首先,现有的课堂管理系统主要以课堂行为识别为目标,没有将课堂考勤、教师教学管理以及学生自主学习管理融入其中,功能比较单一. 其次,现有的课堂行为识别大多采用RGB 传感器进行图像采集,行为特征提取困难,动作识别范围较窄,识别精度不高. 因此现有的课堂管理系统满足不了现代教学管理智能化、自动化、精确化和集成化的需求. 本文选用Kinect V2 深度摄像头作为监控设备,采用LabVIEW 虚拟仪器作为软件开发平台,设计了一种集课堂考勤、课堂行为识别和管理、自主学习管理于一体的智能课堂管理系统.
1 系统结构和功能组成
1.1 系统结构组成
系统结构如图1 所示,课堂智能管理系统主要由硬件部分和软件部分组成. 硬件部分包括深度视觉传感器Kinect V2、计算机、移动设备和USB 电缆,其中,Kinect V2 用于实时采集人体彩色和深度图像,计算机用于安装系统所需的各种软件,移动设备用于学生课堂考勤和课外访问系统数据库进行自主学习,USB 通讯电缆用于Kinect V2 和计算机的连接. 软件部分主要包括Kinect developer toolkit、LabVIEW、Matlab 和MySQL. 其中,Kinect developer toolkit作为Kinect V2 传感器开发工具包,用于完成人脸跟踪和人体骨架提取. LabVIEW 作为系统软件开发平台,用于完成系统的各种功能开发. Matlab 主要用于完成机器学习算法的编制,从而实现人脸识别和学生课堂行为识别. MySQL 作为数据库开发软件,用于完成系统所需各种数据的管理. MyEclipse 用于实现移动设备和系统数据库的连接.
图1 系统结构组成
1.2 系统功能组成
系统功能如图2 所示,主要由课堂考勤模块、课堂行为识别和管理模块和自主学习管理模块3 部分组成. 课堂考勤模块包括人脸识别签到功能和移动设备定位功能,其中,人脸识别签到功能可以防止学生找人替代签到,移动设备定位功能可以防止学生签到以后中途离场. 课堂行为识别和管理模块包括课堂行为识别功能和课堂过程分析功能,其中课堂行为识别功能通过识别举手、起立、低头、趴桌、听讲等课堂动作来监控和记录学生的学习状态,课堂过程分析功能通过对记录的学习状态数据进行分析,来评价课堂教学质量和学习效果. 自主学习模块包括学习资料上传功能、课后复习预习功能和学生作业管理功能3 部分,其中,学习资料上传功能用于教师将课件、视频和习题等资料上传到数据库,课外复习预习功能用于课外时间学生根据自身需求自主选择所需的学习资料,学生作业管理功能用于学生课后作业的提交和批改.
图2 系统功能组成
2 数据采集程序设计
在电脑上安装Kinect SDK 和Kinect driver 后,LabVIEW 即可通过调用DLL 文件的方式调用Kinect V2 摄像头采集到的各种图像信息. 图3 为数据采集程序框图,可以获取人体25 个骨架节点以及3 个头部转角数据. 初始化.vi 为初始化函数,用于初始化外部DLL接口,调用Kinect developer toolkit 中的图像数据,并返回一个引用句柄. 配置.vi 为采样配置函数,用于设置图像类型、分辨率、帧率、平滑类型等. 坐标初始化.vi函数用于建立骨架显示的三维坐标系. 数据读取.vi 用于读取二维彩色图像和三维深度图像数据. 骨架重构.vi 为渲染输出函数,用于更新骨架节点三维显示. 设备关闭.vi 用于关闭Kinect V2 的外部DLL 调用接口.
图3 图像采集程序框图
3 系统功能设计
3.1 课堂考勤
课堂考勤可以有效提高学生的到课率,帮助班级形成良好的学习氛围,增强学生的组织性和纪律性. 现有的考勤措施大多采用教师点名的方式进行,这样不仅会浪费大量的教学时间,而且学生可以通过人员替代或中途离场的方法蒙混过关. 本文采用人脸识别签到[14,15]和移动设备定位相结合的方式来实现课堂考勤,可以有效解决上述问题.
3.1.1 人脸识别签到
人脸识别签到流程如图4 所示,Kinect SDK 中提供了用于人脸跟踪的功能模块(face tracking),该模块通过AAM 算法可以实现人脸实时跟踪并提取121 个脸部特征点. 本文选取其中的10 个面部特征点如表1所示,并将10 个点的最大外接矩形用来分割图像中的人脸部分如图5 所示,然后采用局部二值式(LBP)方法提取面部局部特征向量,最后输入最近邻算法模型进行身份识别. LBP 算子提取面部特征程序和直方图最近邻算法识别通过Matlab 软件编程完成,LabVIEW提供了专门用于和Matlab 通讯的Matlab script 节点,通过该节点可以很灵活的在LabVIEW 中调用Matlab 程序.
图5 脸部特征点分布和人脸分割效果
表1 用于人脸分割的10 个面部特征点标号和名称
图4 人脸识别签到流程图
在不同的表情,光照和角度下,摄像头采集到的人脸图像变化较大,若直接使用线性方法对原始图像进行特征提取,则识别精度和稳定性会大大降低. 由于脸部局部特征受外部条件的影响较小,为此本文选取等价模式LBP 算子提取面部识别特征,选取基于直方图的最近邻分类算法进行身份识别. 由于图像中信息的分布不均匀,因此本文选取加权卡方统计方法对直方图进行度量,这样可以有效解决图像信息不均匀造成的影响,提高识别精度. 算法流程如下:
(1)将检测窗口划分为16×16 的小区域.
(2)对于任一小区域中的像素,将相邻的8 个像素的灰度值与其进行比较,若周围像素值大于中心像素值,则该像素点的位置被标记为1,否则为0. 这样,3×3 邻域内的8 个点经比较可产生8 位二进制数,即得到该窗口中心像素点的LBP 值.
(3)计算每个小区域的直方图,即每个数字出现的频率.
(4)采用加权卡方统计方法对直方图进行度量,如式(1)所示,式中,Si和Mi为两个不同样本的直方图,两个样本之间的χ2(S,M)越小,那么这两个样本之间的相似度就会越高. 计算分块处理后的测试样本LBP 直方图特征和训练样本LBP 直方图特征的χ2(S,M)值,根据最近邻准则,将其划分为χ2(S,M)值最小的那一类.
识别结果如表2 所示,可以发现,LBP 算子尺度增大,人脸识别精度变高,但是消耗的识别时间越长. 为同时保证识别精度和系统实时性要求,本文选取尺度进行计算,其识别精度达到97%,识别时间为96.7 ms. 相对于现有识别技术,本文采用的基于深度视觉传感器的人脸识别方法,可以实现更好的人脸跟踪效果,更快的跟踪速度和更高的人脸识别精度.
表2 不同LBP 算子尺度时人脸识别结果比较
3.1.2 移动设备定位
移动设备定位流程如图6 所示,学生通过人脸识别签到进入教室后,将随时携带的移动设备(手机)的WiFi 打开,系统开始搜索每台移动设备的AP 信息,并且获取无线信号强度值,将获取的强度值和所设置的阈值大小进行比较,判断该移动设备是否处于有效范围内,进而判断携带该设备的学生是否在教室听课,这样可以有效防止学生签到后中途离开教室.
图6 移动设备定位流程图
3.2 课堂行为识别和管理
3.2.1 课堂行为识别
现有的课堂行为识别大多是采用RGB 摄像头来进行图像采集,图像质量受光线、视角、距离影响较大,鲁棒性和识别精度较差[16,17]. 深度摄像头可以采集到人体的三维坐标数据,并且提取出人体骨架信息,对光线、视角、距离变化不敏感,而人体骨架数据对于人体动作又具有极好的识别性,因此本文选取深度摄像头Kinect V2 进行图像采集,提取到的人体骨架节点分布如图7 所示.
图7 人体骨架节点分布图
由于课桌的遮挡,1 号节点(人体中心)以下的9 个节点不在视野范围之内,因此忽略掉. 21、22、23、24 号4 个节点为手指节点,对于学生课堂动作识别性不高,因此也忽略掉. 剩下的12 个节点中,相邻的两个节点可以组成一个动作结构向量,这样得到11 个动作结构向量. 相邻的两个动作结构向量可以形成一个向量角,这样得到9 个向量角. 人体的动作变化和这9 个向量角息息相关,因此选取9 个向量角作为学生课堂行为识别特征数据. 11 个动作结构向量的组成节点和9 个向量角的组成向量,如表3 所示.
表3 动作结构向量和向量角的组成
学生上课注意力是否集中很大一部分可以通过头部动作来体现,但是抬头、低头、偏头和摇头动作对9 个特征向量角的变化并不明显,很容易引起误判. 本文引入face tracking SDK 中提供的头部转角识别功能,如图8 所示,其中Pitch 为低头和抬头角度 θP识别,识别角度范围–45°至45°,Roll 为左右偏头角度 θR识别,识别角度范围–90°至90°,Yaw 为左右摇头角度 θY识别,识别角度范围–45°至45°. 将 θP、 θR、和 θY作为行为识别特征数据.
图8 Kinect V2 头部识别示意图
如果学生的手部动作和头部角度变换不大,则很难正确识别出学生处于站立状态还是坐立状态,但此时学生头部节点(3 号)距离地面的高度dh的变化却非常明显,因此选取dh作为行为识别特征数据. 由于Kinect V2 不直接提供dh的大小,因此需要自行计算. 人体的左右脚掌骨架节点15,19 和地面接触,因此将这两个节点的高度默认为零,并以此建立地面方程. 首先将15 和19 节点的坐标代入式(2),先计算出地面方程和Kinect 之间的倾角θ,进而确定出地面方程.
地面方程确定以后,将3 号头部节点坐标代入式(3)即可计算出头部距离地面的高度dh.
构建课堂行为识别特征向量G=(θ1,θ2,θ3,θ4,θ5,θ6,θ7,θ8,θ9,θP,θR,θY,dh),并将其输入基于径向基核函数(RBF)的支持向量机分类器(SVM)[18],因为RBF 核可以将样本映射到一个更高维的空间,可以处理当类标签(class labels)和特征之间的关系是非线性时的样例,因此非常适用于课堂行为识别这类复杂的非线性分类问题. 核函数可由式(4)表示,式中δ为函数的宽度参数 ,用来控制函数的径向作用范围. 对趴桌、低头、站立、举手、听课5 类课堂行为样本数据进行训练识别,各类动作样本个数均为200,训练样本所占比例分别为0.2、0.4、0.6 和0.8,其余作为测试样本. 各类动作识别精度如表4 所示,可以发现随着训练样本所占比例的增大,识别精度会随之增加,本文方法对5 种动作的识别精度都在92.5%以上,其中站立和举手动作的识别精度达到100%. 本文采用基于深度视觉传感器的课堂行为识别,以提取的人体骨架节点和头部转角数据为基础构建行为识别特征向量,通过径向基核函数的支持向量机构建识别模型,其鲁棒性、识别精度和识别速度都优于现有课堂行为识别技术.
表4 不同样本比例时各种课堂行为的识别精度
3.2.2 课堂过程分析
每个学生的课堂活跃度是衡量课堂教学效果的一个重要指标[19],系统自动记录每个学生课堂举手次数fh和起立回答问题次数fa,每次回答问题后,教师会根据回答情况给出满意度系数 ωa,根据式(5)计算出学生课堂活跃度P,式中,ωp为活跃度加权系数,其值越大表示举手对于课堂活跃度影响越大. 本文选取ωp=0.4.
课堂整体学习态势是对每个学生学习专注度进行分析,对于教师评估教学效果具有重要意义. 系统选取10 s 作为一个记录区间,记录每个学生趴桌和低头的时长,如果多于3 s 则认定该生处于非专注状态,记录每个学生的非专注时间长度ta. 通过式(6)计算课堂整体专注度C,式中,k表示课堂中学生的个数,t表示每节课时长,表示所有学生的非专注时间总和.
3.3 自主学习管理
自主学习管理[20]包括学习资料上传、课后复习预习和学生作业管理3 部分. 教师通过学习资料上传功能,可以将上课所需的视频或者文档资料上传到服务器,并保存到相应目录的数据库中,方便学生课前预习或课后复习. 学生可以通过作业管理功能提交老师布置的作业,教师也可以通过该功能实现作业在线批改和答疑. 学习资料上传功能和作业管理功能中的文件上传流程如图9 所示,浏览文件选择需要上传的文件,通过断点传输方式上传资料到服务器,如果文件类型为Excel 格式,则系统读取表格内容并保存至数据库,如果文件格式为视频或文档,则直接保存文件路径至数据库.
图9 学习资料上传和作业管理功能中的文件上传流程
课后复习预习功能主要为了满足课外时间学生自主学习需要,学生可以通过服务器自由选择系统数据库中的视频和文档资料,自主学习流程如图10 所示,如果选择的学习内容为文档形式,学生可以根据需要选择在线学习或者离线学习,在线学习直接使用外部应用程序加载文档内容,离线学习是通过断点传输方式将文档资料下载到移动设备. 如果选择的学习内容为视频形式,则通过移动设备中的多媒体播放器加载并播放视频内容.
图10 学生自主学习流程
4 数据库设计
系统运行过程中涉及到大量数据的查询和存储,因此数据库的设计对系统正常运行起着至关重要的作用,本文设计的MySQL 数据库中的部分数据表结构如表5 所示,主要包括学生信息字段、学习资料信息字段、考勤记录信息字段和课堂行为管理信息字段.
表5 系统数据库结构表
系统通过LabSQL 实现LabVIEW 和MySQL 数据库之间的连接,LabSQL 是一个免费的、多数据库、跨平台的LabVIEW 数据库访问工具包,LabSQL 利用Microsoft ADO 对象和SQL 语言来完成数据库访问,将复杂的底层ADO 及SQL 操作封装成一系列的LabSQL VIs,简单易用. 首先建立与数据库的连接,然后生成SQL命令,执行命令,最后断开与数据库之间的连接.
移动设备端采用Android 平台进行开发,但是Android 移动客户端没办法直接访问MySQL 中的数据,因此系统通过MyEclipse 作为“中转”实现两者之间的连接. MyEclipse 作为企业级工作平台,内置所有的Web 开发技术,支持快速添加技术功能到Web 项目中.系统通过MyEclipse 开发Web 程序,通过共用Android SOAP 方法来访问数据库.
5 结论
教育的不断发展对教学评价体系和教学管理体系提出了更高的要求,现有的评价体系和管理体系已成为阻碍教育发展的一大因素. 虽然出现了一些课堂智能管理系统,但是功能比较单一,适应性不强. 本文提出了一种集课堂考勤、课堂行为识别和管理、自主学习管理于一体的课堂智能管理系统. 通过人脸识别和移动设备定位相结合的方式实现了97%的课堂考勤精度. 通过骨架节点数据提取识别特征向量,并输入SVM 分类器实现了95%以上的课堂行为识别精度,并给出了课堂活跃度P和专注度C的评估方法. 通过MyEclipse 和MySQL 数据库完成了自主学习功能开发,方便了学生课堂学习和课外学习有机结合,且系统运行稳定可靠. 本文设计的课堂智能管理系统对教学过程的科学评价以及课堂管理的智能化和自动化具有重要意义.