胡建華 劉曉林 鐘昀烽 羅貴祥 張浩賢
摘? 要:教學(xué)系統(tǒng)中的人機(jī)互動一直是智慧教育的重要研究議題,文章提出基于骨骼信息的手勢識別互動教學(xué)系統(tǒng)。系統(tǒng)采用姿態(tài)識別算法提取手勢關(guān)節(jié)點(diǎn)、基于關(guān)節(jié)點(diǎn)信息構(gòu)建LSTM神經(jīng)網(wǎng)絡(luò)模型,進(jìn)行模型訓(xùn)練預(yù)測,實(shí)現(xiàn)對手勢動作進(jìn)行識別,將手勢動作與課堂教學(xué)答題進(jìn)行體感交互,將課堂教學(xué)過程游戲化,讓學(xué)生不僅體驗(yàn)到體感交互課堂的樂趣,提高了學(xué)習(xí)興趣,也對課本上的知識理解更深刻。
關(guān)鍵詞:深度學(xué)習(xí);姿態(tài)識別;手勢識別
中圖分類號:TP391.4? 文獻(xiàn)標(biāo)識碼: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? 引? 言
隨著智慧校園建設(shè)工作的推進(jìn),我國中小學(xué)信息化教學(xué)逐漸從傳統(tǒng)的粉筆黑板課堂向交互式多媒體課堂轉(zhuǎn)變,但依然面臨著如何充分利用互聯(lián)網(wǎng)、大數(shù)據(jù)與人工智能促進(jìn)智慧課堂互動教學(xué)交互性差、學(xué)習(xí)者積極性差等新問題[1]。通過互聯(lián)網(wǎng)+智慧課堂使教育形式逐漸從傳統(tǒng)的紙質(zhì)教學(xué)轉(zhuǎn)為互聯(lián)網(wǎng)結(jié)合傳統(tǒng)形式教學(xué)[2]。
深度學(xué)習(xí)姿態(tài)識別與動作識別算法一直是人體分析的重要研究部分,是人工智能領(lǐng)域和計(jì)算機(jī)視覺領(lǐng)域中十分具有挑戰(zhàn)性的應(yīng)用與實(shí)踐,目前,也有學(xué)者將其應(yīng)用于課堂上如基于改進(jìn)SSD算法的學(xué)生課堂行為狀態(tài)識別[3]、基于深度學(xué)習(xí)的課堂行為識別[4]等。部分學(xué)者采用了基于OpenPose姿態(tài)估計(jì)方法進(jìn)行學(xué)生行為骨架提取,從而實(shí)現(xiàn)行為識別和動作交互[5]。同時提出采用姿態(tài)識別方法實(shí)現(xiàn)對手勢進(jìn)行識別[6,7],但是這些動作方法主要用于監(jiān)控課堂行為方面,因此本文采用深度學(xué)習(xí)手勢識別方法與課堂交互教學(xué)進(jìn)行結(jié)合,通過姿態(tài)識別檢測手勢,得到骨骼關(guān)鍵點(diǎn)信息,然后采用深度學(xué)習(xí)LSTM網(wǎng)絡(luò)對當(dāng)前手勢動作進(jìn)行識別。為了提高神經(jīng)網(wǎng)絡(luò)識別的準(zhǔn)確度,使用基于改進(jìn)的動作識別從而實(shí)現(xiàn)課堂的實(shí)時交互,增加學(xué)生和教師的課堂互動。通過識別肢體動作,進(jìn)行課堂互動教學(xué)以及積極參與教學(xué),能夠替代傳統(tǒng)課堂中僅僅只有聽和看這種互動式的教學(xué)方式,這不僅活躍了課堂的氣氛,而且還能讓學(xué)生更加容易地理解知識點(diǎn)。學(xué)生不只可以和老師進(jìn)行互動交流,還可以和其他的同學(xué)進(jìn)行相互交流,不僅加強(qiáng)了學(xué)生的參與感,還提升了學(xué)生的獨(dú)立思考能力,使得各個知識點(diǎn)得以融會貫通。同時,系統(tǒng)對平時參考課堂的數(shù)據(jù)進(jìn)行存儲分析,通過大數(shù)據(jù)可視化分析學(xué)生對知識的掌握情況,以及學(xué)生參與課堂的情況,教師可以根據(jù)情況對學(xué)生進(jìn)行全方位的了解,掌握學(xué)生所學(xué)知識的薄弱環(huán)節(jié),調(diào)整教學(xué)方法。還可以采用有效的教學(xué)手段實(shí)現(xiàn)每個同學(xué)的有效學(xué)習(xí),實(shí)現(xiàn)課堂學(xué)習(xí)互動教學(xué),讓學(xué)生在課堂上能聽、能看,更能參與體驗(yàn),活躍課堂氣氛,讓知識易于理解。在互動教學(xué)中,學(xué)生利用自有的熟悉的終端,來和同學(xué)教師互動、交流、學(xué)習(xí),這為學(xué)生提供更強(qiáng)的參與感,同時激發(fā)了學(xué)生的獨(dú)立思考能力,打通學(xué)習(xí)的各個環(huán)節(jié)。教師可以通過課堂大數(shù)據(jù)分析實(shí)時掌握學(xué)生對知識點(diǎn)的掌握情況,根據(jù)學(xué)生接受情況隨時調(diào)整教學(xué)方法,讓每個同學(xué)更有效地學(xué)習(xí)知識。
1? 系統(tǒng)概述與架構(gòu)
基于骨骼信息的手勢識別交互系統(tǒng)主要應(yīng)用于小學(xué)課堂,此系統(tǒng)圍繞讓學(xué)生擺脫被動學(xué)習(xí)的問題展開,使用游戲化場景吸引學(xué)生進(jìn)行課堂答題,通過將手勢動作轉(zhuǎn)化為答題選項(xiàng),克服傳統(tǒng)采用手工輸入體驗(yàn)差的缺點(diǎn),實(shí)現(xiàn)體感人機(jī)交互。通過攝像頭讀取視頻,然后采用深度學(xué)習(xí)姿態(tài)識別算法實(shí)現(xiàn)手的骨骼關(guān)節(jié)點(diǎn)檢測,得到手的21個關(guān)鍵點(diǎn)信息。然后采用循環(huán)神經(jīng)網(wǎng)絡(luò)LSTM進(jìn)行算法模型構(gòu)建,進(jìn)行當(dāng)前手勢的識別。系統(tǒng)分為前端與后端,前端實(shí)現(xiàn)游戲渲染,習(xí)題通過游戲化方式出現(xiàn);后端算法根據(jù)攝像頭視頻進(jìn)行實(shí)時算法識別,將結(jié)果反饋到前端,前端根據(jù)結(jié)果選擇對應(yīng)的答題,然后判斷對錯,同時通過打地鼠游戲來呈現(xiàn)識別結(jié)果,實(shí)現(xiàn)將游戲與教學(xué)相結(jié)合,提高學(xué)生學(xué)習(xí)效率,系統(tǒng)架構(gòu)如圖1所示。
本系統(tǒng)使用Python作為后端語言,使用Django作為開發(fā)框架,Django是一個由Python語言編寫的一個基于MVC模型的開源Web應(yīng)用框架,開發(fā)簡單高效,由于其采用Python編寫,能否與系統(tǒng)的后端算法實(shí)現(xiàn)無縫對接。基于Django框架能夠?yàn)橄到y(tǒng)搭建一個輕量級網(wǎng)站,簡單高效。其中Django采用MVC架構(gòu),其中M為Model(模型),V為View(視圖)C為Controller(控制器)。分別實(shí)現(xiàn)模型、視圖與控制器的分離。降低了程序的修改和擴(kuò)展難度,而且減少了代碼的耦合,使得代碼的重復(fù)利用成為可能。
系統(tǒng)前端采用主流的Web框架Vue.js進(jìn)行開發(fā),基于Vue.js對系統(tǒng)進(jìn)行響應(yīng)式設(shè)計(jì),上手簡單、開發(fā)效率高。Vue.js框架是輕量級以及漸進(jìn)式框架,能夠很方便地構(gòu)建用戶界面,采用了視圖與數(shù)據(jù)進(jìn)行分離架構(gòu),能夠很好地整合資源。本系統(tǒng)通過Vue.js設(shè)計(jì)前端,通過接口與django后端進(jìn)行通信,實(shí)現(xiàn)前后端分離與交互。
在大數(shù)據(jù)分析過程中采用Echarts進(jìn)行數(shù)據(jù)可視化,ECharts是一個由Javascript編寫的庫,能夠兼容不同的瀏覽器與客戶端,通過簡單的數(shù)據(jù)綁定與編程,實(shí)現(xiàn)直觀、生動,而且可高度個性化圖表,增強(qiáng)了用戶對數(shù)據(jù)的挖掘、整合的能力。數(shù)據(jù)可視化圖表庫通過配合后端數(shù)據(jù)進(jìn)行數(shù)據(jù)可視化。前后端交互采用Ajax進(jìn)行數(shù)據(jù)通信,由前端向后端發(fā)送Ajax請求,服務(wù)端給后端返回Json數(shù)據(jù)到前端進(jìn)行數(shù)據(jù)渲染,系統(tǒng)將手勢識別等游戲互動算法圖像通過前端渲染,采用WebSocket全雙工通信協(xié)議實(shí)現(xiàn)視頻雙向數(shù)據(jù)傳輸。WebSocket一種基于TCP的全雙工通信協(xié)議,因?yàn)樵谝曨l傳輸過程,需要高效的數(shù)據(jù)傳輸,因此采用WebSocket能夠?qū)崿F(xiàn)當(dāng)客戶端與服務(wù)器建立WebSocket連接后,客戶端和服務(wù)器就實(shí)現(xiàn)了雙向通信。而且一旦WebSocket通信建立后,客戶端或服務(wù)端就不需要重新發(fā)起連接請求。正是因?yàn)檫@一特性,WebSocket在實(shí)時傳輸反面具有明顯的優(yōu)勢,因此系統(tǒng)采用此種方法進(jìn)行視頻傳輸,提高效率。
2? 后端深度學(xué)習(xí)算法實(shí)現(xiàn)
姿態(tài)估計(jì)(pose estimation)在計(jì)算機(jī)視覺領(lǐng)域是一個非常重要的方向,人類動作理解、人機(jī)互動等應(yīng)用都需要精確的姿態(tài)識別。目前,絕大多數(shù)的2d姿態(tài)識別都是識別人體的關(guān)鍵點(diǎn),比如,給定一張普通的RGB圖像,算法會給出人體的腳踝、胳膊、面部等區(qū)域的關(guān)鍵點(diǎn)(keypoint),本文采用過姿態(tài)識別算法對手勢動作進(jìn)行關(guān)鍵點(diǎn)檢測,得到手勢動作序列,然后將30幀關(guān)節(jié)點(diǎn)數(shù)據(jù)作為輸入數(shù)據(jù),然后采用LSTM網(wǎng)絡(luò)模型進(jìn)行動作識別,得到當(dāng)前手勢的動作結(jié)果信息。
2.1? 姿態(tài)識別算法進(jìn)行骨骼點(diǎn)檢測
本文采用了開源項(xiàng)目MediaPipe進(jìn)行姿態(tài)識別手勢檢測。MediaPipe是一款由Google Research開發(fā)并開源的多媒體機(jī)器學(xué)習(xí)模型應(yīng)用框架。利用MediaPipe可以將感知管道構(gòu)建為模塊化組件的圖形,包括例如推理模型(例如TensorFlow、TFLite)和媒體處理功能。Mediapipe其中對應(yīng)手勢模塊(solutions.hands)函數(shù)能夠?qū)崿F(xiàn)手勢關(guān)節(jié)點(diǎn)檢測,具有非常高的算法準(zhǔn)確度。其主要采用深度學(xué)習(xí)姿態(tài)識別算法可以實(shí)現(xiàn)檢測手的21個點(diǎn)骨骼關(guān)節(jié)點(diǎn),如圖2所示。
2.2? 循環(huán)神經(jīng)網(wǎng)絡(luò)模型
當(dāng)采用姿態(tài)識別算法進(jìn)行骨骼點(diǎn)檢測后,傳統(tǒng)的方向主要是通過判斷各個關(guān)節(jié)點(diǎn)之間的角度進(jìn)行識別[8],其識別的準(zhǔn)確性以及穩(wěn)定性較差,因此本文采用LSTM神經(jīng)網(wǎng)絡(luò)進(jìn)行模型訓(xùn)練,提高動作識別的準(zhǔn)確率。LSTM可以看作是一個更高級的RNN系列,主要由五個不同部分組成:單元狀態(tài)、隱藏狀態(tài)、輸入門、忘記門、量輸出門。LSTM經(jīng)過精心設(shè)計(jì),可以避免RNN的梯度消失問題。首先對數(shù)據(jù)集進(jìn)行預(yù)處理,并且設(shè)置權(quán)重、對應(yīng)的標(biāo)簽類型等信息。然后進(jìn)行網(wǎng)絡(luò)模型訓(xùn)練,在模型訓(xùn)練過程,將調(diào)整調(diào)整模型中的層數(shù)、每層隱藏層的節(jié)點(diǎn)數(shù)以及激活函數(shù)等信息。最后,不斷更新權(quán)重,使損失逐步下降,達(dá)到比較好的動作識別效果。
本文采用的網(wǎng)經(jīng)結(jié)構(gòu)如圖3所示。
首先采用MediaPipe姿態(tài)識別對手勢進(jìn)行檢測,得到21個手關(guān)節(jié)點(diǎn)數(shù)的,每個數(shù)據(jù)3個分量組成,并且通過采集30幀連續(xù)圖像,得到的輸入圖像數(shù)據(jù)大小為30×21×3,然后分別通過4個LSTM網(wǎng)絡(luò)對特征進(jìn)行提取,最后通過3個全連接網(wǎng)絡(luò),得到最后的輸出。該網(wǎng)絡(luò)結(jié)構(gòu)較為簡單,正因?yàn)槿绱耍虼丝梢暂p松地使用網(wǎng)格搜索來找到最適合神經(jīng)網(wǎng)絡(luò)的超參數(shù),通過使用少量的例子得到很好的準(zhǔn)確率,具有較好商業(yè)推廣價(jià)值。同時不需要為不同光照下的每個手勢重新訓(xùn)練模型,因?yàn)镸ediaPipe實(shí)現(xiàn)不同環(huán)境下的姿態(tài)識別檢測工作。本文的網(wǎng)絡(luò)模型采用Keras深度學(xué)習(xí)框架進(jìn)行構(gòu)建,關(guān)鍵代碼如下所示:
model = Sequential()
model.add(LSTM(64, return_sequences=True, activation='relu', input_shape=(video_frame_length, 21*4)))#LSTM網(wǎng)絡(luò)層
model.add(LSTM(128, return_sequences=True, activation='relu'))#LSTM網(wǎng)絡(luò)層
model.add(LSTM(128, return_sequences=True, activation='relu'))#LSTM網(wǎng)絡(luò)層
model.add(LSTM(64, return_sequences=False, activation='relu'))#LSTM網(wǎng)絡(luò)層
model.add(Dense(64, activation='relu'))#全連接層
model.add(Dense(32, activation='relu'))#全連接層
model.add(Dense(actions.shape[0], activation='softmax'))#輸出層
編譯的網(wǎng)絡(luò)模型如圖4所示。
2.3? 手勢檢測結(jié)果
通過采用MediaPipe算法能夠?qū)崿F(xiàn)實(shí)時對手關(guān)節(jié)點(diǎn)進(jìn)行,然后采集連續(xù)的30幀關(guān)節(jié)點(diǎn)數(shù)據(jù),通過加載上述訓(xùn)練完成的LSTM神經(jīng)網(wǎng)絡(luò)模型,啟動手勢識別分類過程,攝像頭能夠得到手勢的識別結(jié)果,并且將檢測結(jié)果輸出到圖片上,左上角分別標(biāo)有動作識別的結(jié)果標(biāo)簽,如圖5所示。
3? 前端游戲設(shè)計(jì)與手勢識別交互
Web前端界面采用Vue框架進(jìn)行設(shè)計(jì),如圖6所示,通過手勢識別與前端游戲進(jìn)行互動,學(xué)生可自行選擇學(xué)習(xí)科目、游戲類型、游戲難度等。手勢游戲以打地鼠游戲?yàn)槔?,游戲答案分為四個選擇,分別對應(yīng)A、B、C、D四個選項(xiàng),在題目設(shè)計(jì)過程全部是選擇題的形式出現(xiàn)。通過深度學(xué)習(xí)姿態(tài)識別算法實(shí)現(xiàn)對手關(guān)節(jié)點(diǎn)進(jìn)行檢測,通過LSTM網(wǎng)絡(luò)進(jìn)行動作識別當(dāng)前學(xué)生的手勢動作,通過一定規(guī)則將手勢動作與答案選項(xiàng)進(jìn)行映射,例如1手勢對應(yīng)A選項(xiàng),2手勢對應(yīng)B選項(xiàng),3手勢對應(yīng)C選項(xiàng),比4手勢對應(yīng)C選項(xiàng)來進(jìn)行游戲互動。通過將手勢信息傳遞到游戲,實(shí)現(xiàn)體感游戲互動功能,這種通過肢體動作來進(jìn)行游戲答題,具有互動性強(qiáng),娛樂性強(qiáng),綜合性強(qiáng)的特點(diǎn),使學(xué)生可以邊學(xué)邊玩,能夠有效地進(jìn)行課堂互動,提高課堂教學(xué)質(zhì)量。
4? 實(shí)驗(yàn)分析
系統(tǒng)以網(wǎng)頁形式將攝像頭的實(shí)時手勢在前端窗口展示,后端算法實(shí)現(xiàn)實(shí)時的動作識別方法,將識別的結(jié)果反饋到前端,前端根據(jù)答題的結(jié)果實(shí)現(xiàn)實(shí)時的判斷,如果是正確打中地鼠,加分;如果不正確,地鼠不被打中,不加分,如圖6所示。本文將體感互動游戲融合在教學(xué)過程中,學(xué)生無需佩戴任何感應(yīng)設(shè)備,真正實(shí)現(xiàn)無接觸式人機(jī)互動,具有互動識別精準(zhǔn)、靈敏、穩(wěn)定、交互強(qiáng)的特點(diǎn)。能夠讓學(xué)生在學(xué)中玩,玩中學(xué),提高學(xué)生的學(xué)習(xí)興趣。
5? 結(jié)? 論
基于骨骼信息的手勢識別交互系統(tǒng)能將傳統(tǒng)的教師講授式教學(xué)方式轉(zhuǎn)變?yōu)榛邮浇虒W(xué),從傳遞知識到自主發(fā)展,學(xué)生能夠在課堂中通過肢體動作識別與習(xí)題練習(xí)相結(jié)合,通過游戲闖關(guān)的方法,能夠更好地參與到課堂活動中來,提高學(xué)生的積極性,極大地提高學(xué)習(xí)效率。教師和學(xué)生可通過課堂大數(shù)據(jù)分析實(shí)時掌握學(xué)生對知識點(diǎn)的掌握情況,根據(jù)學(xué)生接受情況隨時調(diào)整教學(xué)方法,讓每個同學(xué)真正地學(xué)習(xí)到知識點(diǎn)。通過手勢識別、姿態(tài)識別等深度學(xué)習(xí)算法與課堂游戲進(jìn)行結(jié)合,將課堂活動游戲化,實(shí)時進(jìn)行課堂互動。
參考文獻(xiàn):
[1] 翟雪松,史聰聰.《教育信息化十年發(fā)展規(guī)劃(2011-2020年)》的實(shí)施現(xiàn)狀、挑戰(zhàn)與展望 [J].現(xiàn)代教育技術(shù),2020,30(12):20-27.
[2] 葛永普.構(gòu)“六新”智慧課堂,促學(xué)生深度學(xué)習(xí) [J].貴州教育,2022(1):37-39.
[3] 董琪琪,劉劍飛,郝祿國,等.基于改進(jìn)SSD算法的學(xué)生課堂行為狀態(tài)識別 [J].計(jì)算機(jī)工程與設(shè)計(jì),2021,42(10):2924-2930.
[4] 胡建華,張軍,吳偉美,等.基于深度學(xué)習(xí)的課堂行為識別系統(tǒng) [J].電子技術(shù)與軟件工程,2021(20):103-105.
[5] 蘇超,王國中.基于改進(jìn)OpenPose的學(xué)生行為識別研究 [J].計(jì)算機(jī)應(yīng)用研究,2021,38(10):3183-3188.
[6] 吳彩芳,謝鈞,俞璐.基于骨骼和深度信息的手勢識別的研究與應(yīng)用 [J].計(jì)算機(jī)技術(shù)與發(fā)展,2016,26(8):200-204.
[7] 高翔.基于手勢識別的虛實(shí)交互技術(shù)研究 [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—),男,漢族,湖南婁底人,高級工程師,碩士,研究方向:圖像視頻處理、計(jì)算機(jī)視覺、深度學(xué)習(xí);通訊作者:劉曉林(1978—),男,漢族,湖南懷化人,高級工程師,碩士,研究方向:移動應(yīng)用開發(fā)、IT項(xiàng)目管理、虛擬現(xiàn)實(shí)。
收稿日期:2022-09-24
基金項(xiàng)目:2022年度廣州市基礎(chǔ)研究計(jì)劃基礎(chǔ)與應(yīng)用基礎(chǔ)研究項(xiàng)目(202201011753);廣東省教育廳青年創(chuàng)新人才類項(xiàng)目(2019GKQNCX043);廣東省教育廳2021年度普通高校重點(diǎn)科研項(xiàng)目(2021ZDZX3040);廣東省教育科學(xué)規(guī)劃課題(2018GXJK318)