深度學習筆記系列 臉部辨識基本理論(II)
延續上一篇,這篇的主要內容是在談Viola-Jones的訓練部分
以及教材中後面的Adaboost、Cascading。
- Training 訓練
(1) 在訓練的部分,我們首先會將圖片縮至 24x24 pixel
當訓練用圖過大時,要去對應Harr-like Feature的組合可能性就會太多(不同的長寬高等等),因此訓練時我們會將訓練圖片縮小;要偵測時會將特徵放大。
(2) 準備訓練用的圖片-標籤(Label)為「Face」的圖片:因為有時候電腦無法判斷什麼樣叫做「人臉的特徵」,因此我們需要提供大量符合規則的臉(24x24 pixel、角度正確、光線正常…等)給電腦去找到各個人臉中、共通的特徵。如大家都會有一個鼻子並且符合Harr-like Feature中的Edge Feature等。
有趣的是,在我們人類的認知中,左邊的眼睛會與右邊的眼睛對稱、並呈鏡面反射的型態(mirror),儘管這對我們人類來說再正常不過,但對於電腦來說、這是一個全新的概念。
(3) 準備訓練用的圖片-標籤(Label)為「Non-Face」的圖片:作為「Face」的相對面,在訓練時我們也必須告訴演算法何謂「Non-Face」的圖片,因此我們可以提供各種不含人臉的圖片給電腦,值得注意的是、我們所提供的非人臉圖片不必皆為24x24 pixel,可以透過後續將圖片切割(以固定24x24為區間去一塊塊切割圖片)來增加「Non-Face」圖片的數量(Data Agumentation)。
(4) 選擇特徵-透過標籤為「Face」與「Non-Face」的圖片:我們雖然在眾多Face的圖片找到了某些共同特徵,但由於相同的特徵在Non-Face中也出現了,因此這個特徵便會被捨棄。在找到特徵的同時,我們也會找到閥值Threshold。
閥值 Threshold:將影像轉為二值影像(黑白影像),用於找到影像中的目標。通常我們會將圖片先轉為灰階影像,轉為灰階影像後的圖片只有灰度值(在前一章中提到介於0~1的值),透過積分圖的計算去找到適合的閥值T。當灰度值小於T的時候,可以將其像素設置為0(黑色);當灰度值大於T的時候,可以將其像素設置為 255(白色)。