本發(fā)明涉及一種虛擬人嘴部運(yùn)動(dòng)的實(shí)現(xiàn)方法,特別是涉及一種三維虛擬人嘴部運(yùn)動(dòng)的實(shí)現(xiàn)方法。
背景技術(shù):三維人臉動(dòng)畫是計(jì)算機(jī)三維動(dòng)畫技術(shù)領(lǐng)域的重要研究內(nèi)容,具有真實(shí)感的三維人臉動(dòng)畫在人機(jī)交互、視頻會(huì)議等方面都有廣泛的應(yīng)用,而嘴部作為人類語言交流的主要器官,在傳遞信息和情感交流等方面起著不可替代的作用,嘴部運(yùn)動(dòng)是否具有真實(shí)感對人臉動(dòng)畫好壞有著至關(guān)重要的作用,因此對嘴部運(yùn)動(dòng)的研究有著重要的意義。Waters最早用肌肉模型生成了人臉表情動(dòng)畫,通過控制肌肉的收縮實(shí)現(xiàn)對嘴部運(yùn)動(dòng)的控制,但是由于嘴部肌肉的復(fù)雜性,該模型不能實(shí)現(xiàn)對嘴部運(yùn)動(dòng)的精確控制,在生成嘴部動(dòng)畫時(shí)具有較大的局限性。文獻(xiàn)“授權(quán)公告號(hào)是CN101566828B的中國發(fā)明專利”公開了一種虛擬人嘴部運(yùn)動(dòng)控制方法,該方法采用擺動(dòng)導(dǎo)桿機(jī)構(gòu)模型模擬虛擬人嘴部運(yùn)動(dòng)。該方法能較好的實(shí)現(xiàn)正常情況下嘴部的張合運(yùn)動(dòng),但是由于受到擺動(dòng)導(dǎo)桿機(jī)構(gòu)模型的限制,運(yùn)動(dòng)控制參數(shù)數(shù)量有限,運(yùn)動(dòng)規(guī)律單一,無法模擬多種嘴部的張合運(yùn)動(dòng);并且人嘴部的張合也不是簡單的剛性運(yùn)動(dòng),該模型不能體現(xiàn)嘴部運(yùn)動(dòng)的柔性和非線性特性,無法實(shí)現(xiàn)細(xì)膩的嘴部運(yùn)動(dòng)。
技術(shù)實(shí)現(xiàn)要素:為了克服現(xiàn)有虛擬人嘴部運(yùn)動(dòng)控制方法虛擬人嘴部運(yùn)動(dòng)粗放的不足,本發(fā)明提供一種三維虛擬人嘴部運(yùn)動(dòng)的實(shí)現(xiàn)方法。該方法首先獲取三維人臉網(wǎng)格數(shù)據(jù)模型;其次,根據(jù)嘴部的運(yùn)動(dòng)特性在模型的嘴部區(qū)域選擇特征點(diǎn)作為運(yùn)動(dòng)控制點(diǎn);最后采用柔性空間四桿機(jī)構(gòu)模型,把嘴部區(qū)域的點(diǎn)看作從動(dòng)桿上的一點(diǎn),取曲柄的旋轉(zhuǎn)角速度為控制參數(shù),根據(jù)機(jī)架、曲柄、連桿、搖桿之間的位置關(guān)系和曲柄的初始安裝位置,以及曲柄旋轉(zhuǎn)角速度等輸入?yún)?shù),得到嘴部區(qū)域點(diǎn)的轉(zhuǎn)動(dòng)角度從而驅(qū)動(dòng)嘴部區(qū)域網(wǎng)格點(diǎn)的運(yùn)動(dòng),模擬真實(shí)的嘴部運(yùn)動(dòng),并通過對頂點(diǎn)緩沖區(qū)域頂點(diǎn)的處理消除邊界處的過拉伸現(xiàn)象。本發(fā)明數(shù)學(xué)模型簡單,并且可以通過調(diào)整柔性空間機(jī)構(gòu)的位置關(guān)系來實(shí)現(xiàn)更豐富的嘴部細(xì)膩運(yùn)動(dòng),同時(shí)采用柔性空間機(jī)構(gòu)模型能更加逼真的模擬嘴部的真實(shí)運(yùn)動(dòng)情況和非線性變形,具有較高的逼真度。本發(fā)明解決其技術(shù)問題所采用的技術(shù)方案是:一種三維虛擬人嘴部運(yùn)動(dòng)的實(shí)現(xiàn)方法,其特點(diǎn)是采用以下步驟:步驟一、采用Proser7.0導(dǎo)出三維人臉網(wǎng)格模型;在導(dǎo)出的模型中,以人物的鼻尖為基準(zhǔn),建立坐標(biāo)系XYZ,水平向右方向?yàn)閄軸正向,垂直向上方向?yàn)閅軸正向,Z軸垂直于XOY平面向外,三個(gè)軸方向符合右手法則。步驟二、根據(jù)嘴部的運(yùn)動(dòng)特性在模型的嘴部區(qū)域選擇特征點(diǎn)作為運(yùn)動(dòng)控制點(diǎn)。在所得到的網(wǎng)格模型上,劃分出與嘴部運(yùn)動(dòng)相關(guān)的區(qū)域,便于對嘴部運(yùn)動(dòng)控制點(diǎn)的選取。根據(jù)嘴部運(yùn)動(dòng)的實(shí)際情況,將嘴部張合運(yùn)動(dòng)看作是下顎圍繞顴弓處進(jìn)行的轉(zhuǎn)動(dòng)。按照MPEG-4中對嘴部區(qū)域特征點(diǎn)的定義,選取顴弓處的特征點(diǎn)FDP2.19和FDP2.20,兩嘴角處的特征點(diǎn)FDP8.3和FDP8.4,下嘴唇上邊界特征點(diǎn)FDP2.5、FDP2.9、FDP2.3、FDP2.8和FDP2.4及下頜邊界處特征點(diǎn)FDP2.1、FDP2.11、FDP2.12、FDP2.13和FDP2.14作為嘴部區(qū)域的邊界點(diǎn),用來確定嘴部在XOY平面的區(qū)域;通過顴弓處特征點(diǎn)FDP2.19和FDP2.20來確定嘴部區(qū)域的側(cè)面范圍;選取人臉三維網(wǎng)格模型上落在嘴部區(qū)域正面范圍內(nèi),并且Z值大于顴弓處特征點(diǎn)Z值的全部網(wǎng)格點(diǎn)作為嘴部區(qū)域的運(yùn)動(dòng)控制點(diǎn)。步驟三、采用柔性空間四桿機(jī)構(gòu)模型,驅(qū)動(dòng)嘴部區(qū)域網(wǎng)格點(diǎn)的運(yùn)動(dòng),模擬真實(shí)的嘴部運(yùn)動(dòng)。柔性空間四桿機(jī)構(gòu)由曲柄、連桿、搖桿、機(jī)架四個(gè)構(gòu)件組成,在曲柄和搖桿上各安裝一個(gè)短臂柔鉸;其中,機(jī)架是機(jī)構(gòu)中的固定部分,曲柄是能夠作整周回轉(zhuǎn)運(yùn)動(dòng)的原動(dòng)件,它與機(jī)架相連接,搖桿作為從動(dòng)桿,一端也與機(jī)架相連接,連桿是曲柄和搖桿各自不與機(jī)架相連的一端相互連接構(gòu)成的桿件,搖桿只能實(shí)現(xiàn)往復(fù)擺動(dòng)。曲柄與機(jī)架,曲柄與連桿,連桿與搖桿,搖桿與機(jī)架分別構(gòu)成轉(zhuǎn)動(dòng)副,即組成轉(zhuǎn)動(dòng)副的能相對整周轉(zhuǎn)動(dòng)的兩個(gè)轉(zhuǎn)動(dòng)副。在機(jī)構(gòu)中能按照給定的已知運(yùn)動(dòng)規(guī)律獨(dú)立運(yùn)動(dòng)的構(gòu)件稱為原動(dòng)件,機(jī)構(gòu)中其余桿件稱為從動(dòng)件,當(dāng)滿足機(jī)構(gòu)中最短桿與最長桿的和小于或者等于其余兩桿長度的和時(shí),原動(dòng)件能做整周的回轉(zhuǎn)運(yùn)動(dòng)。設(shè)定曲柄為原動(dòng)件,選擇搖桿為從動(dòng)件,則曲柄能夠繞機(jī)架的固定鉸鏈作整周轉(zhuǎn)動(dòng),并將曲柄的連續(xù)轉(zhuǎn)動(dòng),通過連桿帶動(dòng)搖桿實(shí)現(xiàn)往復(fù)擺動(dòng)。根據(jù)嘴部張合為下顎骨圍繞顴弓進(jìn)行轉(zhuǎn)動(dòng)這一特性,把嘴部區(qū)域的點(diǎn)看作從動(dòng)桿上的任意一點(diǎn),選擇曲柄的旋轉(zhuǎn)角速度為控制參數(shù),根據(jù)機(jī)架、曲柄、連桿、搖桿之間的位置關(guān)系和曲柄的初始安裝位置,以及輸入的曲柄轉(zhuǎn)動(dòng)角速度參數(shù),計(jì)算出嘴部區(qū)域任意點(diǎn)在任意時(shí)刻的空間位置或者轉(zhuǎn)過的角度,驅(qū)動(dòng)嘴部區(qū)域網(wǎng)格點(diǎn)的運(yùn)動(dòng),實(shí)現(xiàn)嘴部的張合運(yùn)動(dòng)。柔性空間機(jī)構(gòu)的矢量封閉方程為:展開后,得令得asinθ4+bcosθ4+c=0(7)求解,并取θ3為銳角,得到其中,θ1=ω1t,得到從而得到控制點(diǎn)轉(zhuǎn)過的角度為將式(1)兩邊對時(shí)間t求導(dǎo)數(shù),得得到控制點(diǎn)的運(yùn)動(dòng)速度ω3。步驟四、使用柔性空間機(jī)構(gòu)模型驅(qū)動(dòng)嘴部區(qū)域轉(zhuǎn)動(dòng)時(shí),上顎骨的頂點(diǎn)是靜止的,而下顎骨關(guān)聯(lián)的點(diǎn)是運(yùn)動(dòng)的,這樣在兩類頂點(diǎn)的交界處會(huì)出現(xiàn)紋理過拉伸現(xiàn)象。通過定義一個(gè)由Pa、Pb、Pc三點(diǎn)組成的頂點(diǎn)緩沖區(qū),其中Pa為顴弓處FDP2.19或FDP2.20,Pb為FDP8.3或FDP8.4,Pc為控制點(diǎn)轉(zhuǎn)過的角度α所在的直線與過Pb做的垂線的交點(diǎn),Pm為線段PbPc的中點(diǎn);在緩沖區(qū)中的任一點(diǎn)P與線段PaPb夾角為θ;取控制點(diǎn)轉(zhuǎn)過的角度為消去交界處的過拉伸現(xiàn)象,增強(qiáng)對嘴部運(yùn)動(dòng)的控制,生成具有真實(shí)感的嘴部動(dòng)畫。本發(fā)明的有益效果是:該方法首先獲取三維人臉網(wǎng)格數(shù)據(jù)模型;其次,根據(jù)嘴部的運(yùn)動(dòng)特性在模型的嘴部區(qū)域選擇特征點(diǎn)作為運(yùn)動(dòng)控制點(diǎn);最后采用柔性四桿機(jī)構(gòu)模型,把嘴部區(qū)域的點(diǎn)看作從動(dòng)桿上的一點(diǎn),取曲柄的旋轉(zhuǎn)角速度為控制參數(shù),根據(jù)機(jī)架、曲柄、連桿、搖桿之間的位置關(guān)系和曲柄的初始安裝位置,以及曲柄旋轉(zhuǎn)角速度等輸入?yún)?shù),得到嘴部區(qū)域點(diǎn)的轉(zhuǎn)動(dòng)角度從而驅(qū)動(dòng)嘴部區(qū)域網(wǎng)格點(diǎn)的運(yùn)動(dòng),模擬真實(shí)的嘴部運(yùn)動(dòng),并通過對頂點(diǎn)緩沖區(qū)域頂點(diǎn)的處理消除邊界處的過拉伸現(xiàn)象。本發(fā)明數(shù)學(xué)模型簡單,并且可以通過調(diào)整柔性空間機(jī)構(gòu)的位置關(guān)系來實(shí)現(xiàn)更豐富的嘴部細(xì)膩運(yùn)動(dòng),同時(shí)采用柔性空間機(jī)構(gòu)模型能更加逼真的模擬嘴部的真實(shí)運(yùn)動(dòng)情況和非線性變形,具有較高的逼真度。下面結(jié)合附圖和具體實(shí)施方式對本發(fā)明作詳細(xì)說明。附圖說明圖1是本發(fā)明三維虛擬人嘴部運(yùn)動(dòng)的實(shí)現(xiàn)方法的流程圖;圖2是本發(fā)明方法通過Proser7.0導(dǎo)出的三維人臉網(wǎng)格模型示意圖;圖3是本發(fā)明方法人臉FDP的示意圖;圖4是本發(fā)明方法嘴唇FDP的示意圖;圖5是本發(fā)明方法嘴部區(qū)域的示意圖;圖6是本發(fā)明方法用柔性空間四桿機(jī)構(gòu)的示意圖;圖7是本發(fā)明方法柔性空間四桿機(jī)構(gòu)的等效偽剛體原理圖;圖8是本發(fā)明方法頂點(diǎn)緩沖區(qū)域示意圖。圖中,1-第一短臂柔鉸,2-第一剛性桿,3-連桿,4-機(jī)架,5-第二短臂柔鉸,6-第二剛性桿。具體實(shí)施方式以下實(shí)施例參照圖1-8。本發(fā)明三維虛擬人嘴部運(yùn)動(dòng)的實(shí)現(xiàn)方法具體步驟如下:首先通過三維激光掃描儀掃描真實(shí)人臉得到原始的三維人臉網(wǎng)格模型,或者通過3DSMAX、MAYA等三維建模軟件手工建立人臉三維模型,也可以由Proser專業(yè)人體建模軟件,從其模型庫中直接導(dǎo)出所需的人頭部模型。本實(shí)施中采用Proser7.0專業(yè)人體建模軟件,直接導(dǎo)出三維人頭部模型。其次依據(jù)人嘴部FDP的定義,通過計(jì)算機(jī)輸入設(shè)備對原始三維網(wǎng)格模型中嘴部區(qū)域進(jìn)行確定,并選定運(yùn)動(dòng)控制點(diǎn)。為了得到更加真實(shí)的嘴部運(yùn)動(dòng)模擬效果,根據(jù)嘴部運(yùn)動(dòng)的實(shí)際情況,選取顴弓處的特征點(diǎn)FDP2.19和FDP2.20,兩嘴角處的特征點(diǎn)FDP8.3和FDP8.4,下嘴唇上邊界特征點(diǎn)FDP2.5、FDP2.9、FDP2.3、FDP2.8、FDP2.4及下頜邊界處特征點(diǎn)FDP2.1、FDP2.11、FDP2.12、FDP2.13、FDP2.14作為嘴部區(qū)域的邊界點(diǎn),用來確定嘴部在XOY平面的區(qū)域;通過顴弓處特征點(diǎn)FDP2.19和FDP2.20來確定嘴部區(qū)域的側(cè)面范圍;選取人臉三維網(wǎng)格模型上落在嘴部區(qū)域正面范圍內(nèi),并且Z值大于顴弓處特征點(diǎn)Z值的全部網(wǎng)格點(diǎn)作為嘴部區(qū)域的運(yùn)動(dòng)控制點(diǎn),得到人嘴部的控制區(qū)域。再次,采用柔性空間四桿機(jī)構(gòu),驅(qū)動(dòng)嘴部區(qū)域網(wǎng)格點(diǎn)的運(yùn)動(dòng),模擬真實(shí)的嘴部運(yùn)動(dòng)。柔性空間四桿機(jī)構(gòu)由曲柄、連桿、搖桿、機(jī)架四個(gè)構(gòu)件組成,為了體現(xiàn)嘴部運(yùn)動(dòng)的柔性特性,在曲柄和搖桿上各安裝一個(gè)短臂柔鉸。曲柄與機(jī)架,曲柄與連桿,連桿與搖桿,搖桿與機(jī)架分別構(gòu)成轉(zhuǎn)動(dòng)副。其中曲柄與機(jī)架構(gòu)成周轉(zhuǎn)幅。根據(jù)柔性空間四桿機(jī)構(gòu)的運(yùn)動(dòng)原理,在機(jī)構(gòu)中能按照給定的已知運(yùn)動(dòng)規(guī)律獨(dú)立運(yùn)動(dòng)的構(gòu)件稱為原動(dòng)件,機(jī)構(gòu)中其余桿件稱為從動(dòng)件,當(dāng)滿足機(jī)構(gòu)中最短桿與最長桿的和小于或者等于其余兩桿長度的和并且組成周轉(zhuǎn)副的兩桿中必須有一桿是最短桿時(shí),原動(dòng)件能作整周的回轉(zhuǎn)運(yùn)動(dòng)。根據(jù)實(shí)際需要,設(shè)定曲柄為原動(dòng)件,選擇搖桿為從動(dòng)件,那么曲柄能夠繞機(jī)架的固定鉸鏈作整周轉(zhuǎn)動(dòng),并可將曲柄的連續(xù)轉(zhuǎn)動(dòng),通過連桿的帶動(dòng)轉(zhuǎn)換成搖桿的往復(fù)擺動(dòng)。根據(jù)嘴部運(yùn)動(dòng)的實(shí)際情況,將嘴部任意一點(diǎn)看作是位于搖桿上的某點(diǎn),根據(jù)需要設(shè)定曲柄的旋轉(zhuǎn)角速度為控制參數(shù),根據(jù)機(jī)架、曲柄、連桿、搖桿之間的位置關(guān)系和初始安裝位置,以及輸入的曲柄的旋轉(zhuǎn)角速度參數(shù),可以得到該點(diǎn)在任意時(shí)刻的空間位置或轉(zhuǎn)過的角度,從而驅(qū)動(dòng)嘴部區(qū)域網(wǎng)格點(diǎn)的運(yùn)動(dòng),實(shí)現(xiàn)嘴部的張合運(yùn)動(dòng)。曲柄由第一短臂柔鉸1和第一剛性桿2組成,連桿3是剛性桿,搖桿由第二短臂柔鉸5和第二剛性桿6組成。A表示曲柄與連桿的連接點(diǎn),B表示連桿與搖桿的連接點(diǎn)。其中,機(jī)架4屬于機(jī)構(gòu)中的固定部分;曲柄為機(jī)構(gòu)的原動(dòng)件;連桿3用來帶動(dòng)搖桿的擺動(dòng);搖桿為機(jī)構(gòu)的從動(dòng)件。曲柄與連桿、連桿與搖桿分別通過連接點(diǎn)A、B相連接。根據(jù)柔性空間四桿機(jī)構(gòu)的理論知識(shí),當(dāng)滿足四桿中最短桿長度與最長桿長度和小于等于其余兩桿長度和的時(shí)候,曲柄能作整周的回轉(zhuǎn)運(yùn)動(dòng),并通過連桿帶動(dòng)搖桿做往復(fù)擺動(dòng)。因此,本實(shí)施例的柔性空間四桿機(jī)構(gòu)模型中,取曲柄為最短桿,則曲柄能夠作周轉(zhuǎn)運(yùn)動(dòng),連桿和搖桿作擺轉(zhuǎn)運(yùn)動(dòng)。本實(shí)施例中,取機(jī)架長度為L4,第一短臂柔鉸1和第二短臂柔鉸5的長度分別為l1、l2,第一剛性桿2和第二剛性桿6的長度分別為L1、L3,連桿3的長度為L2。首先建立相應(yīng)的復(fù)數(shù)向量坐標(biāo)系,以便于對機(jī)構(gòu)進(jìn)行運(yùn)動(dòng)分析。O點(diǎn)為顴弓處點(diǎn)FDP2.19或FDP2.20;OO′表示機(jī)架;空間直線OM用來模擬人的上顎;O′A表示原動(dòng)件(曲柄),能夠作整周轉(zhuǎn)動(dòng);OB表示搖桿,在連桿AB的帶動(dòng)下做往復(fù)的擺動(dòng)。根據(jù)柔性空間機(jī)構(gòu)知識(shí),第一短臂柔鉸1和第二短臂柔鉸5分別用一個(gè)扭轉(zhuǎn)彈簧表示,等效長度為則,OO′長度為L4;O′A長度為在初始位置時(shí)與OO′的夾角為θ1;AB的長度為L2,與OO′的夾角為θ2;OB的長度為與OO′的夾角為θ4,與實(shí)軸的夾角為θ3。O′A繞O′點(diǎn)以角速度ω1做圓周運(yùn)動(dòng),然后通過AB的連接,帶動(dòng)OB也做繞O旋轉(zhuǎn)的擺轉(zhuǎn)運(yùn)動(dòng)。取嘴部區(qū)域的任一控制點(diǎn)P位于搖桿上某固定點(diǎn)處,就可以通過該柔性空間四桿機(jī)構(gòu)模型模擬嘴部網(wǎng)格點(diǎn)的運(yùn)動(dòng)軌跡。當(dāng)搖桿位于OM位置時(shí),嘴部處于閉合狀態(tài);當(dāng)搖桿旋轉(zhuǎn)到OC線上時(shí),嘴部張開到最大。通過數(shù)學(xué)模型對其進(jìn)行分析:柔性空間機(jī)構(gòu)的矢量封閉方程為:展開后,得令可得asinθ4+bcosθ4+c=0(7)求解,并取θ3為銳角,可得到其中,θ1=ω1t,得到從而可得控制點(diǎn)轉(zhuǎn)過的角度為將式(1)兩邊對時(shí)間t求導(dǎo)數(shù),運(yùn)用上邊的分析方法,可得從而得到控制點(diǎn)的運(yùn)動(dòng)速度ω3。最后,消除交界處過拉伸現(xiàn)象。定義一個(gè)頂點(diǎn)緩沖區(qū),其中Pa為顴弓處FDP2.19或FDP2.20,Pb為FDP8.3或FDP8.4,Pc為控制點(diǎn)轉(zhuǎn)過的角度α所在的直線與過Pb做的垂線的交點(diǎn),Pm為線段PbPc的中點(diǎn);在緩沖區(qū)中的任一點(diǎn)P與線段PaPb夾角為θ;取控制點(diǎn)轉(zhuǎn)過的角度為可以消去交界處的過拉伸現(xiàn)象,增強(qiáng)了對嘴部運(yùn)動(dòng)的控制,從而生成具有真實(shí)感的嘴部動(dòng)畫。由以上分析可知,改變角速度ω1可以得到嘴部區(qū)域網(wǎng)格點(diǎn)的角速度ω3,從而實(shí)現(xiàn)對嘴部張合速度的控制;通過柔性空間機(jī)構(gòu)位置設(shè)置,可以得到嘴部張合的最大角度αmax。同時(shí),通過預(yù)先改變?nèi)嵝钥臻g四桿機(jī)構(gòu)的結(jié)構(gòu)(即各個(gè)桿的長度和曲柄初始角度),可以實(shí)現(xiàn)對嘴部運(yùn)動(dòng)更加靈活的控制。本發(fā)明實(shí)例最終獲得的人嘴部運(yùn)動(dòng)控制效果與現(xiàn)有技術(shù)相比,通過引入柔性空間四桿機(jī)構(gòu)模型,豐富了嘴部張合的運(yùn)動(dòng)情況,采用柔性空間機(jī)構(gòu)模型,更加真實(shí)的模擬了嘴部的柔性特性和非線性運(yùn)動(dòng),其數(shù)學(xué)模型簡單,控制容易,實(shí)現(xiàn)了更加細(xì)膩的嘴部張合運(yùn)動(dòng)。