Haar Feature-based Cascade Classifier是由Paul Viola提出,並且由Rainer Lienhar加強。

首先,一個分類器(Haar Feature-based Cascade Classifier)是由數百個相同物件的正樣本來做訓練(例如臉部或車),並且將它們縮小成特定大小,例如20x20。另外也訓練負樣本,負樣本則使用任意影像即可。

在分類器被訓練之後,它便可以被使用在和被訓練樣本相同大小的ROI上。當一個區域可能出現該物件時,分類器輸出1,否則輸出0。如果要搜尋整張圖裡面的所有物件,則要讓分類器以搜尋視窗(Search Window)搜尋整張圖。該分類器是經過特殊設計,因此他可以很容易的被縮放來尋找大小不一的目標物件,這比單純縮放目標影像有效的多。因此,欲尋找影像中未知大小的物件,則要以不同的大小去搜尋該影像多次。

該分類器之所以被稱為「階層式(Cascade)」,是因為該分類器包含了數個較為簡單的分類器,我們稱之為關卡。當候選物件通過層層關卡的過濾,我們便認定其為目標物件。而之所以被稱為「推進(Boosting)」,是因為每一個關卡中又使用了基於不同權重投票(Weighted voting)來設計的基本分類器(basic classifiers)

目前這些基本分類器,是具有至少兩個葉子(leaves)的決策樹(decision tree)。而Haar-like feature做為這些基本分類器的輸入值,而以OpenCV為例,其使用的Haar-like feature如下圖:

 

particular classifier使用的feature是用它的形狀(1a,2b等等)、在ROI內的位置,以及縮放大小指定。例如,在2c,其特徵的算法是將整個框選到的區域(黑色與白色包含的區域)的樣素值總和,減去黑色包含的區域像素值總和的三倍。以此做為積分圖。


arrow
arrow
    全站熱搜

    finalfrank 發表在 痞客邦 留言(3) 人氣()