朱惠娟,王軍,朱俊
(南京理工大學紫金學院 計算機學院, 江蘇 南京 210046)
我國對于體感交互技術的相關研究主要開始于《國家中長期教育改革和發展規劃綱要(2010—2020年)》和《教育信息化十年發展規劃(2011—2020年)》掀起的技術、應用和教育信息化理論三方面的研究浪潮。
2011年胡贏[1]在文中提到“所謂的‘體感交互’就是指‘使用者通過人體姿態來控制計算機’”。
在教育領域,李青和王青[2]提出“體感交互技術在教學中可作為教學工具,將體感和白板結合,可以擴展電子白板的功能”,同時與現有教學形式相結合,推出情景化教學、個別化學習及游戲化學習等教習方式,極大地提升孩子的學習興趣。
在游戲娛樂領域,于洪達[3]運用雙畫立體投影顯示系統及Kinect網絡,實現將3D游戲中的同一個場景分別輸出到不同的角度的玩家眼中,使得不同視角的玩家所觀察到的環境相互獨立。
發達國家在動作捕捉領域的研究已經進入了實用化階段,市面上有許多商品化的運動捕捉[4]設備,例如Sega Game、MotionAnalysis、FilmBox等。以MotionAnalysis來說,其應用領域十分廣泛,在電影藝術方面有大量的特技采用MotionAnalysis系統進行采集制作。美國好萊塢建立了一個基于MotionAnalysis系統且有16鏡頭的工作室,許多著名電影均使用了該系統的動作捕捉技術,例如《猩球崛起》《阿凡達》《魔戒》《黑客帝國》等。
可見,隨著計算機技術的不斷進步,人機交互技術有了巨大的突破,體感交互正在不斷地出現在人們的視野中。本文即采用Leap Motion雙目視覺成像的特點,與Unity3D結合實現了商用沉浸式藝術展示的效果。自定義不同的手勢動作,將Leap Motion獲取到的關鍵手勢信息進行分類識別,給用戶帶來沉浸式體驗感。
無論是肢體動作還是手勢、眼動、語音等交互命令,都需要體感傳感器來作為人機交互之間的媒介,例如使用Leap Motion傳感器來進行手勢交互;使用眼動儀[5]來捕捉眼球轉動、視線聚焦點信息;使用Kinect獲取肢體動作信息等。
從技術角度來看,動作捕捉的本質就是測量、跟蹤、記錄物體在三維空間的運動軌跡。一般來說,典型的運動捕捉設備,如表1所示。

表1 一般運動捕捉系統的組成部分及作用
Leap Motion[6]體感控制器為光學式運動捕捉設備,Leap Motion傳感器定位精度高,兩顆120幀率的攝像頭使得其對動作捕捉有著較高的實時性,體積小巧便于攜帶與使用,而就手勢處理來說,Leap Motion傳感器的4立方英尺識別范圍已是足夠,且Leap Motion表面使用的濾鏡幾乎可完全過濾可見光,經過測試,兩顆灰階攝像頭無論在黑暗中還是強光照射下都能完美得到半灰度的紅外圖像,無需再加任何去噪波。
鑒于以上原因,本系統采用Leap Motion傳感器作為體感交互部分的體感傳感器。
1.2.1 Leap Motion基本原理
Leap Motion是一款由體感控制器制造公司Leap在2013年發布的面向PC及蘋果電腦MAC的體感控制器,如圖1所示。

Leap Motion控制器主要由兩個高清的攝像頭、光學傳感器和三個紅外LED燈組成。Leap Motion采用雙目視覺原理來對手部進行距離的精準測量,根據內置的攝像頭從不同的角度捕捉畫面來模擬人類的立體視覺,從而對手勢在三維空間的位置信息進行判斷。Leap Motion以超過每秒200幀的速度追蹤手部移動,其檢測范圍為傳感器上方的25毫米到600毫米之間的倒四棱錐體,精確程度可達1/100毫米。
1.2.2 Leap Motion基本數據
Leap Motion使用的是一種基于計算機視覺原理的識別技術,應用于立體視覺[7]的測量方法稱之為三角測量法。其應用場合廣泛,小到Kinect設備,大到飛機裝配等高精度的作業環境。目前比較有代表性的就是Leap Motion的手勢識別技術,微軟開發的混合現實頭戴式顯示器HoloLens上同樣搭載該技術。雙目立體視覺測量方法,如圖2所示。

圖2 雙目立體視覺測量方法
Leap Motion的API為開發者提供了一系列追蹤手部運動的快照數據信息,官方文檔中將這些定期發送的關于手部運動的信息稱為“幀”(Frame)。每一幀都包含了Leap Motion的一系列基本綁定數據,這些數據為檢測到的所有手掌(hands)的列表和信息、所有手指(fingers)的列表和信息、所有工具(tools)的列表和信息(工具定義為細長、筆直的,比手指長的東西,例如一支筆)、所有可指向對象(pointables),即所有手指和工具的列表及信息和手勢(gestures)。幀數據下所包含的數據層級示意圖,如圖3所示。

