摘要:首先給出了一個新的方法來建立手的模型。這個手的模型由兩個模型組成:一個是實現(xiàn)運動的骨骼模型,其決定了運動姿態(tài)及運動約束;另一個是表現(xiàn)運動的皮膚(表面)模型,用來表現(xiàn)真實感。其次,根據(jù)該模型實現(xiàn)手語的動作,利用該方法實現(xiàn)手語動作的關(guān)鍵技術(shù),包括手及手臂旋轉(zhuǎn)變換的變換矩陣、有向拓?fù)浣Y(jié)構(gòu)描述骨骼模型、表現(xiàn)運動的皮膚模型的拓?fù)洳蛔冃?、以及骨骼模型實現(xiàn)運動和皮膚模型表現(xiàn)運動的方法。該方法具有一定的通用性,為網(wǎng)絡(luò)環(huán)境下實現(xiàn)異語種的手語表達(dá)與傳輸打下了基礎(chǔ)。
關(guān)鍵詞:手語;骨骼模型;皮膚模型;有向拓?fù)浣Y(jié)構(gòu);拓?fù)洳蛔冃?/p>
中圖分類號:TP391文獻(xiàn)標(biāo)志碼:A
文章編號:1001-3695(2007)11-0315-03
0引言
在進行面對面的通信時,人們不但使用包括口語(語音)、書面語言(文字)等被稱為自然語言的語言通道,同時還經(jīng)常使用手勢、表情、體勢和頭勢等人體語言來強調(diào)某些重要的部分或表達(dá)某些特殊的意思,使用特殊的表情或動作表達(dá)和傳遞許多信息。手語是人體語言中一個非常重要的組成部分,是包含信息量最多的一種人體語言,與人們所定義的其他人體語言截然不同。手語同自然語言的表達(dá)能力相同,能夠單獨承擔(dān)交流信息的任務(wù);而且手語具有很強的視覺效果,它生動、形象、直觀。人最易于通過語言(自然語言)和手勢進行交流[1] 。
手語的研究不僅有助于改善和提高聾啞人等殘疾人的生活、學(xué)習(xí)和工作條件,為他們提供更好的服務(wù),同時也可以應(yīng)用于計算機輔助啞語教學(xué)﹑電視節(jié)目雙語播放﹑虛擬人的研究、電影制作中的特技處理、動畫的制作﹑醫(yī)療研究、游戲娛樂等諸多方面[1~13]。
目前,有關(guān)手語的研究主要集中在手語的識別及手語的合成領(lǐng)域,這都需要建立三維的手語模型。目前建立虛擬三維手的模型主要有兩類方法:a)基于VRML建立的虛擬三維手的模型,該方法建立的模型便于在Internet上表示并傳遞三維虛擬場景,但是表示的三維模型逼真度相對差一些[13,14];b)基于三維網(wǎng)格的虛擬三維手的模型,該方法建立的模型的優(yōu)點是可以利用大量的點面信息表示一個形象非常逼真的模型,但是由于采用大量的點面信息,計算量倍增并不利于網(wǎng)絡(luò)傳輸[4]?;诖?,本文主要介紹了一種基于雙重模型實現(xiàn)手語動作的方法(圖1)。該方法既能夠保證三維虛擬人手模型的逼真程度;又便于模型在網(wǎng)絡(luò)上的傳遞。其模型由皮膚模型和骨骼模型兩部分組成,骨骼模型實現(xiàn)運動,皮膚模型表現(xiàn)運動,并利用該雙重模型實現(xiàn)手語的動作。其手語動作實現(xiàn)過程如圖1所示。
1虛擬三維人手及手臂骨骼模型的建立
一個手語動作包含兩方面的內(nèi)容,即手的形狀和手在空間中所處的位置。也就是說,手語動作不僅僅是由手來完成的,它是由手及手臂共同協(xié)調(diào)來完成的。因此將手及手臂作為研究對象,建立一個手及手臂的整體模型。
手及手臂是由相應(yīng)的部位體和關(guān)節(jié)組合而成,它們的運動是由各個部位體繞著各自的關(guān)節(jié)旋轉(zhuǎn)所產(chǎn)生。將部位體抽象為一條線段,關(guān)節(jié)抽象為一個點,手及手臂抽象為由點和路徑組成的骨骼模型。這樣就會得到如圖2所示的手及手臂的抽象結(jié)構(gòu)。通過手及手臂的抽象結(jié)構(gòu)可以看出,一支手及手臂中腕關(guān)節(jié)有2個自由度,肘關(guān)節(jié)有2個自由度,肩關(guān)節(jié)有3個自由度,各手指關(guān)節(jié)共有25個自由度。這樣一只手及手臂就可用18個關(guān)節(jié)和32個自由度表示[13],通過部位體繞著各自的關(guān)節(jié)旋轉(zhuǎn)來完成許多復(fù)雜的手語動作。人的手及手臂的結(jié)構(gòu)是一種鉸鏈?zhǔn)浇Y(jié)構(gòu)(一段一段連接組成)[15],手及手臂的運動是繞關(guān)節(jié)做剛體的旋轉(zhuǎn)運動。由機器人運動學(xué)原理可知,手及手臂的運動是一種連帶性的運動,以肘關(guān)節(jié)為例:當(dāng)肘關(guān)節(jié)彎曲時,帶動整支手及小臂一起運動。
手及手臂骨骼模型決定了運動姿態(tài)及運動約束,骨骼模型解決了網(wǎng)絡(luò)傳輸以及大數(shù)據(jù)量計算的問題。a)在網(wǎng)絡(luò)傳輸時,只傳輸骨骼模型關(guān)節(jié)點的信息即可,而不需要傳輸組成皮膚模型的大量數(shù)據(jù),便于實時表現(xiàn)手語動作。b)手及手臂運動時,需要進行運動約束及運動干涉的檢查,如果使用帶著大量皮膚模型的數(shù)據(jù)進行計算不僅影響速度,而且也不方便。有了骨骼模型后,需要一個皮膚模型來表現(xiàn)真實感,這是十分重要的。
2虛擬三維人手及手臂的皮膚模型的建立
由于真實感的需要,對皮膚模型提出了苛刻的要求。而一個形象化皮膚模型需要大量的點和面組成,這樣建立的三維虛擬手及手臂模型才會非常接近于真實的人體,才能使手語動作更加擬人化。另外,還需要得到模型的必要的點、面信息,以便控制手及手臂模型實現(xiàn)復(fù)雜的手語動作。
本文建立的三維模型是從POSER中截取了一支手及手臂的三維模型,將其存儲為3DS文件格式;然后分析3DS文件格式,從中提取出組成模型的點和面信息,重新建立一個三維手及手臂模型。由于掌握了此模型的點、面的具體信息,對該模型可以編程控制其自由運動,實現(xiàn)手語動作。通過分析和多次實驗,從3DS文件中提取出組成模型的點和面信息,然后重新建立了手及手臂的皮膚模型。如圖3所示,該皮膚模型就是由若干個小的三角面拼接而成附著在骨骼模型的外面用來表現(xiàn)真實感。該模型非常逼真形象,甚至表現(xiàn)了臂部各肌肉塊的隆起。
在皮膚模型中不是簡單地重復(fù)使用截取的手臂數(shù)據(jù),而是將手臂的皮膚數(shù)據(jù)以骨骼為單位分解成19塊,并將分解的各個部分與骨骼模型中對應(yīng)的骨骼聯(lián)系起來。
3皮膚模型與骨骼模型的結(jié)合
骨骼模型和皮膚模型建立后,就需要通過骨骼模型實現(xiàn)運動以及皮膚模型表現(xiàn)運動。但是只有將骨骼模型與皮膚模型結(jié)合起來,才會使手語動作協(xié)調(diào)一致,骨骼模型實現(xiàn)的手語動作和皮膚模型表現(xiàn)的手語動作是同一個手勢。由皮膚模型可知,建立的手及手臂的模型一共由3 122個點、5 487個面組成。鑒于此,將皮膚模型關(guān)節(jié)處一周的點均打上標(biāo)記,然后求出這一周點的重心坐標(biāo)作為骨骼模型的關(guān)節(jié)點,再將相鄰關(guān)節(jié)點利用有向拓?fù)浣Y(jié)構(gòu)連接起來,就組成了骨骼模型。
關(guān)節(jié)點提取算法為:a)求出相鄰塊的坐標(biāo)值相同的點;b)求出關(guān)節(jié)點的坐標(biāo)值(重心坐標(biāo));c)建立骨骼模型。但對于五個手指尖的坐標(biāo)值的計算,不存在相鄰塊,通過計算塊中每一點與每根手指的第一關(guān)節(jié)點的重心距離來確定五個手指的指尖的坐標(biāo)值。于是得到如圖4所示的骨骼模型。
4手語動作的實現(xiàn)
手語動作實現(xiàn)主要是各部位體繞著各自的關(guān)節(jié)進行旋轉(zhuǎn),不管是手指的彎曲與伸展,還是整個手臂的運動,運動的基本原理都是一樣的。 以一支手臂作為研究對象,以肘關(guān)節(jié)的彎曲為例,肘關(guān)節(jié)的彎曲進行的是剛體的旋轉(zhuǎn)運動。這里的剛體運動沒有考慮來自機體內(nèi)的復(fù)雜的動力,如肌肉、韌帶所帶來的剛體部分的變形。由于采用的手及手臂的三維模型是由實現(xiàn)運動的骨骼模型和表現(xiàn)運動的皮膚模型兩個模型組成的,肘關(guān)節(jié)的彎曲運動就涉及到兩個模型的運動。
4.1骨骼模型實現(xiàn)運動
本文提出一種新的方法,即用有向拓?fù)浣Y(jié)構(gòu)來描述肢體的骨骼系統(tǒng)。與傳統(tǒng)拓?fù)浣Y(jié)構(gòu)一樣,有向拓?fù)浣Y(jié)構(gòu)也是由節(jié)點和路徑組成,不同的是,每一個路徑帶有指向和空間可以轉(zhuǎn)動的位相。每一個路徑都是一個獨立的局部坐標(biāo)系,局部坐標(biāo)系又支持包圍路徑的皮膚表面網(wǎng)格對骨骼的位置關(guān)系。兩個相鄰路徑的關(guān)聯(lián)坐標(biāo)系的自由度限制構(gòu)成了運動約束。
骨骼模型的彎曲是旋轉(zhuǎn)運動。由于骨骼的連接是通過關(guān)節(jié)點連接起來的,關(guān)節(jié)點相當(dāng)于一個固定點,即骨骼在繞定軸旋轉(zhuǎn)時,有一點保持不動。本文是以肘關(guān)節(jié)的彎曲來闡述骨骼模型實現(xiàn)運動的,肘關(guān)節(jié)的彎曲是由兩種旋轉(zhuǎn)運動復(fù)合而成:a)手及小臂的骨骼以肩關(guān)節(jié)和肘關(guān)節(jié)組成的直線為軸進行旋轉(zhuǎn)運動;b)手臂在某一個平面內(nèi),手及小臂的骨骼以通過肘關(guān)節(jié)點且垂直該平面的直線為軸進行旋轉(zhuǎn)運動。
4.2皮膚模型表現(xiàn)運動
對于附著在骨骼模型外面的皮膚模型來說,當(dāng)骨骼模型運動時,對應(yīng)的皮膚模型也隨之運動。組成骨骼模型的路徑有的運動,有的靜止,這樣就會造成附著在關(guān)節(jié)處的皮膚模型撕裂或折疊,破壞皮膚模型的完整性。為了保持運動后皮膚模型的完整性,將整個皮膚模型分為兩部分,即不變部分和可變部分??勺儾糠质侵钙つw模型在關(guān)節(jié)處的部分,其余部分為不變部分。在具體處理時, 將組成皮膚模型的小三角面的點分成三類處理。
a)第一類點是皮膚模型在大臂外面組成三角面的點(不包括皮膚模型在肘關(guān)節(jié)處的點),這一類點不進行角度旋轉(zhuǎn),坐標(biāo)不變,仍按原來的拓?fù)潢P(guān)系連接起來附著在骨骼模型的外面。
b)第二類點是皮膚模型在手及小臂外面組成三角面的點(也不包括皮膚模型在關(guān)節(jié)處的點),這一類點都進行角度旋轉(zhuǎn),得到新的坐標(biāo)值,然后仍按原來的拓?fù)潢P(guān)系連接起來附著在骨骼模型的外面。
c)第三類點是皮膚模型在關(guān)節(jié)處外面組成三角面的點,依靠這一類點連接運動后皮膚模型為一個整體,如圖5所示。
這一類點組成的三角面是分別進行處理的:對于a點,不進行角度旋轉(zhuǎn),坐標(biāo)不變;對于b、c兩點,進行角度旋轉(zhuǎn),得到新的坐標(biāo)值,然后仍按原來的拓?fù)潢P(guān)系連接起來,保持皮膚模型的完整性。對于小三角面來說,被拉伸或壓縮了,仍附著在骨骼模型的外面,不會出現(xiàn)裂縫和皺褶。
4.3手及手臂旋轉(zhuǎn)變換的變換矩陣
手及手臂的運動可以詳細(xì)描述為:手指的第一運動體繞其關(guān)節(jié)運動;手指的第一和第二運動體一起繞手指的第二關(guān)節(jié)運動;手指的第一、第二和第三運動體一起繞手指的第三關(guān)節(jié)運動;手指的第一、第二、第三運動體和手掌一起繞腕關(guān)節(jié)運動;手指的第一、第二、第三運動體、手掌和小臂一起繞肘關(guān)節(jié)運動;手指的第一、第二、第三運動體、手掌、小臂和大臂一起繞肩關(guān)節(jié)運動。手指運動之間是不相關(guān)的,手指的第一、第二、第三運動體、手掌、小臂和大臂的運動是相關(guān)的[16]。按照手語動作的描述來實現(xiàn)有兩個自由度的肘關(guān)節(jié)的彎曲。
肘關(guān)節(jié)的彎曲是由兩種旋轉(zhuǎn)運動復(fù)合而成的:第一種運動是手及小臂的骨骼以肘關(guān)節(jié)點和肩關(guān)節(jié)點組成的直線為軸進行旋轉(zhuǎn)運動;第二種運動是手臂在某一個平面內(nèi),手及小臂的骨骼以通過肘關(guān)節(jié)點且垂直該平面的直線為軸進行旋轉(zhuǎn)運動。這兩種運動的原理是一樣的,都是空間的某一點繞著一個旋轉(zhuǎn)軸進行旋轉(zhuǎn)運動,但對于第二種旋轉(zhuǎn)運動需要求出旋轉(zhuǎn)軸。
4.3.1旋轉(zhuǎn)軸的計算
對于第二種運動來說,是在一個平面內(nèi)進行旋轉(zhuǎn)運動。以肩關(guān)節(jié)、肘關(guān)節(jié)和腕關(guān)節(jié)三點組成的平面來求過肘關(guān)節(jié)點垂直于該平面的直線作為旋轉(zhuǎn)軸。
4.3.2旋轉(zhuǎn)變換矩陣
旋轉(zhuǎn)運動由兩個參數(shù)決定,即旋轉(zhuǎn)軸和旋轉(zhuǎn)角度。所有的旋轉(zhuǎn)均可以根據(jù)這兩個參數(shù)來實現(xiàn),并且可以分解為三個旋轉(zhuǎn)分量:a)以X軸為旋轉(zhuǎn)軸,繞X軸旋轉(zhuǎn)的旋轉(zhuǎn)角度;b)以Y軸為旋轉(zhuǎn)軸,繞Y軸旋轉(zhuǎn)的旋轉(zhuǎn)角度;c)以Z軸為旋轉(zhuǎn)軸,繞Z軸旋轉(zhuǎn)的旋轉(zhuǎn)角度。
也就是說,任何一個給定的旋轉(zhuǎn)運動均可以用分別繞三個坐標(biāo)軸的旋轉(zhuǎn)角度來描述。另外,分別繞三個坐標(biāo)軸的旋轉(zhuǎn)分量也可以合成為以空間某條直線為軸的旋轉(zhuǎn)。本文選取拇指、食指、中指、無名指、小指的三個運動單元、手掌和小臂繞旋轉(zhuǎn)軸進行旋轉(zhuǎn)實現(xiàn)肘關(guān)節(jié)的彎曲。因此實現(xiàn)手語動作就需要計算出某一點繞任意軸的旋轉(zhuǎn)變換矩陣。
如圖6所示,設(shè)旋轉(zhuǎn)軸AB由空間任意點A(xa,ya,za)和B(xb,yb,zb)及其方向數(shù)(a,b,c)定義,空間一點P(xp*,yp*,zp*)繞AB軸旋轉(zhuǎn)角θ到P*(xp*,yp*,zp*),,即要使[xp*, yp*, zp*, 1]=[xp yp zp 1]×Rab。其中:Rab為待求的變換矩陣。
求Rab的基本思想是以(xa,ya,za)為新的坐標(biāo)原點,并使AB分別繞Z軸、X軸旋轉(zhuǎn)適當(dāng)角度與Y軸重合,再繞Y軸轉(zhuǎn)角θ,最后再作上述變換的逆變換,使之回到原點的位置。通過上面的方法就可以求出空間任意一點繞任意軸旋轉(zhuǎn)的變換矩陣。利用該矩陣就可以實現(xiàn)手語的動作。
5實驗結(jié)果
根據(jù)前面的方法,本文通過實驗已經(jīng)實現(xiàn)了手語動作。在實驗中,根據(jù)實際人的手語情況,選擇了一支手臂作為實驗對象。首先建立一個手及手臂的三維虛擬模型,該模型是由手及手臂的皮膚模型和骨骼模型兩部分組成,如圖3、4所示。
在實驗中,選擇了以手臂的大臂作為旋轉(zhuǎn)軸,實現(xiàn)手臂肘關(guān)節(jié)的彎曲運動。這是因為,一方面肘關(guān)節(jié)相對于手指來說易于顯示和表現(xiàn);另一主要原因是肘關(guān)節(jié)彎曲和手指彎曲的基本原理是一樣的。根據(jù)前面介紹的求手及手臂旋轉(zhuǎn)變換的變換矩陣方法,以大臂為旋轉(zhuǎn)軸求出對應(yīng)的旋轉(zhuǎn)變換矩陣。按照前面的手語動作實現(xiàn)方法就可以實現(xiàn)利用骨骼模型實現(xiàn)運動和利用皮膚模型來表現(xiàn)運動,如圖7~9所示。
圖7、8是第一種運動旋轉(zhuǎn)30°和旋轉(zhuǎn)60°的手及手臂的骨骼模型和皮膚模型。圖9是第二種運動旋轉(zhuǎn)30°的手及手臂的骨骼模型和皮膚模型。
6結(jié)束語
本文提出了一個新的方法來建立手的模型。這個手的模型是由兩個模型組成:一個是實現(xiàn)運動的骨骼模型,該模型決定了運動姿態(tài)及運動約束;另一個是表現(xiàn)運動的皮膚(表面)模型,使用該雙重模型,不僅可以降低網(wǎng)絡(luò)傳輸數(shù)據(jù)量,還可以形象逼真地表示手語動作。在今后的工作中,筆者將進一步利用該模型實現(xiàn)異語種的網(wǎng)絡(luò)通信及相關(guān)的研究工作。
參考文獻(xiàn):
[1]AOKI Y,TANAHASI S.Development of a CG-animation system for sign language communication between different languages[C]//Proc of International Conference on Information,Communication and Signal Procesing.Sapparo:[s.n.],1997:1668-1671.
[2]PANDZIC,IGOR S.Facial animation framework for the Web and mobile platforms[C]//Proc of the 7th International Conference on 3D Web Technoloyg.New York:ACM Press,2002:27-34.
[3]PANDZIC I S,F(xiàn)ORCHHEIMER R.MPEG-4 facial animation:the standard,implementation and applications[M].[S.l.]:Wiley,2002.
[4]WATERS K.A muscle model for animating three-dimensional facial expression[J].Computer Graphics,1987,21(4):17-24.
[5]KARUNARATNE S K,YAN Hong.Modeling and training emotional talking faces of virtual actors in synthetic movies[C]//Proc of Visual Communications and Image Processing Conference.2000:1480-1489.
[6]MAGNENAT,THALNANN N,THALMANN D.Virtual actors living in a real world[C]//Proc of Computer Animation.Geneva:[s.n.],1995:19-29.
[7]WATANABE T,OKUBO M,ISHII Y.An embodied virtual face-to-face communication system with virtual actor and virtual wave for human interaction sharing[C]//Proc of the 4th World Multiconference on Systemics, Cybernetics and Informatics.Orlando:Virtual Enginee-ring and Emergent Computing,2000:23-26.
[8]KIM S W,LI J C,AOKI Y.A dictionary structure for sign language translation between korean and japanese[C]//北海道大學(xué)工學(xué)研究科1997年間報文集.1998:289-293.
[9]SUGIYAMA H,TANAHASHI S,AOKI Y.Recovering three dimensional hand motions of sign language from monocular Image Sequence[C]//Proc of the 1st Interational Conference on Information Communication Signal Processing.New York:[s.n.],1997:1098-1101.
[10]AOKI Y,TANAHASHI S,SUGIYAMA H.Tracing of arm motion by matching video images with 3D arm model for intelligent communication of sign language[C]//Proc of the 3th IEEE International Conference on Electrionics,Circuits and Systems.Rodos,Greece:[s.n.],1996:53-56.
[11]徐琳,高文.面向機器翻譯的中國手語的理解與合成[J].計算機學(xué)報,2000,23(1):60-65.
[12]楊長水,王兆其,高文.基于Web的手語新聞虛擬主持人的研究與實現(xiàn)[C]//第一屆全國虛擬現(xiàn)實與可視化學(xué)術(shù)會議.北京:[出版者不詳],2001.
[13]王兆其,楊長水,高文. 基于VRML的中國手語三維顯示[J].計算機研究與發(fā)展,2003,40(3):459-462.
[14]王兆其,高文.基于虛擬人合成技術(shù)的中國手語合成方法[J].軟件學(xué)報,2002,13(10):2051-2056.
[15]LEE J,KUNII T L.Model-based analysis of hand posture[J].Computer Graphics and Applications,1995,15(5):77-86.
[16]宋益波,高文,尹寶才,等.文本驅(qū)動的聾啞人手語合成系統(tǒng)[J].計算機學(xué)報,1999,22(7):733-739.
“本文中所涉及到的圖表、注解、公式等內(nèi)容請以PDF格式閱讀原文”