專利名稱:利用臉部網(wǎng)格創(chuàng)建臉部動畫的技術(shù)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明的實施例一般地涉及計算機(jī)圖形學(xué),并且更具體地涉及利用臉 部網(wǎng)格創(chuàng)建臉部動畫(facial animation)的技術(shù)。
背景技術(shù):
在計算機(jī)圖形學(xué)領(lǐng)域中,自動生成真實的臉部動畫是最困難的問題之 一。例如,針對一個人大笑(或者執(zhí)行任何其他動作)過程中的變化來創(chuàng) 建真實自然的表情是非常困難的。這是因為大部分人對臉部表情的微小變 化十分敏感。當(dāng)人們看到其中沒有精細(xì)地賦予微小變化的、由計算機(jī)生成 的圖形時,動畫看起來并不真實。為了創(chuàng)建臉部動畫,可以手動輸入臉部表情的變化以創(chuàng)建動畫。例 如,需要針對確切的形態(tài)、每個部分的運動的確切定時以及伴隨著臉部形 態(tài)改變的皮膚明暗變化來輸入條件。這需要專業(yè)技能和大量時間。即使經(jīng) 手動輸入的變化創(chuàng)建了真實的臉部動畫,用于輸入這些變化的時間量也可 能使其變得不值得。此外,當(dāng)僅使用單個用戶圖像作為輸入時,創(chuàng)建動畫 變得更加困難。即使在手動輸入了變化的情況下,作為結(jié)果得到的臉部表 情也可能不真實。
發(fā)明內(nèi)容本發(fā)明的實施例一般地涉及利用臉部網(wǎng)格來創(chuàng)建臉部動畫的技術(shù)。在一個實施例中,該技術(shù)包括確定臉部網(wǎng)格序列(face mesh sequence)。然后使臉部網(wǎng)格序列的一部分適合臉部圖像。例如,使臉部網(wǎng)格序列的第一 幀適合圖像。然后基于適合,將臉部圖像投影到臉部網(wǎng)格部分上。此外, 可以生成頭發(fā)模型并且將其配備到臉部網(wǎng)格序列上。此外,可以算出臉部 網(wǎng)格的序列之間的色差。然后播放臉部網(wǎng)格序列以創(chuàng)建針對臉部圖像的臉 部動畫序列。所產(chǎn)生的色差還可以在序列正在被播放時,被添加到所述序 列。因此,對臉部網(wǎng)格序列的播放創(chuàng)建了臉部圖像的真實的臉部動畫。在一個實施例中,提供了一種用于創(chuàng)建臉部動畫的方法。該方法包 括確定臉部網(wǎng)格序列;使臉部網(wǎng)格序列的臉部網(wǎng)格適合臉部圖像,其中 在適合過程中確定臉部網(wǎng)格的頂點的偏移量值;基于適合,將臉部圖像作 為紋理投影到臉部網(wǎng)格上;將頂點的偏移量值加到臉部網(wǎng)格序列中的后續(xù) 臉部網(wǎng)格中;以及播放臉部網(wǎng)格序列以創(chuàng)建針對臉部圖像的臉部動畫。在一個實施例中,提供了一種用于創(chuàng)建臉部動畫的設(shè)備。該設(shè)備包 括被配置為確定臉部網(wǎng)格序列的邏輯;被配置為使臉部網(wǎng)格序列的臉部 網(wǎng)格適合臉部圖像的邏輯,其中在適合過程中確定臉部網(wǎng)格的頂點的偏移 量值;被配置為基于適合將臉部圖像作為紋理投影到臉部網(wǎng)格上的邏輯; 被配置為將頂點的偏移量值加到臉部網(wǎng)格序列中的后續(xù)臉部網(wǎng)格中的邏 輯;以及被配置為播放臉部網(wǎng)格序列以創(chuàng)建針對臉部圖像的臉部動畫的邏 輯。通過參考本說明書的其余部分和附圖,可以認(rèn)識到對在此公開的本發(fā) 明的本質(zhì)和優(yōu)點的進(jìn)一步理解。
圖1示出根據(jù)本發(fā)明一個實施例的用于創(chuàng)建臉部動畫的方法的簡化流 程圖。圖2示出用于使臉部網(wǎng)格序列的臉部網(wǎng)格適合臉部圖像的方法的簡化 流程圖。
圖3示出根據(jù)本發(fā)明一個實施例的臉部圖像和特征點的示例。圖4示出根據(jù)本發(fā)明一個實施例的具有特征點的臉部網(wǎng)格。 圖5示出根據(jù)本發(fā)明一個實施例的初始適合(fitting)。 圖6示出通過縮放、平移和旋轉(zhuǎn)而使其合適了的臉部網(wǎng)格。 圖7示出根據(jù)本發(fā)明一個實施例的將臉部網(wǎng)格的特征點匹配到臉部圖像的特征點上的匹配。圖8示出如作為紋理(texture)被投影到臉部網(wǎng)格上的圖像。圖9示出根據(jù)本發(fā)明一個實施例的用于生成頭發(fā)模型的方法的簡化流程圖。圖10示出根據(jù)本發(fā)明一個實施例的頭發(fā)區(qū)域的掩模圖像(mask image)。圖ll示出被投影到臉部網(wǎng)格上的頭發(fā)模型。圖12示出根據(jù)本發(fā)明一個實施例的用于計算色差的方法的簡化流程圖。圖13示出根據(jù)本發(fā)明一個實施例的色差。圖14示出當(dāng)針對頂點不使用色差和使用色差時的差別。圖15示出根據(jù)本發(fā)明一個實施例的用于創(chuàng)建臉部動畫的簡化流程圖。圖16示出根據(jù)一個實施例的所創(chuàng)建動畫的結(jié)果。圖17示出根據(jù)一個實施例的加入了色差和未加入色差的圖像。
具體實施方式
概述臉部網(wǎng)格(facemesh)序列可以用于創(chuàng)建臉部動畫。臉部網(wǎng)格序列可 以是在每次表情改變或者話音落下之間獲取的一組臉部形態(tài)網(wǎng)格。臉部網(wǎng) 格序列是當(dāng)再現(xiàn)時看起來連貫的一個級別,例如,每秒多于20幀。序列 的每個臉部網(wǎng)格可以細(xì)致地(例如大約20,000個頂點)表現(xiàn)臉部形態(tài)。可 以針對臉部網(wǎng)格序列的每一幀來獲取每個頂點的位置、移動量和顏色數(shù) 據(jù)。 在一個實施例中,通過使用已知系統(tǒng),用戶(例如, 一個人)的臉部 網(wǎng)格序列是可獲取的。臉部網(wǎng)格序列可以是其圖像將被用于創(chuàng)建臉部動畫 的用戶的。然而,如果不能夠得到該用戶的臉部網(wǎng)格,那么可以使用另一 用戶的臉部網(wǎng)格。然后可以將該另一用戶的臉部網(wǎng)格修改為適合該用戶的 圖像。圖1示出根據(jù)本發(fā)明一個實施例的用于創(chuàng)建臉部動畫的方法的簡化流程圖IOO。步驟102確定臉部網(wǎng)格序列。臉部網(wǎng)格序列可以捕捉自用戶。步驟104使臉部網(wǎng)格序列的臉部網(wǎng)格適合臉部圖像。臉部圖像可以是 捕捉了其臉部網(wǎng)格序列的相同用戶的圖像(例如,照片)。然而,在其他 實施例中,臉部網(wǎng)格序列和臉部圖像可以捕捉自不同用戶。該臉部網(wǎng)格可 以是臉部網(wǎng)格序列的第一幀。該第一幀可以對應(yīng)于臉部圖像。適合(fitting)處理可以使臉部網(wǎng)格變形??梢曰谀槻烤W(wǎng)格和變形 后的臉部網(wǎng)格來確定偏移量(displacement)值。這些值被保存并且隨后在 播放臉部網(wǎng)格序列時被用于使臉部網(wǎng)格序列中的所有臉部網(wǎng)格變形。步驟106根據(jù)臉部網(wǎng)格生成頭發(fā)模型。頭發(fā)模型創(chuàng)建用于頭發(fā)的臉部 網(wǎng)格區(qū)域。在下文中將更詳細(xì)地描述該處理。步驟108計算臉部網(wǎng)格序列中的臉部網(wǎng)格的色差(difference in color)。可以針對序列中的不同臉部網(wǎng)格中的頂點來計算色差。在下文中 將更詳細(xì)地描述包括色差的效果,然而,結(jié)果是在臉部動畫中顯示出伴隨 形態(tài)變化的明暗變化。步驟110將臉部圖像投影到臉部網(wǎng)格和頭發(fā)網(wǎng)格上。因此,所包括的 臉部網(wǎng)格示出除頭發(fā)外的臉部圖像。步驟112利用偏移量值和經(jīng)計算的色差,與頭發(fā)模型一起來播放臉部 網(wǎng)格序列??梢詫⑵屏恐导尤肽槻烤W(wǎng)格序列中的所有臉部網(wǎng)格。此外, 加入色差。然后,播放臉部網(wǎng)格序列。當(dāng)播放臉部網(wǎng)格序列時,臉部圖像 的動畫被提供。通過加入經(jīng)計算的色差,明暗的變化被示出。臉部網(wǎng)格適合處理圖2示出用于使臉部網(wǎng)格序列的臉部網(wǎng)格適合臉部圖像的方法的簡化
流程圖200。雖然描述了這種方法,但是應(yīng)認(rèn)識到,能夠想到該方法的變 體。步驟202載入臉部圖像和臉部圖像的特征點。特征點可以是臉部圖像 上的任何點。例如,可以在找到了臉部圖像的區(qū)別特征的位置處選擇特征 點,例如眼睛、嘴、鼻子等處??梢酝ㄟ^使用已知方法來獲取特征點。圖3示出根據(jù)本發(fā)明一個實施例的臉部圖像和特征點的示例。如圖所 示,在臉部圖像300中,特征點302被示出為白點。在一個實施例中,特 征點位于眼睛、嘴、耳朵和下巴附近。雖然示出了這些特征點302,但是 應(yīng)認(rèn)識到,也可以使用其他的特征點302。步驟204將臉部圖像300置于XY平面上。XY平面可以顯示在任何 計算設(shè)備上。步驟206載入臉部網(wǎng)格序列的臉部網(wǎng)格和臉部網(wǎng)格的特征點。所載入 的臉部網(wǎng)格可以是臉部網(wǎng)格序列的一部分,例如臉部網(wǎng)格序列的一幀。在 一個實施例中,從在臉部圖像300中找到的用戶獲取臉部網(wǎng)格序列的第一 幀。臉部網(wǎng)格可以是捕捉自臉部網(wǎng)格序列的3D網(wǎng)格。利用在臉部圖像 300中尋找特征點時使用的相同算法,可以確定在臉部網(wǎng)格上找到的特征 點。圖4示出根據(jù)本發(fā)明一個實施例的具有特征點402的臉部網(wǎng)格400。 特征點402可以是臉部網(wǎng)格400中的頂點(例如,3D空間中具有特定位置 的點)。特征點402可以由用戶或者通過處理來確定。在一個實施例中, 特征點402被置于眼睛、嘴、耳朵和下巴附近。步驟208使臉部網(wǎng)格400大概地對準(zhǔn)臉部圖像300??梢宰詣踊蚴謩?執(zhí)行該對準(zhǔn)。圖5示出根據(jù)本發(fā)明一個實施例的初始適合。如所示出的, 已經(jīng)將臉部網(wǎng)格400大概地配備(fit)在臉部圖像300中的臉部之上。如 所示出的,臉部網(wǎng)格400并沒有完全覆蓋臉部。因此,可能還需要調(diào)節(jié)。步驟210通過縮放來使被投影到圖像平面的臉部網(wǎng)格特征點402和圖 像特征點302之間的距離之和最小化??梢詫⒓褐仁接糜谑鼓槻烤W(wǎng)格特 征點402和圖像特征點302之間的距離最小化。例如,縮放可以減小或增 大臉部網(wǎng)格400的尺寸以適合臉部圖像300。
步驟212利用平移和旋轉(zhuǎn)來使被投影到圖像平面的臉部網(wǎng)格特征點 402和圖像特征點302之間的距離之和最小化。可以將已知等式用于最小 化臉部網(wǎng)格特征點402和圖像特征點302之間的距離。平移可以移動臉部 網(wǎng)格400以與臉部圖像300相匹配。類似地,臉部網(wǎng)格400可以被旋轉(zhuǎn)以 與臉部圖像300相匹配。步驟214判斷最小化是否收斂。也就是,判斷特征點302和被投影到 圖像平面的相應(yīng)特征點402之間的距離之和是否被最小化。如果判斷特征 點302和特征點402不收斂,那么重復(fù)步驟210和212。如果它們收斂,那么步驟216保存在步驟210和212所確定的縮放、 平移和旋轉(zhuǎn)參數(shù)。這些參數(shù)是用于縮放、平移和旋轉(zhuǎn)臉部網(wǎng)格400的參 數(shù)。步驟218移動XY平面上的臉部網(wǎng)格400的特征點402以與臉部圖像 300的特征點302相匹配。最小化臉部網(wǎng)格特征點402和臉部圖像特征點 302之間的和可能尚未使它們完全匹配。因此,執(zhí)行該調(diào)節(jié)步驟以使它們 相匹配。步驟220根據(jù)臉部網(wǎng)格特征點402和臉部圖像特征點302的偏移量來 移動所有頂點??梢岳没谠诓襟E222中獲得的特征點偏移量的徑向基 函數(shù)來計算這些偏移量。徑向基函數(shù)是可以用于使計算機(jī)圖形中的對象變 形的內(nèi)插方法。還可以想到其他函數(shù)。圖6示出通過縮放、平移和旋轉(zhuǎn)而合適了的臉部網(wǎng)格400。如所示出 的,臉部網(wǎng)格400大致對應(yīng)于用戶的臉。臉部網(wǎng)格400通過變大而進(jìn)行了 縮放并且還經(jīng)過了旋轉(zhuǎn)和平移以與臉部圖像300相匹配。然而,臉部網(wǎng)格 特征點402可能尚未與圖像特征點302完全匹配。例如,在眼部周圍,特 征點402并沒有與特征點302完全匹配。然后移動特征點402以與特征點 302相匹配。此外,然后基于臉部網(wǎng)格特征點402的移動來移動臉部網(wǎng)格 400的其他頂點。圖7示出根據(jù)本發(fā)明一個實施例的將特征點402匹配到臉部圖像300 的特征點302上的匹配。如所示出的,臉部網(wǎng)格特征點402和圖像特征點 302彼此匹配。 步驟222保存原始的和變形后的臉部網(wǎng)格400之間的頂點偏移量值。 當(dāng)隨后播放臉部網(wǎng)格序列時將使用偏移量值。使用偏移量值來使臉部網(wǎng)格 400與臉部圖像300對準(zhǔn)。步驟224將臉部圖像300作為紋理投影到臉部網(wǎng)格400上。因此,用 戶的臉部圖像被投影到臉部網(wǎng)格上。圖8示出如作為紋理而被投影到臉部 網(wǎng)格400上的臉部圖像300。如所示出的,臉部被示出為臉部網(wǎng)格400上 的紋理。頭發(fā)建模處理在使臉部網(wǎng)格400適合臉部圖像300后,還可以生成頭發(fā)模型。因為 臉部網(wǎng)格可能沒有對頭發(fā)進(jìn)行建模,所以生成頭發(fā)模型。因此,頭發(fā)模型 被生成并且被包括在臉部網(wǎng)格中從而使得來自臉部圖像300的頭發(fā)可以作 為紋理被投影于臉部網(wǎng)格上。圖9示出根據(jù)本發(fā)明一個實施例的用于生成 頭發(fā)模型的方法的簡化流程圖900。步驟902將臉部網(wǎng)格400載入到XY平面上的方格網(wǎng)上。XY平面例 如可以是100X100的柵格。臉部網(wǎng)格400是3D圖像并且XY平面是2D 的。因此,臉部網(wǎng)格400需要被置于Z空間中的某一位置。例如,臉部網(wǎng) 格400可以被載入從而使得其Z值朝向正軸(即,如果看著顯示屏,那么 XY平面在臉部網(wǎng)格的后部或者臉部的前部從XY平面朝向前方)。雖然 描述了方格網(wǎng),但是也可以利用3D多邊形而非方格網(wǎng)來創(chuàng)建頭發(fā)模型。因為臉部網(wǎng)格400是3D模型,所以在Z方向上移動XY平面的柵格 點以匹配臉部網(wǎng)格400上的點。這產(chǎn)生了柵格的3D模型。因此,歩驟904 針對每個柵格點判斷其是否被臉部網(wǎng)格702包藏(occlude)(即,阻障 (obstruct))。如果柵格點被臉部網(wǎng)格702包藏,那么步驟906將柵格點 移至其與臉部網(wǎng)格400相交的點。例如,在正方向上移動?xùn)鸥顸c(即,向 前),直到它與相應(yīng)的臉部網(wǎng)格400的值的Z值相交為止。步驟908然后判斷是否處理了所有的柵格點。如果沒有,那么處理重 回到步驟904以處理另一柵格點。如果柵格點沒有被臉部網(wǎng)格702包藏,那么不移動臉部網(wǎng)格。這是臉 部網(wǎng)格400外部的區(qū)域。一旦處理了所有的柵格點,步驟910就載入頭發(fā)區(qū)域的掩模圖像 1002。可以利用已知方法對頭發(fā)區(qū)域進(jìn)行建模。圖10示出根據(jù)本發(fā)明一個實施例的頭發(fā)區(qū)域的掩模圖像1002。如所 示出的,頭發(fā)區(qū)域的掩模圖像1002對可以被捕捉到的頭發(fā)區(qū)域進(jìn)行建 模。例如,可以得到臉部圖像300中的頭發(fā)輪廓。然后可以將掩模圖像 1002設(shè)定在臉部網(wǎng)格400上??赡艽嬖诎^發(fā)區(qū)域的臉部網(wǎng)格400的某些區(qū)域。針對臉部網(wǎng)格 400上的點,這些區(qū)域在正的Z方向上被略微升高。這是因為在動畫中, 對于逼真的動畫而言,頭發(fā)可以自皮膚升高。應(yīng)認(rèn)識到,在某些實施例 中,不必升高頭發(fā)。步驟912針對每個柵格點判斷其是否被臉部網(wǎng)格400包藏。如果柵格 點沒有被臉部網(wǎng)格包藏,那么處理繼續(xù)到步驟918。此外,如果步驟914 中的掩模值不在指示其是頭發(fā)的點處,那么處理前進(jìn)到步驟918,步驟 918判斷是否己經(jīng)處理了所有的柵格點。如果沒有,那么處理重回到步驟 912。如果柵格點被臉部網(wǎng)格400包藏,那么步驟914判斷在所述點處的掩 模值是否指示其是頭發(fā)。例如,可以在對應(yīng)于柵格像素的位置處計算臉部 網(wǎng)格400上的頭發(fā)的值。在步驟916,如果值為1,那么所述點的Z值可 以被略微增大。為了確定臉部網(wǎng)格400上的頂點具有值1,頂點被投影到 掩模圖像1002上,并且掩模值在那里被檢驗。如果值為1,那么頂點是頭 發(fā)的一部分。這是因為所述點是作為頭發(fā)區(qū)域的掩模圖像1002的一部 分。步驟918判斷是否處理了所有的柵格點。如果沒有,那么處理重回到 步驟912。當(dāng)處理了所有的柵格點時,可以處理由掩模圖像1002所包藏的點。 步驟920針對每個柵格點P判斷其是否是指示"頭發(fā)"的掩模值的掩模圖 像1002的一部分并且未被臉部網(wǎng)格400所包藏。也就是,是否是掩模圖 像1002的柵格點的一部分而非臉部網(wǎng)格400的一部分。如果不是,那么12
不執(zhí)行任何操作并且處理前進(jìn)到如下文所述的步驟928。如果掩模值指示其是頭發(fā),那么以對人的頭發(fā)進(jìn)行建模的方式來升高 柵格點。例如, 一個人的頭發(fā)可以在Z方向上被略微地向后縮放。這可以 通過使用如下的步驟來進(jìn)行建模。步驟922計算最近的包藏點(0)。步 驟924然后沿著線OP (然而不是在線段OP上)確定頭發(fā)和非頭發(fā)之間的 邊界點Q。步驟926利用諸如等式Pz = Qz + w*(Oz-Qz)之類的等式來計算P的Z 值。Pz、 Oz禾QQz分布是P、 O和Q的Z值。此夕卜,w=l—OP/OQA2。這 針對柵格點P內(nèi)插Z值。應(yīng)認(rèn)識到,能夠想到針對柵格點P來內(nèi)插Z值的 其他方法。步驟928判斷是否處理了所有的柵格點。如果沒有,那么處理重回到 步驟920。當(dāng)處理了所有的柵格點時,就生成了頭發(fā)模型。頭發(fā)模型是這樣一種 網(wǎng)格,其頂點是柵格點。圖ll示出頭發(fā)模型llOO。色差還可以計算臉部網(wǎng)格序列中的頂點色差。這從不同表情中捕捉色差。 例如,當(dāng)臉部從一種表情變到另一種表情,某些區(qū)域的顏色可能變淺或變 深。這些色差被算出并且隨后針對臉部動畫被添加。圖12示出根據(jù)本發(fā) 明一個實施例的用于計算色差的方法的簡化流程圖1200。步驟1202載入臉部網(wǎng)格序列。步驟1204將臉部網(wǎng)格400 (例如,臉 部網(wǎng)格序列的第一個臉部網(wǎng)格)設(shè)定為基礎(chǔ)臉部網(wǎng)格。基礎(chǔ)臉部網(wǎng)格可以 是臉部網(wǎng)格序列的第一幀?;A(chǔ)臉部網(wǎng)格可以是接近于在臉部圖像300中 找到的表情的表情。此外,在另一實施例中,基礎(chǔ)臉部網(wǎng)格可以是所有臉 部網(wǎng)格的平均形狀。步驟1206在基礎(chǔ)網(wǎng)格和序列中的其他臉部網(wǎng)格之間,針對每個頂點 計算色差??梢岳眉褐椒▉碛嬎闵?。所述差值可以是顏色從基礎(chǔ)臉 部網(wǎng)格到另一臉部網(wǎng)格應(yīng)該被增大或者被減小的值。可以基于RGB (紅、 綠、藍(lán))模型來計算色差。色差可以是在頂點處從基礎(chǔ)臉部網(wǎng)格的顏色值
中減去后一臉部網(wǎng)格的顏色值。正的色差可以是更淺的顏色,并且負(fù)的色 差是更深的顏色。在一個實施例中,可以忽略任何正的色差。這些差值可能在圖像上產(chǎn) 生白點。因此,僅負(fù)的色差可以被使用。此外,如果由色差所導(dǎo)致的結(jié)果 紋理看起來不太好(例如在嘴部或眼角周圍),那么可以在那些區(qū)域中忽在另一實施例中,可以將色差表示為灰階而非諸如RGB顏色方案之類的每個彩色通道中的差值??梢酝ㄟ^檢測超過某一閾值的色差并且將其 作為不同顏色(例如,黑色和白色)應(yīng)用于基礎(chǔ)紋理,來創(chuàng)建夸張的臉部(就顏色而言)。表情比率圖的3D版本可以用于表示色差。此外,可以將添加色差的選項表示為紋理混合(blending)而非基于 頂點的操作。在這種情況下,色差首先被渲染。然后將結(jié)果圖像添加到所 渲染的臉部網(wǎng)格圖像。這是一種圖像混合??梢葬槍γ總€頂點來添加色差 (這在上文中進(jìn)行了描述)。或者,色差可以分別被渲染在"非差值添 加"的網(wǎng)格和通過色差被著色的相同網(wǎng)格中,然后兩個所渲染的圖像基于 像素相加。任一種方式都可以添加色差。圖13示出根據(jù)本發(fā)明一個實施例的色差。上方一行1302示出沒有顏 色的臉部網(wǎng)格。行1304示出包括顏色的圖像。作為參考,行1304示出序 列的最初捕捉看起來的樣子。每個臉部網(wǎng)格1306和相應(yīng)的臉部圖像1308被示出??梢杂嬎隳槻烤W(wǎng) 格1306之間的色差。例如,可以計算臉部網(wǎng)格1306-1和臉部網(wǎng)格1306-2 之間的色差、臉部網(wǎng)格1306-1和臉部網(wǎng)格1306-3之間的色差等。步驟1208然后針對每個頂點來存儲色差。當(dāng)隨后播放臉部網(wǎng)格序列 時,將使用所述色差。圖14示出原始臉部網(wǎng)格中的當(dāng)臉部瞇著眼睛時的色差。如所示出 的,圖像1404示出當(dāng)表情從圖像1402變化時在表情中出現(xiàn)的顏色變化。 如所示出的,圓圈1408示出從圓圈1406中的圖像變化而來的暗部。圖15示出根據(jù)本發(fā)明一個實施例的用于創(chuàng)建臉部動畫的簡化流程圖 1500。步驟1502載入臉部網(wǎng)格序列和頭發(fā)模型。 步驟1504針對臉部網(wǎng)格序列中的每個臉部網(wǎng)格來應(yīng)用縮放、平移和 旋轉(zhuǎn)。在圖2的步驟216中保存了這些值。這使臉部網(wǎng)格序列中的臉部網(wǎng) 格與臉部圖像300對準(zhǔn)。步驟1506將臉部圖像302作為紋理投影到基礎(chǔ)網(wǎng)格和頭發(fā)模型上。 因此,臉部圖像被示出在臉部網(wǎng)格上。步驟1508將頂點的偏移量加入所有網(wǎng)格。這是在圖2的步驟222中所 保存的偏移量值。這使特征點和頂點與臉部圖像300相匹配。此外,可以 使用從基礎(chǔ)網(wǎng)格到其他網(wǎng)格的偏移量差值,而不是針對每個網(wǎng)格得到頂點 位置和偏移量值。例如,基礎(chǔ)網(wǎng)格可以具有針對頂點的第一偏移量值。可 以存儲針對下一臉部網(wǎng)格的值的差值來替代新值。步驟1510將在圖12的步驟1206中保存的色差添加到所有的臉部網(wǎng) 格。此外,可以使用從基礎(chǔ)網(wǎng)格到其他網(wǎng)格的色差,而不是針對每個網(wǎng)格 得到頂點位置和色差。例如,基礎(chǔ)網(wǎng)格可能具有針對頂點的第一色差???以存儲針對下一臉部網(wǎng)格的值的差值來替代新值。步驟1512然后播放臉部網(wǎng)格序列。通過播放臉部網(wǎng)格序列而創(chuàng)建了 簡單、自然并且十分真實的臉部動畫。通過使用僅一幅基礎(chǔ)圖像(例如一 幀或者一副圖像)和臉部網(wǎng)格序列而提供了該動畫。圖16示出根據(jù)一個實施例的所創(chuàng)建動畫的結(jié)果。如所示出的,臉部 動畫看起來十分真實。通過使用臉部網(wǎng)格序列,在臉部圖像300上創(chuàng)建了 不同的表情。圖17示出根據(jù)一個實施例的添加了色差和沒有添加色差的圖像。圖 像1702示出當(dāng)添加了色差時的圖像,并且圖像1704示出了沒有添加色差 的圖像。如所示出的,圖像1702中的表情示出根據(jù)臉部表情的變化而創(chuàng) 建的明暗變化。如所示出的,在圖像1702中,鼻梁和皺紋被更多地限 定。在其他實施例中,通過使用上述方法可以創(chuàng)建語音動畫。例如,通過 使音素(phoneme)的臉部網(wǎng)格(稱作visim)與語音音頻同步來創(chuàng)建口型 同步動畫。因此,通過本發(fā)明的實施例能夠想到其他的動畫。雖然關(guān)于其具體實施例而描述了本發(fā)明,但是這些實施例僅是說明性
的,并且不會對本發(fā)明構(gòu)成限制??梢詫⑷魏芜m當(dāng)?shù)木幊陶Z言,包括C、 C++、 Java、匯編語言等,用 于實現(xiàn)本發(fā)明實施例的程序。可以采用諸如過程的或者面向?qū)ο蟮闹惖?不同編程技術(shù)??梢栽趩蝹€處理設(shè)備或者多個處理器上執(zhí)行例程。雖然可 能以特定的順序呈現(xiàn)步驟、操作或者計算,但是在不同的實施例中可以改 變該順序。在某些實施例中,可以同時執(zhí)行在本說明書中被示出為有順序 的多個步驟。可以中斷、中止或者由諸如操作系統(tǒng)、核心(kernel)等之 類的另一處理來控制在此描述的操作序列。例程可以在操作系統(tǒng)環(huán)境中運 行,或者作為占用系統(tǒng)處理的全部或者相當(dāng)大一部分的獨立程序運行???以在硬件、軟件或者二者的組合中執(zhí)行功能。除非另有說明,還可以整體 地或者部分地手動執(zhí)行功能。在本文的描述中,為了提供對本發(fā)明實施例的全面理解,提供了諸如 組件和/或方法的示例之類的大量具體細(xì)節(jié)。然而,相關(guān)技術(shù)領(lǐng)域中的技術(shù) 人員應(yīng)認(rèn)識到,可以實踐本發(fā)明的實施例而不需要一個或多個所述的具體 細(xì)節(jié),或者可以通過其他裝置、系統(tǒng)、組合件、方法、組件、材料、部分 和/或類似物來實踐本發(fā)明。在其他情況下,為了避免使本發(fā)明實施例的各 個方面變得模糊,并沒有具體示出或詳細(xì)描述為人熟知的結(jié)構(gòu)、材料或者 操作。用于實現(xiàn)本發(fā)明實施例目的的"計算機(jī)可讀介質(zhì)"可以是能夠包含、 存儲、傳送、傳播或者傳輸由指令執(zhí)行系統(tǒng)、裝置、系統(tǒng)或設(shè)備所使用的 或者與指令執(zhí)行系統(tǒng)、裝置、系統(tǒng)或設(shè)備結(jié)合使用的程序的任何介質(zhì)。僅 作為示例而非作為限制,計算機(jī)可讀介質(zhì)可以是電、磁、光、電磁、紅外 或半導(dǎo)體系統(tǒng)、裝置、系統(tǒng)、設(shè)備、傳播介質(zhì)或者計算機(jī)存儲器??梢砸攒浖?、硬件或者二者的組合中的控制邏輯的形式來實現(xiàn)本發(fā)明 的實施例??刂七壿嬁梢员淮鎯υ谥T如計算機(jī)可讀介質(zhì)之類的信息存儲介 質(zhì)中,作為適用于指示信息處理設(shè)備執(zhí)行在本發(fā)明實施例中所公開的一組 步驟的多個指令?;谠诖颂峁┑墓_和教導(dǎo),本領(lǐng)域中的普通技術(shù)人員 將想到實現(xiàn)本發(fā)明的其他方式和/或方法。"處理器"或"處理"包括處理數(shù)據(jù)、信號或其他信息的任何人力、
硬件和/或軟件系統(tǒng)、機(jī)制或組件。處理器可以包括具有通用中央處理單 元、多個處理單元、用于實現(xiàn)功能的專用電路或者其他系統(tǒng)的系統(tǒng)。處理 不必受限于地理位置或具有時間限制。例如,處理器可以以"實時"、 "離線"、在"批處理模式"中等方式來執(zhí)行其功能??梢杂刹煌?或相 同)處理系統(tǒng)在不同時間并且在不同位置執(zhí)行處理部分。在整個本說明書中提到的"一個實施例"、"實施例"或"具體實施 例"表示結(jié)合實施例所描述的特定特征、結(jié)構(gòu)或特性被包括在本發(fā)明的至 少一個實施例中,并且不一定被包括在所有實施例中。因此,在本說明中 不同地方分別出現(xiàn)的短語"在一個實施例中"、"在實施例中"或者"在 具體實施例中"不一定指代相同實施例。此外,可以以任何適當(dāng)?shù)姆绞綄?本發(fā)明任一具體實施例的特定特征、結(jié)構(gòu)或特性與一個或多個其他實施例 相結(jié)合。應(yīng)理解,鑒于本文的教導(dǎo),在本文中描述并示出的本發(fā)明實施例 的其他變體和修改是可能的,并且將被視為本發(fā)明精神和范圍的一部分。可以利用經(jīng)編程的通用數(shù)字計算機(jī)、利用專用集成電路、可編程邏輯 器件、現(xiàn)場可編程門陣列、光學(xué)的、化學(xué)的、生物學(xué)的、量子或納米工程 系統(tǒng)、組件和機(jī)制來實現(xiàn)本發(fā)明的實施例。總之,本發(fā)明實施例的功能可 以通過在本領(lǐng)域中已知的任何方式來實現(xiàn)。可以使用分布式或聯(lián)網(wǎng)系統(tǒng)、 組件和電路。數(shù)據(jù)的通信或傳輸可以是有線的、無線的或者通過任何其他 方式實現(xiàn)。還應(yīng)理解,在附圖/示圖中示出的一個或多個元件也可以以更加分散或 集中的方式實現(xiàn),或者根據(jù)具體應(yīng)用如果有用則在某些情況下甚至被去除 或被使得不可操作。實現(xiàn)可以被存儲在計算機(jī)可讀介質(zhì)以允許計算機(jī)執(zhí)行 上述任何方法的程序或代碼,這也落入本發(fā)明的精神和范圍之內(nèi)。另外,在附圖/示圖中的任何信號箭頭應(yīng)該被視為僅是示例性的,而非 限制性的,除非另外具體說明。此外,本文中所使用的術(shù)語"或者"通常 意欲表示"和/或",除非另外說明。應(yīng)注意,組件或者步驟的組合也被視 為示例性的,其中術(shù)語被預(yù)見為呈現(xiàn)分離或組合的能力不清楚。如在本文的描述和以下權(quán)利要求書中所使用的,"一個"和"所述" 包括多個參考,除非上下文中另外明確指出。此外,如在本文的描述和以
下權(quán)利要求書中所使用的,"在…中"的含意包括"在…中"和"在… 上",除非上下文中另外明確指出。所示出的本發(fā)明實施例的前述描述(包括在摘要中所描述的內(nèi)容)并 非意欲作為詳盡的描述或者將本發(fā)明限制為在此公開的精確形式。如相關(guān) 領(lǐng)域中的技術(shù)人員將認(rèn)識到并理解的,雖然僅出于說明性目的在本文中描 述本發(fā)明的具體實施例和示例,但是落入本發(fā)明的精神和范圍內(nèi)的各種等 價修改是可能的。如所指示的,鑒于對本發(fā)明的示出實施例的前述描述, 可以對本發(fā)明做出這些修改,并且所述這些修改將被包括在本發(fā)明的精神 和范圍之內(nèi)。因此,雖然在本文中參考其具體實施例描述了本發(fā)明,但是在前述公 開中意欲存在大量修改,各種改變和替換,并且應(yīng)理解,在某些情況下, 將采用本發(fā)明實施例的某些特征而不相應(yīng)地使用其他特征,而不會背離所 提出的本發(fā)明的精神和范圍。因此,可以做出許多修改以適應(yīng)具體情況或 者本發(fā)明的實質(zhì)范圍和精神的要素。期望本發(fā)明不受限于在以下權(quán)利要求 書中所使用的特定術(shù)語和/或不受限于作為被預(yù)期為實現(xiàn)本發(fā)明的最佳模式 而公開的特定實施例,然而期望本發(fā)明包括落入隨附權(quán)利要求書范圍之內(nèi) 的任何以及所有實施例和等價物。
權(quán)利要求
1. 一種用于創(chuàng)建臉部動畫的方法,所述方法包括確定臉部網(wǎng)格序列;使所述臉部網(wǎng)格序列的臉部網(wǎng)格適合臉部圖像,其中在所述適合過程中確定所述臉部網(wǎng)格的頂點的偏移量值;基于所述適合,將所述臉部圖像作為紋理投影到所述臉部網(wǎng)格上;將所述頂點的偏移量值加到所述臉部網(wǎng)格序列中的后續(xù)臉部網(wǎng)格中;以及播放所述臉部網(wǎng)格序列以創(chuàng)建針對所述臉部圖像的臉部動畫。
2. 如權(quán)利要求1所述的方法,還包括在頂點處計算所述臉部網(wǎng)格和所述臉部網(wǎng)格序列的每個后續(xù)臉部網(wǎng)格 之間的色差;并且在所述頂點處針對每個后續(xù)臉部網(wǎng)格添加所述色差,其中當(dāng)播放所述 臉部網(wǎng)格序列時,在每個后續(xù)臉部網(wǎng)格中示出所述色差。
3. 如權(quán)利要求2所述的方法,還包括忽略任何正的色差。
4. 如權(quán)利要求1所述的方法,還包括 從所述臉部網(wǎng)格創(chuàng)建頭發(fā)模型;并且將所述頭發(fā)模型配備到所述臉部網(wǎng)格序列中的每個臉部網(wǎng)格上。
5. 如權(quán)利要求4所述的方法,其中投影所述臉部圖像包括將所述臉部 圖像的頭發(fā)投影到用于所述臉部網(wǎng)格的所述頭發(fā)模型上。
6. 如權(quán)利要求1所述的方法,其中使所述臉部網(wǎng)格適合包括通過使所 述臉部網(wǎng)格的第一特征點到所述臉部圖像的第二特征點之間的距離最小 化,來確定縮放、旋轉(zhuǎn)和/或平移值。
7. 如權(quán)利要求6所述的方法,其中所述縮放、旋轉(zhuǎn)和/或平移值被應(yīng)用 于所述后續(xù)臉部網(wǎng)格中的所述頂點。
8. 如權(quán)利要求1所述的方法,其中所述臉部網(wǎng)格序列是人類用戶的臉 部網(wǎng)格記錄。
9. 如權(quán)利要求1所述的方法,其中所述臉部網(wǎng)格序列的一部分是對應(yīng)權(quán)利要求書第2/3頁于所述臉部圖像的靜止圖像。
10. —種用于創(chuàng)建臉部動畫的設(shè)備,所述設(shè)備包括 被配置為確定臉部網(wǎng)格序列的邏輯;被配置為使所述臉部網(wǎng)格序列的臉部網(wǎng)格適合臉部圖像的邏輯,其中 在所述適合過程中確定所述臉部網(wǎng)格的頂點的偏移量值;被配置為基于所述適合將所述臉部圖像作為紋理投影到所述臉部網(wǎng)格上的邏輯;被配置為將所述頂點的偏移量值加到所述臉部網(wǎng)格序列中的后續(xù)臉部 網(wǎng)格中的邏輯;以及被配置為播放所述臉部網(wǎng)格序列以創(chuàng)建針對所述臉部圖像的臉部動畫 的邏輯。
11. 如權(quán)利要求1所述的設(shè)備,還包括被配置為在頂點處計算所述臉部網(wǎng)格和所述臉部網(wǎng)格序列的每個后續(xù) 臉部網(wǎng)格之間的色差的邏輯;以及被配置為在所述頂點處針對每個后續(xù)臉部網(wǎng)格添加所述色差的邏輯, 其中當(dāng)播放所述臉部網(wǎng)格序列時,在每個后續(xù)臉部網(wǎng)格中示出所述色差。
12. 如權(quán)利要求11所述的設(shè)備,還包括被配置為忽略任何正的色差的 邏輯。
13. 如權(quán)利要求IO所述的設(shè)備,還包括 被配置為從所述臉部網(wǎng)格創(chuàng)建頭發(fā)模型的邏輯;以及 被配置為將所述頭發(fā)模型配備到所述臉部網(wǎng)格序列中的每個臉部網(wǎng)格上的邏輯。
14. 如權(quán)利要求13所述的設(shè)備,其中所述被配置為投影所述臉部圖像 的邏輯包括將所述臉部圖像的頭發(fā)投影到用于所述臉部網(wǎng)格的所述頭發(fā)模 型上。
15. 如權(quán)利要求10所述的設(shè)備,其中所述被配置為使所述臉部網(wǎng)格適 合的邏輯包括被配置為通過最小化所述臉部網(wǎng)格的第一特征點到所述臉部 圖像的第二特征點之間的距離來確定縮放、旋轉(zhuǎn)和/或平移值的邏輯。
16. 如權(quán)利要求15所述的設(shè)備,其中所述縮放、旋轉(zhuǎn)和/或平移值被應(yīng)用于所述后續(xù)臉部網(wǎng)格中的所述頂點。
17. 如權(quán)利要求IO所述的設(shè)備,其中所述臉部網(wǎng)格序列是人類用戶的 臉部網(wǎng)格記錄。
18. 如權(quán)利要求10所述的設(shè)備,其中所述臉部網(wǎng)格序列的一部分是對 應(yīng)于所述臉部圖像的靜止圖像。
全文摘要
提供了利用臉部網(wǎng)格來創(chuàng)建臉部動畫的技術(shù)。該技術(shù)包括確定臉部網(wǎng)格序列。然后使臉部網(wǎng)格序列的一部分適合臉部圖像。例如,使臉部網(wǎng)格序列的第一幀適合圖像。然后基于適合,將臉部圖像投影到臉部網(wǎng)格部分上。此外,可以生成頭發(fā)模型并且將其配備到臉部網(wǎng)格序列上。此外,可以算出臉部網(wǎng)格的序列之間的色差。然后播放臉部網(wǎng)格序列以創(chuàng)建針對臉部圖像的臉部動畫序列。所產(chǎn)生的色差還可以在序列正在被播放時,被加入所述序列。因此,對臉部網(wǎng)格序列的播放創(chuàng)建了臉部圖像的真實的臉部動畫。
文檔編號G06T15/70GK101401129SQ200780008611
公開日2009年4月1日 申請日期2007年1月4日 優(yōu)先權(quán)日2006年1月10日
發(fā)明者佐佐木大地 申請人:索尼株式會社