圖3 Frames(幀數據)所包含的數據層級示意圖
1.2.3 Leap Motion的信息特征提取
Leap Motion是基于雙目視覺的手勢識別設備,利用雙目立體視覺成像原理,通過兩個攝像機進行深度成像,提取手部的三維位置信息,根據深度圖建立手部立體模型,最后利用關鍵點信息識別手勢。人體手部的骨骼位置圖,如圖4所示。

圖4 手部骨骼示意圖
每根手指包含了許多個骨骼點,從上到下分別為遠端指骨、中端指骨、近端指骨、掌骨。其中拇指較其他手指不同,只有三根指骨,并沒有掌骨。LeapMotion傳感器可識別出每只手的所有手指,同時記錄下手指的三維空間坐標。為了便于編程,Leap Motion將拇指的掌骨設為長度為零的掌骨,使每根手指都有4根骨頭。
無論是在展館展覽還是課堂輔助教學應用該系統,系統的交互方式都需要通過較好的創新性來吸引游客或者學生的注意。同時展示內容應盡量貼合生活,且能被大多數用戶理解該內容所表達的意義,無論該內容是出于教學或者欣賞的目的。因此,本系統以“花海”的展示為主,通過自定義的手勢控制花的成長和展示,表現出花海不同的性狀。在創新性方面,則是選擇將花以數字媒體的形式展現,使其更抽象,富有科技感。既可滿足展覽吸引眼球,又可用于日常的商業展覽等活動,提升用戶的參與度[8]。系統設計的核心交互功能,如圖5所示。

圖5 核心交互功能
在Leap Motion傳感器未檢測到手的情況下,“花”處于不“生長”的狀態,當傳感器檢測到手進入時,“花”便開始產生變化,與自然界的花生長周期長的特點類似,此時“花”變化速度緩慢。通過交互動作,使花變化速度增加,采用更改動畫animator播放速度的方法來加速“花”的“生長”。交互手勢為數字“8”,如圖6所示。

圖6 交互手勢“8”
手勢“8”的實現方法為使用bool類型的方法IsEight(Hand hand),該方法定義了列表List
左手握拳時,交互對象縮小;左手伸展開時,交互對象放大。此交互可以便捷放大縮小對象,以方便觀察,如圖7所示。

圖7 交互手勢“8”
在實現變大交互的部分,定義了bool類型方法isOpenFullHand(Hand hand)判斷每手指是否都處于伸展狀態。
在判斷手上下左右移動時,考慮到正常情況下手會有抖動,因此設定一個常量smallestVelocit=4f用于判定手處于靜止狀態,當手的移動速度hand.PalmVelocity.Magnitude小于這個值時,isStationary返回true,手視為靜止狀態,如圖8、圖9所示。

手勢“上”識別 手勢“下”識別

手勢“左”識別 手勢“右”識別
完成手勢判定之后,調用顏色改變方法完成交互命令,采用獲取網格渲染器組件的方式,根據交互手勢的不同,分別修改材質的顏色為綠色、紅色、藍色以及初始顏色。
本系統使用手勢進行交互,對于初次使用LeapMotion傳感器設備或第一次使用本系統的用戶,操作方式及手勢細節需要加以說明,如圖10所示。

圖10 手勢學習頁面
進入場景后,用戶的起始點處于離展示臺較遠的一個通道內,用于模擬類似于奪寶行動,用戶進入最終寶藏所放置的密室中的場景,如圖11所示。

圖11 虛擬場景
“花朵”被置于展示臺上,昏暗的環境配以高光來突出“花”的與眾不同,用戶可以通過“W”“A”“S”“D”操控角色進行自由移動,使用鼠標來觀察。
在靠近展示臺時,會出現系統提示,可以按下鍵盤字母“G”進入花卉的操控界面,如圖12所示。

圖12 展示頁面
在手勢交互界面,可以使用手勢來改變花的性狀,通過“OK”手勢來改變花的狀態,使花從靜止狀態轉變到開放狀態,如圖13所示。

圖13 “OK”手勢控制
通過數字8的手勢可以加快花的開放速度,如圖14所示。

圖14 花開控制
本系統利用Leap Motion采集自行定義的關鍵手勢動作的精確位置及方向信息,并完成了沉浸式體感交互系統的設計與開發,該技術可用于類似的商業藝術作品展示等領域,也為Leap Motion應用于人機交互領域帶來了新的靈感。但是,由于非藝術專業人員,畫面效果較粗糙,將在今后工作中持續研究并改進。