牟莉 史政坤 陳逍遙



摘 ?要:當前,很多城市展館的展覽方式具有單調、缺乏科技感和交互性不強的缺點。為了使智慧城市展館具有更高的科技性、更強的交互性以及更絢爛的界面觀賞性,利用Kinect2.0的骨骼追蹤,以及動作識別的特性和WPF界面編程,設計出一種可以用手勢進行人機交互的城市展館展覽系統。參觀者和講解員可以通過手勢與系統進行人機交互達到參觀和講解的目的,擴展了展覽的靈活性,提高了展館的科技性,加深了觀眾的參觀感受。
關鍵詞:手勢識別;展覽系統;Kinect2.0;人機交互
中圖分類號:TP311.1 ? ? 文獻標識碼: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)
許多城市展館仍舊以傳統展覽方式為主,這種展覽和講解方式單調、科技性低、數據更新慢且人機交互困難,使得參觀者的收獲少甚至把觀看展覽當成負擔[1]。當前的界面交互技術多以鼠標點擊進行交互,這種交互方式將人牢牢的束縛在了電腦屏幕前,移動范圍無法超過鼠標的使用范圍,這對于智慧城市展館的講解員來說是十分低效的,嚴重束縛了講解員的身體和能動性,機械教條的進行講解工作[2]。AR技術的出現使得人們可以把虛擬世界套在現實世界中并進行互動[3,4]。Kinect 2.0是AR技術的具體應用,它可以把人體動作作為交互方式與計算機進行交互。參觀者在攝像頭面前做出相應的動作,當Kinect 2.0檢測到動作時,觸發相應的響應事件,實現與展覽系統的人機交互。這種交互方式極大地提高了講解員的自由度和能動性,比傳統的展覽方式更加讓人舒服。
2 ? 系統構架(System architecture)
2.1 ? 系統架構
基于Kinect2.0的展覽系統的結構綜上而下分為三個獨立的層級,分別是UI層、控制層和數據層。
(1)數據層位于系統最底層,提供系統正常運行的基本數據。包括要展示的諸如工商數據、教育數據等基本展覽數據,也包括Kinect實時控制數據。
(2)控制層:控制層的功能是為整個平臺的正常運行提供各種運算和控制,主要包括點擊按鈕,并實現要展示的詳情頁,觸發Kinect手勢實現觸發按鈕點擊功能,以及屏幕切換功能。
(3)UI層:UI層是對系統功能的最終表示,是直接與講解員交互以及供用戶觀看。
2.2 ? 展示方式
為了方便對展覽內容的展示和人機交互,系統以三分屏的方式進行展示,即左右兩個屏幕是進行交互的系統選項,中間屏幕是進行系統詳細信息的展示,采用這種方式的原因是,系統所展示的項目多,三個屏幕可以讓講解員和參觀者對于要展示的內容一目了然,而不至于出現需要滾動條進行滾動才能看到全部內容的情況,而且也增加了人員在講解時的移動范圍,不至于交互過程中過于死板。
2.3 ? 動作識別
系統利用Kinect2.0獲取用戶的骨骼數據和關節的運動軌跡來識別用戶的動作。Kinect2.0的硬件原理是由紅外投影儀主動投射近紅外光譜,照射到粗糙物體。光譜發生扭曲,會形成隨機的反射斑點,進而被深度攝像頭讀取,深度攝像頭分析讀到的宮外光譜得到紅外光譜并生成深度圖[5,6]。也由于此原理,Kinet2.0的骨骼識別與動作獲取不受光纖的影響,即使在很暗的地方,依然可以工作。
Kinect2.0的軟件編譯原理由五部分組成,分別是sensor、source、reader、frame、data[7]。
經過硬件和軟件的共同作用可以生成人體的骨骼圖,kinect2.0一共可以繪制人體的25個關節,通過25個關節的位置和角度的變化識別人體所作的動作,并觸發系統相應的響應事件達到人機交互的目的。
3 ? 系統設計與實現(System design and implementation)
3.1 ? 系統功能概述及目標
Kinect2.0作為在展館中交互的工具,需提前定義好合法的動作,以體感人機交互為主,達到在展館中沉浸式參觀的目的。如果在參觀過程中,參觀者只能看一些單調的圖片、文字和演示文檔或是視頻,會降低參觀的體驗。Kinect2.0的骨骼追蹤和動作識別功能有效地克服了以上弊端,通過定義相關的手勢和動作來對系統進行控制,把用鼠標和鍵盤完成的動作全部用手勢來完成。參觀者和講解員只需用一些日常生活中的手勢就可以完成這些操作,其活動空間和便捷度明顯增加。系統定義三個屏幕,左右兩個屏幕放置控制面板,用戶通過手往前伸的操作來完成對按鈕的點擊,就像現實世界中,對按鈕的按壓一樣,將這個動作定義位“按壓”操作。反之,與用鼠標一樣,點擊按鈕之后需要將鼠標抬起來一樣,做完按壓動作之后,需要把手回到原來的狀態,這個動作是手往后縮,就像現實世界中,按壓按鈕之后抬起手一樣,定義這個動作為“抬起”。同時,因為系統由三個屏幕,左右兩邊分別為控制區域,這就需要使用者在使用途中進行控制區域的切換,需要將手的位置移出現在所在屏幕位置,并將手一如待切換屏的位置,就好像現實世界中拿東西,需要將手移動到待拿的物體身上,定義這個操作為“移動操作”??紤]到參觀人數眾多,設定手超過頭頂為獲得交互的動作,就像現實中點名一樣,點到名字的人舉手,把這個動作定義為“舉手”動作。當某操作者放棄交互,需要將手放置下垂狀態,就像現實生活中,放下某物品后手恢復到自然狀態,把這個動作定義為“放下”。系統核心的部分就是對這五個動作的準確識別,達到一個比較高的準確率。
3.2 ? 動作識別算法
Kinect2.0在進行骨骼識別的過程中由三個坐標系和兩個映射,三個坐標系分別是現實空間坐標、相機空間坐標和屏幕坐標;兩個映射是現實空間到相機空間的映射,相機空間到屏幕空間的映射。第一個映射將空間世界轉換為以相機為中心原點的坐標,并建立以相機為中心原點的坐標系,其坐標為相對于相機中心的(X,Y,Z)坐標值[6]。第二個映射將相機坐標轉換為只有(X,Y)的屏幕坐標并在屏幕上輸出。
3.3 ? 窗口界面
窗口界面總體分為三個,每一個窗口占用一個屏幕,左屏幕和右屏幕分別展示選項按鈕,按鈕風格是由WPF的樣式風格和模板風格自定義。中間屏幕是對應按鈕的詳情展示頁,當用戶選中要展示的內容時,中間屏幕會將選中內容的詳細信息顯示出來,供講解員講解和用戶觀賞。三個屏幕布局的基本樣式如圖1所示。
4 ?關鍵技術及解決方案(Key technologies and solutions)
系統需要支撐大量的來自Kinect 2.0的數據進行采集計算和應用,這些數據的應用和判斷方式多種多樣,為了保證系統的一致性、未來的擴展性和易維護性,通過關鍵技術解決方案,最大的提高動作識別的準確度和系統的流暢性,保證每一個過程數據的一致性。
4.1 ? 屏幕范圍設定
Kinect的工作原理是發射紅外線,并探測紅外光反射從而計算每一個關節點的位置,根據位置的變化來捕捉人體的動作,但是在系統運行的大環境下,每個場景所運用的顯示器的大小和分辨率不同,而且人體在移動時并不像操控鼠標一樣有很大的限制,這就要求在不同環境和不同人使用的過程中,都應在人的手移動很短的距離內使指針像鼠標一樣在人手很小的移動范圍內,指針可以遍布整個屏幕,而且要滿足人體工程學,以人手臂的半徑為移動極限的范圍內可以使指針移動整個屏幕,要想達到這個效果,要將人體肩關節的旋轉進行歐拉角的計算,同時將手每移動一厘米的距離與屏幕指針移動的距離相適應,其具體方法是通過Kinect2.0來計算人肩膀到手的距離和兩肩膀的距離,從而得到人手的最大移動距離,以右手為例,右手向左移動最大距離是兩肩距離,向右移動距離是手臂的長度,再通過獲得屏幕分辨率從而得到手每移動一厘米的距離指針所移動的像素單位,從而覆蓋整個屏幕區域。
4.2 ? 屏幕切換設計
在三分屏中,因為有兩個控制屏幕,所以需要進行控制窗口的切換,以達到選擇不同功能的目的。Kinect 2.0是面向用戶的,與三個屏幕是在同一屏幕內的,因此無法通過圖像識別的方法來進行屏幕的切換,系統中使用的方法是位置標定的方法,雖然Kinect 2.0無法獲取屏幕的位置,但是用戶是清楚屏幕的位置以及是否要進行切換的。系統中對手進行位置判定角度判定以及肘部的角度判定,當手的位置已經離開左屏幕的區域,當手的X值達到系統設定的閾值時,同時肘的角度變化也達到閾值時,即進行控制界面的切換,為了保證系統進行屏幕切換的穩定性,還應進行肩部歐拉角的旋轉角度,在實驗中,肘部角度的閾值由勾股定理進行計算,一般值在120度認為是右切換,30度認為是從右往左切換。
4.3 ? 動作識別判定
(1)按壓動作的判定
按壓動作是用戶選中某一選項,想查看該選項具體內容和動作,該動作的判定由手的位置的Z值的變化和肘部關節的角度變化共同約束和決定,該動作在充分考慮人體工程基礎上進行設計,一般認為人體小臂的向前舒展在10cm時最感覺舒適,因此在進行位置移動的判定時也以此為基礎,即當RightHand/LeftHand.Postion.Z>10時進行按壓動作的判定。同時,為了提高準確度,進行肘關節的勾股定理的判定,當肘關節的變化值達到30度時認為按壓操作的完成,而為了避免手在按壓操作時的抖動,設置前后左右的容差值距離在5以內時,認為時對該按鈕進行按壓,當系統檢測到按壓狀態之后觸發相應的事件,詳情頁上顯示該按鈕的詳細信息。
(2)抬起動作的判定
抬起動作是用戶按壓完成后人本身進行回收的動作,是人體的一個習慣性動作,回收動作的設計同樣考慮人體工程學進行設計,雖然人在按壓動作時的距離是10cm但是在手臂回收的過程中總是習慣的回收至自己最舒適的位置,因為標準的不確定性,但最少也有5cm的移動,為了使用戶的人機交互能夠得到最佳的體驗狀態,因此抬起的識別應該比較寬松,將RightHand/LeftHand.Postion.Z>3時同時肘部的角度發生變化為該動作的判定依據,當滿足條件時就認為抬起動作已經發生,從而系統結束按鈕的響應事件。
(3)舉手動作的判定
舉手動作是用戶獲得人機交互的動作,其判定依據是手的高度大于頭的高度,即RightHand/LeftHand.Postion.Z>Head.Potion.Y時發生[6],在考慮人體工程學,舉手的高度不應太高,一般認為整個手的底端超多頭的高度最為適宜,所以閾值設置為15cm。同時,認為該動作應該是動態的而不是靜態的,即為了防止有人撓頭等行為的誤判,將高度值的變化檢測設置逐步遞增以及肘部關節角度同時發生變化,當滿足全部條件時,系統檢測進行人機交互,出現交互指針。
(4)放下動作的判定
放下動作是用戶放棄人機交互的動作,在考慮人體工程學的基礎上,認為用戶放棄人機交互即進入人站立的基本狀態,即雙臂自然下垂,其判定依據是屏幕指針首先是進入窗口的底端,其次是肘部的角度大約是180度而且手的Y值為肩關節的Y值加上手臂的長度。當條件滿足時,系統停止人機交互并為下一個用戶的交互做準備。
5 ? 系統測試及評估(System testing and evaluation)
5.1 ? 動作識別測試
為了評估系統的性能和動作識別的準確度,由對六個人對四組動作分別進行測試。在為了使環境與展館環境相似,在一人進行測試時,其他人進行動作的干擾,將測試結果盡可能地接近展館的真實環境,為了使動作更具有一般性和全面性,要求每個測試人員從開始至結束進行動作30次。測試內容從分別進行舉手動作、指針全屏幕覆蓋、按壓動作、抬起動作、切換動作、放下動作的隨機動作的測試,以檢測系統對動作識別的準確度和靈敏度。其具體動作的表示和效果如表1所示。
5.2 ? 測試結果分析
在實驗中,測試人員的主要工作是對動作識別靈敏度和準確度進行檢測,測試要求測試人員想要觸發的事件和系統實際觸發的事件是否一致,動作測試結果如表2所示。
5.3 ? 系統評估
實驗結果表明,動作識別率,除切換動作外都在95%以上,針對測試結果,對切換動作進行調整,加大兩個屏幕切換的邊界位置閾值,將切換動作的識別率提高到了95%,而且實驗結果證明,即使在有人故意干擾的情況下系統仍可以正確運行,證明了系統有一定的抗干擾性,沒有明顯波動和跳幀。從而實現了系統的設計目標。
6 ? 結論(Conclusion)
本文描述了利用Kinect進行動作識別,并應用于展館系統的人機交互中,最后實驗數據充分驗證了該方法的有效性。方便了觀眾的參觀和講解員的講解,提高了展館的科技性,增加了展覽的趣味性,而且建設成本也比較低,進一步擴大了展館進行展覽的方式。然而,本系統也存在缺陷,如參觀者不能隨自己的喜好隨意進行動作的編排和設計,這也是下一步工作的目標之一。
參考文獻(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手勢控制在多媒體教學中的應用[J].軟件導刊,2017,16(4):84-85.
[5] 薛智宏.基于Kinect的原地太極拳輔助訓練系統[J].河北科技大學學報,2017,38(2):183-188.
[6] 李紅波.基于Kinect骨骼數據的靜態三維手勢識別[J].計算機應用與軟件,2015,32(9):161-165.
[7] TobySharp.Accurate,Robust,and FlexibleReal-timeHandTracking:SupplementaryMaterial[DB/OL].http://www.k4w.cn/news/1#.
[8] 王輝柏.基于Kinect的射擊游戲動作的設計方法研究[J].計算機仿真,2018,35(12):388-391.
[9] 吳曉雨.基于Kinect的手勢識別算法研究及應用[J].計算機應用與軟件,2015,32(7):173-176.
作者簡介:
牟 ? 莉(1972-),女,碩士,副教授.研究領域:智能化信息系統,嵌入式系統應用.
史政坤(1994-),男,碩士生.研究領域:智能化信息系統.
陳逍遙(1994-),男,碩士生.研究領域:圖像識別.