牟云環(huán)
(陜西國防工業(yè)職業(yè)技術(shù)學(xué)院陜西西安710300)
近年來,針對傳統(tǒng)繪畫技藝存在操作過程復(fù)雜、設(shè)備繁多和無法撤銷的問題,國內(nèi)外學(xué)者研究了如何將這些繪畫技藝數(shù)字化的方法[1-3]。
沙畫創(chuàng)作作為一種新的藝術(shù)創(chuàng)作方式,各種背景音樂與沙子動畫的結(jié)合給觀眾帶來了全新的視聽感受[3-6]。然而,沙畫演示過程需要演出者攜帶沙畫方桌、細(xì)沙和投影設(shè)備。且對現(xiàn)場光線和環(huán)境有較高的要求,給沙畫演出帶來了不便[7-9]。因此,本文使用虛擬現(xiàn)實技術(shù)模擬了沙畫展示的過程,不僅能方便沙畫的表演,且還能產(chǎn)生逼真的視覺效果。虛擬現(xiàn)實即使用計算機(jī)技術(shù)模擬真實世界的各種場景,使人在該種虛幻場景中產(chǎn)生觸覺、視覺和聽覺等身臨其境的感受。
文中使用Leap Motion設(shè)備[10]、3Ds Max和Unity 3D等軟件,設(shè)計與實現(xiàn)了基于手勢識別的虛擬沙畫展示系統(tǒng)。首先,使用Leap Motion設(shè)備獲取的手勢及其運(yùn)動信息[11],并提取基于角域劃分的特征向量[12-14],再使用該特征向量進(jìn)行手勢識別[15-16]與跟蹤;然后使用3Ds Max技術(shù)建立虛擬手模型,并使用粒子運(yùn)動系統(tǒng)模擬落沙效果。測試結(jié)果表明,該系統(tǒng)能正確的識別出各種手勢,并能滿足基本的沙畫繪制過程,得到了較為滿意的結(jié)果。
Leap Motion是一款由兩個攝像頭和3個紅外LED組成的、支持多種操作系統(tǒng)的手勢控制電腦體感控制設(shè)備。其使用兩個攝像頭的視覺差和三角測量法來檢測手、手指的3D坐標(biāo)信息,且其精度能達(dá)到0.01 mm。文中使用Leap Motion采集手指和手勢信息,并使用TBD技術(shù)跟蹤實現(xiàn)手指骨骼跟蹤,整體流程如圖1所示。
圖1 手勢識別與跟蹤流程
使用Leap Motion Controller提供的API接口,可以獲取Finger、Hand和Tool等數(shù)據(jù)。當(dāng)采集到手勢數(shù)據(jù)后,使用Leap Motion Controller對象的Listen子類觸發(fā)onFrame()函數(shù)[17],即可獲取幀數(shù)據(jù),并傳遞給手勢識別模塊進(jìn)行識別。
Leap Motion檢測到人手后,會給其設(shè)置一個身份ID,故采集到的數(shù)據(jù)不僅包括手勢坐標(biāo)和運(yùn)動數(shù)據(jù),且還包括人手ID。當(dāng)該人手離開Leap Motion的視野范圍時,系統(tǒng)會立即注銷該ID。文中采集的手勢信息,如圖2所示。
圖2 Leap Motion采集的數(shù)據(jù)
使用Leap Motion設(shè)備可以識別出5只手指,但當(dāng)手指出現(xiàn)重疊或緊挨時,容易丟失手指信息;再者,識別結(jié)果也容易受袖子邊緣和手鐲等物件影響。導(dǎo)致設(shè)備在不同的執(zhí)行狀態(tài)下,對相同手勢的識別結(jié)果可能并不相同。這將嚴(yán)重影響虛擬沙畫繪制的精度,故本文使用了一種基于角域劃分的特征提取方法。
該特征提取方法先根據(jù)手掌方向向量和指尖方向?qū)⑹终扑诘钠矫鎰澐譃?個角域,每個角域恰好分配一支手指。針對實際情況中某些角域可能含有多只手指,而某些角域不含有手指的問題。該方法將兩個在同一個角域的手指中的一個分配給距離該角域最近的空角域內(nèi)。使用該方法提取的特征向量,如表1所示。
表1 特征向量提取
Leap Motion設(shè)備自帶了揮手、花圈和點擊等手勢,但這幾種手勢無法實現(xiàn)沙畫演示的目的。因此,本文重新設(shè)計了如圖3所示的幾種沙畫表演中常用的手勢。從左到右依次為:撒、劃、抹、擦和點。使用Leap MotionVisualizer可分別得到,如圖4所示的手勢效果。
文中使用tracking-by-detection技術(shù)實現(xiàn)手指跟蹤,該方法主要用于跟蹤手指尖端的3D坐標(biāo)信息,具有較高的精度與靈敏度。
假設(shè)傳感器的成像平面為 Δx×Δy,并用ζt表示t時刻是否存在目標(biāo),ζt=1即存在人手;否則,不存在人手,前t幀獲取的數(shù)據(jù)可表示為:k1:t={k1,k2,…,kt},并可用式(1)表示傳感器單元(i,j)的量測。
將檢測到人手且其基本保持靜止的時刻作為運(yùn)動的開始狀態(tài),將人手由運(yùn)動狀態(tài)變化至速度為0的時刻作為結(jié)束狀態(tài)。則沙畫繪制過程中手指的坐標(biāo)與時間關(guān)系為:
圖3 本文設(shè)計的手勢
圖4 Leap MotionVisualizer手勢效果展示
又由于Leap Motion設(shè)備采集的數(shù)據(jù)信息為離散數(shù)據(jù),故可用式(3)表示手指的運(yùn)動方向:
由此可得到,手指運(yùn)動素的方向變化率為:
同理,可得到手指的運(yùn)動速度為:
由該方法得到的手指運(yùn)動軌跡,如圖5所示。
圖5 手指運(yùn)動軌跡示意
文中使用Leap Motion設(shè)備獲取的手勢及其運(yùn)動信息,并提取基于角域劃分的特征向量,再使用該特征向量進(jìn)行手勢識別與跟蹤完成虛擬沙畫展示系統(tǒng)。系統(tǒng)整體工作流程,如圖6所示。從圖中可知,為了實現(xiàn)更真實的沙畫展示功能,本系統(tǒng)使用3Ds Max技術(shù)建立虛擬手模型,并使用粒子運(yùn)動系統(tǒng)模擬落沙效果。
圖6 虛擬沙畫演示系統(tǒng)整體流程
文中使用3Ds Max軟件和紋理貼圖法建立手模型的具體步驟為:
1)構(gòu)建手的外觀模型:首先構(gòu)建一個多邊形box,并調(diào)整各條邊直至形成手掌輪廓結(jié)構(gòu);然后,切割出各手指并調(diào)整指節(jié)長度;最后,細(xì)化切分后的多邊形網(wǎng)格,增強(qiáng)虛擬手的逼真度[18]。
2)問題貼圖:首先對虛擬手的多邊形網(wǎng)格進(jìn)行UV處理;然后,使用Photoshop繪制紋理貼圖。
3)使用3Ds Max軟件添加骨骼參數(shù),并綁定骨骼與蒙皮。
使用上述流程即可實現(xiàn)仿真手的構(gòu)建,圖7為本文實現(xiàn)的仿真手效果及貼圖前后的對比。
圖7 仿真手模型及貼圖前后效果
文中使用粒子系統(tǒng)實現(xiàn)沙畫演示過程中的落沙效果,粒子系統(tǒng)是使用計算機(jī)圖形學(xué)技術(shù)模擬現(xiàn)實生活中的火焰、云朵和落葉等一系列無規(guī)則景物的視覺效果技術(shù)。其基本思想是:使用微小的具有顏色、大小和形狀的粒子表示無規(guī)則物體,并使用大量的此種粒子構(gòu)成粒子團(tuán),從而使用粒子的產(chǎn)生和凋零過程來模擬景物的運(yùn)動。
Unity 3D采用模塊化管理方法集成了功能強(qiáng)大的粒子系統(tǒng),故本文使用該軟件并配合粒子曲線編輯器實現(xiàn)復(fù)雜粒子運(yùn)動的效果。具體實現(xiàn)步驟為:
1)使用“Particle System”子菜單欄創(chuàng)建粒子系統(tǒng);
2)根據(jù)需要選擇Inspector視圖中“Particle System”組件的模塊控制粒子的行為特征。如本系統(tǒng)使用初始化、Emission、Shape、Rendere和Size over Lifetime等模塊實現(xiàn)落沙效果;
3)設(shè)置各粒子的生命周期和運(yùn)動狀態(tài)等基本屬性以滿足預(yù)期效果,如圖8所示分別模擬了沙子落下和堆積的效果。
圖8 沙子落下(上)及堆積(下)效果模擬
4)當(dāng)系統(tǒng)識別出“撒沙”的手勢時,啟動粒子系統(tǒng)并使用SandPainting腳本文件切換觀看視角以得到更好的落沙效果。本文實現(xiàn)的落沙效果圖,如圖9所示。
圖9 落沙效果圖
使用上文提出的系統(tǒng)與Leap Motion設(shè)備、3Ds Max以及Unity 3D等軟件,本文實現(xiàn)了如圖10所示的虛擬沙畫演示過程。
圖10 系統(tǒng)實現(xiàn)效果展示
該演示過程經(jīng)過了數(shù)據(jù)的預(yù)處理、基于角域劃分特征向量的提取、手勢設(shè)計、識別與跟蹤過程及粒子系統(tǒng)模擬落沙效果等。從圖10可看出,所提出的系統(tǒng)能正確的識別出各種手勢,并能滿足基本的沙畫繪制過程,得到了較為滿意的結(jié)果。
傳統(tǒng)沙畫演示過程中存在操作過程復(fù)雜、設(shè)備繁多和無法撤銷的問題。本文設(shè)計實現(xiàn)了一種基于手勢識別的虛擬沙畫展示系統(tǒng),以方便沙畫的表演與創(chuàng)作。該系統(tǒng)使用Leap Motion設(shè)備獲取的手勢及其運(yùn)動信息,并提取基于角域劃分的特征向量,再使用該特征向量進(jìn)行手勢識別與跟蹤;同時,使用粒子運(yùn)動系統(tǒng)模擬落沙效果。實現(xiàn)與結(jié)果表明,所提出的系統(tǒng)能正確的識別出各種手勢,并能滿足基本的沙畫繪制過程。