楊 賢, 張 碩, 何漢武, 吳悅明
(1.廣東工業(yè)大學(xué) 藝術(shù)與設(shè)計學(xué)院,廣州510075;2.廣東工業(yè)大學(xué)機(jī)電工程學(xué)院,廣州510006)
多通道融合的虛擬實驗環(huán)境(Multi-channel Fusion Virtual Experiment Environment,MFVEE)因其高度沉浸特征使得用戶可以與虛擬環(huán)境進(jìn)行自然交互,在獲取用戶的行為數(shù)據(jù)方面具有其他技術(shù)無法比擬的優(yōu)勢[1],自然手勢交互技術(shù)是其中的關(guān)鍵技術(shù)[2-3],也是目前人機(jī)交互與虛擬現(xiàn)實領(lǐng)域的研究熱點。但是目前的交互方式并不自然,交互方式基本上借助手柄等非自然交互設(shè)備,在虛擬現(xiàn)實3個典型特征:沉浸、想象和交互性中,作為虛擬現(xiàn)實其中一個很重要的特征“交互性”一直是困擾著虛擬現(xiàn)實發(fā)展的重要原因[4-5]。為了實現(xiàn)虛擬實驗環(huán)境下更好的人機(jī)交互以達(dá)到更好的實驗結(jié)果,本文在多通道虛擬現(xiàn)實實驗環(huán)境下,設(shè)計了基于自然手勢交互的實驗手段,讓用戶能夠在虛擬實驗環(huán)境中進(jìn)行自然的人機(jī)對話。自然人機(jī)對話使得虛擬環(huán)境能夠獲取更加真實、更多維度的用戶行為數(shù)據(jù)成為可能。
在用戶行為數(shù)據(jù)獲取的研究方面,一開始屬于心理學(xué)的范疇,隨著計算機(jī),人工智能等的發(fā)展,用戶行為慢慢成為人機(jī)交互、產(chǎn)品測試與虛擬仿真等領(lǐng)域的研究熱點[6-7]。在虛擬實驗環(huán)境中,用戶手勢行為常常被用來通過行為數(shù)據(jù)識別用戶意圖,Chemero認(rèn)為,研究的焦點并非是人的意圖與認(rèn)知,而是人的行為,更具體地說,重點在于用戶與所在環(huán)境的交互行為[8],本文主要研究用戶在虛擬實驗環(huán)境中的的手勢行為。手勢行為包含靜態(tài)的、動態(tài)的、具有語義的、用以傳達(dá)用戶意圖的行為。McNeill[9]把人的姿體信息設(shè)計成隱喻的、圖標(biāo)的與節(jié)奏性的姿勢,這些姿勢分類對虛擬實驗環(huán)境的交互界面設(shè)計起到很重要的作用,該研究被借鑒并用于姿勢的可視化交互、指代性導(dǎo)航以及記號語言解釋等。Aggarwal等[6]設(shè)計了一個可以識別人與物體的高層交互行為的系統(tǒng),以及基于上下文的自然手勢識別方法等[10]。2010年,美國微軟公司發(fā)布了劃時代的第1個具有市場消費級的自然手勢交互設(shè)備,即Kinect系統(tǒng),從此,各種消費應(yīng)用級的系統(tǒng)尤其是游戲領(lǐng)域開始爆發(fā)并推動了VR的發(fā)展[11-14]。但是目前為止,VR交互的標(biāo)準(zhǔn)尚未形成,解決用戶與虛擬空間之間更加自然更多維度的自然交互技術(shù)是關(guān)鍵。
2.1.1 手勢機(jī)器訓(xùn)練
用戶的手勢操作或其它肢體運動是用戶行為作為人機(jī)交互系統(tǒng)輸入的主要方式之一。手勢是包含動態(tài)和靜態(tài)的、具有語義的、用以傳達(dá)用戶意圖的用戶行為,機(jī)器通過捕捉用戶行為識別用戶的意圖、需求等,進(jìn)而評估用戶行為與心理、產(chǎn)品設(shè)計指導(dǎo)以及仿真與測試等應(yīng)用。
本文采用Kinet工作室(Kinect Studio,KS)錄制手勢樣本以及采用視覺手勢生成器(Visual Gesture Builder,VGB)與Adaboost算法進(jìn)行手勢訓(xùn)練和測試,動作識別以迭代算法Adaboost算法為依托,主要針對同一訓(xùn)練集中訓(xùn)練不同的弱分類器,再將弱分類器集合起來,組成一個強(qiáng)分類器,在樣本訓(xùn)練的基礎(chǔ)上得到分類器和特征集,并以此為基礎(chǔ)識別出人體動作。在Adaboost弱分類器中,假設(shè)用 3個特征:F1、F2、F3來判斷輸入圖像是否是抓取手勢,其決策樹的結(jié)構(gòu)如圖1(a);圖1(b)為開始加載剪輯后的手勢訓(xùn)練過程。
圖1 決策樹結(jié)構(gòu)及訓(xùn)練過程
2.1.2 手勢特征值表達(dá)
以用戶抓取雞蛋為例說明基于手勢特征值表達(dá)的具體機(jī)器訓(xùn)練過程。要讓虛擬系統(tǒng)理解用戶拿起了一個雞蛋,需要對這個“抓取”手勢進(jìn)行語義定義,手勢特征表達(dá)是對手勢行為的數(shù)學(xué)賦值,這些賦值使得用戶行為能夠以計算機(jī)特征值的數(shù)學(xué)方式表達(dá)并且能夠被虛擬環(huán)境理解,設(shè)定“抓取”手勢的特征表達(dá)為s,
式中:cth為手部的拇指尖;cin為食指尖;cpa為掌心;cco為拇指與食指的凹點;cho為手內(nèi)包含的中空區(qū)。這5個特征值即為手勢“抓取”的語義,這樣定義還有另外一個很重要的原因,由于Kinect二代只能檢測到手部的拇指、食指以及掌心3個點,如圖2所示。以此類推,定義好每一個手勢語義,并進(jìn)行手勢訓(xùn)練以提高交互效率。
圖2 Kinect的手勢捕捉及其特征值表達(dá)
2.2.1 交互約束
相比傳統(tǒng)人機(jī)交互的交互技術(shù),VR的交互技術(shù)需要實現(xiàn)從二維界面到三維虛擬空間的跨越,需要解決物理世界與虛擬世界的無縫交融。MFVEE環(huán)境中,由于虛擬實驗環(huán)境缺少物理約束,比如碰撞、重力加速度、捆綁等,需要建立虛擬實驗環(huán)境的約束條件。因為無論是人體的映射還是虛擬物體,它們的空間位置過于自由,不像在真實世界中受到應(yīng)有的碰撞或者重力等約束,以完成圖3中手部與冰箱把手的交互為例:在真實世界中,當(dāng)用手去開冰箱門的時候,手和冰箱門把手是握緊的狀態(tài),冰箱門隨著手部的力移動,手也受到冰箱門運動軌跡的限制,不會偏離冰箱門把手的運動軌跡,但是在虛擬世界中,虛擬手部的位置是現(xiàn)實世界手部的實時映射,而實際的手并不會受到虛擬冰箱門把手的約束。本文提出一種改進(jìn)的四元數(shù)算法來確保當(dāng)手部偏離門把手的運動軌跡時,冰箱門依舊以正常狀態(tài)打開。
圖3 手部與冰箱把手的交互
2.2.2 基于四元數(shù)算法的虛擬旋轉(zhuǎn)體的捆綁交互約束技術(shù)
四元數(shù)是愛爾蘭數(shù)學(xué)家William在1843年所提,是復(fù)數(shù)的不可交換延伸。復(fù)數(shù)是由實數(shù)加上虛數(shù)單位i組成,i2=-1,而四元數(shù)是由實數(shù)加上3個虛數(shù)單位i、j、k 組成,i2=j2=k2= -1。如果把復(fù)數(shù)定義為二維空間,那么四元數(shù)則代表四維空間。每個四元數(shù)都是1、i、j和 k 的線性組合,表示為a+bi+cj+dk。
冰箱的門把需要跟手部一起旋轉(zhuǎn),跟歐拉角的旋轉(zhuǎn)不一樣,歐拉角是采用簡單的x、y、z的值來分別表示在x、y和z軸上的旋轉(zhuǎn)角度,取值范圍是0°~360°。一般情況下,使用roll、pitch和yaw表示這些分量的旋轉(zhuǎn)值。歐拉角容易出現(xiàn)不容易在任意方向的旋轉(zhuǎn)軸插值、萬向節(jié)死鎖、旋轉(zhuǎn)次序無法確定等問題。而四元數(shù)的旋轉(zhuǎn)是用一個三維向量來表示轉(zhuǎn)軸,用一個角度分量來表示繞著旋轉(zhuǎn)軸的旋轉(zhuǎn)角度,表示為(x,y,z,w),
式中:(ax,ay,az)為軸的矢量,是三維坐標(biāo)中的矢量;θ為繞著旋轉(zhuǎn)軸的旋轉(zhuǎn)角度。四元數(shù)是在統(tǒng)一4維空間中的,非常方便歸一化和插值,可以方便得到軸和角的這些用于3D圖像的數(shù)據(jù)。利用四元數(shù)算法進(jìn)行交互約束的流程如圖4所示。
圖4 手部與冰箱把手的交互約束
經(jīng)過交互約束后,手部與冰箱門把手實現(xiàn)了捆綁交互,如圖5所示。圖中有模糊與疊影的現(xiàn)象是因為這是在3D虛擬環(huán)境中所拍攝,需要帶上3D眼鏡觀看才會清晰。
圖5 手部與冰箱把手的交互效果圖
2.2.3 虛擬實驗環(huán)境的其他交互約束
在MFVEE中,除了捆綁約束外,虛擬環(huán)境中存在大量剛體,這些剛體有些能夠交互,有些是沒有交互屬性的。以從冰箱中抓取一個雞蛋為例:首先,對雞蛋進(jìn)行交互屬性定義,當(dāng)雞蛋具有碰撞檢測等交互屬性后,用戶抓取雞蛋時,使其剛體組件失效,然后設(shè)定其父物體為手部物體,這樣手部在移動和旋轉(zhuǎn)的時候則其子物體也跟著運動。虛擬環(huán)境中需要對這一類物體進(jìn)行定義,包括碰撞檢測,如圖6所示。本文定義了多種物體的交互方式,如具有旋轉(zhuǎn)屬性的冰箱門;具有重力加速度的剛體等,這些交互的設(shè)定,都可以在虛擬界面中直接進(jìn)行設(shè)置。
圖6 對交互物體進(jìn)行定義
圖7所示為實驗流程。
圖7 實驗流程
3.2.1 剪輯錄制數(shù)據(jù)
首先獲取原始數(shù)據(jù),選擇聲音、顏色、紅外、深度等數(shù)據(jù)流,如圖8所示,取得的原始剪輯,將其存放起來以便隨時調(diào)用,同時將原始數(shù)據(jù)轉(zhuǎn)換為處理數(shù)據(jù)。
3.2.2 手勢訓(xùn)練數(shù)據(jù)
仍然以“抓取”這個手勢為例,VGB中的解決方案內(nèi)有兩個項目,其中 Grab.a是分析項目,沒有后綴“.a”的訓(xùn)練項目,所有放在這里的剪輯都會被使用,當(dāng)作姿勢的實際檢測。放在.a的任何剪輯都將用于測試檢測。本文將剪輯分出2/3用于訓(xùn)練,1/3用于測試。如圖9所示,添加剪輯并標(biāo)記,把抓的過程標(biāo)記為真,剪輯中會有準(zhǔn)備動作或無效動作不標(biāo)記,默認(rèn)為假。
圖8 記錄的數(shù)據(jù)源與錄制結(jié)果
圖9 標(biāo)記有效動作
本文采用Kinect的深度攝像頭進(jìn)行人體識別與跟蹤,并且使用KS和VGB進(jìn)行手勢訓(xùn)練,在虛擬現(xiàn)實環(huán)境中進(jìn)行測試,其正確識別率與對比文獻(xiàn)采用普通攝像頭的2D空間效果相比,仍有明顯的提升,其數(shù)據(jù)見表1。
表1 識別率對比
圖10所示為測試的幾種“抓取”手勢的效果圖,從測試的效果看,具有比較高的識別率,論證了虛擬實驗環(huán)境中自然手勢交互的優(yōu)勢。
圖10 “抓取”手勢的幾種效果
虛擬現(xiàn)實與人機(jī)交互涉及到很多未來關(guān)鍵技術(shù)與產(chǎn)業(yè),它們目前并沒有很好地融合在一起,尤其在MFVEE上,虛擬現(xiàn)實有3個典型的特征,即沉浸感、交互性以及構(gòu)想性,作為虛擬現(xiàn)實一個非常重要的特性,“交互性”一直沒有得到有效解決,導(dǎo)致MFVEE沒有廣泛應(yīng)用。MFVEE跟頭戴式虛擬現(xiàn)實系統(tǒng)的交互方式極大不同,主要依賴自然手勢交互,除了需要解決傳統(tǒng)人機(jī)交互的手勢實時提取、遮擋等問題,更重要的是如何解決手勢與虛擬空間模型的自然交互、深度空間交互、姿體數(shù)據(jù)的通信等關(guān)鍵技術(shù)問題。本文面向虛擬實驗環(huán)境,構(gòu)建了自然手勢交互手段,體現(xiàn)了人機(jī)對話中以人為本的理念,同時由于用戶在虛擬實驗中的自然交互,在獲取用戶行為數(shù)據(jù)方面具有天然的優(yōu)勢,因此本文所提方案能夠很好地應(yīng)用于虛擬仿真等實驗。