對於應用於機器人上的人臉與表情辨識系統,本論文提出了一個辨識系統的 架構如圖 1-8 所示,這個架構下大致分為三個部分,分別是人臉偵測、人臉的特 徵擷取以及人臉以及表情辨識部分;人臉偵測是為了要找出影像中人臉的位置,
而特徵擷取的部份是為了要找出可以做為人臉以及表情辨識的特徵,在人臉以及 表情辨識部分是為了要辨識出輸入的使用者以及其表情出來。
在人臉偵測部分,主要是使用 Viola [10]以及 Lienhart[13]的 Haar-like 人臉 偵測來整出可能的人臉位置,接著再加入幾項判斷條件將最接近人臉的影像篩選 出來。在人臉的特徵擷取部分,我們先正規化影像大小,並使用了主動外觀模型 (AAM)以及 Lucas-Kanade 演算法找出人臉部分並轉正,並取出人臉的紋理特徵。
我們將人臉的紋理特徵放入倒傳遞類神經網路(Back Propagation Neural Network, BPNN)進行辨識。在辨識的過程中,我們先進行人臉辨識,找出使用者的身分,
接著再針對我們辨識出來的成員進行個人化的表情辨識,以得到個人化的表情辨 識結果。
本論文一共分為五章,第一章先介紹本研究的動機、相關研究以及問題描述,
接著,在第二章會說明人臉的偵測以及特徵點的擷取,在第三章,我們會提出人 臉以及表情辨識的方法,第四章展示一些實驗的結果,最後在第五章是結論以及 未來展望。
9
圖 1-8、系統架構
10
第 第 第
第二 二 二 二章 章 章 章、 、 、 、人臉偵測與特徵點擷取方法 人臉偵測與特徵點擷取方法 人臉偵測與特徵點擷取方法 人臉偵測與特徵點擷取方法
在人臉與表情辨識系統中,我們首先需要知道人臉所在的位置以及擷取出做 為辨識用所需的人臉特徵。因此接下來將介紹如何由攝影機取得影像並進行人臉 偵測,取得正確的人臉位置;並接著使用主動外觀模型(Active Appearance Model) 及 Lucas-Kanade 演算法找出人臉的特徵部位並將人臉轉正,取得人臉的紋理特 徵值。
2.1. 人臉偵測演算法 人臉偵測演算法 人臉偵測演算法 人臉偵測演算法
在本系統中,我們先經由人臉偵測出人臉的位置,以利接下來進行的人臉特 徵擷取;在人臉偵測部分,我們希望能準確的找出人臉的位置,而直接使用膚色 偵測的方法來偵測人臉容易造成人臉區域偵測錯誤的情形發生,因此在這裡首先 先由攝影機(Webcam)取得 640*480 大小的影像,並在一開始採用 Viola [10]以及 Lienhart[13]的 Haar-like 人臉偵測來找出可能的人臉位置。
Haar-like 特徵的人臉偵測方法是不同形式的特徵如圖 2-1 所示,1.為邊緣特 徵的四種、2.為線特徵八種、3.為中心包圍特徵兩種,將白色部分的影像像素值 總和減去黑色部分的影像像素值總和來計算其特徵,利用改變矩形特徵的大小和 位置,即可在影像中取出大量的特徵。
在影像當中的感興趣區域(Region of interest, ROI)中,使用了 Cascade 方法來 對多個階層的分類器進行判斷,每一個感興趣區域在所有的階層都通過之後,就 被分被為正確的結果;反之,在任一階層中被拒絕了就被淘汰。而在每一階層當 中的分類器中,對基本的分類器採用了 Boosting 方法(AdaBoost),每個基本的分 類器是至少 2 元的決策樹分類器,他們的輸入即為所有前述的 Haar-like 特徵。
本論文使用了 OpenCV(Open Source Computer Vision)所提供之 Haar-like 物體偵 測方法來達成人臉偵測目的。
11
圖 2-1、Haar-like 矩形特徵
由於 Haar-like 人臉偵測可能找到一些較遠而造成影像畫質較低的人臉或是 非人臉的區域,因此在 Haar-like 人臉偵測找出的幾個可能的人臉區域中,我們 利用人臉影像區域大小以及人臉影像區域膚色密度的大小來決定出何者為真正 的人臉區域,找出最適合的人臉。
2.1.1. 人臉區域決定 人臉區域決定 人臉區域決定 人臉區域決定
由於 Haar-like 人臉偵測可能找到一些較遠而造成影像畫質較低的人臉或是 非人臉的部位,因此在這裡需要經由一些判斷來找出是人臉的區域;首先我們先 針對找出人臉影像的大小進行過濾,這裡根據偵側出人臉影像大小的畫質最低可 容忍範圍,在人距離攝影機兩公尺時,人臉影像大小大約是 50*50 個像素如圖 2-2。在此距離所得的人臉影像已經不夠清楚來進行人臉的辨識,因此我們就設 定偵側人臉大小最小的限制為 50*50 個 pixel,小於這個大小的人臉影像就過濾 掉。
過濾太小的人臉影像之後,我們對於人臉影像中的膚色進行偵測,由於 RGB 色彩模型在光源變化時會有非常大的改變,因此將 R、G 轉換到 Normalized color coordinates [14] 可減少 R、G 對於光源變化的靈敏度,R、G 轉換的公式如 (2-1)(2-2):
12
(a) (b)
圖 2-2、人臉偵測在兩公尺時的結果,(a)框出人臉部分,(b)取出的人臉
R/R G B (2-1)
" G/R G B (2-2) 其中 R、G、B 為原始 RGB 人臉影像中的紅、綠、藍影像畫素,而 r 與 g 為正規 化以後的紅、綠部分,由正規化以後的人臉膚色範圍於 r、g 的座標表示,可以 找出人體膚色的分布範圍公式,其中 g 的上限 gup為[15]:
"#$ %1.376 1.0743 0.1452 (2-3) g 的下限 gdown為[15]:
"./01 %0.776 0.5601 0.1766 (2-4) 其中白色的色彩也會包含於其中(r=0.33, g=0.33),因此我們必須將白色的部分過 濾出來,白色的表示為:
W3 % 0.33 " % 0.33 (2-5) 因此,我們可以計算出膚色的範圍為:
45, " 61, " 7 "#$ 95: " ; "./01 95: 3 ; 0
0, <=>?@A? B (2-6) 其中 Skin(r,g) = 1 為膚色,Skin(r,g) = 0 非膚色。
找到膚色範圍後,我們計算出整張人臉影像的膚色範圍大小,並將膚色範圍 大小除以人臉影像大小即可得出膚色密度(2-7),利用每個人臉影像的膚色密度的
13
不同,我們就可以將膚色密度最大的區域定義為最後找到的人臉影像,整體流程 如圖 2-3 所示。
C?5A=
DEF1 ∑ HEF13,I0F.JK·KMFIKJ
(2-7)
其中 Densityskin為人臉影像的膚色密度,∑ 45, "為人臉影像膚色範圍大小,
width 和 height 分別為人臉影像的寬和長。
2.1.2. 人臉偵測成果 人臉偵測成果 人臉偵測成果 人臉偵測成果
在這個人臉偵測方法中可以偵測到最近的人臉距離為 20 公分圖 2-4(a),最 遠可以達到 2 公尺圖 2-4(c),圖 2-5 顯示出人臉偵測系統的詳細的過程,在這個 方法中,所找出的人臉為影像當中的一個人臉。
圖 2-3、人臉偵測整體流程
(a)20 公分 (b)1 公尺 (c)2 公尺
圖 2-4、人臉偵測的範圍
14
圖 2-5、人臉偵測詳細流程範例
15