第三章 人臉辨識系統
3.1 人臉位置偵測方法
以下是人臉偵測演算法的步驟,可參考圖 3.1 的流程圖,
步驟一 計算彩色生活照的膚色位置。
步驟二 決定多重尺寸視窗搜尋點,使用已知的平均人臉與偵測到的膚色區域做旋 積運算,取區域內的極大值當做人臉搜尋的中心點。
步驟三 找出可能的人臉尺寸,由搜尋尺寸長寬20×20,每次增加 1.2 倍,直到搜 尋視窗超過膚色區域為止。
步驟四 在判斷人臉與非人臉之前,必須先手動建立人臉與非人臉資料庫當做訓練 樣本,使用賈柏小波抽取特徵,再透過倒傳遞類神經網路來訓練已分類好的人臉跟非人 臉兩個類別,調整權重讓人臉的目標輸出值為 1,非人臉的目標輸出值為-1,當隱藏層 的所有權重值能夠讓均方誤差值小於10−4,即表示訓練結果趨於收斂。
步驟五 當一張擷取後的影像經過特徵抽取後,輸入到已訓練好的倒傳遞類神經網 路,若輸出值越接近目標值 1 表示人臉的可能性越高,反之,若輸出值越接近目標值-1 表示非人臉的可能性越高。
步驟六 最後人臉的位置可能有好幾個不同尺寸或好幾個不同位置交錯在一起,所 以必須做合併的動作。當小尺寸的位置屬於大尺寸的一小部份,取輸出值比較大的當做 人臉位置及對應的尺寸;若兩個相同座標有不同尺寸的人臉,代表人臉可能性越高,可 以取尺寸的平均值當做新的人臉尺寸;若相似大小的人臉尺寸交疊在一起,可以使用區
域比較法,剃除輸出值比較小的人臉位置,留下輸出值最大的人臉位置為最後人臉偵測 結果。
生活照片輸入
圖 3.1 人臉位置偵測流程圖。
人臉搜尋點(藍色顯示)
膚色位置(黑色顯示) 類神經網路的人臉偵測
人臉搜尋的範圍 人臉偵測後的位置
3.1.1 多重尺寸視窗搜尋
利用上述的膚色偵測方法,在這個膚色區域內粗略地標記出可能的人臉位置,使用 事先算好的平均人臉(圖 3.2)與膚色區域做旋積運算,取區域內的極大值當做人臉搜尋的 中心點。由搜尋視窗長寬 ,每次增加 1.2 倍,直到搜尋視窗超過膚色區域為止。
我們的目標就是把所有人臉全部找出來,盡量降低錯誤偵測。
20 20×
圖 3.2 平均人臉。
3.1.2 訓練類神經網路
訓練類神經網路的流程,首先輸入灰階的訓練影像樣本,經過直方圖等化來增加影 像特徵的明顯程度;然後與賈伯濾波器做旋積運算,產生一組特徵輸入向量;經過降維 後再送進類神經網路做訓練。
本論文使用的影像訓練樣本來自於卡內基美隆大學(Carnegie Mellon university)機器 人協會所建立的 PIE 資料庫[63],此資料庫共有 68 個人、41,368 張人臉照片,包括 13 種拍攝角度(人臉姿態)、43 種不同明亮度的拍攝條件,以及 4 種不同表情。本論文任意 選取 PIE 資料庫中的 600 張人臉,包括 15 個人、5 種不同姿態和 8 種照明環境;另外任 意選取 AR 資料庫[64]中的 200 張人臉,包括 20 個正面姿態以及 10 種照明環境;在網 際網路任意選取 200 張亞洲東方人臉;所以共有 1,000 張人臉,再加上 2,000 張非人臉 樣本,總共 3,000 張影像做訓練。非人臉樣本是在網際網路任意選取無人臉的彩色生活 照,包括衣服、風景照、建築物等等樣本,經本系統擷取後做類神經網路訓練的,不選 取人臉部份五官(耳、眉、眼、鼻、口)當做非人臉樣本。
每張影像都使用賈伯小波抽取特徵向量為2430×1,中間隱藏層為一層共 35 個維 度,輸出值為一個純量,若輸出值越接近目標值 1 表示人臉的可能性越高,反之,若輸
出值越接近目標值-1 表示非人臉的可能性越高。當隱藏層的所有權重值能夠讓均方誤差
值小於 ,即表示訓練結果趨於收斂。讓類神經網路學習得更正確的做法,就是準備
正確的訓練樣本、足夠多的樣本數量以及樣本間的差異性越大越好。
10−4