李楊韜,禹東川,靳來(lái)鵬,宋文凱,劉金雙
(東南大學(xué) 兒童發(fā)展與學(xué)習(xí)科學(xué)教育部重點(diǎn)實(shí)驗(yàn)室,江蘇 南京 210096)
基于LeapMotion手勢(shì)識(shí)別的認(rèn)知訓(xùn)練系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn)
李楊韜,禹東川,靳來(lái)鵬,宋文凱,劉金雙
(東南大學(xué) 兒童發(fā)展與學(xué)習(xí)科學(xué)教育部重點(diǎn)實(shí)驗(yàn)室,江蘇 南京210096)
針對(duì)當(dāng)前兒童認(rèn)知訓(xùn)練系統(tǒng)缺乏自然的人機(jī)交互手段的缺陷,設(shè)計(jì)實(shí)現(xiàn)了一種高精度自然人機(jī)交互的認(rèn)知訓(xùn)練系統(tǒng)。詳細(xì)介紹了系統(tǒng)的實(shí)現(xiàn),設(shè)計(jì)了模仿類等認(rèn)知訓(xùn)練任務(wù),使用LeapMotion設(shè)備獲得手部實(shí)時(shí)數(shù)據(jù),并對(duì)其進(jìn)行計(jì)算處理后獲得手部動(dòng)作,利用Unity3D開(kāi)發(fā)3D任務(wù)場(chǎng)景客戶端,增加用戶臨場(chǎng)感。系統(tǒng)實(shí)現(xiàn)了訓(xùn)練場(chǎng)景自然的人機(jī)交互,展示了自然人機(jī)交互在兒童發(fā)展,虛擬現(xiàn)實(shí),醫(yī)療,健康等領(lǐng)域的美好應(yīng)用前景。
人機(jī)交互;LeapMotion;認(rèn)知訓(xùn)練;手勢(shì)識(shí)別
在兒童發(fā)展中,認(rèn)知訓(xùn)練已被證明是一種重要的提升兒童認(rèn)知能力的訓(xùn)練方式[1]。進(jìn)行認(rèn)知訓(xùn)練的方式有很多,近年來(lái),認(rèn)知訓(xùn)練交互方式出現(xiàn)了諸如基于平板,電子卡片,姿態(tài)控制等新興交互方式[2]。自然、高效的人機(jī)交互以輔助兒童認(rèn)知發(fā)展已經(jīng)成為一個(gè)熱門的研究方向[3]。目前,國(guó)內(nèi)外已有姿態(tài)交互方式進(jìn)行認(rèn)知訓(xùn)練的嘗試,如基于kinect動(dòng)作識(shí)別的認(rèn)知訓(xùn)練系統(tǒng)已取得了一定進(jìn)展[4],但其識(shí)別精度為4 cm[5],無(wú)法實(shí)現(xiàn)對(duì)精細(xì)動(dòng)作的識(shí)別。鑒于此,本文借助新興的LeapMotion高精度體感識(shí)別傳感器 (識(shí)別精度達(dá)0.01 mm[6]),研制了一套面向兒童的認(rèn)知訓(xùn)練系統(tǒng),并采用了3D虛擬場(chǎng)景設(shè)計(jì)技術(shù)[7],增加用戶的臨場(chǎng)感,以達(dá)到良好的認(rèn)知訓(xùn)練效果。
1.1系統(tǒng)需求分析
基于LeapMotion手勢(shì)識(shí)別的認(rèn)知訓(xùn)練系統(tǒng)需完成用戶各手勢(shì)的準(zhǔn)確識(shí)別,并在此基礎(chǔ)上完成認(rèn)知訓(xùn)練任務(wù)場(chǎng)景交互等功能。同時(shí),為了達(dá)到良好的自然人機(jī)交互效果,需要設(shè)計(jì)并實(shí)現(xiàn)生動(dòng)逼真的3D訓(xùn)練場(chǎng)景,并在此基礎(chǔ)上完成用戶管理,數(shù)據(jù)分析與管理等網(wǎng)絡(luò)化服務(wù),以幫助用戶進(jìn)行訓(xùn)練成效的評(píng)估。系統(tǒng)需求如圖1所示。
圖1 系統(tǒng)需求
1.1.1手勢(shì)識(shí)別
使用LeapMotion輔助設(shè)備進(jìn)行手勢(shì)識(shí)別。需要識(shí)別兒童民間游戲中使用到的常用手勢(shì),做到交互自然。利用分類算法進(jìn)行手勢(shì)分類。
1.1.2認(rèn)知訓(xùn)練任務(wù)
認(rèn)知訓(xùn)練常見(jiàn)的訓(xùn)練任務(wù)有模仿類訓(xùn)練任務(wù),抑制類訓(xùn)練任務(wù),粗大動(dòng)作類訓(xùn)練任務(wù),精細(xì)動(dòng)作類訓(xùn)練任務(wù)等[8,9]。需要實(shí)現(xiàn)以上幾類訓(xùn)練任務(wù)的訓(xùn)練場(chǎng)景。
1.1.33D交互場(chǎng)景
使用3D引擎完成角色動(dòng)作,需要實(shí)現(xiàn)角色移動(dòng),旋轉(zhuǎn),跳躍等。以及完成場(chǎng)景搭建與切換。
1.1.4網(wǎng)絡(luò)數(shù)據(jù)分析與管理
此模塊主要運(yùn)行在服務(wù)端,用于統(tǒng)計(jì)用戶訓(xùn)練數(shù)據(jù),展示效果。并管理各用戶訓(xùn)練數(shù)據(jù),提供分析的接口。
1.1.5用戶管理
為保證數(shù)據(jù)的安全性和用戶的數(shù)據(jù)獨(dú)立性,需要采用先注冊(cè)再登錄的模式,才能進(jìn)入系統(tǒng)進(jìn)行訓(xùn)練。
1.2系統(tǒng)架構(gòu)
認(rèn)知訓(xùn)練系統(tǒng)使用手勢(shì)識(shí)別設(shè)備作為交互的底層支持,用戶通過(guò)自然的手勢(shì)交互完成與認(rèn)知訓(xùn)練任務(wù)場(chǎng)景的互動(dòng),通過(guò)模仿,抑制訓(xùn)練等方式提高用戶認(rèn)知能力,同時(shí)記錄用戶數(shù)據(jù),放于云端,以便用戶查詢。本系統(tǒng)客戶端使用Unity3D開(kāi)發(fā)3D任務(wù)場(chǎng)景,使用戶更好地融入場(chǎng)景中。系統(tǒng)使用C/S模式,服務(wù)端使用Node.js與MongoDB開(kāi)發(fā)。系統(tǒng)的架構(gòu)如圖2所示。
圖2 系統(tǒng)架構(gòu)
2.1客戶端
本系統(tǒng)前端為桌面客戶端程序,桌面客戶端主要運(yùn)行有手勢(shì)識(shí)別模塊,訓(xùn)練任務(wù)場(chǎng)景模塊以及歷史結(jié)果查詢模塊。
2.1.1手勢(shì)識(shí)別模塊
LeapMotion提供手部各個(gè)關(guān)節(jié)的單位方向向量[10-11],以手掌中心為坐標(biāo)原點(diǎn)建立坐標(biāo)系,將各方向向量進(jìn)行坐標(biāo)變換統(tǒng)一到此坐標(biāo)系下的向量后,進(jìn)行夾角計(jì)算。蜷縮度是以單根手指各骨關(guān)節(jié)之間的夾角組成的向量來(lái)表達(dá),除大拇指外其余4根手指有3個(gè)關(guān)節(jié),大拇指有2個(gè)關(guān)節(jié),通過(guò)計(jì)算骨于骨之間的夾角得到彎曲程度,一只手的蜷縮度是由14個(gè)值組成的向量。通過(guò)收集20位被試的手勢(shì)蜷縮度信息,使用線性判別分析(Linear Discriminant Analysis LDA)[12]線性分類器進(jìn)行數(shù)據(jù)分類,從而完成手勢(shì)識(shí)別工作。
其中w為計(jì)算得到的LDA投影向量[13],xi為訓(xùn)練樣本,計(jì)算得到該類樣本的分類情況cith對(duì)所有分類值進(jìn)行算術(shù)平均,再以平均值間的一半距離作為分類閾值,最終得到手勢(shì)分類閾值如下所示:
其中,cjth為第j類手勢(shì)下的樣本分類平均值,Cjth為同一分類的分類閾值。通過(guò)計(jì)算,以“剪刀石頭布”民間兒童游戲常用手勢(shì)為例,得到表1所示的分類效果。
表1 民間兒童游戲手勢(shì)閾值
在實(shí)際應(yīng)用時(shí),將獲得的實(shí)時(shí)數(shù)據(jù)與投影向量相乘,將得到的值與表1的閾值進(jìn)行比較。由于分類器已經(jīng)得到,所以手勢(shì)數(shù)據(jù)的計(jì)算不需要經(jīng)過(guò)復(fù)雜的運(yùn)算,直接通過(guò)編寫好的分類器進(jìn)行輸入,手勢(shì)識(shí)別的實(shí)時(shí)性良好。
2.1.2訓(xùn)練任務(wù)場(chǎng)景設(shè)計(jì)及實(shí)現(xiàn)
認(rèn)知訓(xùn)練任務(wù)是整個(gè)系統(tǒng)的核心??傮w來(lái)說(shuō),訓(xùn)練任務(wù)場(chǎng)景設(shè)計(jì)一要符合認(rèn)知任務(wù)的需要,二要具有一定的趣味性,三要交互的無(wú)障礙性,要將兒童精力更多的集中到場(chǎng)景中,而不是無(wú)關(guān)的操作過(guò)程[14-15]。文中以模仿類任務(wù)來(lái)具體闡述認(rèn)知訓(xùn)練任務(wù)的設(shè)計(jì)思路。模仿作為兒童認(rèn)知發(fā)展的重要手段,通過(guò)模仿,兒童不僅可以學(xué)會(huì)各種技能,更好地了解他周圍的世界,獲得許多認(rèn)知經(jīng)驗(yàn),還可以在模仿的過(guò)程中得到許多愉悅的情緒感受[16]。任務(wù)場(chǎng)景交互手勢(shì)選用具有娛樂(lè)性的民間兒童游戲[17]中的常用手勢(shì)。以民間兒童游戲“剪刀石頭布”為例,將其用到的三種手勢(shì)作為模仿的基本手勢(shì),并進(jìn)行多個(gè)數(shù)量的組合,從而得到多個(gè)場(chǎng)景交互手段,再通過(guò)3D虛擬場(chǎng)景,增強(qiáng)兒童的場(chǎng)景沉浸感。模仿類任務(wù)第一關(guān)要求兒童按照提示出示單個(gè)相關(guān)手勢(shì),第二關(guān)要求兒童按順序出示2次相關(guān)手勢(shì),第三關(guān)依此類推。初始游戲場(chǎng)景內(nèi)會(huì)有一個(gè)虛擬交互角色,游戲開(kāi)始后在屏幕左上角會(huì)出現(xiàn)游戲提示手勢(shì),以示意兒童模仿該手勢(shì),完成“剪刀石頭布”游戲。在此期間系統(tǒng)會(huì)不斷捕捉用戶手勢(shì),記錄捕捉到的手勢(shì),當(dāng)捕捉到正確的手勢(shì)后,系統(tǒng)播放提示音,同時(shí)虛擬交互角色給出相應(yīng)語(yǔ)音和動(dòng)作反饋,當(dāng)兒童完成一關(guān)任務(wù)后,系統(tǒng)將本關(guān)手勢(shì)識(shí)別正確率提交到后端,以記錄該次任務(wù)成績(jī)??蛻舳酥饕褂肬nity3D進(jìn)行場(chǎng)景及程序設(shè)計(jì),利用Unity3D引擎完成一些常見(jiàn)的物體運(yùn)動(dòng)。進(jìn)入場(chǎng)景,在無(wú)任何用戶輸入的情況下,虛擬角色進(jìn)行隨機(jī)循環(huán)走動(dòng),通過(guò)對(duì)移動(dòng)向量的計(jì)算,再對(duì)角色轉(zhuǎn)角進(jìn)行插值,使角色轉(zhuǎn)動(dòng)過(guò)程平滑,可以逐步移動(dòng)到指定位置。以一場(chǎng)景中虛擬海豚為例,在Unity3D引擎中設(shè)計(jì)好8個(gè)布置于海洋場(chǎng)景內(nèi)部固定的不可見(jiàn)的游動(dòng)點(diǎn),海豚初始于其中隨機(jī)一點(diǎn),下一個(gè)移動(dòng)點(diǎn)為除上一點(diǎn)外的7個(gè)點(diǎn)中的隨機(jī)一個(gè)點(diǎn),如此循環(huán),海豚在海洋內(nèi)進(jìn)行隨機(jī)巡游。海豚表演采用類似手法,在場(chǎng)景中布置好表演的點(diǎn)位,當(dāng)手勢(shì)識(shí)別結(jié)果正確后,海豚會(huì)移動(dòng)到此點(diǎn)位,并根據(jù)表演性質(zhì)不斷改變海豚坐標(biāo),以完成一次海豚表演。
2.2服務(wù)端
由于服務(wù)端都是提供網(wǎng)絡(luò)服務(wù),又由于Node.js采用事件驅(qū)動(dòng)、異步編程,為網(wǎng)絡(luò)服務(wù)而設(shè)計(jì)[18],Node.js輕量高效,開(kāi)發(fā)便捷。所以服務(wù)端主要是使用Node.js編寫,使用express框架,并編寫URL路由處理模塊。數(shù)據(jù)庫(kù)使用Mongodb,運(yùn)行于Linux系統(tǒng)。服務(wù)端主要實(shí)現(xiàn)2個(gè)模塊,用戶驗(yàn)證,數(shù)據(jù)管理。都以JSON接口方式提供服務(wù),對(duì)于所設(shè)計(jì)的接口,在實(shí)現(xiàn)時(shí)需要注意水平權(quán)限問(wèn)題。
2.2.1Web層
由于Node.js是以異步方式編程,為了達(dá)到類似同步編程效果,引入Async庫(kù)進(jìn)行異步流程控制。Web層主要提供如表2所示的主要Web接口。
表2 主要Web接口
2.2.2業(yè)務(wù)邏輯層
業(yè)務(wù)邏輯層作為系統(tǒng)中間層,利用數(shù)據(jù)接入層提供的數(shù)據(jù),計(jì)算用戶使用系統(tǒng)的頻率,并進(jìn)行用戶歷史數(shù)據(jù)分析等,以供上層各請(qǐng)求調(diào)用。
2.2.3數(shù)據(jù)接入層
由于MongoDB屬于非關(guān)系型數(shù)據(jù)庫(kù),且提供了面向文檔的存儲(chǔ),所以其操作起來(lái)比較簡(jiǎn)單和容易。利用npm引入Mongoose,MongoDB Node.js Driver,對(duì) mongodb中的 User,Score等集合編寫增刪改查等數(shù)據(jù)訪問(wèn)層接口以供上層訪問(wèn),分別提供用戶信息,積分信息的數(shù)據(jù)接入服務(wù)。
文中主要研究了LeapMotion手勢(shì)識(shí)別在認(rèn)知訓(xùn)練系統(tǒng)上的應(yīng)用,為了驗(yàn)證系統(tǒng)的可行性和運(yùn)行效果,先進(jìn)行LeapMotion手勢(shì)識(shí)別正確率測(cè)試。由30位被試進(jìn)行手勢(shì)正確率測(cè)試,每位被試按照系統(tǒng)提示出示表1中各手勢(shì),每類手勢(shì)共隨機(jī)出現(xiàn)5次,最終統(tǒng)計(jì)手勢(shì)識(shí)別正確率如表3所示。
表3 手勢(shì)識(shí)別正確率
由此可見(jiàn),系統(tǒng)手勢(shì)識(shí)別正確率較高,可用于自然人機(jī)交互的需要。系統(tǒng)在實(shí)際應(yīng)用中,采用Unity3D作為3D呈現(xiàn)引擎,場(chǎng)景畫面運(yùn)行流暢,手勢(shì)響應(yīng)及時(shí)準(zhǔn)確,采用Node.js后端,系統(tǒng)數(shù)據(jù)傳輸穩(wěn)定,效果十分優(yōu)異。圖3所示為某用戶按照?qǐng)鼍爱嬅孀笊辖翘崾居贚eapMotion設(shè)備上方做出 “剪刀”手勢(shì),圖4所示為某用戶模仿類任務(wù)的訓(xùn)練情況。
圖3 手勢(shì)訓(xùn)練任務(wù)
圖4 訓(xùn)練結(jié)果呈現(xiàn)
文中介紹了基于 LeapMotion手勢(shì)識(shí)別的認(rèn)知訓(xùn)練系統(tǒng),利用3D游戲形式增加了任務(wù)臨場(chǎng)感,并將云服務(wù)與認(rèn)知訓(xùn)練有效結(jié)合,提供了更便捷、更有效的訓(xùn)練手段,為認(rèn)知訓(xùn)練系統(tǒng)設(shè)計(jì)提供了思路。認(rèn)知訓(xùn)練作為一種重要的提升兒童認(rèn)知能力的訓(xùn)練方式,會(huì)對(duì)兒童智力、學(xué)習(xí)、推理、創(chuàng)造力等高級(jí)認(rèn)知活動(dòng)的發(fā)展產(chǎn)生影響,通過(guò)相應(yīng)的認(rèn)知訓(xùn)練任務(wù),兒童在智力水平等方面可以得到有效的提高,特別是對(duì)患有孤獨(dú)癥譜系障礙的兒童的認(rèn)知訓(xùn)練具有借鑒價(jià)值和實(shí)用價(jià)值。
[1]Belleville S.Cognitive training for persons with mild cognitive impairment[J].International Psychogeriatrics,2008,20(1):57-66.
[2]Abikoff H.Cognitive training in ADHD children:Less to it than meets the eye[J].Journal of learning Disabilities,1991,24(4):205-209.
[3]D'Amico G,Del Bimbo A,Dini F,et al.Natural Human-Computer Interaction[M].Multimedia Interaction and Intelligent User Interfaces.Springer London,2010:85-106.
[4]張毅,張爍,羅元,等.基于Kinect深度圖像信息的手勢(shì)軌跡識(shí)別及應(yīng)用[J].計(jì)算機(jī)應(yīng)用研究,2012,29(9):3547-3550.
[5]黃健.基于Kinect系統(tǒng)運(yùn)動(dòng)采集的康復(fù)訓(xùn)練平臺(tái)的研究與設(shè)計(jì)[D].成都:電子科技大學(xué),2013.
[6]Guna J,Jakus G,Pogaanik M,et al.An analysis of the precision and reliability of the leap motion sensor and its suitability for static and dynamic tracking[J].Sensors,2014,14(2):3702-3720.
[7]Wang S,Mao Z,Zeng C,et al.A new method of virtual reality based on Unity3D[C].Geoinformatics,2010 18th International Conference on.IEEE,2010:1-5.
[8]王君,陳天勇.抑制控制與高級(jí)認(rèn)知功能的關(guān)系[J].心理科學(xué)進(jìn)展,2012,20(11):1768-1778.
[9]Ulrich D A.Test of gross motor development-2[J].Austin:Prod-Ed,2000.
[10]Hodson H.Leap motion hacks show potential of new gesture tech[J].New Scientist,2013,218(29):21.
[11]Khademi M,MousaviHondori H,McKenzie A,et al.Freehand interaction with leap motion controller for stroke rehabilitation[C].CHI'14 Extended Abstracts on Human Factors in Computing Systems.ACM,2014:1663-1668.
[12]Ye J,Janardan R,Li Q.Two-dimensional linear discriminant analysis[C].Advances in neural information processing systems,2004:1569-1576.
[13]Scholkopft B,Mullert K R.Fisher discriminant analysis with kernels[J].Neural networks for signal processing IX,1999,(1):1.
[14]Sharma R,Pavlovic V,Huang T S.Toward multimodal humancomputer interface[J].Proceedings of the IEEE,1998,86(5):853-869.
[15]RautaraySS,AgrawalA.Visionbasedhandgesture recognition for human computer interaction:a survey[J]. Artificial Intelligence Review,2015,43(1):1-54.
[16]賈湘柳.模仿的認(rèn)知基礎(chǔ)及其對(duì)外語(yǔ)教學(xué)的啟示[J].衡陽(yáng)師范學(xué)院學(xué)報(bào),2006,27(4):158-161.
[17]邱學(xué)青.論民間兒童游戲的教育價(jià)值[J].教育導(dǎo)刊,1997:2.
[18]Kovatsch M,Lanter M,Duquennoy S.Actinium:A restful runtime container for scriptable internet of things applications[C]//Internet of Things(IOT),2012 3rd International Conference on theIEEE,2012:135-142.
The design and implement of cognitive training system based on leapMotion gesture recognition
LI Yang-tao,YU Dong-chuan,JIN Lai-peng,SONG Wen-kai,LIU Jin-shuang
(China Key Laboratory of Ministry of Education,Child Development Learning Science,Southeast University,Nanjing 210096,China)
Aiming at the defects of natural Human-Computer interaction in the current children's cognitive training system,a kind of cognitive training system with high accuracy and natural Human-Computer interaction is designed and realized.This paper introduces the implementation of the training system,designs cognitive training tasks such as mitation taskand so on. Using the LeapMotion device to obtain the real-time data,the system can get the hand action after the calculation.Meanwhile,the 3D client is developed by Unity3D whick aims at enhancing user's presence.The system has realized the natural Human-Computer interaction in the training scene,and has demonstrated the good application prospect in the field of virtual reality,medical treatment,health and other fields.
human-computer interaction;leapMotion;cognitive training;gesture recognition
TN02
A
1674-6236(2016)09-0012-03
2015-12-16稿件編號(hào):201512182
國(guó)家自然科學(xué)基金項(xiàng)目(61273224)
李楊韜(1990—),男,貴州凱里人,碩士研究生。研究方向:人機(jī)交互、手勢(shì)識(shí)別。