孫新領(lǐng),李揚波,馬紹惠
(河南機電高等??茖W(xué)校 計算機科學(xué)與技術(shù)系,河南 新鄉(xiāng) 453000)
近年來,隨著數(shù)字媒體處理技術(shù)的快速發(fā)展及計算機視覺硬件成本的進(jìn)一步降低,計算機三維動畫技術(shù)及其應(yīng)用越來越普及且成熟,特別是在三維人體動畫方面,運動捕捉技術(shù)的廣泛使用生成了大量真實感三維運動數(shù)據(jù),并廣泛應(yīng)用于影視動畫、虛擬現(xiàn)實、計算機游戲及運動仿真等多個領(lǐng)域。由于運動捕捉技術(shù)獲取數(shù)據(jù)容易、精度高、真實感強以及制作效率高等特點,使用該技術(shù)制作三維角色動畫已成為主流趨勢。
運動捕獲技術(shù)的基本思想是采用特殊硬件設(shè)備實時捕獲真實運動角色(演員、動物等)的三維運動數(shù)據(jù),并將其映射到事先建立好的三維模型上,生成動畫序列。從本質(zhì)上而言,運動捕獲技術(shù)是一種數(shù)據(jù)驅(qū)動的動畫制作手段,包括基于運動捕獲數(shù)據(jù)的編輯、合成、重用等技術(shù)[1]。商用人體運動捕獲系統(tǒng)的普及,尤其是光學(xué)式運動捕捉系統(tǒng)的普及,使得獲取真實感三維人體運動數(shù)據(jù)不再是制作真實感三維人體動畫的瓶頸,可供重復(fù)利用的三維人體運動捕獲數(shù)據(jù)庫也已出現(xiàn),這使得數(shù)據(jù)驅(qū)動方式成為制作真實感三維人體動畫的重要手段。
運動捕捉技術(shù)的三維人體動畫制作流程分為三維運動數(shù)據(jù)獲取、數(shù)據(jù)重建、運動驅(qū)動等步驟。本文基于這一流程,采用大連東銳軟件公司的被動式光學(xué)運動捕捉系統(tǒng)作為平臺[2],討論了運動捕捉技術(shù)在三維人體動畫中應(yīng)用的方法和技巧,包括攝像機標(biāo)定、標(biāo)記點跟蹤和三維重建技術(shù)等,通過重建后的數(shù)據(jù)驅(qū)動Motion Builder中的虛擬角色,實現(xiàn)了一系列真實感人體動作的捕獲與使用,使虛擬角色具有了生命。
人體的動作可以看成是人體各個關(guān)節(jié)點的動作,在運動捕捉系統(tǒng)中,一般把人體看成是由13~19個關(guān)節(jié)點組成的簡單模型[3]。進(jìn)行運動捕捉時,首先要在人體的各個關(guān)節(jié)點上粘貼固定一個特殊的反光材料,稱為標(biāo)記點(Marker)[4]。這些反光材料可以被特殊的攝像機所追蹤。利用兩臺或兩臺以上的攝像機進(jìn)行實時視頻捕捉,從各個攝像機得到的序列圖片中可以得到每一幀中標(biāo)記點的運動情況。因此可以得到一個特定的點隨著時間變化的連續(xù)運動軌跡。然后通過三維重建技術(shù)將這些點的運動軌跡還原為骨架模型的動作。本次測試使用的運動捕捉系統(tǒng)為大連東銳軟件公司的DIMS9090,共8臺近紅外高清攝像機,用以采集三維動作數(shù)據(jù)。
在從攝像機所獲取的二維圖像信息計算三維空間結(jié)構(gòu)的過程中,要利用視點的位置信息和視點的朝向信息,因此需要知道攝像機的各種參數(shù),包括內(nèi)部參數(shù)和外部參數(shù)[5]。這些參數(shù)的獲取一般通過攝像機標(biāo)定技術(shù)實現(xiàn),該技術(shù)是計算機視覺系統(tǒng)中的一項重要技術(shù)。
為了精確地捕捉三維運動數(shù)據(jù),進(jìn)行了靜態(tài)標(biāo)定和動態(tài)標(biāo)定。靜態(tài)標(biāo)定通過對放置在捕捉區(qū)域的靜態(tài)標(biāo)定儀的象限和位置信息的計算完成。標(biāo)定時,靜態(tài)標(biāo)定儀要放置在所有攝像機視野的中心位置,本次測試放置如圖1所示。靜態(tài)標(biāo)定儀的三個軸把捕捉空間劃分為四個象限,其中XY 軸夾角方向為第一象限,從第一象限起按逆時針方向分別為二、三、四象限,每個象限對應(yīng)兩臺攝像機。動態(tài)標(biāo)定通過實驗人員使用動態(tài)標(biāo)定儀在捕捉區(qū)域運動,并對運動數(shù)據(jù)進(jìn)行運算,實現(xiàn)攝像機的動態(tài)標(biāo)定。動態(tài)標(biāo)定的精確度要達(dá)到95%以上。靜態(tài)標(biāo)定和動態(tài)標(biāo)定都是為了準(zhǔn)確定位標(biāo)記點的運動軌跡,同時也為了避免抖動、少點等問題,使捕捉的數(shù)據(jù)更準(zhǔn)確。
圖1 靜態(tài)標(biāo)定儀的放置
在光學(xué)運動捕捉系統(tǒng)中,標(biāo)記點為發(fā)光球,通過粘貼在角色所穿衣服的關(guān)節(jié)位置來實現(xiàn),使用安放于角色四周的一個或多個相機跟蹤捕捉這些標(biāo)記點。跟蹤標(biāo)記點的主要目的是能讓系統(tǒng)識別此點代表哪個關(guān)節(jié)點,以便在還原數(shù)據(jù)時直接將骨架連接起來。然后利用三維重建技術(shù)就可以獲得角色身上標(biāo)記點的三維運動軌跡,形成三維運動數(shù)據(jù)。
為了數(shù)據(jù)捕捉的精確性,標(biāo)記點必須覆蓋所有需要捕捉的骨骼,反映出骨骼的自由度及標(biāo)記點需盡可能與骨骼運動一致;為了提高數(shù)據(jù)的重建效率,避免缺點現(xiàn)象、標(biāo)記點的交叉和遮擋等問題,標(biāo)記點應(yīng)擺放在不易被遮擋的地方,標(biāo)記點間距離應(yīng)大小不一及相關(guān)標(biāo)記點間形成規(guī)則的幾何圖形。本次測試使用了21點標(biāo)記法,具體標(biāo)記位置和方式如圖2所示。
圖2 標(biāo)記點貼法
進(jìn)行了攝像機的標(biāo)定和標(biāo)記點的粘貼之后,接下來就是讓演員做出不同的動作,并通過捕捉系統(tǒng)對動作數(shù)據(jù)進(jìn)行采集。演員做動作時不要超出捕捉區(qū),盡量不要遮擋標(biāo)記點,動作速度要均勻,這樣采集到的數(shù)據(jù)才丟點更少、更準(zhǔn)確。
三維重建是指把圖像的二維坐標(biāo)還原到三維坐標(biāo),然后用這些三維坐標(biāo)的數(shù)據(jù)驅(qū)動創(chuàng)建的虛擬模型。被動式人體運動捕捉系統(tǒng)捕捉方式簡單快捷,采樣效率高,但所獲得的數(shù)據(jù)為一系列散亂數(shù)據(jù),因此這些數(shù)據(jù)在使用之前首先需要對數(shù)據(jù)進(jìn)行識別,確立數(shù)據(jù)點與標(biāo)記點的對應(yīng)關(guān)系,并對每一幀的數(shù)據(jù)點進(jìn)行匹配或補點。
在本文中連接模板需要手動建立,選擇無缺失點且容易辨認(rèn)的一幀數(shù)據(jù),逐一為每個點編號,把經(jīng)過標(biāo)定的這一幀數(shù)據(jù)作為匹配模板。對于同一個表演者捕捉的不同組的數(shù)據(jù)匹配模版可以共用,而不必為每組數(shù)據(jù)都確定一個新模板。本次測試選擇讓演員以T字形站立作為匹配模板,因為該姿勢匹配容易、準(zhǔn)確,且有利于后續(xù)在Motion Builder中使用捕捉的動作數(shù)據(jù)驅(qū)動虛擬角色。標(biāo)記點數(shù)據(jù)匹配連接前和連接后的模板比較如圖3所示。
圖3 數(shù)據(jù)的匹配與連接
利用光學(xué)式捕捉的原始運動數(shù)據(jù)有四個特點:(1)采集到的信息僅有標(biāo)記點的三維坐標(biāo)信息,數(shù)據(jù)以散亂無序的形式存在;(2)由于標(biāo)記點被道具、四肢、軀干或者其他標(biāo)記點遮擋,存在缺失點數(shù)據(jù),缺失點時常會連續(xù)缺失;(3)由于攝像延遲會出現(xiàn)噪聲點;(4)運動員在做劇烈運動時,標(biāo)記點相對于人體會出現(xiàn)位移,從而改變運動數(shù)據(jù)之間的拓?fù)浣Y(jié)構(gòu)[6]。因此,采集后的數(shù)據(jù)要進(jìn)行三維重建。
三維數(shù)據(jù)重建是利用攝像機捕捉的前后幀的同一點的運動軌跡和空間關(guān)系實現(xiàn),主要有技術(shù)有剔除噪聲點、彌補缺失點對運動數(shù)據(jù)進(jìn)行有序標(biāo)定等。本系統(tǒng)是通過第一幀的模板自動對后續(xù)幀進(jìn)行標(biāo)記點運動軌跡匹配,從而在每一幀上都形成與模板一致的連接,每一幀都是運動軌跡的體現(xiàn)。經(jīng)過重建后的三維數(shù)據(jù)通過數(shù)據(jù)格式轉(zhuǎn)換后可以用于不同的角色動畫制作環(huán)境。
采集后的數(shù)據(jù)要進(jìn)行數(shù)據(jù)的格式轉(zhuǎn)換,轉(zhuǎn)換為制作角色動畫所用軟件能識別的數(shù)據(jù)格式。可供導(dǎo)出的數(shù)據(jù)類型有.trc,.csm,.bvh 等。導(dǎo)出的數(shù)據(jù)就可以導(dǎo)入到動作合成軟件,并驅(qū)動虛擬角色運動了。
這一過程有兩大步驟,一是數(shù)據(jù)與Actor的對位,二是數(shù)據(jù)與Actor的綁定。對位時需要先把.trc等格式的文件導(dǎo)入到動作合成軟件Motion Builder中,然后把Actor拖入到視圖面板中。完成后調(diào)整數(shù)據(jù)的位置與方位,同時對Actor的骨骼進(jìn)行旋轉(zhuǎn)縮放等操作,使Actor與數(shù)據(jù)精確對位,主要是通過對手臂、腿部的骨骼進(jìn)行旋轉(zhuǎn)縮放,與T 字形數(shù)據(jù)進(jìn)行對位吻合。對位的準(zhǔn)確度影響動作驅(qū)動的精確程度。精確對位后,就可以對數(shù)據(jù)與Actor匹配綁定了。綁定時首先創(chuàng)建標(biāo)記點集,然后把數(shù)據(jù)點與Actor的驅(qū)動點進(jìn)行匹配,所有數(shù)據(jù)匹配完成后,激活A(yù)ctor,這時Actor已經(jīng)能隨數(shù)據(jù)而動,綁定完成。
數(shù)據(jù)與Actor綁定后,還需要Actor與虛擬角色進(jìn)行匹配,一個Actor可以與不同的虛擬角色進(jìn)行匹配,這樣同一套數(shù)據(jù)就可以驅(qū)動不同的虛擬角色。為了測試整個流程的穩(wěn)定性、易用性,進(jìn)行了多次、多樣運動驅(qū)動實驗。其中,對一套武術(shù)動作進(jìn)行了捕獲與虛擬角色的驅(qū)動。圖4顯示了真人動作與同步的虛擬角色動作的幾幀畫面。實驗表明,該流程操作準(zhǔn)確規(guī)范,捕捉的數(shù)據(jù)穩(wěn)定,噪點少,實現(xiàn)了真實動作驅(qū)動虛擬角色的運動。
圖4 虛擬角色運動效果
根據(jù)光學(xué)式運動捕捉在三維人體動畫中的應(yīng)用流程,總結(jié)了攝像機標(biāo)定、標(biāo)記點放置、運動驅(qū)動的方法和技巧,有效地解決了運動捕捉過程中產(chǎn)生的數(shù)據(jù)抖動、數(shù)據(jù)點丟失、運動失真等問題。接下來要深入挖掘運動捕捉數(shù)據(jù)的修復(fù)與重用問題,并進(jìn)一步研究動作數(shù)據(jù)在其他主流角色動畫制作工具中的使用問題,做出更流暢、更逼真的角色動畫。
[1]肖俊,莊挺越,吳飛.計算機視覺與機器學(xué)習(xí)技術(shù)在三維人體動畫中的應(yīng)用綜述[J].計算機輔助設(shè)計與圖形學(xué)學(xué)報,2008,20(3):281-290.
[2]大連東銳軟件有限公司.東方新銳DVMC-8820 三維運動捕捉/分析系 統(tǒng)[EB/OL][2013-01].http://www.dorealsoft.com
[3]Bodenheimer B,Rose C,Rosenthal S,et al.The Process of Motion Capture:Dealing with Data.8th Eurographics Int[C].Workshop on Computer Animation and Simulation'97,Budapest,Hungary,Springer-Verlag Wien,1997.
[4][5]黃波士,陳福民,張金劍.一種改進(jìn)算法的光學(xué)運動捕捉系統(tǒng)[J].同濟大學(xué)學(xué)報(自然科學(xué)版),2005,30(10):1372-1376.
[6]吳升,張強,肖伯祥等.一種新的光學(xué)運動捕捉數(shù)據(jù)處理方法[J].計算機應(yīng)用研究,2009,26(5):1938-1964.