牟莉 史政坤 陳逍遙
摘 ?要:當(dāng)前,很多城市展館的展覽方式具有單調(diào)、缺乏科技感和交互性不強(qiáng)的缺點(diǎn)。為了使智慧城市展館具有更高的科技性、更強(qiáng)的交互性以及更絢爛的界面觀賞性,利用Kinect2.0的骨骼追蹤,以及動作識別的特性和WPF界面編程,設(shè)計出一種可以用手勢進(jìn)行人機(jī)交互的城市展館展覽系統(tǒng)。參觀者和講解員可以通過手勢與系統(tǒng)進(jìn)行人機(jī)交互達(dá)到參觀和講解的目的,擴(kuò)展了展覽的靈活性,提高了展館的科技性,加深了觀眾的參觀感受。
關(guān)鍵詞:手勢識別;展覽系統(tǒng);Kinect2.0;人機(jī)交互
中圖分類號:TP311.1 ? ? 文獻(xiàn)標(biāo)識碼:A
Abstract:At present,the exhibition styles of many city pavilions have the disadvantages of monotony,lack the scientific and technological feeling and lack of interactivity.In order to make the smart city pavilion more scientific,interactive and more user-friendly,this paper uses Kinect2.0's bone tracking and motion recognition features and WPF interface programming to design a pavilion exhibition system that can be used for human-computer interaction through gestures.Visitors and lecturers can achieve the purpose of visit and explanation by interacting with the system through gestures,which expands the flexibility of the exhibition,improves the scientific and technological sense of the exhibition hall,and enhances the visit experience.
Keywords:gesture recognition;exhibition system;kinect2.0;Human-computer interaction
1 ? 引言(Introduction)
許多城市展館仍舊以傳統(tǒng)展覽方式為主,這種展覽和講解方式單調(diào)、科技性低、數(shù)據(jù)更新慢且人機(jī)交互困難,使得參觀者的收獲少甚至把觀看展覽當(dāng)成負(fù)擔(dān)[1]。當(dāng)前的界面交互技術(shù)多以鼠標(biāo)點(diǎn)擊進(jìn)行交互,這種交互方式將人牢牢的束縛在了電腦屏幕前,移動范圍無法超過鼠標(biāo)的使用范圍,這對于智慧城市展館的講解員來說是十分低效的,嚴(yán)重束縛了講解員的身體和能動性,機(jī)械教條的進(jìn)行講解工作[2]。AR技術(shù)的出現(xiàn)使得人們可以把虛擬世界套在現(xiàn)實世界中并進(jìn)行互動[3,4]。Kinect 2.0是AR技術(shù)的具體應(yīng)用,它可以把人體動作作為交互方式與計算機(jī)進(jìn)行交互。參觀者在攝像頭面前做出相應(yīng)的動作,當(dāng)Kinect 2.0檢測到動作時,觸發(fā)相應(yīng)的響應(yīng)事件,實現(xiàn)與展覽系統(tǒng)的人機(jī)交互。這種交互方式極大地提高了講解員的自由度和能動性,比傳統(tǒng)的展覽方式更加讓人舒服。
2 ? 系統(tǒng)構(gòu)架(System architecture)
2.1 ? 系統(tǒng)架構(gòu)
基于Kinect2.0的展覽系統(tǒng)的結(jié)構(gòu)綜上而下分為三個獨(dú)立的層級,分別是UI層、控制層和數(shù)據(jù)層。
(1)數(shù)據(jù)層位于系統(tǒng)最底層,提供系統(tǒng)正常運(yùn)行的基本數(shù)據(jù)。包括要展示的諸如工商數(shù)據(jù)、教育數(shù)據(jù)等基本展覽數(shù)據(jù),也包括Kinect實時控制數(shù)據(jù)。
(2)控制層:控制層的功能是為整個平臺的正常運(yùn)行提供各種運(yùn)算和控制,主要包括點(diǎn)擊按鈕,并實現(xiàn)要展示的詳情頁,觸發(fā)Kinect手勢實現(xiàn)觸發(fā)按鈕點(diǎn)擊功能,以及屏幕切換功能。
(3)UI層:UI層是對系統(tǒng)功能的最終表示,是直接與講解員交互以及供用戶觀看。
2.2 ? 展示方式
為了方便對展覽內(nèi)容的展示和人機(jī)交互,系統(tǒng)以三分屏的方式進(jìn)行展示,即左右兩個屏幕是進(jìn)行交互的系統(tǒng)選項,中間屏幕是進(jìn)行系統(tǒng)詳細(xì)信息的展示,采用這種方式的原因是,系統(tǒng)所展示的項目多,三個屏幕可以讓講解員和參觀者對于要展示的內(nèi)容一目了然,而不至于出現(xiàn)需要滾動條進(jìn)行滾動才能看到全部內(nèi)容的情況,而且也增加了人員在講解時的移動范圍,不至于交互過程中過于死板。
2.3 ? 動作識別
系統(tǒng)利用Kinect2.0獲取用戶的骨骼數(shù)據(jù)和關(guān)節(jié)的運(yùn)動軌跡來識別用戶的動作。Kinect2.0的硬件原理是由紅外投影儀主動投射近紅外光譜,照射到粗糙物體。光譜發(fā)生扭曲,會形成隨機(jī)的反射斑點(diǎn),進(jìn)而被深度攝像頭讀取,深度攝像頭分析讀到的宮外光譜得到紅外光譜并生成深度圖[5,6]。也由于此原理,Kinet2.0的骨骼識別與動作獲取不受光纖的影響,即使在很暗的地方,依然可以工作。
Kinect2.0的軟件編譯原理由五部分組成,分別是sensor、source、reader、frame、data[7]。
經(jīng)過硬件和軟件的共同作用可以生成人體的骨骼圖,kinect2.0一共可以繪制人體的25個關(guān)節(jié),通過25個關(guān)節(jié)的位置和角度的變化識別人體所作的動作,并觸發(fā)系統(tǒng)相應(yīng)的響應(yīng)事件達(dá)到人機(jī)交互的目的。
3 ? 系統(tǒng)設(shè)計與實現(xiàn)(System design and implementation)
3.1 ? 系統(tǒng)功能概述及目標(biāo)
Kinect2.0作為在展館中交互的工具,需提前定義好合法的動作,以體感人機(jī)交互為主,達(dá)到在展館中沉浸式參觀的目的。如果在參觀過程中,參觀者只能看一些單調(diào)的圖片、文字和演示文檔或是視頻,會降低參觀的體驗。Kinect2.0的骨骼追蹤和動作識別功能有效地克服了以上弊端,通過定義相關(guān)的手勢和動作來對系統(tǒng)進(jìn)行控制,把用鼠標(biāo)和鍵盤完成的動作全部用手勢來完成。參觀者和講解員只需用一些日常生活中的手勢就可以完成這些操作,其活動空間和便捷度明顯增加。系統(tǒng)定義三個屏幕,左右兩個屏幕放置控制面板,用戶通過手往前伸的操作來完成對按鈕的點(diǎn)擊,就像現(xiàn)實世界中,對按鈕的按壓一樣,將這個動作定義位“按壓”操作。反之,與用鼠標(biāo)一樣,點(diǎn)擊按鈕之后需要將鼠標(biāo)抬起來一樣,做完按壓動作之后,需要把手回到原來的狀態(tài),這個動作是手往后縮,就像現(xiàn)實世界中,按壓按鈕之后抬起手一樣,定義這個動作為“抬起”。同時,因為系統(tǒng)由三個屏幕,左右兩邊分別為控制區(qū)域,這就需要使用者在使用途中進(jìn)行控制區(qū)域的切換,需要將手的位置移出現(xiàn)在所在屏幕位置,并將手一如待切換屏的位置,就好像現(xiàn)實世界中拿東西,需要將手移動到待拿的物體身上,定義這個操作為“移動操作”。考慮到參觀人數(shù)眾多,設(shè)定手超過頭頂為獲得交互的動作,就像現(xiàn)實中點(diǎn)名一樣,點(diǎn)到名字的人舉手,把這個動作定義為“舉手”動作。當(dāng)某操作者放棄交互,需要將手放置下垂?fàn)顟B(tài),就像現(xiàn)實生活中,放下某物品后手恢復(fù)到自然狀態(tài),把這個動作定義為“放下”。系統(tǒng)核心的部分就是對這五個動作的準(zhǔn)確識別,達(dá)到一個比較高的準(zhǔn)確率。
3.2 ? 動作識別算法
Kinect2.0在進(jìn)行骨骼識別的過程中由三個坐標(biāo)系和兩個映射,三個坐標(biāo)系分別是現(xiàn)實空間坐標(biāo)、相機(jī)空間坐標(biāo)和屏幕坐標(biāo);兩個映射是現(xiàn)實空間到相機(jī)空間的映射,相機(jī)空間到屏幕空間的映射。第一個映射將空間世界轉(zhuǎn)換為以相機(jī)為中心原點(diǎn)的坐標(biāo),并建立以相機(jī)為中心原點(diǎn)的坐標(biāo)系,其坐標(biāo)為相對于相機(jī)中心的(X,Y,Z)坐標(biāo)值[6]。第二個映射將相機(jī)坐標(biāo)轉(zhuǎn)換為只有(X,Y)的屏幕坐標(biāo)并在屏幕上輸出。
3.3 ? 窗口界面
窗口界面總體分為三個,每一個窗口占用一個屏幕,左屏幕和右屏幕分別展示選項按鈕,按鈕風(fēng)格是由WPF的樣式風(fēng)格和模板風(fēng)格自定義。中間屏幕是對應(yīng)按鈕的詳情展示頁,當(dāng)用戶選中要展示的內(nèi)容時,中間屏幕會將選中內(nèi)容的詳細(xì)信息顯示出來,供講解員講解和用戶觀賞。三個屏幕布局的基本樣式如圖1所示。
4 ?關(guān)鍵技術(shù)及解決方案(Key technologies and solutions)
系統(tǒng)需要支撐大量的來自Kinect 2.0的數(shù)據(jù)進(jìn)行采集計算和應(yīng)用,這些數(shù)據(jù)的應(yīng)用和判斷方式多種多樣,為了保證系統(tǒng)的一致性、未來的擴(kuò)展性和易維護(hù)性,通過關(guān)鍵技術(shù)解決方案,最大的提高動作識別的準(zhǔn)確度和系統(tǒng)的流暢性,保證每一個過程數(shù)據(jù)的一致性。
4.1 ? 屏幕范圍設(shè)定
Kinect的工作原理是發(fā)射紅外線,并探測紅外光反射從而計算每一個關(guān)節(jié)點(diǎn)的位置,根據(jù)位置的變化來捕捉人體的動作,但是在系統(tǒng)運(yùn)行的大環(huán)境下,每個場景所運(yùn)用的顯示器的大小和分辨率不同,而且人體在移動時并不像操控鼠標(biāo)一樣有很大的限制,這就要求在不同環(huán)境和不同人使用的過程中,都應(yīng)在人的手移動很短的距離內(nèi)使指針像鼠標(biāo)一樣在人手很小的移動范圍內(nèi),指針可以遍布整個屏幕,而且要滿足人體工程學(xué),以人手臂的半徑為移動極限的范圍內(nèi)可以使指針移動整個屏幕,要想達(dá)到這個效果,要將人體肩關(guān)節(jié)的旋轉(zhuǎn)進(jìn)行歐拉角的計算,同時將手每移動一厘米的距離與屏幕指針移動的距離相適應(yīng),其具體方法是通過Kinect2.0來計算人肩膀到手的距離和兩肩膀的距離,從而得到人手的最大移動距離,以右手為例,右手向左移動最大距離是兩肩距離,向右移動距離是手臂的長度,再通過獲得屏幕分辨率從而得到手每移動一厘米的距離指針?biāo)苿拥南袼貑挝唬瑥亩采w整個屏幕區(qū)域。
4.2 ? 屏幕切換設(shè)計
在三分屏中,因為有兩個控制屏幕,所以需要進(jìn)行控制窗口的切換,以達(dá)到選擇不同功能的目的。Kinect 2.0是面向用戶的,與三個屏幕是在同一屏幕內(nèi)的,因此無法通過圖像識別的方法來進(jìn)行屏幕的切換,系統(tǒng)中使用的方法是位置標(biāo)定的方法,雖然Kinect 2.0無法獲取屏幕的位置,但是用戶是清楚屏幕的位置以及是否要進(jìn)行切換的。系統(tǒng)中對手進(jìn)行位置判定角度判定以及肘部的角度判定,當(dāng)手的位置已經(jīng)離開左屏幕的區(qū)域,當(dāng)手的X值達(dá)到系統(tǒng)設(shè)定的閾值時,同時肘的角度變化也達(dá)到閾值時,即進(jìn)行控制界面的切換,為了保證系統(tǒng)進(jìn)行屏幕切換的穩(wěn)定性,還應(yīng)進(jìn)行肩部歐拉角的旋轉(zhuǎn)角度,在實驗中,肘部角度的閾值由勾股定理進(jìn)行計算,一般值在120度認(rèn)為是右切換,30度認(rèn)為是從右往左切換。
4.3 ? 動作識別判定
(1)按壓動作的判定
按壓動作是用戶選中某一選項,想查看該選項具體內(nèi)容和動作,該動作的判定由手的位置的Z值的變化和肘部關(guān)節(jié)的角度變化共同約束和決定,該動作在充分考慮人體工程基礎(chǔ)上進(jìn)行設(shè)計,一般認(rèn)為人體小臂的向前舒展在10cm時最感覺舒適,因此在進(jìn)行位置移動的判定時也以此為基礎(chǔ),即當(dāng)RightHand/LeftHand.Postion.Z>10時進(jìn)行按壓動作的判定。同時,為了提高準(zhǔn)確度,進(jìn)行肘關(guān)節(jié)的勾股定理的判定,當(dāng)肘關(guān)節(jié)的變化值達(dá)到30度時認(rèn)為按壓操作的完成,而為了避免手在按壓操作時的抖動,設(shè)置前后左右的容差值距離在5以內(nèi)時,認(rèn)為時對該按鈕進(jìn)行按壓,當(dāng)系統(tǒng)檢測到按壓狀態(tài)之后觸發(fā)相應(yīng)的事件,詳情頁上顯示該按鈕的詳細(xì)信息。
(2)抬起動作的判定
抬起動作是用戶按壓完成后人本身進(jìn)行回收的動作,是人體的一個習(xí)慣性動作,回收動作的設(shè)計同樣考慮人體工程學(xué)進(jìn)行設(shè)計,雖然人在按壓動作時的距離是10cm但是在手臂回收的過程中總是習(xí)慣的回收至自己最舒適的位置,因為標(biāo)準(zhǔn)的不確定性,但最少也有5cm的移動,為了使用戶的人機(jī)交互能夠得到最佳的體驗狀態(tài),因此抬起的識別應(yīng)該比較寬松,將RightHand/LeftHand.Postion.Z>3時同時肘部的角度發(fā)生變化為該動作的判定依據(jù),當(dāng)滿足條件時就認(rèn)為抬起動作已經(jīng)發(fā)生,從而系統(tǒng)結(jié)束按鈕的響應(yīng)事件。
(3)舉手動作的判定
舉手動作是用戶獲得人機(jī)交互的動作,其判定依據(jù)是手的高度大于頭的高度,即RightHand/LeftHand.Postion.Z>Head.Potion.Y時發(fā)生[6],在考慮人體工程學(xué),舉手的高度不應(yīng)太高,一般認(rèn)為整個手的底端超多頭的高度最為適宜,所以閾值設(shè)置為15cm。同時,認(rèn)為該動作應(yīng)該是動態(tài)的而不是靜態(tài)的,即為了防止有人撓頭等行為的誤判,將高度值的變化檢測設(shè)置逐步遞增以及肘部關(guān)節(jié)角度同時發(fā)生變化,當(dāng)滿足全部條件時,系統(tǒng)檢測進(jìn)行人機(jī)交互,出現(xiàn)交互指針。
(4)放下動作的判定
放下動作是用戶放棄人機(jī)交互的動作,在考慮人體工程學(xué)的基礎(chǔ)上,認(rèn)為用戶放棄人機(jī)交互即進(jìn)入人站立的基本狀態(tài),即雙臂自然下垂,其判定依據(jù)是屏幕指針首先是進(jìn)入窗口的底端,其次是肘部的角度大約是180度而且手的Y值為肩關(guān)節(jié)的Y值加上手臂的長度。當(dāng)條件滿足時,系統(tǒng)停止人機(jī)交互并為下一個用戶的交互做準(zhǔn)備。
5 ? 系統(tǒng)測試及評估(System testing and evaluation)
5.1 ? 動作識別測試
為了評估系統(tǒng)的性能和動作識別的準(zhǔn)確度,由對六個人對四組動作分別進(jìn)行測試。在為了使環(huán)境與展館環(huán)境相似,在一人進(jìn)行測試時,其他人進(jìn)行動作的干擾,將測試結(jié)果盡可能地接近展館的真實環(huán)境,為了使動作更具有一般性和全面性,要求每個測試人員從開始至結(jié)束進(jìn)行動作30次。測試內(nèi)容從分別進(jìn)行舉手動作、指針全屏幕覆蓋、按壓動作、抬起動作、切換動作、放下動作的隨機(jī)動作的測試,以檢測系統(tǒng)對動作識別的準(zhǔn)確度和靈敏度。其具體動作的表示和效果如表1所示。
5.2 ? 測試結(jié)果分析
在實驗中,測試人員的主要工作是對動作識別靈敏度和準(zhǔn)確度進(jìn)行檢測,測試要求測試人員想要觸發(fā)的事件和系統(tǒng)實際觸發(fā)的事件是否一致,動作測試結(jié)果如表2所示。
5.3 ? 系統(tǒng)評估
實驗結(jié)果表明,動作識別率,除切換動作外都在95%以上,針對測試結(jié)果,對切換動作進(jìn)行調(diào)整,加大兩個屏幕切換的邊界位置閾值,將切換動作的識別率提高到了95%,而且實驗結(jié)果證明,即使在有人故意干擾的情況下系統(tǒng)仍可以正確運(yùn)行,證明了系統(tǒng)有一定的抗干擾性,沒有明顯波動和跳幀。從而實現(xiàn)了系統(tǒng)的設(shè)計目標(biāo)。
6 ? 結(jié)論(Conclusion)
本文描述了利用Kinect進(jìn)行動作識別,并應(yīng)用于展館系統(tǒng)的人機(jī)交互中,最后實驗數(shù)據(jù)充分驗證了該方法的有效性。方便了觀眾的參觀和講解員的講解,提高了展館的科技性,增加了展覽的趣味性,而且建設(shè)成本也比較低,進(jìn)一步擴(kuò)大了展館進(jìn)行展覽的方式。然而,本系統(tǒng)也存在缺陷,如參觀者不能隨自己的喜好隨意進(jìn)行動作的編排和設(shè)計,這也是下一步工作的目標(biāo)之一。
參考文獻(xiàn)(References)
[1] F Febriansyah,N A suwastika,H Fakhrurroja.Patient necessity notification system based on gesture recognition(Kinect V2) and internet of things using selection frame method[J].Journal of Physics: Conference Series,2019,1192(1):12051.
[2] Ohashi Isamu.Demonstration Experiment of AR Exhibition System Inducing User Behavior with Visual Incompatibility[C].Lecture Notes in Computer Science:Springer International Publishing,2019:174-186.
[3] Ahmed Mohammed-Hussein,Tahir sabir Azhin,Maghdid Halgur-Sarhang.Kinect-based Human Gait Recognition using Triangular Gird[C].1st International Conference on Advanced Research in Engineering Sciences, Institute of Electrical and Electronics Engineers Inc.,2018:8723293.
[4] 吳鵬.基于Kinect2_0手勢控制在多媒體教學(xué)中的應(yīng)用[J].軟件導(dǎo)刊,2017,16(4):84-85.
[5] 薛智宏.基于Kinect的原地太極拳輔助訓(xùn)練系統(tǒng)[J].河北科技大學(xué)學(xué)報,2017,38(2):183-188.
[6] 李紅波.基于Kinect骨骼數(shù)據(jù)的靜態(tài)三維手勢識別[J].計算機(jī)應(yīng)用與軟件,2015,32(9):161-165.
[7] TobySharp.Accurate,Robust,and FlexibleReal-timeHandTracking:SupplementaryMaterial[DB/OL].http://www.k4w.cn/news/1#.
[8] 王輝柏.基于Kinect的射擊游戲動作的設(shè)計方法研究[J].計算機(jī)仿真,2018,35(12):388-391.
[9] 吳曉雨.基于Kinect的手勢識別算法研究及應(yīng)用[J].計算機(jī)應(yīng)用與軟件,2015,32(7):173-176.
作者簡介:
牟 ? 莉(1972-),女,碩士,副教授.研究領(lǐng)域:智能化信息系統(tǒng),嵌入式系統(tǒng)應(yīng)用.
史政坤(1994-),男,碩士生.研究領(lǐng)域:智能化信息系統(tǒng).
陳逍遙(1994-),男,碩士生.研究領(lǐng)域:圖像識別.