人臉識別中的harr特征提取(轉)
影響AdaBoost人臉檢測訓練算法速度很重要的兩方面是特征選取和特征計算。選取的特征為矩特征為Haar特征,計算的方法為積分圖。
(1)Haar特征:
Haar特征分為三類:邊緣特征、線性特征、中心特征和對角線特征,組合成特征模板。特征模板內有白色和黑色兩種矩形,並定義該模板的特征值為白色矩形像素和減去黑色矩形像素和。在確定了特征形式後 Harr- like特征的數量就取決於訓練樣本圖像矩陣的大小,特征模板在子窗口內任意放置,一種形態稱為一種特征,找出所有子窗口的特征是進行弱分類訓練的基礎。
(2)積分圖:
積分圖(Integral Image)主要的思想是將圖像從起點開始到各個點所形成的矩形區域像素之和作為一個數組的元素保存在內存中,當要計算某個區域的像素和時可以直接索引數組的元素,不用重新計算這個區域的像素和,從而加快了計算。“積分圖"能夠在多種尺度下,使用相同的時間來計算不同的特征,因此大大提高了檢測速度。
目標檢測方法最初由Paul Viola [Viola01]提出,並由Rainer Lienhart [Lienhart02]對這一方法進行了改善. 首先,利用樣本(大約幾百幅樣本圖片)的 harr 特征進行分類器訓練,得到一個級聯的boosted分類器。訓練樣本分為正例樣本和反例樣本,其中正例樣本是指待檢目標樣本(例如人臉或汽車等),反例樣本指其它任意圖片,所有的樣本圖片都被歸一化為同樣的尺寸大小(例如,20x20)。
分類器訓練完以後,就可以應用於輸入圖像中的感興趣區域(與訓練樣本相同的尺寸)的檢測。檢測到目標區域(汽車或人臉)分類器輸出為1,否則輸出為0。為了檢測整副圖像,可以在圖像中移動搜索窗口,檢測每一個位置來確定可能的目標。為了搜索不同大小的目標物體,分類器被設計為可以進行尺寸改變,這樣比改變待檢圖像的尺寸大小更為有效。所以,為了在圖像中檢測未知大小的目標物體,掃描程序通常需要用不同比例大小的搜索窗口對圖片進行幾次掃描。
分類器中的“級聯”是指最終的分類器是由幾個簡單分類器級聯組成。在圖像檢測中,被檢窗口依次通過每一級分類器,這樣在前面幾層的檢測中大部分的候選區域就被排除了,全部通過每一級分類器檢測的區域即為目標區域。目前支持這種分類器的boosting技術有四種: Discrete Adaboost, Real Adaboost, Gentle Adaboost and Logitboost。"boosted" 即指級聯分類器的每一層都可以從中選取一個boosting算法(權重投票),並利用基礎分類器的自我訓練得到。基礎分類器是至少有兩個葉結點的決策樹分類器。 Haar特征是基礎分類器的輸入,主要描述如下。目前的算法主要利用下面的Harr特征。
每個特定分類器所使用的特征用形狀、感興趣區域中的位置以及比例系數(這裏的比例系數跟檢測時候采用的比例系數是不一樣的,盡管最後會取兩個系數的乘積值)來定義。例如在第三行特征(2c)的情況下,響應計算為復蓋全部特征整個矩形框(包括兩個白色矩形框和一個黑色矩形框)象素的和減去黑色矩形框內象素和的三倍。每個矩形框內的象素和都可以通過積分圖象很快的計算出來。(察看下面和對cvIntegral的描述). 通過HaarFaceDetect 的演示版可以察看目標檢測的工作情況。
人臉識別中的harr特征提取(轉)