胡建华 刘晓林 钟昀烽 罗贵祥 张浩贤
摘 要:教学系统中的人机互动一直是智慧教育的重要研究议题,文章提出基于骨骼信息的手势识别互动教学系统。系统采用姿态识别算法提取手势关节点、基于关节点信息构建LSTM神经网络模型,进行模型训练预测,实现对手势动作进行识别,将手势动作与课堂教学答题进行体感交互,将课堂教学过程游戏化,让学生不仅体验到体感交互课堂的乐趣,提高了学习兴趣,也对课本上的知识理解更深刻。
关键词:深度学习;姿态识别;手势识别
中图分类号:TP391.4 文献标识码:A 文章編号:2096-4706(2023)03-0079-04
Hand Gesture Recognition Interaction System Based on Skeletal Information
HU Jianhua1, LIU Xiaolin1, ZHONG Yunfeng1, LUO Guixiang2, ZHANG Haoxian1
(1.Computer Engineering Technical College, Guangdong Polytechnic of Science and Technology, Zhuhai 519090, China;
2.School of Computer Science, Guangdong Polytechnic Normal University, Guangzhou 510665, China)
Abstract: The human-computer interaction in teaching systems is an important research topic in smart education. This paper proposes the hand gesture recognition interactive teaching system based on skeletal information. The system extracts hand gesture nodes using a gesture recognition algorithm, builds an LSTM neural network model based on the node information, performs model training and prediction, recognizes hand gesture actions, physically interacts the hand gesture actions with classroom teaching and answering questions, and achieves the gamification of the classroom teaching process. So that students not only enjoy the fun of the physically interactive classroom, but also improve their interest in learning, and have a deeper understanding of the knowledge in the textbooks.
Keywords: deep learning; gesture recognition; hand gesture recognition
0 引 言
随着智慧校园建设工作的推进,我国中小学信息化教学逐渐从传统的粉笔黑板课堂向交互式多媒体课堂转变,但依然面临着如何充分利用互联网、大数据与人工智能促进智慧课堂互动教学交互性差、学习者积极性差等新问题[1]。通过互联网+智慧课堂使教育形式逐渐从传统的纸质教学转为互联网结合传统形式教学[2]。
深度学习姿态识别与动作识别算法一直是人体分析的重要研究部分,是人工智能领域和计算机视觉领域中十分具有挑战性的应用与实践,目前,也有学者将其应用于课堂上如基于改进SSD算法的学生课堂行为状态识别[3]、基于深度学习的课堂行为识别[4]等。部分学者采用了基于OpenPose姿态估计方法进行学生行为骨架提取,从而实现行为识别和动作交互[5]。同时提出采用姿态识别方法实现对手势进行识别[6,7],但是这些动作方法主要用于监控课堂行为方面,因此本文采用深度学习手势识别方法与课堂交互教学进行结合,通过姿态识别检测手势,得到骨骼关键点信息,然后采用深度学习LSTM网络对当前手势动作进行识别。为了提高神经网络识别的准确度,使用基于改进的动作识别从而实现课堂的实时交互,增加学生和教师的课堂互动。通过识别肢体动作,进行课堂互动教学以及积极参与教学,能够替代传统课堂中仅仅只有听和看这种互动式的教学方式,这不仅活跃了课堂的气氛,而且还能让学生更加容易地理解知识点。学生不只可以和老师进行互动交流,还可以和其他的同学进行相互交流,不仅加强了学生的参与感,还提升了学生的独立思考能力,使得各个知识点得以融会贯通。同时,系统对平时参考课堂的数据进行存储分析,通过大数据可视化分析学生对知识的掌握情况,以及学生参与课堂的情况,教师可以根据情况对学生进行全方位的了解,掌握学生所学知识的薄弱环节,调整教学方法。还可以采用有效的教学手段实现每个同学的有效学习,实现课堂学习互动教学,让学生在课堂上能听、能看,更能参与体验,活跃课堂气氛,让知识易于理解。在互动教学中,学生利用自有的熟悉的终端,来和同学教师互动、交流、学习,这为学生提供更强的参与感,同时激发了学生的独立思考能力,打通学习的各个环节。教师可以通过课堂大数据分析实时掌握学生对知识点的掌握情况,根据学生接受情况随时调整教学方法,让每个同学更有效地学习知识。
1 系统概述与架构
基于骨骼信息的手势识别交互系统主要应用于小学课堂,此系统围绕让学生摆脱被动学习的问题展开,使用游戏化场景吸引学生进行课堂答题,通过将手势动作转化为答题选项,克服传统采用手工输入体验差的缺点,实现体感人机交互。通过摄像头读取视频,然后采用深度学习姿态识别算法实现手的骨骼关节点检测,得到手的21个关键点信息。然后采用循环神经网络LSTM进行算法模型构建,进行当前手势的识别。系统分为前端与后端,前端实现游戏渲染,习题通过游戏化方式出现;后端算法根据摄像头视频進行实时算法识别,将结果反馈到前端,前端根据结果选择对应的答题,然后判断对错,同时通过打地鼠游戏来呈现识别结果,实现将游戏与教学相结合,提高学生学习效率,系统架构如图1所示。
本系统使用Python作为后端语言,使用Django作为开发框架,Django是一个由Python语言编写的一个基于MVC模型的开源Web应用框架,开发简单高效,由于其采用Python编写,能否与系统的后端算法实现无缝对接。基于Django框架能够为系统搭建一个轻量级网站,简单高效。其中Django采用MVC架构,其中M为Model(模型),V为View(视图)C为Controller(控制器)。分别实现模型、视图与控制器的分离。降低了程序的修改和扩展难度,而且减少了代码的耦合,使得代码的重复利用成为可能。
系统前端采用主流的Web框架Vue.js进行开发,基于Vue.js对系统进行响应式设计,上手简单、开发效率高。Vue.js框架是轻量级以及渐进式框架,能够很方便地构建用户界面,采用了视图与数据进行分离架构,能够很好地整合资源。本系统通过Vue.js设计前端,通过接口与django后端进行通信,实现前后端分离与交互。
在大数据分析过程中采用Echarts进行数据可视化,ECharts是一个由Javascript编写的库,能够兼容不同的浏览器与客户端,通过简单的数据绑定与编程,实现直观、生动,而且可高度个性化图表,增强了用户对数据的挖掘、整合的能力。数据可视化图表库通过配合后端数据进行数据可视化。前后端交互采用Ajax进行数据通信,由前端向后端发送Ajax请求,服务端给后端返回Json数据到前端进行数据渲染,系统将手势识别等游戏互动算法图像通过前端渲染,采用WebSocket全双工通信协议实现视频双向数据传输。WebSocket一种基于TCP的全双工通信协议,因为在视频传输过程,需要高效的数据传输,因此采用WebSocket能够实现当客户端与服务器建立WebSocket连接后,客户端和服务器就实现了双向通信。而且一旦WebSocket通信建立后,客户端或服务端就不需要重新发起连接请求。正是因为这一特性,WebSocket在实时传输反面具有明显的优势,因此系统采用此种方法进行视频传输,提高效率。
2 后端深度学习算法实现
姿态估计(pose estimation)在计算机视觉领域是一个非常重要的方向,人类动作理解、人机互动等应用都需要精确的姿态识别。目前,绝大多数的2d姿态识别都是识别人体的关键点,比如,给定一张普通的RGB图像,算法会给出人体的脚踝、胳膊、面部等区域的关键点(keypoint),本文采用过姿态识别算法对手势动作进行关键点检测,得到手势动作序列,然后将30帧关节点数据作为输入数据,然后采用LSTM网络模型进行动作识别,得到当前手势的动作结果信息。
2.1 姿态识别算法进行骨骼点检测
本文采用了开源项目MediaPipe进行姿态识别手势检测。MediaPipe是一款由Google Research开发并开源的多媒体机器学习模型应用框架。利用MediaPipe可以将感知管道构建为模块化组件的图形,包括例如推理模型(例如TensorFlow、TFLite)和媒体处理功能。Mediapipe其中对应手势模块(solutions.hands)函数能够实现手势关节点检测,具有非常高的算法准确度。其主要采用深度学习姿态识别算法可以实现检测手的21个点骨骼关节点,如图2所示。
2.2 循环神经网络模型
当采用姿态识别算法进行骨骼点检测后,传统的方向主要是通过判断各个关节点之间的角度进行识别[8],其识别的准确性以及稳定性较差,因此本文采用LSTM神经网络进行模型训练,提高动作识别的准确率。LSTM可以看作是一个更高级的RNN系列,主要由五个不同部分组成:单元状态、隐藏状态、输入门、忘记门、量输出门。LSTM经过精心设计,可以避免RNN的梯度消失问题。首先对数据集进行预处理,并且设置权重、对应的标签类型等信息。然后进行网络模型训练,在模型训练过程,将调整调整模型中的层数、每层隐藏层的节点数以及激活函数等信息。最后,不断更新权重,使损失逐步下降,达到比较好的动作识别效果。
本文采用的网经结构如图3所示。
首先采用MediaPipe姿态识别对手势进行检测,得到21个手关节点数的,每个数据3个分量组成,并且通过采集30帧连续图像,得到的输入图像数据大小为30×21×3,然后分别通过4个LSTM网络对特征进行提取,最后通过3个全连接网络,得到最后的输出。该网络结构较为简单,正因为如此,因此可以轻松地使用网格搜索来找到最适合神经网络的超参数,通过使用少量的例子得到很好的准确率,具有较好商业推广价值。同时不需要为不同光照下的每个手势重新训练模型,因为MediaPipe实现不同环境下的姿态识别检测工作。本文的网络模型采用Keras深度学习框架进行构建,关键代码如下所示:
model = Sequential()
model.add(LSTM(64, return_sequences=True, activation='relu', input_shape=(video_frame_length, 21*4)))#LSTM网络层
model.add(LSTM(128, return_sequences=True, activation='relu'))#LSTM网络层
model.add(LSTM(128, return_sequences=True, activation='relu'))#LSTM网络层
model.add(LSTM(64, return_sequences=False, activation='relu'))#LSTM网络层
model.add(Dense(64, activation='relu'))#全连接层
model.add(Dense(32, activation='relu'))#全连接层
model.add(Dense(actions.shape[0], activation='softmax'))#输出层
编译的网络模型如图4所示。
2.3 手势检测结果
通过采用MediaPipe算法能够实现实时对手关节点进行,然后采集连续的30帧关节点数据,通过加载上述训练完成的LSTM神经网络模型,启动手势识别分类过程,摄像头能够得到手势的识别结果,并且将检测结果输出到图片上,左上角分别标有动作识别的结果标签,如图5所示。
3 前端游戏设计与手势识别交互
Web前端界面采用Vue框架进行设计,如图6所示,通过手势识别与前端游戏进行互动,学生可自行选择学习科目、游戏类型、游戏难度等。手势游戏以打地鼠游戏为例,游戏答案分为四个选择,分别对应A、B、C、D四个选项,在题目设计过程全部是选择题的形式出现。通过深度学习姿态识别算法实现对手关节点进行检测,通过LSTM网络进行动作识别当前学生的手势动作,通过一定规则将手势动作与答案选项进行映射,例如1手势对应A选项,2手势对应B选项,3手势对应C选项,比4手势对应C选项来进行游戏互动。通过将手势信息传递到游戏,实现体感游戏互动功能,这种通过肢体动作来进行游戏答题,具有互动性强,娱乐性强,综合性强的特点,使学生可以边学边玩,能够有效地进行课堂互动,提高课堂教学质量。
4 实验分析
系统以网页形式将摄像头的实时手势在前端窗口展示,后端算法实现实时的动作识别方法,将识别的结果反馈到前端,前端根据答题的结果实现实时的判断,如果是正确打中地鼠,加分;如果不正确,地鼠不被打中,不加分,如图6所示。本文将体感互动游戏融合在教学过程中,学生无需佩戴任何感應设备,真正实现无接触式人机互动,具有互动识别精准、灵敏、稳定、交互强的特点。能够让学生在学中玩,玩中学,提高学生的学习兴趣。
5 结 论
基于骨骼信息的手势识别交互系统能将传统的教师讲授式教学方式转变为互动式教学,从传递知识到自主发展,学生能够在课堂中通过肢体动作识别与习题练习相结合,通过游戏闯关的方法,能够更好地参与到课堂活动中来,提高学生的积极性,极大地提高学习效率。教师和学生可通过课堂大数据分析实时掌握学生对知识点的掌握情况,根据学生接受情况随时调整教学方法,让每个同学真正地学习到知识点。通过手势识别、姿态识别等深度学习算法与课堂游戏进行结合,将课堂活动游戏化,实时进行课堂互动。
参考文献:
[1] 翟雪松,史聪聪.《教育信息化十年发展规划(2011-2020年)》的实施现状、挑战与展望 [J].现代教育技术,2020,30(12):20-27.
[2] 葛永普.构“六新”智慧课堂,促学生深度学习 [J].贵州教育,2022(1):37-39.
[3] 董琪琪,刘剑飞,郝禄国,等.基于改进SSD算法的学生课堂行为状态识别 [J].计算机工程与设计,2021,42(10):2924-2930.
[4] 胡建华,张军,吴伟美,等.基于深度学习的课堂行为识别系统 [J].电子技术与软件工程,2021(20):103-105.
[5] 苏超,王国中.基于改进OpenPose的学生行为识别研究 [J].计算机应用研究,2021,38(10):3183-3188.
[6] 吴彩芳,谢钧,俞璐.基于骨骼和深度信息的手势识别的研究与应用 [J].计算机技术与发展,2016,26(8):200-204.
[7] 高翔.基于手势识别的虚实交互技术研究 [J].电子制作,2022,30(9):88-90+52.
[8] PALACIOS J M,SAG??S C,MONTIJANO E,et al. Human-Computer Interaction Based on Hand Gestures Using RGB-D Sensors [J].Sensors,2013,13(9):11842-11860.
作者简介:胡建华(1984—),男,汉族,湖南娄底人,高级工程师,硕士,研究方向:图像视频处理、计算机视觉、深度学习;通讯作者:刘晓林(1978—),男,汉族,湖南怀化人,高级工程师,硕士,研究方向:移动应用开发、IT项目管理、虚拟现实。
收稿日期:2022-09-24
基金项目:2022年度广州市基础研究计划基础与应用基础研究项目(202201011753);广东省教育厅青年创新人才类项目(2019GKQNCX043);广东省教育厅2021年度普通高校重点科研项目(2021ZDZX3040);广东省教育科学规划课题(2018GXJK318)