用于课堂教学评估的教师肢体动作检测

    闫晓炜 张朝晖 赵小燕 贾鹂宇

    摘 要: 利用智能视频监控来进行课堂教学自动评估,可以方便高效地服务于教学,而作为课堂教学中的主要角色,教师授课状态对课堂教学评价有着至关重要的影响,因此本实验使用视频技术通过对教师肢体动作检测实现了对教师的授课评价。在实验中作者首先对比了OpenPose和yolo两种深度学习算法并最终选择yolo算法,然后自己制作数据集进行训练检测,完成教师肢体动作的识别,最后针对识别框尺寸大小不准确的问题进行了优化,提高了检测的准确度。

    关键词:课堂教学评估;肢体动作检测;深度学习算法

    中图分类号:TP37,G202 ? ? 文献标志码:B? ? ? ? ? ?文章编号:1673-8454(2019)16-0088-04

    一、引言

    得益于视频监控技术的发展和人们综合素质水平的提高,基于视频处理的课堂教学自动评估系统[1]应运而生,逐渐取代了传统的教学评估系统,更方便地服务于课堂教学管理工作,同时为监督教育的进步和发展提供了技术支持。这些智能监控系统主要利用了视频处理技术对学生进行监控,针对学生的上课考勤、听课情况进行分析,最终获得教学评估数据。

    在课堂中学生固然有着重要的身份地位,我们通过监测学生的情况对课堂教学进行评价。但评价课堂的教学不能仅仅以学生为中心,教师作为传道授业解惑者也有着不可动摇的地位。教师所拥有的良好的教学方式,不仅可以帮助教师提高工作效率,而且也促进了师生的交流,更有利于教师的教学[2][3]。综上,我们将教师也加入到智能教学评估系统中,可以更全面地对教学进行评价。

    教师通过实际的肢体动作可以有效地传达自己的情绪或者信息给学生,更容易吸引学生的注意力。教师在讲课过程中加入肢体动作不仅有强调、示范的作用,而且增加课堂的感染力,加强教师说话的力度,强化教学信息[4]。教师在授课过程中的肢体动作可以看作反映教师授课状态的重要依据。因此我们选择教师的肢体动作来进行检测,并通过yolo算法实现,同时对算法进行了优化。

    二、教师肢体动作检测方法

    教师的肢体动作是课堂教学的重要组成部分,它能将原本抽象的教学内容形象化、具体化,通过肢体动作的表达,提高了学生的学习热情,活跃了课堂气氛,拉近了师生距离[5]。通过检测教师肢体动作来对课堂进行评价需要选取教师的肢体动作来制作数据集。本次实验选取了教师的两个典型动作:教师指黑板的动作、教师站在讲台前的动作,分别如图1所示。

    基于计算机视觉的发展,肢体动作因其传达信息多、应用范围广受到了研究人员的关注并且提出了多种识别方法。最近比较流行的有:香港中文大学博士Wei Yang的PyraNet[6],Alexander Toshev、Christian Szegedy提出的DeepPose[7],卡内基梅隆大学的OpenPose[8],华盛顿大学艾伦研究所的Josehp Redmon、Ali Farhadi提出的yolo[9]等等。本实验首先分别选取了OpenPose、yolo两种算法,在对比分析之后最终选择了yolo算法,并且对该算法进行了优化。

    OpenPose算法是卡内基梅隆大学提出来的一种自下而上的肢体动作识别方法。通过身体关键点的定位与各个关节的定位实现肢体检测。它的优点是鲁棒性好,人体被遮挡的部位也能够估计出来,缺点是计算量很大,实时性差。本实验使用该算法识别FPS仅为10帧/秒,不能满足实时性。yolo算法是一种基于深度学习的目标检测算法,它具有检测速度快、准确度高的优点,但是对相互靠得很近的物体和小的群体检测效果不好。yolo可以一次性预测多个box位置和类别,实现了端到端的目标检测与识别。使用该算法识别FPS为22帧/秒,满足了实时性和准确度的需求,最终选了yolo算法。本次实验采用的是yolo 的第二个版本yolov2。

    1.yolo网络结构

    yolo算法包含分类网络和检测网络两类网络。yolo分类网络借鉴了GoogLeNet的思想,包含卷积层和全连接层,其中卷积层分为3*3、1*1两种卷积核,用来提取特征,全连接层输出类别结果。本次实验使用的yolov2版本,提出了一种新的分类网络DarkNet-19,包含19个卷积层和5个池化层,见图2。

    yolov2的检测网络是在分类网络基础上进行了调整。将分类网络的最后一个1*1的卷积层移除,添加3个3*3*1024的卷积层,再添加输出是类别个数的1*1卷积。检测网络结构如图3所示。

    2.yolo实现肢体检测

    利用yolo实现教师肢体检测需要三步:制作数据集、训练数据集、测试识别。

    (1)制作数据集

    本次实验数据集采用的是VOC数据集,在采集到足够图像之后使用LabelImg软件进行特征标注,生成带有位置信息的xml文件,然后使用matlab软件生成.txt训练测试文件,最后将上述图像文件放入新建的VOC文档中完成了数据集的制作,见图4。

    (2)训练数据集

    yolov2的训练包括三个阶段:第一阶段输入224*224的图像,先在ImageNet分類数据集上预训练DartNet-19,该阶段共训练160期。 第二阶段输入448*448的图像,继续在ImageNet数据集上训练分类模型,训练10期。第三个阶段是修改DartNet-19分类模型为检测模型,并在检测数据集上继续微调网络,见图5。

    (3)yolo检测识别

    yolov2实现肢体动作的检测首先在检测模型中输入图片,并将图片划分为s*s的网格。本实验采用的是416*416尺寸,因为模型下采样总步长为32,所以将图像划分为13*13的网格。如果目标的中心位置落入某个格子,那么该格子就负责检测出这个物体。图6中正中间的格子为中心位置,负责检测肢体动作。

    每个网格预测5个框,每个框包含x,y,w,h和confidence 5个数值。其中x,y代表了框的横纵坐标,w,h代表了框的宽高,confidence代表了预测的框中含有目标的置信度和准确度。公式如下:

    Pr(Object)*IOUtruth

    pred公式1

    若包含物体,则P(object) = 1;否则P(object) = 0。

    同时每个网格预测类别信息,本次设置了1个类别,因此类别信息为1。计算得到输出值为13*13*(5*5+1)。

    然后每个网格预测的类别信息和框预测的confidence信息相乘获得预测的概率,公式如下:

    Pr(Classi|Object)*Pr(Object)*IOUtruth

    pred=Pr(Classi)*IOUtruth

    pred公式2

    得到每个框的概率之后,根据阈值大小,滤掉得分低的框,对保留的框进行NMS(非极大值抑制)处理,得到最终的检测结果。

    三、优化yolo网络

    使用yolo网络实现了教师肢体动作的检测,但是部分识别框尺寸不合适并不能完全将动作包括起来,也从侧面反映了识别结果有一定的缺陷。通过分析yolov2的原理和程序发现是yolov2特有的anchor机制造成了这一结果。

    anchor机制[10]是yolov2参考了Faster RCNN中的anchor box方法,通过预先设置anchor boxes的尺寸更好地预测框的坐标。不同的是faster RCNN中的框大小和比例是根据经验手工精选并设定的,同时anchor boxes的尺寸可以在训练过程中调整。而yolov2的尺寸是使用聚类方法求得的,在一开始就选择合适的尺寸,帮助网络更好地預测目标。在yolov2中原作者计算出来的框大部分是瘦高的,这一尺寸符合行人的特征,而我们要检测的教师肢体动作标注出的框大部分是扁平的和偏向正方形的,如果仍旧使用原作者给出的数据就会导致上述问题,因此,采用K-means聚类方法生成适合于本数据集的anchor box数据,优化yolov2的anchor参数,解决了这一问题并提高了yolov2的准确率。

    K-means聚类算法是一种基于划分的聚类算法,通过计算距离将相近的对象划分至同一个簇,将较远的对象划分至不同的类簇[11]。算法的基本思想:先选择k个点作为初始聚类中心点,然后计算剩余的样品点到中心点的距离,根据欧氏距离越小相似度越高的原则,分别将其分配到与其最相似的聚类,然后再次计算得到每个类别新的聚类中心,并对剩余样品点进行分配,上述过程进行循环迭代直到达到给定次数或者聚类准则函数开始收敛为止[12]。

    该算法中假设待聚类的数集D={xi|xi∈RP,i=1,2,…n},

    p是维数,则欧式距离公式为:

    d(xi,x)=公式3

    聚类准则函数为:

    E=|x-c|公式4

    其中c1,c2…,ck为k个聚类中心。

    yolo算法中若直接使用会使大的框比小的框产生更大的误差,因此yolo作者定义了新的距离公式:

    d(box,centroid)=1-IOU(box,centroid)公式5

    同时将所有框中心点的x,y坐标都设为0,方便公式的使用。

    本实验利用K-means算法对之前标注的特征框尺寸数据进行聚类,计算出符合本实验的anchor大小,替换了网络之前的数据,重新训练之后检测教师肢体动作的框尺寸合适,并且检测准确度也有所提升。

    四、实验结果

    此次实验采用yolo算法完成教师肢体动作的检测。在实验中首先选取了OpenPose、yolo两种算法,发现OpenPose准确度高,但由于计算量可观,实时性差,无法满足实验要求,而yolo算法实时性好,虽然准确度相比OpenPose有所下降,但对实验没有大的影响,因此最终选择了yolo算法。两个算法检测效果对比如表1所示。

    确定使用yolo算法后,具体说明了yolo的分类网络、检测网络两种结构以及实现检测的过程,并且针对识别结果中出现的识别框尺寸不合适的情况分析原因,同时采用K-means聚类方法计算出anchor参数,完成对yolo的参数优化,解决了上述问题,而且提高了识别准确率。yolo优化前后检测效果对比如表2所示。

    识别结果如图7所示,本实验还记录了优化前后训练过程中的avg_loss数据,并将数据可视化进行分析,发现两者损失下降的迭代次数是差不多的,本次优化并未对损失迭代有太大影响,见图8。

    五、结束语

    本实验将视频监控技术与课堂评价系统相结合,将检测教师授课情况加入到课堂教学自动评估系统中,并选取教师肢体动作为教师授课评价的指标。在算法上使用yolo算法并进行优化完成教师肢体动作检测。此次实验完善了课堂教学自动评估系统,对课堂教学管理工作具有积极意义。

    参考文献:

    [1]文楷,田生伟,王琨,等.基于视频分析的课堂教学效果自动评价系统[J].中国教育技术装备,2016(8):50-52.

    [2]周智慧.发展性课堂教学评价体系探讨[J].教育探索,2010(6):47-48.

    [3]余林.教学心理学丛书——课堂教学评价[M].北京:人民教育出版社,2007(2):1-15.

    [4]杨世军.教师肢体语言的课堂效用[J].南昌高专学报,2010,25(5):92-93+104.

    [5]邓美德.论教师教学肢体语言的实然与应然[J].大理学院学报,2012,11(7):82-85.

    [6]Wei Yang,Shuang Li,Wanli Ouyang,et al.Learning Feature Pyramids for Human Pose Estimation[C].IEEE International Conference on Computer Vision,2017.

    [7]Alexander Toshev,Christian Szegedy. DeepPose: Human Pose Estimation via Deep Neural Networks[C].IEEE International Conference on Computer Vision,2014.

    [8]Zhe Cao,Tomas Simon,Shih-En Wei, et al. Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields[C].IEEE International Conference on Computer Vision,2017.

    [9]Josehp Redmon,Ali Farhadi.YOLO9000: Better, Faster, Stronger[C].IEEE International Conference on Computer Vision,2017.

    [10]王曙光,吕攀飞.改进YOLOv2的装甲车辆目标识别[J].计算机与现代化,2018(9):68-71+79.

    [11]束仁义,陈帅,王思贤,等.基于k-means的手势识别系统设计[J].廊坊师范学院学报(自然科学版),2019,19(1):46-50.

    [12]张素洁,赵怀慈.最优聚类个数和初始聚类中心点选取算法研究[J].计算机应用研究,2017,34(6):1617-1620.

    (编辑:鲁利瑞)