楊 賢, 張 碩, 何漢武, 吳悅明
(1.廣東工業大學 藝術與設計學院,廣州510075;2.廣東工業大學機電工程學院,廣州510006)
多通道融合的虛擬實驗環境(Multi-channel Fusion Virtual Experiment Environment,MFVEE)因其高度沉浸特征使得用戶可以與虛擬環境進行自然交互,在獲取用戶的行為數據方面具有其他技術無法比擬的優勢[1],自然手勢交互技術是其中的關鍵技術[2-3],也是目前人機交互與虛擬現實領域的研究熱點。但是目前的交互方式并不自然,交互方式基本上借助手柄等非自然交互設備,在虛擬現實3個典型特征:沉浸、想象和交互性中,作為虛擬現實其中一個很重要的特征“交互性”一直是困擾著虛擬現實發展的重要原因[4-5]。為了實現虛擬實驗環境下更好的人機交互以達到更好的實驗結果,本文在多通道虛擬現實實驗環境下,設計了基于自然手勢交互的實驗手段,讓用戶能夠在虛擬實驗環境中進行自然的人機對話。自然人機對話使得虛擬環境能夠獲取更加真實、更多維度的用戶行為數據成為可能。
在用戶行為數據獲取的研究方面,一開始屬于心理學的范疇,隨著計算機,人工智能等的發展,用戶行為慢慢成為人機交互、產品測試與虛擬仿真等領域的研究熱點[6-7]。在虛擬實驗環境中,用戶手勢行為常常被用來通過行為數據識別用戶意圖,Chemero認為,研究的焦點并非是人的意圖與認知,而是人的行為,更具體地說,重點在于用戶與所在環境的交互行為[8],本文主要研究用戶在虛擬實驗環境中的的手勢行為。手勢行為包含靜態的、動態的、具有語義的、用以傳達用戶意圖的行為。McNeill[9]把人的姿體信息設計成隱喻的、圖標的與節奏性的姿勢,這些姿勢分類對虛擬實驗環境的交互界面設計起到很重要的作用,該研究被借鑒并用于姿勢的可視化交互、指代性導航以及記號語言解釋等。Aggarwal等[6]設計了一個可以識別人與物體的高層交互行為的系統,以及基于上下文的自然手勢識別方法等[10]。2010年,美國微軟公司發布了劃時代的第1個具有市場消費級的自然手勢交互設備,即Kinect系統,從此,各種消費應用級的系統尤其是游戲領域開始爆發并推動了VR的發展[11-14]。但是目前為止,VR交互的標準尚未形成,解決用戶與虛擬空間之間更加自然更多維度的自然交互技術是關鍵。
2.1.1 手勢機器訓練
用戶的手勢操作或其它肢體運動是用戶行為作為人機交互系統輸入的主要方式之一。手勢是包含動態和靜態的、具有語義的、用以傳達用戶意圖的用戶行為,機器通過捕捉用戶行為識別用戶的意圖、需求等,進而評估用戶行為與心理、產品設計指導以及仿真與測試等應用。
本文采用Kinet工作室(Kinect Studio,KS)錄制手勢樣本以及采用視覺手勢生成器(Visual Gesture Builder,VGB)與Adaboost算法進行手勢訓練和測試,動作識別以迭代算法Adaboost算法為依托,主要針對同一訓練集中訓練不同的弱分類器,再將弱分類器集合起來,組成一個強分類器,在樣本訓練的基礎上得到分類器和特征集,并以此為基礎識別出人體動作。在Adaboost弱分類器中,假設用 3個特征:F1、F2、F3來判斷輸入圖像是否是抓取手勢,其決策樹的結構如圖1(a);圖1(b)為開始加載剪輯后的手勢訓練過程。

圖1 決策樹結構及訓練過程
2.1.2 手勢特征值表達
以用戶抓取雞蛋為例說明基于手勢特征值表達的具體機器訓練過程。要讓虛擬系統理解用戶拿起了一個雞蛋,需要對這個“抓取”手勢進行語義定義,手勢特征表達是對手勢行為的數學賦值,這些賦值使得用戶行為能夠以計算機特征值的數學方式表達并且能夠被虛擬環境理解,設定“抓取”手勢的特征表達為s,

式中:cth為手部的拇指尖;cin為食指尖;cpa為掌心;cco為拇指與食指的凹點;cho為手內包含的中空區。這5個特征值即為手勢“抓取”的語義,這樣定義還有另外一個很重要的原因,由于Kinect二代只能檢測到手部的拇指、食指以及掌心3個點,如圖2所示。以此類推,定義好每一個手勢語義,并進行手勢訓練以提高交互效率。

圖2 Kinect的手勢捕捉及其特征值表達
2.2.1 交互約束
相比傳統人機交互的交互技術,VR的交互技術需要實現從二維界面到三維虛擬空間的跨越,需要解決物理世界與虛擬世界的無縫交融。MFVEE環境中,由于虛擬實驗環境缺少物理約束,比如碰撞、重力加速度、捆綁等,需要建立虛擬實驗環境的約束條件。因為無論是人體的映射還是虛擬物體,它們的空間位置過于自由,不像在真實世界中受到應有的碰撞或者重力等約束,以完成圖3中手部與冰箱把手的交互為例:在真實世界中,當用手去開冰箱門的時候,手和冰箱門把手是握緊的狀態,冰箱門隨著手部的力移動,手也受到冰箱門運動軌跡的限制,不會偏離冰箱門把手的運動軌跡,但是在虛擬世界中,虛擬手部的位置是現實世界手部的實時映射,而實際的手并不會受到虛擬冰箱門把手的約束。本文提出一種改進的四元數算法來確保當手部偏離門把手的運動軌跡時,冰箱門依舊以正常狀態打開。

