本系統利用 Haar-like 人臉偵測來找出影像畫面的人臉,接者使用膚色的密度 與人臉影像的大小來過濾畫面中不是人臉的部分來找出確切的人臉。
在人臉的特徵擷取中,我們利用主動外觀模型(AAM)來找出人臉的特徵,首 先在訓練資料方面,我們需要先對訓練的資料進行特徵點的標記,接著找出其人 臉平均形狀以及利用 PCA 方法來找出特徵向量的人臉形狀變化量;接著,在紋 理的部分是將訓練人臉形變到平均形狀中,接著同樣的找出其人臉平均紋理以及 利用 PCA 方法來找出特徵向量的人臉紋理變化量,用這些方法來得到 AAM 的 人臉形狀以及紋理模型。
在影像校正方面,Lucas-Kanade 影像校正演算法可用於 AAM 的人臉校正,
但由於其在每次迭代的過程中需要重複計算許多數值,因而造成其運算量較 大的缺點;因此使用改良的 Inverse Compositional 演算法可以達到相同的效果,
而且計算量也可以減少許多。
在 Inverse Compositional 演算法中,對人臉偏轉的角度容忍度十分有限,因此 加入 Global shape normalizing transform 更可讓人臉偏轉的角度容忍度變大;而加 入梯度影像修正可以改善人臉校正的結果而直方圖等化可以加強人臉的特徵而 提升人臉校正的結果,對於接下來的辨識更有幫助。
51
第 第 第
第三 三 三 三章 章 章 章、 、 、 、人臉辨識與表情辨識演算法 人臉辨識與表情辨識演算法 人臉辨識與表情辨識演算法 人臉辨識與表情辨識演算法
在人臉以及表情辨識的方法中,由於每個人的表情變化元素不完全相同,而 且我們希望機器人可以同時辨識出使用者及其的表情為何,以增加機器人與使用 者的互動。在這裡,我們要辨識出使用者以及他們的表情,我們採用了倒傳遞類 神經網路來做為辨識器,而在類神經網路當中,我們採用了人臉的紋理特徵來做 為我們的輸入,為了要提高表情辨識的準確性,我們提出了一套個人表情辨識的 策略來加強辨識的結果。
3.1. 人臉特徵方法 人臉特徵方法 人臉特徵方法 人臉特徵方法
為了要辨識出使用者以及他們的表情,我們採用了人臉的特徵來當作我們辨 識器的輸入,在人臉的特徵取得,我們是使用主動外觀模型(AAM)裡的紋理模型 參數來做為我們做辨識的人臉特徵,因為紋理模型裡包含了許多的人臉紋理的變 化向量,可以來模擬出輸入的各種人臉影像,並且使用紋理模型的參數相對於使 用影像可以減低不少數據量。
在取得紋理模型的參數時,由第二章我們知道紋理模型參數為:
F ∑D´F · ¾; f; ¿ % a (3-1) 其中F為人臉紋理變化特徵向量,a為樣板影像,¾; f; ¿為 形變到人臉平均形狀的人臉影像¾; f; ¿ % a即為誤差影像(Error Image),F為紋理模型的參數,i=1,2,…,m,我們將F經過 Normalize 之後得到F]做 為人臉特徵,當作辨識的倒傳遞類神經網路的輸入特徵參數。
F] ∑ rsrs
suv 1,2, … , y (3-2)
圖
我們使用了倒傳遞類神經網路(Back Propagation Neural Network, 其主要目的是對於輸出入的映射問題化為非線性最佳化的問
Input layer Hidden layer Output layer
圖 3-2、類神經網路主要架構
(Back Propagation Neural Network, 其主要目的是對於輸出入的映射問題化為非線性最佳化的問
輸出層具有線性的
,來找出輸出入
隱藏層以及輸出層, 我們即是藉由調整這兩個參數,來訓
53
在本論文中,我們是採用[28]所描述的倒傳遞類神經網路方法,他將網路模 型表示為圖 3-3,其中 W 是權重值,b 為偏權值,輸入層大小為 I,隱藏層的大 小為 H,輸出層大小為 O,這裡在訓練時,利用了倒傳遞的技巧,將靈敏度由最 後輸出層計算回輸入層,再對於每一層的權重值與偏權值做修改,其輸出層的靈 敏度為:
sÖ %2FØÖnÖt % a (3-3) 其中sÖ為輸出層的靈敏度、FØÖ 為對輸出層轉移函數的微分,nÖ為經由 權重值與偏權值所計算出的輸出層轉移函數的輸入,t 為我們想要的輸出結果,a 為由類神經網路實際跑出的結果,而接下來希望藉由輸出層算出的靈敏度往前傳,
計算出隱藏層中的靈敏度。
s
ÖÙ s
ÖNÙ ª Ù s
Ù s
N(3-4) 而中間第 m 層的靈敏度s³為:
s³ Fسn³W³ÕNos³ÕN (3-5)
其中s³為第 m 層的靈敏度、Fس 為對第 m 層轉移函數的微分,nÖ為經由 權重值與偏權值所計算出的第m 層轉移函數的輸入,W³ÕN為第 m+1 層的權重 值,s³ÕN為第 m+1 層的靈敏度。
接著,我們就可以利用靈敏度來更新所有的權重值與偏權值,其中權重值的 更新為:
W³k 1 W³k % αs³a³No (3-6) 偏權值的更新為:
b³k 1 b³k % αs³ (3-7) 其中W³k與b³k分別為第 k 次迭代所計算出的權重值與偏權值,α為訓練速 率,而a³N為第 m-1 層的輸出結果。
使用多次迭代以後,即可以優化所有的權重值與偏權值,進而訓練出網路的 輸出入關係。
54
圖 3-3、[28]中所使用的類神經網路模型
3.3. 表情辨識策略 表情辨識策略 表情辨識策略 表情辨識策略
在表情辨識的方法中,由於每個人的中性表情以及表情變化元素皆不完全相 同,例如有些人的中性表情看起來就是嘴角往上類似於開心的樣子,而有些人的 中性表情看起來就是嘴角往下類似於傷心的樣子,而造成在使用一般表情辨識方 法中使用大多數人表情特徵來辨識,可能造成被錯誤辨識的結果,因此,在機器 人與人互動的應用中,我們希望機器人對於一個它所認識的人,能夠了解到使用 者的確切表情變化,進而提升表情辨識的辨識率。
以下將描述我們的個人表情辨識的策略,首先在表情資料庫中,我們建立了 每一位成員自己的個人表情資料庫,以及一個利用所有成員的表情資料所建立的 整體表情資料庫;當一位使用者出現在系統中時,我們會先以人臉辨識來辨識出 這位出現在系統當中的使用者是成員中的哪位還是非成員,接著再利用所們所建 立出不同的表情資料庫來辨識出使用者的表情出來,以下分為兩種情形來進行說 明,首先第一種情況是當人臉辨識器辨識出來的結果為系統中的成員,而在第二 種情形當中就是當人臉辨識器辨識出來的結果為非成員,以下將對這兩種情形分 開來進行說明。
首先在第一種情形當中,我們一開始先對輸入人臉進行人臉辨識,當我們的 人臉辨識器辨識出來的輸入人臉屬於系統當中的某位成員時,我們會在表情資料 庫中找出這位使用者所建立出來的表情資料,並使用這位使用者的表情資料來進
55
行表情辨識,來辨識出這位使用者的表情。
接著在第二種情形當中,我們一開始先對輸入人臉進行人臉辨識,當我們的 人臉辨識器辨識出來的輸入人臉不屬於系統當中的某位成員也就是非成員 (Nonmember)時,我們會在表情資料庫中找出利用所有成員的表情資料所建立的 整體表情資料來對這位使用者進行表情辨識,來辨識出這位使用者的表情。
以下為個人表情辨識的範例,假設我們的系統當中擁有 A、B、C、…N 人 的人臉資料,我們利用每一位成員的表情資料建立出 A、B、C、…N 的表情資 料庫,並利用所有成員的表情資料所建立的整體(A+B+C+…+N)表情資料;首先 在第一種情形當中,當使用者進入系統時我們先以人臉辨識來辨識出使用者為哪 一個成員,圖 3-4 中,使用者是資料庫中的成員 A,一開始經由人臉辨識辨識出 是資料庫中的成員 A 之後,接著我們在表情資料庫中找出 A 的表情資料來進行 辨識,以辨識出 A 的表情出來。
接著在第二種情形當中,當使用者進入系統時我們先以人臉辨識來辨識出使 用者並不屬於系統當中為非成員,圖 3-5 中,使用者是不在資料庫中的 Ω,一開 始經由人臉辨識辨識出是不屬於資料庫中的非成員之後,接著我們在表情資料庫 中找出 A+B+C+…+N 的整體表情資料來進行辨識,以辨識出這位使用者的表情 出來。
圖 3-4、成員的人臉表情辨識範例
56
圖 3-5、非成員的人臉表情辨識範例
3.4. 人臉辨識與表情辨識訓練流程 人臉辨識與表情辨識訓練流程 人臉辨識與表情辨識訓練流程 人臉辨識與表情辨識訓練流程
在整體人臉與表情辨識訓練的過程上,首先我們可以將輸入人臉影像進行手 動的特徵點標點得到人臉所有的人臉形狀;另外,如果 AAM 資料庫已經建立完 成,將可以利用 AAM 的影像校正演算法(見第二章)找出輸入人臉的形狀,接著,
我們將所有找到人臉形狀的人臉影像形變到平均形狀後,就可利用 AAM 的紋理 模型找出人臉紋理變化向量的參數,並計算出人臉的特徵值,接著我們將人臉特 徵值放入人臉辨識的類神經網路中計算出人臉辨識的類神經網路資料庫,再來針 對所有的成員進行個別的表情辨識類神經網路以及全部成員表情辨識類神經網 路進行訓練,最後就可以得到所有類神經網路的資料庫,如圖 3-6 所示。
3.5. 結論與討論 結論與討論 結論與討論 結論與討論
本章討論有關人臉辨識與表情辨識的方法,在人臉特徵的選取方面,是以 AAM 人臉模型中的紋理模型,計算出輸入人臉所得到的紋理模型參數,將此做 為人臉的特徵值做為辨識,其優點是可以減低人臉特徵的資料量。
在辨識器的部分,這裡使用了倒傳遞類神經網路,在這個方法之中,使用到 了一個學習參數α,如果學習速率設定太小,則收斂過程會越緩慢,所需要達到
57
圖 3-6、人臉辨識與表情辨識的整體訓練流程
58
收斂的迭代次數會相對地提高;但如果學習速率太大,雖然可以加速搜尋效率,
但容易造成搜尋過程中,目標函數產生不穩定的震盪情形,故需要多次的嘗試,
才可找出適合此訓練資料的學習速率。
在表情辨識的方法中,我們藉由先進行人臉辨識,辨識出使用者的身分以後,
再針對他的個人表情資料庫作辨識,如此一來,就可以減少需多在不同人之間的 表情元素的差異所造成的辨識錯誤情形發生。
59
在資料庫方面,首先我們使用 AR face database[23] ,在這個測試裡,我們共 採用了 12 位不同的資料人員,每個人的影像中包括了 14 張影像,14 張影像中,
在資料庫方面,首先我們使用 AR face database[23] ,在這個測試裡,我們共 採用了 12 位不同的資料人員,每個人的影像中包括了 14 張影像,14 張影像中,