人機交互多媒體教學系統(tǒng)淺析
王濤
(西安航空學院 現(xiàn)代教育技術(shù)中心,陜西 西安 710077)
摘要:在傳統(tǒng)的多媒體教學中,教師對PPT的播放幾乎都通過鼠標和鍵盤的操作來完成,如此在某種程度上增加了學生和教師之間的距離感,減少了師生之間的交流,降低了互動性。隨著人機交互技術(shù)的提出和應用,特別是kinect設備的出現(xiàn),完美地解決了這些弊端,在kinect設備上通過編碼來控制PPT的自動播放,以實現(xiàn)人機交互。
關(guān)鍵詞:多媒體教學;人機交互技術(shù);kinect設備
收稿日期:2014-11-30
作者簡介:王濤(1984-),男,陜西西安人,助教,從事計算機圖形圖像處理和游戲開發(fā)方面的研究。
中圖分類號:TP311.52文獻標識碼:A
0引言
隨著計算機時代的到來,人們的工作、生活和學習越來越離不開電腦。傳統(tǒng)意義上人和計算機的交互是通過輸入和輸出設備來完成,如鼠標、鍵盤、手柄和觸摸屏等。到目前為止則已經(jīng)可通過體感傳感器來交互,如在《鋼鐵俠》系列電影中主人公通過手勢和動作可對電腦設備進行一些系列的操作。體感交互技術(shù)是目前人機交互技術(shù)中最為前沿和熱門的領(lǐng)域之一,其中以基于微軟kinect的應用開發(fā)最為廣泛[1]。在傳統(tǒng)的多媒體教學中,老師對PPT和視頻的播放都通過鼠標和鍵盤的操作來完成,有的則使用PPT翻頁筆(如藍牙筆)。由于鼠標、鍵盤與講臺綁在一起,這就將教師限制在講臺之上,如此在某種程度上增加了學生和教師之間的距離感,減少了師生之間的交流,降低教學過程中的互動性[2],從而影響教學質(zhì)量。遙控設備雖提供了一種方便可靠的方法,但是受到硬件的限制,其功能只限于切換幻燈片。而基于kinect的人機交互則可完美地解決以上缺點。
1人機交互多媒體教學系統(tǒng)的設計
在多媒體教學中較多地使用PPT的播放。針對PPT的播放,本系統(tǒng)通過手勢交互或語音交互來完成相關(guān)功能。使用visual studio的WPF框架進行編寫[3],整個交互系統(tǒng)的流程如圖1所示。
首先,完成Kinect的初始化工作并啟動設備,然后獲取骨骼和語音數(shù)據(jù);其次,在空間位置中持續(xù)追蹤操作者的動作,并根據(jù)其產(chǎn)生數(shù)據(jù)來判斷PPT的相應播放。當需要結(jié)束PPT的放映時,通過動作來終止。
圖1 人機交互系統(tǒng)的流程
PPT播放功能的實現(xiàn)大體分為:人體動作、Windows API函數(shù)的調(diào)用、發(fā)送和語音的相關(guān)判斷。
1.1系統(tǒng)采用的人體動作
①右手抬起到頭頂控制PPT下翻頁,判斷條件為HandRight.Position.y < head.position.y+0.35m;
②左手抬起到頭頂控制PPT上翻頁,判斷條件為HandLeft.Position.y< head.position.y+0.35m;
③雙手舉起時控制結(jié)束PPT放映,判斷條件為:(HandRight.Position.y-ShouderRight.y > 0.35m)&&(HandLeft.Position.y-ShouderLeft.y >0.35m)。
考慮到使用kinect提供的骨骼數(shù)據(jù)流,用幀與幀之間數(shù)據(jù)比較的方法,檢測一定時間內(nèi)相對運動的幅度以及次數(shù)。為取得較好的效果,本文采用對30幀/秒骨骼數(shù)據(jù)進行記錄,檢測左、右手的x、y方向位置變動,設定35cm的范圍內(nèi)則認為發(fā)生了相關(guān)動作。識別出左、右手動作發(fā)生之后,根據(jù)相應判斷來調(diào)用windows API函數(shù)分別模擬鼠標左鍵的點擊、鍵盤的游標控制鍵區(qū)“↑”以及發(fā)送windows消息關(guān)閉PPT。
1.2Windows API函數(shù)的調(diào)用發(fā)送
相應的Windows API函數(shù),通過發(fā)送消息到PowerPoint窗口來實現(xiàn)操作。具體如下:
①鼠標左鍵的按下操作??赡M向窗口發(fā)送數(shù)據(jù),通過調(diào)用函數(shù)SetWindowPos來設置窗口位置,SetCursorPos來設置鼠標位置,mouse_event(0x0002, 0, 0, 0, 0)模擬鼠標按下操作,mouse_event(0x0004, 0, 0, 0, 0)模擬鼠標放開操作。
②鍵盤光標鍵的操作,用SendKeys.Send("{DOWN_ARROW}")模擬鍵盤輸入“↓”, SendKeys.Send("{UP_ARROW}")模擬鍵盤輸入“↑”。
1.3聲音的控制
語音識別是自然人機交互很重要的一個方面。Microsoft Speech SDK v11.0作為Kinect SDK v1.5的組件被安裝,包含一個自定義的聲學模型。Kinect SDK 利用Microsoft.Speech API的最新聲學算法,應用程序可以進行語音識別和語音控制。同樣在啟動Kinect設備后,初始化音頻數(shù)據(jù)流并注冊語音識別引擎,用于語音播放PPT,可以在SpeechRecognized事件中判斷語音內(nèi)容是“cursor down”、“cursor up”和“PowerPoint exit”。目前還不支持中文語音識別。根據(jù)具體語音內(nèi)容的不同設置不同邏輯變量,然后再根據(jù)邏輯變量值來調(diào)用Windows API函數(shù)來對PPT進行相應操作。
2人機交互多媒體教學系統(tǒng)相關(guān)方法和參數(shù)意義
2.1C#下調(diào)用Windows API方法[4]
用C#調(diào)用Windows API向指定窗口發(fā)送按鍵消息的方法流程:
①調(diào)用Windows API。先引入命名空間using System.Runtime.InteropServices;然后引用需要使用的方法,格式為[DllImport(“DLL文件”)]方法的聲明;
②找到目標窗口,先根據(jù)窗口的標題得到句柄,然后遍歷所有窗口得到句柄;
③向指定的窗口輸入數(shù)據(jù),利用發(fā)送消息API(SendMessage)向窗口發(fā)送數(shù)據(jù)或利用鼠標和鍵盤模擬向窗口發(fā)送數(shù)據(jù)。
2.2鼠標左鍵操作的相關(guān)參數(shù)
dwFlags常數(shù)意義:const int MOUSEEVENTF_LEFTDOWN=0x0002模擬鼠標左鍵按下,const int MOUSEEVENTF_LEFTUP = 0x0004,模擬鼠標左鍵抬起;鍵盤按下和彈起的參數(shù)bVk的常數(shù)為: const int WM_KEYDOWN = 0X100和private const int WM_KEYUP = 0X101。
2.3一個簡單kinect設備編程的模型步驟[5]
①在MainWindow.xaml.cs文件中定義一個KinectSensor的私有成語變量;
②編寫startkinect()方法,包括各種數(shù)據(jù)流的格式;
③初始化選項后,進行彩色圖像、深度圖像、骨骼跟蹤同步事件的注冊;
④完成彩色視頻流、深度數(shù)據(jù)和骨骼跟蹤事件處理的相應代碼;
⑤在程序的開始和結(jié)束注意Kinect設備關(guān)停操作即可。
在PPT播放時,為避免多次重復發(fā)送鍵盤事件,本文采用邏輯控制變量來每次判斷操作的動作,保證一次動作只發(fā)送一次消息事件,如此來增加操作的準確性。
3人機交互系統(tǒng)的結(jié)果和搭建環(huán)境所需設備
3.1人機交互測試的結(jié)果(見表1)
表1 測試結(jié)果統(tǒng)計
本程序用Microsoft Visual studio 2012的WPF框架編寫,使用語言為C#,整個工程視圖見圖2。
3.2搭建環(huán)境的設備
硬件需求:電腦主機CPU雙核,2.66GHZ以上;顯卡要支持Microsoft DirectX 9.0c;內(nèi)存需要2G以上;一臺Kinect for Windows開發(fā)版設備;一根專用的電源適配器。
軟件需求:Windows 7以上操作系統(tǒng);Microsoft Visual studio 2012以上版本;Microsoft .NET Framework 4.5以上;Kinect for Windows SDK 1.8[6]。
圖2 PPT播放程序
4人機交互發(fā)展趨勢
隨著微軟第2代Kinect for Windows和Kinect for Windows SDK 2.0正式版發(fā)布,將進一步在科研工作者和開發(fā)者社區(qū)中掀起一波創(chuàng)新熱潮,目前kinect已經(jīng)在各大領(lǐng)域大顯身手[7],在娛樂、游戲方面,各種人機交互的體感游戲不斷出現(xiàn)和更新,如隔空切水果、激情世界杯、俄羅斯方塊以及一些大型的、操作簡單的游戲,使人們充分體驗了游戲帶來的樂趣;在中國傳統(tǒng)文化方面,有完全利用骨骼元素將紙片人串起,表現(xiàn)豐富的皮影戲、通過手勢在人面部滑動而改變臉譜的川劇變臉以及無繩的虛擬放風箏等;在機械控制領(lǐng)域,用戶可通過體感實現(xiàn)虛擬3D空間中的機箱安裝、查看、旋轉(zhuǎn)、縮放、配線及移除等操作和徒手控制直升機等;在醫(yī)療領(lǐng)域,手術(shù)中醫(yī)生僅用動作即可控制醫(yī)療影像的播放、快進和暫停等,實現(xiàn)了方便快捷且無菌的操作;在輔助工具方面,也得到了長足的應用[8]??梢哉fkinect是一種革新的理念和技術(shù),隨著科技不斷發(fā)展它會不斷出現(xiàn)在我們的生活中。
5結(jié)語
在大學課堂中,多媒體教學的比重越來越大,而多媒體教學中PPT課件的應用最為廣泛,傳統(tǒng)鼠標、鍵盤和藍牙筆對PPT的操作弊端越來越凸顯,本文通過Kinect手勢和聲音控制PPT,經(jīng)過試驗得到很好的效果。
在今后的研究中,首先對該系統(tǒng)的算法進行優(yōu)化處理以達到最佳的性能;其次多媒體教學中還存在少量的文件打開、視頻播放和word的操作等,后續(xù)可為該系統(tǒng)增加這些方面的功能。
參考文獻
[1] 朱明茗,景紅.基于Kinect的PPT控制系統(tǒng)研究[J].中國教育信息化,2014(9):80-82.
[2] 馬建榮,章蘇靜.基于體感技術(shù)的親子互動游戲設計與實現(xiàn)[J].中國電化教育,2012(9):85-88.
[3] 鮑峰,盧稼奇,黎楚秦.基于Kinect的人機交互演示系統(tǒng)[J].計算機與現(xiàn)代化,2013(10):46-50.
[4] (美)Matthew MacDonald.WPF編程寶典-C#2010版[M]. 王德才,譯.北京:清華大學出版社,2011: 21-200.
[5] 微軟.KinectforWindowsSDK開發(fā)入門.[213-03-30]http://www.cnblogs.com/yangecnu/archive/2012/03/30/2425766.html.
[6] 李健,路飛,田國會,等.基于Kinect的PPT全自動控制系統(tǒng)研究[J].計算機工程與應用,2013,49(17) :133-138.
[7] 吳國斌,李斌,閻驥洲.人機交互開發(fā)實踐[M].北京:人民郵電出版社,2012:4-9.
[8] 余濤.Kinect用開發(fā)實踐用最自然的方式與機器對話[M].北京:機械工業(yè)出版社,2013:185-188.
[責任編輯、校對:梁春燕]
On Human-computer Interactive Multimedia Teaching System
WANGTao
(Modern Education Technological Center, Xi'an Aeronautical University, Xi'an 710077, China)
Abstract:In the traditional multimedia teaching, teachers play PPT almost completely through mouse and keyboard, so to some extent, this increases the distance between students and teachers, reduces the communication between teachers and students, and lowers their interactivities. The creation and application of human-computer interaction technology, especially kinect equipment, completely solved these shortcomings. PPT is played automatically through codes on kinect equipment so as to realize human-computer interaction.
Key words:multimedia teaching; human-computer interaction; kinect equipment