第二章 人臉影像偵測與特徵擷取
2.3 人臉形狀模型
2.3.3 模擬臉部形狀的變化情形
在圖2-10中,我們可稱此圖為Point Distribution Model(PDM)[27],PDM 嘗試著去模擬訓練集合中每個特徵點座標的變化情形。而必須注意的是,特 徵點並非各自獨立的移動,他們的位置是相關連的,也就是說每一個形狀僅 有一組屬於自己的轉換參數。
當訓練集合內的所有形狀與s0對齊後,每個形狀皆可被表示成2v維空間 上的一個點,如式(2-6)所表示。因此,對於包含n個形狀的訓練集合,在2v 維空間上便會形成k個點,假設此k個點群聚在空間上的某個範圍內,稱作 Allowable Shape Domain(ASD)[27]。在此範圍裡的每個2v維的點都代表一組 特徵點,且這些特徵點所組成的形狀都會與訓練集合內的形狀相似。
我 們 透 過Principal Component Analysis(PCA) 來 降 低 2v 維 資 料 的 維 度 [25],並近似ASD的形狀(即2v維空間上n個點的分布情形)。利用前面所描述
的方法,我們可求得k個已對齊形狀的mean shape s0(即ASD的中心點)。對 2v維空間上的資料作PCA,則可得到ASD的主軸。每一條軸代表所有資料的 一種變化模式(Mode of variation),當人臉形狀改變時,則所有的特徵點會傾 向於一起移動的方式在跑。
訓練集合中k個臉部形狀的covariance matrix C 定義如下所表示:
( )( )
∑= − −
= k
i
T i
i s x s
k x C
1 0 0
1 (2-9)
求出此矩陣以後,接著就找出covariance matrix的特徵值與對應的特徵向量,其 中特徵向量均為單範正交的形式。這些特徵向量代表了此ASD的主軸,而對應於 最大之特徵值的特徵向量則是代表最長軸。
任何在Allowable Shape Domain中的點(即所有真實或者是可被接受的人臉 形狀)都可利用mean shape加上特徵向量的線性組合來求得。因此,我們可以藉 由s0以及計算出來的特徵向量來近似訓練集合中任何一個人臉形狀s:
∑=
+
= n
i pisi
s s
0 1 (2-10) 其中si =
(
s1 s2 K sn)
T為前n個特徵向量所組成的矩陣,(
n)
i p p p
p = 1 2 K 為由權重值所組成的向量,稱作shape parameters。
圖2-11所示為mean shape s0與其他特徵向量所組成的形狀座標,之後則必須 用這些資訊來產生各種不同的形狀座標。
(a) s0 (b) s1
(c) s2 (d) s3 圖2-11 mean shape s0與其他特徵向量所組成的形狀座標
2.4 紋理模型
一個完整的臉部模型裡除了須考慮人臉形狀以外,還必須涵蓋像素本身 的資訊。因為形狀只包含了特徵點間的位置關係,並沒有提供我們像素上的 資訊,例如灰階值的大小。
本節將說明如何建立臉部的紋理模型(Texture model),我們先對紋理下 定 義 , 為 了 讓 所 有 的 臉 部 形 狀 的 取 樣 數 目 相 等 , 就 利 用 影 像 形 變(Image warping)將所有臉部形狀形變成 mean face shape,再取得像素值,最後利用 PCA 以說明紋理的變化情形,藉此建立一個臉部的紋理模型。
2.4.1 物體的紋理
在形狀模型裡,我們以一組特徵點座標所組成的向量來代表每個形狀,而 在紋理模型中,我們將用一組向量來表示每張臉部影像的紋理:
(
g g gr)
g = 1, 2,K, (2-11) 其中gi表示影像的像素值,而 r 代表臉部表面灰階值取樣的總數。
2.4.2 Piece-wise Affine Warping
由於臉部形狀的大小不一,其所包含的像素個數也不盡相同,為了讓所 有臉部形狀之灰階值取樣的數目相等,則必須先將每個臉部形狀形變成mean face shape,使兩者的特徵點完全吻合後,才能進行取樣的動作。
最簡單的影像形變方式是假設影像在局部區域內是線性的,為了滿足這 個假設,我們利用 Delaunay triangulation [28]將所有點組成的 convex hull 分 割成一組三角形的集合。
Delaunay triangulation 是利用許多三角形所組成的網狀(Mesh)來將一組 不規則的點連結起來,其中,每個三角形都必須滿足Delaunay property,即 任一點皆不會落在任一個三角形的外接圓內,這表示對任一個三角形來說,
其三個頂點都會剛好落在三角形的外接圓上,如圖 2-12 所示。因此也可以將 人臉的形狀座標利用 Delaunay 來組成許多的三角形,如圖 2-13 所示。
透過Affine transformation,像是縮放、位移與偏斜(Skewing),可將影像 I 的點集合對應到影像 I´的點集合。利用此方法我們便可將訓練集合中的每
圖 2-12 滿足 Delaunay property 之三角形的外接圓[28]
圖 2-13 人臉形狀座標經 Delaunay 後的結果 可決定X ′在影像s0中所對應到的三角形內的相對位置:
] ) , ( ) , [(
] ) , ( ) , [(
) , ( )
;
(x p xi yi T xj yj T xi yi T xk yk T xi yi T
W = ′ ′ +α ′ ′ − ′ ′ +β ′ ′ − ′ ′ (2-15)
圖2-14 三角形影像形變法
2.4.3 像素內插
在進行灰階值取樣時,由於利用上述之 Piece-wise affine warping 所求的 新位置並不會剛好是整數,因此我們採用雙線性內插法來解決此問題。
1 。求出此矩陣以後,接著就找出Covariance
matrix的特徵值與對應的特徵向量,其中特徵向量均為單範正交的形式。因此,
2.5 可形變樣板追蹤演算法
藉由前面所描述的方法得出形狀模型與紋理模型後,我們即可藉由調整 模型的參數而形變其他類型的人臉,定義為W ;
( )
x p ,其代表的是 Mean shapes0經過 p 的參數調整而得出的人臉模型,也就是座標轉換,舉例如圖 2-16 所示。
由上述可知,當測試人臉影像進來時,我們該如何調整參數以致於可將建好 的模型追蹤到測試影像的人臉,此為接下來所要討論的主軸。追蹤的方法目前可 分成Combined AAM [25,29]與 Independent AAM [30]兩種,就 Combined AAM 來 說,即是將形狀模型的調整參數與紋理模型的調整參數也一樣是藉由 PCA 的方 法 將 兩 組 參 數 結 合 起 來 , 形 成 一 組 可 同 時 改 變 形 狀 與 紋 理 的 參 數
(
c c cl)
Tc= 1, 2,K, ,所以形狀參數模型與紋理參數模型也會做改變:
+ ∑
=
=l i
c
is
is s
0 1 (2-18)
圖2-16 調整形狀與紋理參數形變得到的其他人臉
+∑
= =
l
i ciAi x x
A x A
0( ) 1 ( )
)
( (2-19)
在結合原先的兩組參數時,是設定c=
(
p1,p2,K,pn,λ1,λ2,K,λm)
T,接著利用 PCA 的方式將維度給化簡,但由於為了保持演算法的正確性,其化簡後的維度 不可小於n 與 m 的最大值,即l ≥max( mn, );而在Independent AAM 中,其主要 的調整參數是以形狀參數為主,而紋理參數可在形狀參數經迭代完成後再做計算 即可。因此在每次迭代過程的計算量上,Combined AAM 需要較多的計算量,而 由於本論文所使用的系統為嵌入式的影像處理平台,需要考慮計算量上面的問 題,所以在此我們選擇 Independent AAM 的迭代方法來做可形變樣板的追蹤 [30-32],即 Lucas-Kanade 演算法。2.5.1 Lucas-Kanade 影像校正演算法
Lucas-Kanade 演算法是以梯度為基礎的影像變動估測演算法,它具有簡單快 速的優點,在許多研究與應用上廣泛的被使用,如影像形變校正、物體動態追蹤 與立體視覺的計算等。我們將參考[30]所介紹的專屬於 AAM 所用的追蹤演算 法,且針對此演算法再做許多進一步的改良,來達成準確的效果。
假設有一樣版影像(Template image),即A0(x),代表未形變前的目標影像,
另外有一影像 I 代表輸入的影像亦為形變後的影像,其中 I 與A0存在一形變 關係使得I(W(x;p))= A0(x),若將式(2-20)最小化,則可求得最佳形變參數 p。
[ ]
∑ −
x
A
0( x ) I ( W ( x ; p ))
2 (2-20) 由於影像的亮度分佈為非線性,使得形變參數p 不可能直接求出。因此將 p 改為以下的形式,利用迭代的方式使p 漸趨於最佳值。[ ]
Steepest descent images。忽略上式的高次項,並將此式代入式(2-21)中來微分 求極值:
(2) 計算誤差影像A0(x)−I(W(x;p)) (3) 藉由參數p 來形變梯度影像∇I (4) 藉由參數p 來計算 Jacobian matrix
(5) 計算
p p x I W
∂
∇ ∂ ( ; )
(6) 由式(2-23)來計算 Hessian matrix
(7) 計算 ( ; )
[
( ) ( ( ; ))]
0 x I W x p
p A p x I W
T
x −
∑ ⎥
⎦
⎢ ⎤
⎣
⎡
∂
∇ ∂
(8) 由式(2-24)來計算Δp (9) 更新參數 p← p+Δp
不過就此迭代流程的計算量來看,由於步驟(3)與步驟(4)都是與形變參數 p 相關 的,因此在每次的迭代過程中都還必須再計算一次梯度上的形變以及Jacobian,
以致於後面的Hessian matrix 也必須重新再計算一次,所以在每次迭代的計算量 上面需耗費許多時間,因此必須對此演算法做計算量上面改良[30,32](Inverse Compositional Algorithm, IC)。
Inverse Compositional Algorithm 的重點在於避免讓所有要計算的過程均與形 變參數p 相依,因此式(2-21)需改成:
由此兩種演算法比較可看出在傳統的Lucas-Kanade 演算法是計算輸入影 像的梯度值,接著再從此計算出的梯度值來找出Warping jacobian,每一次迭 代就要計算一次此部份;但在Inverse Compositional Algorithm 的改良演算法 可看出梯度值是從樣板影像去計算的,而樣板影像是已知的,所以也就是說 在後面的Warping jacobian 的部份也是已知,故若用此種演算法來做迭代時,
只要在迭代前先將樣板影像的梯度值以及 Warping jacobian 計算出來,之後 的迭代過程中就不需要再去計算此部份,因此在計算量上,經過改良的演算
IV. 藉由式(2-31)來計算出 Hessian matrix 迭代直到收斂:
(4) 由式(2-30)來計算Δp
(5) 更新參數W(x;p)←W(x;p)oW(x;Δp)−1
由此兩演算法比較下來可看出在 Inverse Compositional 演算法中的迭代 步驟少做了四項,所以若迭代越多次,相較之下就會比原本的演算法還要少
圖2-18 Inverse Compositional 演算法迭代流程
就此矩陣的第一列來說,W 代表的是形變點x W( px; )在 x 的座標,而p 則是代m
由上式可得知,當z≠i,j,k, =0
⎟ ⎟
最後由式(2-39)與式(2-40)可得出 Warping jacobian 的算法:
( )
∑
=圖2-19 對
( ) (
i i)
T雖然Inverse compositional 演算法具有計算量較少的優點,但是它只能解 決輸入影像與固定樣板圖像間的匹配問題,由文獻[30]可知,AAM 可具有變
其中 ⋅ 為 L2 norm,接著對上式加以轉化以滿足 Inverse compositional 演算 法的定義。因此可轉化為求下式最小化的問題[34]: Inverse compositional 演算法先求出滿足式(2-48)前半部份的形狀參數 p,且將 p 看作常數,進而求出滿足後半部份的紋理參數λi。因為Ai(x)是相互正交的
關係,故紋理參數λi可表示為:
(1) 藉由式(2-48)計算紋理參數λ
2.5.2 Global Shape Normalizing Transform (GSNT)
在上一節所描述的傳統 AAM 演算法中,大部分都是用在正面的人臉,
如圖2-20 所示,若是應用在多姿態中,其容忍範圍相當有限,若是人臉偏轉 多一些,則可能形狀特徵點就會迭代失敗,如圖 2-21 所示。
初始位置 10 次迭代後 20 次迭代後 29 次收斂後 圖 2-20 傳統 AAM 演算法迭代出的正面人臉
初始位置 15 次迭代後 25 次迭代後 37 次收歛後 圖 2-21 傳統 AAM 演算法迭代出的具姿態變化之人臉
由於測試人臉影像的形狀 s 是定義在模型座標框架下的,是去除平移、
縮放和旋轉的轉換之後的人臉形狀,而實際影像中的人臉往往包含了平移、
縮放與旋轉的成份,因此必須對s 進行 Global shape normalizing transform,
來得到實際影像座標框架下的人臉形狀。假設平移位置為
( )
t ,x ty ,旋轉角度就 Global transform 函數N( qx; )而言,為了要使此函數與式(2-9)搭配在一
ty = 。因此就可利用式(2-51)來計算 Piece-wise affine warping 以及 Warping jacobian,其計算的方法與利用式(2-9)時用的計算方法是一樣的[30]。
其中Δs0 =
(
Δx10,Δy10,K,Δxv0,Δyv0)
T 。若定義NoW(s0;q,p)= s+,其表同樣的也考慮樣板的可變動性,則經過Global shape normalizing transform 的 迭代流程如下:
IV. 計算 Hessian matrix= ∑
x
T x SD x
SD ( ) ( )
迭代直到收斂:
(1) 藉由參數p 與 q 來形變輸入影像 I 去計算I(N(W(x;p);q)) (2) 計算誤差影像I(N(W(x;p);q))−A0(x)
(3) 計算 SDT(x)
[
I(N(W(x;p);q)) A0(x)]
x −
∑
(4) 計算
[
( ( ( ; ); )) 0( )]
1 SD I N W x p q A x
H p
x
T −
= ∑
Δ −
(5) 更新參數(NoW)(x;q,p)←(NoW)(x;q,p)o(NoW)(x;Δq,Δp)−1 收斂後:
(1) 計算紋理參數 = ∑ ⋅
[
−]
x i
i A (x) I(N(W(x;p);q)) A0(x) λ
圖2-22 與圖 2-23 為藉由 IC 演算法結合 GSNT 的方法得出正面人臉與具姿態
圖2-22 與圖 2-23 為藉由 IC 演算法結合 GSNT 的方法得出正面人臉與具姿態