圖3 手部與冰箱把手的交互
2.2.2 基于四元數算法的虛擬旋轉體的捆綁交互約束技術
四元數是愛爾蘭數學家William在1843年所提,是復數的不可交換延伸。復數是由實數加上虛數單位i組成,i2=-1,而四元數是由實數加上3個虛數單位i、j、k 組成,i2=j2=k2= -1。如果把復數定義為二維空間,那么四元數則代表四維空間。每個四元數都是1、i、j和 k 的線性組合,表示為a+bi+cj+dk。
冰箱的門把需要跟手部一起旋轉,跟歐拉角的旋轉不一樣,歐拉角是采用簡單的x、y、z的值來分別表示在x、y和z軸上的旋轉角度,取值范圍是0°~360°。一般情況下,使用roll、pitch和yaw表示這些分量的旋轉值。歐拉角容易出現不容易在任意方向的旋轉軸插值、萬向節死鎖、旋轉次序無法確定等問題。而四元數的旋轉是用一個三維向量來表示轉軸,用一個角度分量來表示繞著旋轉軸的旋轉角度,表示為(x,y,z,w),


式中:(ax,ay,az)為軸的矢量,是三維坐標中的矢量;θ為繞著旋轉軸的旋轉角度。四元數是在統一4維空間中的,非常方便歸一化和插值,可以方便得到軸和角的這些用于3D圖像的數據。利用四元數算法進行交互約束的流程如圖4所示。

圖4 手部與冰箱把手的交互約束
經過交互約束后,手部與冰箱門把手實現了捆綁交互,如圖5所示。圖中有模糊與疊影的現象是因為這是在3D虛擬環境中所拍攝,需要帶上3D眼鏡觀看才會清晰。

圖5 手部與冰箱把手的交互效果圖
2.2.3 虛擬實驗環境的其他交互約束
在MFVEE中,除了捆綁約束外,虛擬環境中存在大量剛體,這些剛體有些能夠交互,有些是沒有交互屬性的。以從冰箱中抓取一個雞蛋為例:首先,對雞蛋進行交互屬性定義,當雞蛋具有碰撞檢測等交互屬性后,用戶抓取雞蛋時,使其剛體組件失效,然后設定其父物體為手部物體,這樣手部在移動和旋轉的時候則其子物體也跟著運動。虛擬環境中需要對這一類物體進行定義,包括碰撞檢測,如圖6所示。本文定義了多種物體的交互方式,如具有旋轉屬性的冰箱門;具有重力加速度的剛體等,這些交互的設定,都可以在虛擬界面中直接進行設置。

圖6 對交互物體進行定義
圖7所示為實驗流程。

圖7 實驗流程
3.2.1 剪輯錄制數據
首先獲取原始數據,選擇聲音、顏色、紅外、深度等數據流,如圖8所示,取得的原始剪輯,將其存放起來以便隨時調用,同時將原始數據轉換為處理數據。
3.2.2 手勢訓練數據
仍然以“抓取”這個手勢為例,VGB中的解決方案內有兩個項目,其中 Grab.a是分析項目,沒有后綴“.a”的訓練項目,所有放在這里的剪輯都會被使用,當作姿勢的實際檢測。放在.a的任何剪輯都將用于測試檢測。本文將剪輯分出2/3用于訓練,1/3用于測試。如圖9所示,添加剪輯并標記,把抓的過程標記為真,剪輯中會有準備動作或無效動作不標記,默認為假。

圖8 記錄的數據源與錄制結果

圖9 標記有效動作
本文采用Kinect的深度攝像頭進行人體識別與跟蹤,并且使用KS和VGB進行手勢訓練,在虛擬現實環境中進行測試,其正確識別率與對比文獻采用普通攝像頭的2D空間效果相比,仍有明顯的提升,其數據見表1。

表1 識別率對比
圖10所示為測試的幾種“抓取”手勢的效果圖,從測試的效果看,具有比較高的識別率,論證了虛擬實驗環境中自然手勢交互的優勢。

圖10 “抓取”手勢的幾種效果
虛擬現實與人機交互涉及到很多未來關鍵技術與產業,它們目前并沒有很好地融合在一起,尤其在MFVEE上,虛擬現實有3個典型的特征,即沉浸感、交互性以及構想性,作為虛擬現實一個非常重要的特性,“交互性”一直沒有得到有效解決,導致MFVEE沒有廣泛應用。MFVEE跟頭戴式虛擬現實系統的交互方式極大不同,主要依賴自然手勢交互,除了需要解決傳統人機交互的手勢實時提取、遮擋等問題,更重要的是如何解決手勢與虛擬空間模型的自然交互、深度空間交互、姿體數據的通信等關鍵技術問題。本文面向虛擬實驗環境,構建了自然手勢交互手段,體現了人機對話中以人為本的理念,同時由于用戶在虛擬實驗中的自然交互,在獲取用戶行為數據方面具有天然的優勢,因此本文所提方案能夠很好地應用于虛擬仿真等實驗。