參、理論與實作過程

理論部分:

1.Physics Based Muscle Modeling

Physics-based muscle models fall into three categories

1)      Spring Mesh Muscle

2)      Vector Muscle (we use this)

3)      Layered Spring Mesh Muscles

在這次的部分我們主要以Vector Muscle來建構我們的臉部模型,也就是說,利用向量的方法來摸擬人的臉部肌變化。

 

2.FACS

   1)Facial Action Coding System

2)Each single facial action unit has its own code.

3)Combine these codes to represent our basic facial expressions.

例子:

Inner Brow Raiser(AU1),Check Raiser(AU2),Lid Corner Puller(AU3),

   Dimpler(AU4)

 

Happiness = (AU1,AU2,AU3,AU4)

 

將理論跟方法結合:

在上面兩個理論基礎下,回到我們在專題簡介所說的設計方法中可清楚的了解

step1. Make a 3D-Face Model using PolygonóPhysics Based Muscle Modeling

 

step2. Make basic facial action units by making conversion of polygons in step1

óGenerate ‘code’ of single facial acton unit

  

step3. Make basic facial expression by these facial action units

 óCombine these codes to represent our basic facial expressions.

 

而完成了簡單人臉部分的表情變化後

       利用特徵點將簡單人臉模型的眉毛,眼睛,鼻子,嘴巴,下巴等特殊位置紀錄座標後,利用RBF的技術能得到一個由簡單人臉模型對應到真實人臉模型的轉換函式,將所有簡單人臉的座標代入此轉換函式就可以得到對應在真實人臉模型上的簡單人臉座標

但是這個座標並不會貼在真實人臉平面上,所以要利用投影系統

投影系統 :

將每一個未投影的點的座標和真實人臉模型上每一個三角形做垂直投影,假設未投影的點是X1,三角形三個點分別是A,B,C,三角形平面垂直向量n,S為X1到投影點所加上的垂直向量倍率,任意取A,B,C中的一點當X2,設投影點X1+Sn,利用X2-(X1+Sn)對n做內積

=0 求出S

   首先檢查是否X1能垂直投影到三角形平面上

對每一個真實人臉上的三角面作投影,算出投影點後,分別對真實人臉模型上的每一個三角形的三個頂點做

向量投影,得三向量v1,v2,v3 如果三向量有其中一個為0就判斷投影點在三角形中,否則分別算出v1和v2,v2和v3,v3和v1之間的夾角角度,如果角度有一等於零,則算在三角形外面,不然的話將三個角度加起來,假如三個角度和是360度,就算在三角形裡頭,反之就算不在三角形中。

接著對所有在三角形中的投影點取最短投影距離者,即是所要求的最短投影點

 

投影完成後得到未型變的簡單人臉模型轉換座標,簡稱P1,將簡單人臉模型作型變後,得到另一組座標,經過RBF轉換和投影等上述步驟後,可得到另一組型變過後簡單人臉模型轉換座標,簡稱P2,利用P1和P2,經過RBF轉換可得到 另一個對應簡單人臉型變及未型變的轉換函式,將真實人臉所有座標代入,即可得到型變過後的真實人臉

 

 

實作過程:

Make a 3D-Face Model using Polygon

 

 

此圖中,我們可以清楚地看到一整塊face,而構

成這一塊face的基本幾何體就是Polygon(triangle)。使用Polygon建立的模型都是點,邊,面三個元素组成,對點,邊,面三個元素進行修改就可以改變模型的形狀只要有足夠多的多邊形就可以製作出任何形狀的物體,不過隨著多邊形數量的增加系统的性能也会下降。

 

 

           

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Make basic facial action units by making conversion of the polygons in step 1.

方法:

ps.這裡的Polygon Variation相當於FACScode

 

我們找出可以產生某些特定的基本臉部變化的polygon,並對這些Polygon的點給予特定的向量,而這些點延著向量所能改變的間距給定一個範圍,如此便能形成基本的臉部變化單元。

 

 

a是上嘴唇向上張開 定義為upper lip raiser臉部變化元件

b是下腭往下移 定義為 jaw drop臉部變化元件

………

 如此我們便可得到許多Facial action units

 

 

 

 

 

 

 

 

 

Make basic facial expression by these facial action units

 

 藉由之前的步驟,我們得到許多Face Variation Unit,這些Face Variation Unit

只是某些臉部器官的小變化,結合這些小變化,我們可以得到一張我們想要

的臉部表情變化。

 

範例:

將下面這些Face Variation Units相結合得到如下的結果

Upper lip raiser(98.2%) + Jaw drop(75.5%) + Lip stretcher(100.0%)

+Lid tightener(42.3%)+Mouth vertical position raise(35.1%)

ð     A Smile-Like Face Expression

ps. 括號的百分比數字指的是每個facial action unit在際定範圍內的變化率

 

 

 

 

 

                                         原圖                                     組合後所得的圖

 

 

 

 

 

 

Modify Step3 and make it more exaggerative

 

   為了得到更誇張的表情,我們需增加或修改一些Facial action unit,如下是一些誇張表情部分製作:

 

   

 

 

Test and Try

 不停的修改和測試,直到找到適合的誇張臉部表情。

 

RBF轉換

將簡單人臉的點轉換到真實人臉上                                

 

投影系統

將浮在空間中的點投影到真實人臉上

 

<回目錄>