專利名稱:運動捕捉中的facs求解的制作方法
技術領域:
本發(fā)明一般地涉及運動捕捉,更具體而言涉及用于動畫化覆蓋在數字 面部模型上的皮膚層的方法和系統(tǒng)。
背景技術:
運動捕捉系統(tǒng)被用于捕捉真實對象的運動,并將其映射到計算機生成 的對象上,以作為使之動畫化的方式。這些系統(tǒng)常在電影和視頻游戲的生 產中被用于創(chuàng)建對象或人的數字表示,該數字表示被用作源數據,以創(chuàng)建 計算機圖形("CG")動畫。在典型的系統(tǒng)中,演員穿著一套服裝,該套 服裝上的各個位置處附著了標志(例如,小的反射性標志被附著到身體和 四肢)。然后,在標志被照亮的同時,精確布置的數字相機從不同角度記 錄在捕捉空間中演員的身體運動。系統(tǒng)隨后分析圖像以確定在每一幀中演 員服裝上的標志的位置(例如,空間坐標)和方向。通過跟蹤標志的位
7置,系統(tǒng)創(chuàng)建在一段時間中標志的空間表示,并且構建運動中的演員的數 字表示。該運動隨后被應用到虛擬空間中的數字模型,該數字模型隨后可 被賦予紋理和顏色,以產生演員和/或表演的完整CG表示。該技術已被特 技效果公司用來在許多流行的電影中產生逼真的動畫。
捕捉表現演員面部表情的運動要求使用與捕捉身體運動相類似的方 法。但是,要求演員在其面部穿著"服裝"是不實際的。另外,人類面部 表情涉及比典型身體運動微妙得多的面部肌肉運動。為了進行面部運動捕 捉,標志改為被直接附于演員的面部,通常被定位來最優(yōu)地限定面部運 動。標志還被足夠大量地施加以捕捉面部肌肉運動的許多微妙類型。但 是,大量的標志及其接近度使得捕捉后的幀到幀標志跟蹤變得很困難,并 且要求大量手工處理來確保每個個體標志都被準確跟蹤。
這些數據被清潔以大大減輕跟蹤的困難。但是,當所捕捉的用來動畫 化數字面部模型的面部標志數據在空間上也不與數字面部模型良好匹配 時,經常出現另一個問題。在所得到的面部動畫中,人物的皮膚經常呈現 一種不連續(xù)的外觀。
發(fā)明內容
本發(fā)明的實施例包括用于實現生成并動畫化數字面部模型上的皮膚層 的技術的系統(tǒng)、方法、裝置和計算機程序。
在一個方面中, 一種方法包括從面部標志數據生成面部肌肉激活; 利用面部肌肉激活來動畫化計算機圖形面部模型;生成覆蓋計算機圖形面 部模型的皮膚層;以及利用面部標志數據來動畫化皮膚層。
在另一個方面中, 一種系統(tǒng)包括面部肌肉激活模塊,用于接收面部 標志數據并且生成面部肌群激活;動畫化模塊,用于接收面部肌群激活并 且生成被激活的面部模型;以及皮膚層模塊,用于接收被激活的面部模型 和面部標志數據,并且生成被動畫化的、帶皮膚層的面部模型。
在査閱以下詳細描述和附圖之后,本領域的普通技術人員將很清楚本 發(fā)明的其他特征和優(yōu)點。
本發(fā)明的結構和操作細節(jié)一部分可通過研究附圖來掌握,附圖中類似 地標號指代類似的部件,其中-
圖1是面部運動捕捉系統(tǒng)的功能框圖2是示出根據一種實現方式動畫化數字面部模型的方法的流程圖; 圖3是示出根據一種實現方式初始化FACS矩陣的方法的流程圖; 圖4是示出根據一種實現方式清潔面部標志數據的方法的流程圖; 圖5是示出根據一種實現方式從面部標志數據生成面部肌肉激活的方 法的流程圖6是根據本發(fā)明一種實現方式用于動畫化數字面部模型的系統(tǒng)的功 能框圖7是用于生成動畫化的皮膚層的皮膚層模塊的功能框圖; 圖8A是示出用戶和計算機系統(tǒng)的示圖;以及
圖8B是示出容宿著FACS求解(solving)系統(tǒng)的計算機系統(tǒng)的功能 框圖。
具體實施例方式
這里公開的某些實現方式提供了用于生成并動畫化數字面部模型上的 皮膚層的系統(tǒng)和方法。例如,這里公開的一種方法允許了從面部標志數據 生成面部肌肉激活;利用面部肌肉激活來動畫化計算機圖形面部模型;生 成覆蓋計算機圖形面部模型的皮膚層;并且利用面部標志數據來動畫化皮 膚層。
動畫化皮膚層可包括將面部標志數據點與皮膚層的相應區(qū)域關聯起 來,并且移動皮膚層的相應區(qū)域。移動皮膚層的該區(qū)域(1)對應于面 部標志數據點與在時間上關聯的另一幀的數據點的空間位置之間的位移; 并且(2)包括在皮膚的該區(qū)域上的預定位置處施加該位移。
在閱讀本說明書后,本領域的技術人員將會清楚如何以各種可供選擇 的實現方式在各種可供選擇的應用中實現本發(fā)明。然而,雖然這里將描述 本發(fā)明的各種實現方式,但應當理解,這些實現方式只是以示例方式給出
9的,而不是以限制方式給出的。因而,這里對各種可供選擇的實施例的詳 細描述不應當被解釋為限制由權利要求限定的本發(fā)明的范圍或廣度。
面部動作編碼系統(tǒng)("FACS")提供了一種標準分類法,用于系統(tǒng) 地對人類面部表情分類。表示各種面部表情的面部運動數據被利用如圖1 所示的運動捕捉系統(tǒng)來捕捉,然后可根據FACS被分類。跟蹤差錯將導致 所標記的標志數據的軌跡異常,從而使得該數據不適合于分類。
FACS清潔系統(tǒng)的實現包括用于去除各種跟蹤差錯并且提高虛擬空間 中捕捉的標志數據的穩(wěn)定性的系統(tǒng)和方法。利用FACS、 FACS清潔系統(tǒng) (詳細記載于2006年7月28日提交的題為"FACS Cleaning in Motion Capture"的美國臨時專利申請No. 60/834,132中)、 一類表演驅動的面部 動畫(詳細記載于2007年4月24日提交的題為"Performance Driven Facial Animation"的美國專利申請No. 11/739,448中)、以及面部標志數 據,生成了具有動畫化的皮膚的動畫化的數字面部模型。
在本發(fā)明的一種實現方式中,清潔數據被接收并被利用FACS矩陣來 處理。S卩,"經過清潔"的數據基本上免除了時間性的標志空隙、誤標記 的標志以及噪聲。FACS矩陣是FACS的一種實現方式,其中維護了多個 面部姿態(tài)。FACS矩陣中的每個面部姿態(tài)表示了特定演員所表演的基本不 同類型的姿態(tài)。然后,利用面部標志數據來再次使用FACS矩陣,以確定 哪些肌群被面部標志數據中捕捉的特定姿態(tài)所激活。肌群激活被用于相應 地動畫化CG人物的數字面部模型。
建模器通常為數字面部模型形成面部形狀,以與每個演員所提供且存 儲在FACS矩陣中的姿態(tài)相對應。通過利用FACS矩陣得出的面部肌群激 活來激活面部形狀。這樣就引起了數字面部模型的動畫化。
動畫化有時導致數字面部模型的皮膚上的不連續(xù),這就好像對皮膚的 分割,因為數字面部模型所作出的各種姿態(tài)是以非開即關(on-or-off)的 方式被觸發(fā)的。也就是說,數字面部模型的皮膚不是直接受到結合FACS 矩陣的面部標志數據的影響的。而是,面部標志數據被用于觸發(fā)由建模器 形成的各種面部形狀的激活。
為了補償所導致的皮膚上的不連續(xù),在某些方面類似于表演驅動的面
10部動畫的另一種皮膚動畫化方法(有時稱為"直接驅動"方法)被應用到 已經通過觸發(fā)面部肌群而動畫化的數字面部模型的頂層。在數字面部模型 的面部皮膚和面部標志數據之間形成直接對應。當面部標志數據點運動 時,它們也在皮膚層上直接拖曳。這作為單獨的一層被覆蓋在數字面部模 型上,并且可用于實現多種效果。例如,演員面部的皮膚的自然抖動在相 應的動畫化的人物的面部上可以被衰減,或者可以同樣容易地被過度驅動
以夸大效果。因此,通過FACS矩陣來激活肌群,然后利用面部標志數據 來驅動皮膚層的運動,這不僅提供了對傳統(tǒng)意義上的動畫化的控制(人物 不會脫離模型),而且允許了在被捕捉時皮膚可以像其在演員面部上那樣 生動。
圖1是面部運動捕捉系統(tǒng)100的功能框圖,該面部運動捕捉系統(tǒng)100 包括運動捕捉處理器110、運動捕捉相機120、 122、 124、用戶工作站 130、以及被施加以多個面部標志150的演員面部140。運動捕捉處理器 110可以有線或無線地連接到工作站130。運動捕捉處理器110 —般被配 置為接收來自工作站130的控制數據分組。
在圖l所示的實現方式中,三個運動捕捉相機120、 122、 124連接到 運動捕捉處理器模塊110。但是,根據各種用戶和動畫相關要求,可以使 用更多或更少的運動捕捉相機。運動捕捉相機120、 122、 124對焦在演員 面部140上,在演員面部140上的特定目標點處布置了表面球狀面部標志 150。雖然面部標志150被示為布置在演員面部140的特定位置,但經常 出現這樣的情況,即面部標志150被布置以便優(yōu)化對特定面部肌群或者演 員面部140的其他限定區(qū)域的捕捉。 運動捕捉相機120、 122、 124被運動捕捉處理器IIO控制,并且它們 逐幀地捕捉標志的二維("2D")圖像。這樣捕捉的圖像數據一般被存儲 在用戶工作站130處和/或在用戶工作站130處實時査看。通過對運動捕捉 相機120、 122、 124在捕捉空間中的空間位置進行三角測量,來合并由運 動捕捉相機120、 122、 124中每一個獲取的2D圖像數據的幀。該合并處 理被稱為"重建",并且在輸出處生成體積性面部標志數據的幀。幀中的 每個面部標志數據點包括一個相應的空間位置,并且體積性面部標志數據的幀形成一時間序列,該序列實質上是下述體積的三維("3D")采樣的
序列在該體積中,在表演期間捕捉了演員的面部運動。
重建的體積性面部標志數據的幀的序列被稱為一 "拍"(beat),這 通常表示其間捕捉演員表演的一次"拍攝"(take)。運動捕捉處理器 110執(zhí)行一拍的跟蹤功能。執(zhí)行跟蹤以將每一幀的面部標志與該拍中在該 序列中處于其前和其后的其他幀的相應面部標志準確地關聯起來。唯一的 標記(label)被指派給每個面部標志數據點,并且在該拍的持續(xù)時間期間 被跟蹤,從而得出每個面部標志數據點的軌跡線。 一旦完成了時間關聯, 所得到的面部標志數據在每個幀中就包括虛擬空間中的頂點的系統(tǒng),每個 頂點由被標記的標志來表示。頂點的系統(tǒng)構成了表示演員面部140的模擬 表面。
希望特定幀中表示特定面部標志150的面部標志數據點與后續(xù)幀中表 示該面部標志150的面部標志數據點在時間上相關聯。對表示特定面部標 志150的面部標志數據點的正確時間關聯將生成表示特定標志150的運動 的平滑且連貫的軌跡。但是,可能發(fā)生跟蹤差錯。
跟蹤差錯通常包括錯誤地將一個幀中的面部標志數據點與下一幀中的 面部標志數據點關聯起來,這通常會導致所解出的面部標志150的軌跡的 運動中的表觀急動(jerk)。當面部標志150在幀序列中被連續(xù)誤標記 時,差錯還可表現重復性的抽動(twitch)。差錯的其他示例包括錯誤的 三角測量、對對象的可見性較差的視圖的重建,以及在兩個軸上正確但在 第三軸上錯誤的數學"幻影"。
圖2是示出根據一種實現方式動畫化數字面部模型的方法200的流程 圖。在圖示的實現方式中,在塊210,初始化FACS矩陣。初始化實質上 包括定義FACS矩陣中的FACS動作單元,并且為演員校準相關聯的姿 態(tài),這在下文中聯系圖3更詳細地描述。
在塊220,接收面部標志數據。面部標志數據構成體積性數據的幀的 序列,每個幀包括多個面部標志數據點,并且每個面部標志數據點包括一 個空間位置。如上所述,跟蹤處理已經在時間上基本將每個面部標志數據 點與幀序列中的至少一個其他幀的面部標志數據點關聯起來了。 一般來說,每個面部標志數據點與幀序列的多個其他幀中的面部標志數據點在時 間上關聯,從而在該序列內定義的體積中形成了一條軌跡。
在塊230,清潔面部標志數據以使數據免除時間關聯空隙、面部標志 數據點誤標記以及噪聲。時間關聯空隙例如發(fā)生在對幀中的一個或多個面 部標志數據點的標記失敗時,從而導致序列中的相鄰幀的正確標記的點之 間的"空隙"。有時,幀中的一個或多個點被誤標記,從而不正確地將它 們與相鄰幀中的點在時間上關聯。從而,在幀序列的相鄰和其他幀中的本 應會被正確標記的點的軌跡中出現了不連續(xù)。例如,由于圖像獲取和/或重 建期間發(fā)生的小差錯,在面部標志數據中可能存在噪聲,從而導致所解出 的面部標志數據的空間位置相對于其真實空間位置有位移。在一種實現方 式中,根據圖4的流程圖示出的方法400來執(zhí)行清潔。
在塊240,從面部標志數據生成面部肌肉激活。生成面部肌肉激活實 質上包括確定表征近似面部標志數據的動作單元的加權組合的權重;以 及生成加權的激活。在下文中聯系圖5來更詳細描述生成面部肌肉激活。
在塊250,利用面部肌肉激活來動畫化計算機圖形("CG")面部模 型。在一種實現方式中,CG面部模型是已經被藝術家或動畫家"裝配" 的數字面部模型。裝配數字面部模型包括設置不同的筋膜層(fascia layer),這些筋膜層被混合以在數字面部模型上產生最終的面部變形。在 一種實現方式中,筋膜層包括允許面部肌肉變形的肌肉層(muscle layer)、允許頜部運動的頜部層(jaw layer)、控制不同面部區(qū)域中的皮 膚凸起的體積層(volume layer)、以及用于發(fā)音的唇部運動的發(fā)音層 (articulationlayer)。
肌肉層包括頭骨貼片,其中有使面部變形的肌肉控制。肌肉控制由從 運動捕捉數據生成的加權激活所激活。頜部層幫助控制數字面部模型的頜 部的運動。體積層向數字面部模型上發(fā)生的變形添加體積。因此,體積層 幫助模擬皺紋和其他面部變形,這些可以由從運動捕捉數據生成的加權激 活來觸發(fā)。發(fā)音層涉及唇部變形時的形狀。具體地,發(fā)音層幫助控制唇部 的巻動和體積,這是面部表情中唇部扁起或者起皺時必不可少的。面部標 志數據被映射或者說重定位到數字面部模型上,作為觸發(fā)各種筋膜層的加
13權激活。也就是說,權重量化了一個或多個預定的姿態(tài)中的每一個在觸發(fā) 筋膜層時施加的比例影響。
但是,有時,如上所述地利用加權激活來觸發(fā)筋膜層會導致CG面部 模型的表面上的不合需要的分割效應。也就是說,被觸發(fā)的各種肌群在其
間隙處表現出不連續(xù)性。利用一個單獨的皮膚層來覆蓋CG面部模型將平
滑間隙處的不連續(xù),并且提供了另一種媒介,通過該媒介,藝術家或動畫 家可控制所得到的面部動畫的外觀。
因此,在塊260,生成覆蓋CG面部模型的皮膚層。在一種實現方式 中,該皮膚層被生成為與上述四個筋膜層分開的成分。皮膚層符合CG面 部模型的外表面。它可被賦予各種視覺屬性,例如包括顏色、紋理、透明 度、毛發(fā)和/或皮毛。皮膚層還可被賦予各種物理屬性,例如包括彈性、厚 度和密度。在另一種實現方式中,皮膚層被劃分成多個區(qū)域,每個區(qū)域對 應于一個面部標志數據點。
在塊270,隨后利用面部標志數據來動畫化皮膚層。在一種實現方式 中,被表達為幀序列中每個面部標志數據點的軌跡的、演員上的每個面部 標志的運動被傳遞到皮膚層的相應區(qū)域。也就是說,在幀與幀之間表現出 空間位移(即,空間位置的變化)的每個面部標志數據點在皮膚層的相應 區(qū)域上施加相應的位移。在一種實現方式中,被這樣施加到皮膚層的區(qū)域 的位移就像在皮膚上的"拉曳" 一樣。應當明白,取決于演員的表演,在 特定時間并非所有面部標志數據點都將移動。
在一種實現方式中,聯系皮膚層的相應區(qū)域,在預定位置處施加每個 面部標志數據點的位移。在一個示例中,根據對該層的密度確定,在每個 區(qū)域的質心處施加位移。在另一種實現方式中,根據表面擴散函數,在相 應區(qū)域上分布每個面部標志數據點的位移。例如,在相應區(qū)域上均一地施 加面部標志的位移。在另一種示例中,在相應區(qū)域的中心處施加面部標志 的位移,并且根據高斯分布在該區(qū)域上分布該位移。
在另一種實現方式中,對每個面部標志數據點的位移進行調制。調制 的示例包括但不限于根據線性和非線性函數來縮放位移和/或修改位移的方 向。在另一種實現方式中,根據與相應區(qū)域相關聯的彈性函數來在該區(qū)域上分布面部標志數據點的位移。在另一種實現方式中,根據與相應區(qū)域相 關聯的厚度函數來在該區(qū)域上分布面部標志數據點的位移。在另一種實現 方式中,根據與相應區(qū)域相關聯的密度函數來在該區(qū)域上分布面部標志數 據點的位移。
圖3是示出根據一種實現方式初始化FACS矩陣的方法210的流程圖。
根據FACS,人類面部具有按被稱為"動作單元"的群組來一起工作 的肌肉。FACS提供了一種框架,用于判定何時某些動作單元被觸發(fā),以 及如何向每個動作單元指派對給定面部姿態(tài)的相對影響。面部表情被分類 成多個不同的動作單元。每個動作單元定義了產生面部外觀的瞬間變化的 肌肉活動("激活")。對于不同的人,面部外觀的這些變化取決于面部 解剖體構造而有所不同,所述解剖體構造例如是骨骼結構、脂肪堆積、皺 紋、各種面部特征的形狀,以及其他有關面部外觀。但是,在這些動作單 元被觸發(fā)時,在人與人之間可以看到某些共性。FACS中使用的動作單元 是基于面部動作在面部上的位置以及所涉及的面部動作的類型的。例如, 上半面部具有影響眉毛、前額和眼瞼的肌肉,而嘴部和唇部周圍的下半面 部則形成另一群組。這些肌肉中的每一個成組地工作以形成動作單元,并 且這些動作單元可以被進一步分解成面部的左部和右部區(qū)域,這些左部和 右部區(qū)域可被非對稱且彼此獨立地觸發(fā)。
在塊300,為FACS矩陣定義動作單元。在一種實現方式中,FACS 矩陣包括64個動作單元,每個動作單元表示一個特定的面部表情,并且 定義了一起工作以產生面部表情的面部肌肉激活的群組。動作單元被進一 步分解成表示面部的左側和右側,這被用來表示非對稱的面部姿態(tài)。
在塊310,對FACS矩陣的動作單元進行校準。在一種實現方式中, 每個演員具有一個唯一的、個體化的FACS矩陣。該演員的FACS矩陣所 維護的每個動作單元通過以下方式得以校準對演員對與該動作單元相對
應的姿態(tài)的表演進行運動捕捉。面部標志數據如上所述被捕捉、被進行 FACS清潔、并且與特定動作單元相對應地被指派給FACS矩陣。在另一 種實現方式中,演員以極端的方式表演每個姿態(tài),以確立在一拍期間表演該姿態(tài)或類似姿態(tài)時面部標志偏離的預期限度。
圖4是示出根據一種實現方式清潔面部標志數據的方法230的流程圖。
在塊400,粗略穩(wěn)定幀序列的面部標志數據。在面部運動捕捉的一拍 的過程期間,除了與面部表情相關的微妙運動之外,演員還可執(zhí)行相對粗 糙的頭部運動,其中包括平移運動和旋轉運動。在一種實現方式中,消除 粗糙的頭部運動,以更好地暴露出演員的面部表情的微妙運動,從而得到 平移不變且旋轉不變的面部標志數據。例如,識別面部標志數據的第一 幀。根據演員面部上的兩個或更多個預定的剛性點來使幀序列中的其他幀 的面部標志數據與第一幀的面部標志數據對齊。例如,這種剛性點包括與 附著在頭部、耳部和鼻梁處的標志相對應的面部標志數據點。 一般來說, 以這樣一種方式來選擇剛性點,以使得它們相對于演員的面部表情而言是 不變的,但仍捕捉了運動捕捉表演空間中演員的物理運動。根據這些剛性 點,對于幀序列定義空間坐標系統(tǒng)。因此,面部標志數據的其余運動基本 上僅與面部表情相關,并且在該空間坐標系統(tǒng)中被相應地定義。
在塊410,在FACS矩陣的空間中,修復有缺陷的面部標志數據點。 在一種實現方式中,在FACS矩陣的所有FACS姿態(tài)(即,動作單元)的 空間中分析演員的表演的幀。因而,可將FACS姿態(tài)視為由空間數據點定 義的面部基本向量。為傳入幀計算每個面部基本向量的權重,使得面部姿 態(tài)(即,面部基本向量)的加權組合近似傳入幀中的新姿態(tài)。然后將新姿 態(tài)的面部標志數據點與面部姿態(tài)的加權組合相比較,以判定是否存在任何 遺漏的、誤標記的或者噪聲大到"不可接受"的面部標志數據點。利用來 自FACS姿態(tài)的加權組合的適當數據點來替換傳入幀中的任何這種有缺陷 的面部標志數據點。
在塊420,約束面部標志數據點,以使之不能獨自特殊地運動。該約 束一般是適用的,這是因為單個特定面部標志數據點以與相鄰面部標志數 據點明顯不相同的方式運動的可能性是較低的,因此單個面部標志數據點 的特殊行為一般指示出缺陷。 一旦確定了,就可以修改數據點的不正確運 動。
16在塊430,約束面部標志數據點,以使之與相應肌群一起運動。在一種實現方式中,不允許面部標志數據點以相對于其所屬肌群而言不自然的方式運動。
在塊440,在幀中精細穩(wěn)定面部標志數據。通過確定相對于面部表面模型的標志運動來精細穩(wěn)定面部標志數據點的空間位置。在一種實現方式中,通過調節(jié)面部標志數據點運動以遵循預定的面部表面模型,來精細穩(wěn)定面部標志數據點的空間位置。在另一種實現方式中,精細穩(wěn)定是通過利用FACS矩陣中維護的面部姿態(tài)調節(jié)偏離的面部標志數據點來實現的。在又一種實現方式中,利用剛性標志來手工地精細穩(wěn)定面部標志數據點。
總之,以兩種方式來進行穩(wěn)定-粗略穩(wěn)定和精細穩(wěn)定。粗略穩(wěn)定利用了附于身體上的剛性標志(例如,頭部/面部標志)。這些剛性標志足夠地大,使得能夠計算變換矩陣來將剛性標志(頭部/面部)的位置從其在空間中的位置變換到規(guī)范的原點,以便對面部表情的所有分析都可以在鎖定的位置中進行。但是,在存在噪聲、不一致的標記和其他異常(例如,面部表情的異常)的情況下,被計算來逐幀地鎖定頭部的粗略穩(wěn)定變換并不一致,這會導致微小的搖擺、扭曲、爆裂(pop)和其他噪聲。當這些數據被用于面部重定位時,就很難生成良好的面部表情了。因此,需要去除搖擺、扭曲、爆裂和其他噪聲的精細穩(wěn)定。這可以通過使用針對特定演員的FACS矩陣來實現。FACS矩陣被用于分析與給定表情一致的標志的微小運動。因此,對于一個表情, 一組標志指示出從FACS矩陣獲知的或通過FACS矩陣來得出的一致運動。但是,如果運動不那么一致或者是不一致的,則可在整個面部對該運動進行矯正和"補償",以便使整個面部(和/或頭部)更穩(wěn)定。
圖5是示出根據一種實現方式從面部標志數據生成面部肌肉激活的方法500的流程圖。
在塊500,確定權重,以表征近似傳入的面部標志數據的幀中表示的姿態(tài)的動作單元的加權組合。如上所述,表示某些面部肌群的激活的動作單元可被視為面部基本向量。因此, 一個或多個動作單元-包括但最多不超過FACS矩陣中的所有動作單元-被用作加權組合的分量,以近似傳入面部標志數據中的姿態(tài)。也就是說,面部標志數據被表征為FACS矩陣中
的預定動作單元中的某種組合。對權重的確定涉及將與每個動作單元相關聯的面部姿態(tài)數據的加權組合與新的面部姿態(tài)數據相擬合。在一種實現方式中,諸如最小二乘擬合之類的線性優(yōu)化被用于計算權重的最優(yōu)組合。在另一種實現方式中,非線性優(yōu)化被用于執(zhí)行擬合。
一旦確定了權重,在塊510則生成加權激活。在一種實現方式中,如聯系圖2所述,權重被施加到與每個動作單元相關聯的肌群激活,并且所得到的激活被組合以生成加權激活。加權激活隨后被施加到數字面部模型。
圖6是根據本發(fā)明一種實現方式用于動畫化數字面部模型的系統(tǒng)600的功能框圖。系統(tǒng)600包括清潔模塊610、面部肌肉激活模塊620、 FACS模塊630、動畫化模塊640以及皮膚層模塊650。
在圖6所示的實現方式中,清潔模塊610清潔面部標志數據以使數據免除時間關聯空隙、面部標志數據點誤標記以及噪聲。時間關聯空隙例如發(fā)生在對幀中的一個或多個面部標志數據點的標記失敗時,從而導致序列中的相鄰幀的正確標記的點之間的"空隙"。在一種實現方式中,清潔是根據圖4的流程圖所示的方法400來執(zhí)行的。
面部肌肉激活模塊620從面部標志數據生成面部肌肉激活。如以上聯系圖2所述,生成面部肌肉激活實質上包括確定表征近似面部標志數據的動作單元的加權組合的權重;以及生成加權的激活。在圖5中詳細描述了生成面部肌肉激活。
FACS模塊630實質上通過定義FACS矩陣中的FACS動作單元并為演員校準關聯的姿態(tài),來初始化FACS矩陣。
動畫化模塊640利用在面部肌肉激活模塊620中生成的面部肌肉激活來動畫化計算機圖形("CG")面部模型。在一種實現方式中,CG面部模型是已經被藝術家或動畫家"裝配"的數字面部模型。裝配數字面部模型包括設置不同的筋膜層,這些筋膜層被混合以在數字面部模型上產生最終的面部變形。在一種實現方式中,筋膜層包括允許面部肌肉變形的肌肉層、允許頜部運動的頜部層、控制不同面部區(qū)域中的皮膚凸起的體積層、
18以及用于發(fā)音的唇部運動的發(fā)音層。
肌肉層包括頭骨貼片,其中有使面部變形的肌肉控制。肌肉控制由從運動捕捉數據生成的加權激活所激活。頜部層幫助控制數字面部模型的頜部的運動。體積層向數字面部模型上發(fā)生的變形添加體積。因此,體積層幫助模擬皺紋和其他面部變形,這些可以由從運動捕捉數據生成的加權激活來觸發(fā)。發(fā)音層涉及唇部變形時的形狀。具體地,發(fā)音層幫助控制唇部的巻動和體積,這是面部表情中唇部扁起或者起皺時必不可少的。面部標志數據被映射或者說重定位到數字面部模型上,作為觸發(fā)各種筋膜層的加權激活。也就是說,權重量化了一個或多個預定的姿態(tài)中的每一個在觸發(fā)筋膜層時施加的比例影響。
但是,有時,如上所述地利用加權激活來觸發(fā)筋膜層會導致CG面部模型的表面上的不合需要的分割效應。也就是說,被觸發(fā)的各種肌群在其
間隙處表現出不連續(xù)性。利用一個單獨的皮膚層來覆蓋CG面部模型將平
滑間隙處的不連續(xù),并且提供了另一種媒介,通過該媒介,藝術家或動畫家可控制所得到的面部動畫的外觀。
因此,皮膚層模塊650生成覆蓋CG面部模型的皮膚層。在一種實現方式中,該皮膚層被生成為與上述四個筋膜層分開的成分。皮膚層符合CG面部模型的外表面。它可被賦予各種視覺屬性,例如包括顏色、紋理、透明度、毛發(fā)和/或皮毛。皮膚層還可被賦予各種物理屬性,例如包括彈性、厚度和密度。在另一種實現方式中,皮膚層被劃分成多個區(qū)域,每個區(qū)域對應于一個面部標志數據點。
皮膚層模塊650隨后利用面部標志數據來動畫化皮膚層。在一種實現方式中,被表達為幀序列中每個面部標志數據點的軌跡的、演員上的每個面部標志的運動被傳遞到皮膚層的相應區(qū)域。也就是說,在幀與幀之間表現出空間位移(即,空間位置的變化)的每個面部標志數據點在皮膚層的相應區(qū)域上施加相應的位移。在下文中詳細描述該模塊650。
圖7是用于生成動畫化的皮膚層的皮膚層模塊650的功能框圖。皮膚層模塊650包括數據點關聯模塊700、皮膚運動模塊710、位移模塊720、位移調制模塊730以及皮膚彈性模塊740。
19數據點關聯模塊700將標志(即,面部標志數據點)與動畫化的模型
上添加的皮膚層上的區(qū)域(即,離散的"皮膚貼片")關聯起來,以產生
各個面部標志數據點與相應皮膚區(qū)域的關聯。皮膚運動模塊710接收這些關聯,并且使用它們來將面部標志數據點中的位移施加到其相應的皮膚區(qū)域。
位移模塊720計算標志的空間位置之間的位移。位移被用于拖曳所添加的皮膚層的相應區(qū)域。標志和區(qū)域在演員面部上在物理上對應。位移模塊720所計算出的數據點位移被位移調制模塊730用于例如通過縮放來調制位移,以獲得所需的結果。皮膚層的區(qū)域上的位移的基本施加將會是一對一的。例如, 一英寸的標志位移意味著一英寸的皮膚位移。因此,可能希望調制位移。調制可包括更改表示位移的方向(例如,向量),因為位移至少是空間性的。
皮膚彈性模塊740計算和/或施加彈性到皮膚的區(qū)域,使得當(在皮膚運動模塊710中)位移被施加到它時,皮膚以某種可預測的方式行動。
圖8A示出計算機系統(tǒng)800和用戶802的表示。用戶802可使用計算機系統(tǒng)800來執(zhí)行FACS求解。計算機系統(tǒng)800存儲并運行FACS求解系統(tǒng)890,該FACS求解系統(tǒng)890處理經過清潔的運動捕捉幀數據。
圖8B是示出容宿著FACS求解系統(tǒng)890的計算機系統(tǒng)800的功能框圖??刂破?10是可編程處理器,并且控制計算機系統(tǒng)800及其組件的操作??刂破?10從存儲器820或嵌入式控制器存儲器(未示出)中加載指令并且執(zhí)行這些指令以控制系統(tǒng)。在其執(zhí)行中,控制器810以軟件系統(tǒng)的形式提供FACS求解系統(tǒng)890?;蛘撸摲湛梢詫崿F為控制器810或計算機系統(tǒng)800中的單獨的組件。
存儲器820臨時存儲數據,供計算機系統(tǒng)800的其他組件使用。在一種實現方式中,存儲器820被實現為RAM。在一種實現方式中,存儲器820還包括長期或永久性存儲器,例如閃存和/或ROM。
存儲裝置830臨時或長期存儲數據,供計算機系統(tǒng)800的其他組件使用,例如用于存儲供FACS求解系統(tǒng)890使用的數據。在一種實現方式中,存儲裝置830是硬盤驅動器。介質設備840接收可移除介質并且對插入的介質進行數據的讀和/或 寫。在一種實現方式中,介質設備840是光盤驅動器。
用戶接口 850包括用于接受來自計算機系統(tǒng)800的用戶的用戶輸入以 及向用戶呈現信息的組件。在一種實現方式中,用戶接口 850包括鍵盤、 鼠標、音頻揚聲器和顯示器。控制器810使用來自用戶的輸入來調節(jié)計算 機系統(tǒng)800的操作。
1/0接口 860包括一個或多個I/O端口,用于連接到相應的1/0設備, 例如外部存儲裝置或補充設備(例如,打印機或PDA)。在一種實現方式 中,1/0接口 860的端口包括諸如以下端口 USB端口、 PCMCIA端口、 串行端口、和/或并行端口。在另一種實現方式中,1/0接口 860包括無線 接口,用于與外部設備進行無線通信。
網絡接口 870包括有線和/或無線網絡連接,例如支持以太網連接的 "Wi-Fi"接口 (包括但不限于802.11)或RJ-45。
計算機系統(tǒng)800包括計算機系統(tǒng)中典型的其他硬件和軟件(例如,電 源、冷卻裝置、操作系統(tǒng)),但為了簡明這些組件在圖8B中沒有具體示 出。在其他實現方式中,可以使用計算機系統(tǒng)的不同配置(例如,不同的 總線或存儲配置或多處理器配置)。
已經描述了本發(fā)明的各種例示性實現方式。但是,本領域的普通技術 人員將會認識到,另外的實施例也是可能實現的,并且在本發(fā)明的范圍之 內。例如,雖然已經就面部標志數據來一般性地描述了 FACS求解系統(tǒng), 但是也可將該系統(tǒng)應用到其他類型的運動捕捉標志數據,例如身體標志數 據。另外,應當明白,將功能分組在一個模塊或塊內是為了描述起來容 易。具體的功能可被從一個模塊或塊移動到另一個,而不脫離本發(fā)明。
因此,本發(fā)明不限于上述那些實施例。
2權利要求
1. 一種方法,包括從面部標志數據生成面部肌肉激活;利用所述面部肌肉激活來動畫化計算機圖形面部模型;生成覆蓋所述計算機圖形面部模型的皮膚層;以及利用所述面部標志數據來動畫化所述皮膚層。
2. 如權利要求1所述的方法,其中,所述的生成面部肌肉激活的步驟包括解出預定面部肌肉激活的加權組合。
3. 如權利要求2所述的方法,其中,所述預定面部肌肉激活被維護在FACS矩陣中。
4. 如權利要求1所述的方法,其中,所述面部標志數據包括多個幀,每個幀包括多個數據點,并且每個數據點包括一個空間位置,其中,每個幀的每個數據點與所述多個幀中的至少一個其他幀的數據點在時間上關聯。
5. 如權利要求4所述的方法,其中,所述的動畫化所述皮膚層的步驟包括將特定幀的一個數據點與所述皮膚層的相應區(qū)域關聯起來;以及移動所述皮膚層的相應區(qū)域。
6. 如權利要求5所述的方法,其中,所述移動對應于所述特定幀的數據點和至少一個其他幀的在時間上關聯的數據點的空間位置之間的位移。
7. 如權利要求6所述的方法,其中,所述移動包括在與所述皮膚層的相應區(qū)域相關的預定位置處施加所述位移。
8. 如權利要求6所述的方法,其中,所述位移被調制。
9. 如權利要求5所述的方法,其中,所述移動對應于所述皮膚層的相應區(qū)域的預定彈性。
10. 如權利要求4所述的方法,還包括修復居間幀的有缺陷數據點。
11. 如權利要求10所述的方法,其中,所述有缺陷數據點包括 遺漏的數據點、誤標記的數據點、以及有噪聲的數據點。
12. 如權利要求10所述的方法,其中,所述有缺陷數據點 與特定幀的一個數據點和所述至少一個其他幀的在時間上關聯的數據點在時間上關聯。
13. 如權利要求12所述的方法,其中,所述居間幀 在時間上位于所述特定幀和所述至少一個其他幀之間。
14. 如權利要求12所述的方法,其中,所述修復有缺陷數據點的步驟包括消除所述居間幀的替換數據點的空間位置。
15. 如權利要求14所述的方法,其中,所述的消除替換數據點的空間 位置的步驟包括在多個預定的幀之間進行插值。
16. 如權利要求15所述的方法,其中,所述多個預定的幀被維護在 FACS矩陣中。
17. —種系統(tǒng),包括面部肌肉激活模塊,用于接收面部標志數據并且生成面部肌群激活; 動畫化模塊,用于接收所述面部肌群激活并且生成被激活的面部模 型;以及皮膚層模塊,用于接收所述被激活的面部模型和所述面部標志數據, 并且生成被動畫化的、帶皮膚層的面部模型。
18. 如權利要求17所述的系統(tǒng),其中,所述面部肌群激活模塊包括 用于解出預定面部肌肉激活的加權組合的單元。
19. 如權利要求18所述的系統(tǒng),其中,所述預定面部肌肉激活被維護 在FACS矩陣中。
20. 如權利要求17所述的系統(tǒng),其中,所述面部標志數據包括多個 幀,每個幀包括多個數據點,并且每個數據點包括一個空間位置,其中,每個幀的每個數據點與所述多個幀中的至少一個其他幀的數據點在時間上關聯。
21. 如權利要求20所述的系統(tǒng),其中,所述皮膚層模塊包括 數據點關聯模塊,用于將特定幀的一個數據點與所述皮膚層的相應區(qū)域關聯起來;以及皮膚運動模塊,用于移動所述皮膚層的相應區(qū)域。
22. 如權利要求21所述的系統(tǒng),其中,所述皮膚層模塊包括 位移模塊,用于生成所述特定幀的數據點和至少一個其他幀的在時間上關聯的數據點的空間位置之間的位移。
23. 如權利要求22所述的系統(tǒng),其中,所述皮膚運動模塊包括 用于在與所述皮膚層的相應區(qū)域相關的預定位置處施加所生成的位移的單元。
24. 如權利要求22所述的系統(tǒng),其中,所述皮膚層模塊還包括 位移調制模塊,用于調制所述位移。
25. 如權利要求21所述的系統(tǒng),其中,所述皮膚層模塊包括 皮膚彈性模塊,用于計算并施加預定的彈性到所述皮膚層的相應區(qū)域,以使得所述皮膚以某種可預測的方式行動。
26. —種裝置,包括用于從面部標志數據生成面部肌肉激活的裝置; 用于利用所述面部肌肉激活來動畫化計算機圖形面部模型的裝置; 用于生成覆蓋所述計算機圖形面部模型的皮膚層的裝置;以及 用于利用所述面部標志數據來動畫化所述皮膚層的裝置。
27. —種存儲在計算機可讀存儲介質中的計算機程序,該程序包括使 得計算機執(zhí)行以下步驟的可執(zhí)行指令從面部標志數據生成面部肌肉激活; 利用所述面部肌肉激活來動畫化計算機圖形面部模型; 生成覆蓋所述計算機圖形面部模型的皮膚層;以及 利用所述面部標志數據來動畫化所述皮膚層。
28. 如權利要求27所述的計算機程序,其中,使得計算機生成面部肌 肉激活的可執(zhí)行指令包括使得計算機執(zhí)行以下步驟的可執(zhí)行指令解出預定面部肌肉激活的加權組合。
29. 如權利要求28所述的計算機程序,其中,所述預定面部肌肉激活 被維護在FACS矩陣中。
30. 如權利要求27所述的計算機程序,其中,所述面部標志數據包括 多個幀,每個幀包括多個數據點,并且每個數據點包括一個空間位置,其中,每個幀的每個數據點與所述多個幀中的至少一個其他幀的數據 點在時間上關聯。
31. 如權利要求30所述的計算機程序,其中,使得計算機動畫化所述 皮膚層的可執(zhí)行指令包括使得計算機執(zhí)行以下步驟的可執(zhí)行指令將特定幀的一個數據點與所述皮膚層的相應區(qū)域關聯起來;以及 移動所述皮膚層的相應區(qū)域。
32. 如權利要求31所述的計算機程序,其中,使得計算機移動所述皮 膚層的相應區(qū)域的可執(zhí)行指令對應于所述特定幀的數據點和至少一個其他幀的在時間上關聯的數據點的空 間位置之間的位移。
33. 如權利要求32所述的計算機程序,其中,使得計算機移動所述皮 膚層的相應區(qū)域的可執(zhí)行指令包括使得計算機執(zhí)行以下步驟的可執(zhí)行指 令在與所述皮膚層的相應區(qū)域相關的預定位置處施加所述位移。
34. 如權利要求32所述的計算機程序,其中,所述位移被調制。
35. 如權利要求31所述的計算機程序,其中,使得計算機移動所述皮 膚層的相應區(qū)域的可執(zhí)行指令對應于所述皮膚層的相應區(qū)域的預定彈性。
36. 如權利要求30所述的計算機程序,還包括使得計算機執(zhí)行以下步 驟的可執(zhí)行指令修復居間幀的有缺陷數據點。
37. 如權利要求36所述的計算機程序,其中,所述有缺陷數據點包括 遺漏的數據點、誤標記的數據點、以及有噪聲的數據點。
38. 如權利要求36所述的計算機程序,其中,所述有缺陷數據點與特定幀的一個數據點和所述至少一個其他幀的在時間上關聯的數據 點在時間上關聯。
39. 如權利要求38所述的計算機程序,其中,所述居間幀 在時間上位于所述特定幀和所述至少一個其他幀之間。
40. 如權利要求38所述的計算機程序,其中,使計算機修復有缺陷數 據點的可執(zhí)行指令包括使計算機執(zhí)行以下步驟的可執(zhí)行指令消除所述居間幀的替換數據點的空間位置。
41. 如權利要求40所述的計算機程序,其中,使計算機消除替換數據 點的空間位置的可執(zhí)行指令包括使計算機執(zhí)行以下步驟的可執(zhí)行指令在多個預定的幀之間進行插值。
42. 如權利要求41所述的計算機程序,其中,所述多個預定的幀被維 護在FACS矩陣中。
全文摘要
一種方法包括從面部標志數據(150)生成面部肌肉激活;利用面部肌肉激活來動畫化計算機圖形面部模型(250);生成覆蓋計算機圖形面部模型的皮膚層(260);以及利用面部標志數據(150)來動畫化皮膚層。
文檔編號G06T15/70GK101512603SQ200780033475
公開日2009年8月19日 申請日期2007年7月30日 優(yōu)先權日2006年7月28日
發(fā)明者保勞格·哈瓦爾達爾, 德曼·喬丹 申請人:索尼株式會社;索尼電影娛樂公司