人臉檢測----Adaboost學習方法


  有了haar特征,有了提升性能的積分圖,是不是已經可以很好的解決人臉檢測問題了?答案是:no. 因為,計算每一個特征值的時候速度都大幅提升了,但是,一個小小的24*24是人臉圖像根據不同的位置,

以及不同的縮放,可以產生超過160,000個特征!這個數量太龐大了,所以肯定要舍棄大量的特征。那么,如何保證使用少量的特征,而又能得到精確的結果呢?

  大神永遠有解決方法,viola等人使用adaboost來進行分類。聲明一下,adaboost並不是viola等人提出的,而是Freund和Schapire提出。但是viola的偉大正是因為他將這個模型首次用到了人臉識別中,這使得

人臉識別在嵌入式系統應用成為一個可能的事情。

  什么是adaboost呢?

  AdaBoost,是英文"Adaptive Boosting"(自適應增強)的縮寫,是一種機器學習方法,由Yoav Freund和Robert Schapire提出。[1]AdaBoost方法的自適應在於:前一個分類器分錯的樣本會被用來訓練下一個分類器。

AdaBoost方法對於噪聲數據和異常數據很敏感。但在一些問題中,AdaBoost方法相對於大多數其它學習算法而言,不會很容易出現過擬合現象。AdaBoost方法中使用的分類器可能很弱(比如出現很大錯誤率),但只

要它的分類效果比隨機好一點(比如兩類問題分類錯誤率略小於0.5),就能夠改善最終得到的模型。而錯誤率高於隨機分類器的弱分類器也是有用的,因為在最終得到的多個分類器的線性組合中,可以給它們賦予負

系數,同樣也能提升分類效果。

  AdaBoost方法是一種迭代算法,在每一輪中加入一個新的弱分類器,直到達到某個預定的足夠小的錯誤率。每一個訓練樣本都被賦予一個權重,表明它被某個分類器選入訓練集的概率。如果某個樣本點已經被准確

地分類,那么在構造下一個訓練集中,它被選中的概率就被降低;相反,如果某個樣本點沒有被准確地分類,那么它的權重就得到提高。通過這樣的方式,AdaBoost方法能“聚焦於”那些較難分(更富信息)的樣本上。

在具體實現上,最初令每個樣本的權重都相等,對於第k次迭代操作,我們就根據這些權重來選取樣本點,進而訓練分類器Ck。然后就根據這個分類器,來提高被它分錯的的樣本的權重,並降低被正確分類的樣本權重。

然后,權重更新過的樣本集被用於訓練下一個分類器Ck[2]。整個訓練過程如此迭代地進行下去。

  人臉檢測使用adaboost的流程是什么呢?

  首先是要把級聯的概念搞清楚。所有偉大的東西,其思想都是很簡單的。

        級聯結構:

  將多個強分類器連接在一起進行操作。每一個強分類器都由若干個弱分類器加權組成。例如,一個級聯用的強分類器包含20個左右的弱分類器,然后在將10個強分類器級聯起來,就構成了一個級聯強分類器,

這個級聯強分類器中總共包括200個(20*10)分類器。因為每一個強分類器對負樣本的判別准確度非常高,所以一旦發現檢測到的目標位負樣本,就不在繼續調用下面的強分類器,減少了很多的檢測時間。因為一幅

圖像中待檢測的區域很多都是負樣本,這樣由級聯分類器在分類器的初期就拋棄了很多負樣本的復雜檢測,所以級聯分類器的速度是非常快的;只有正樣本才會送到下一個強分類器進行再次檢驗,這樣就保證了最后

輸出的正樣本的偽正(false positive)的可能性非常低。

  最優弱分類器:

尋找合適的閾值,使該分類器對所有樣本的判斷誤差最小。對於每個特征f,計算所有訓練樣本的特征值並排序:

遍歷排序后的特征值,對於序列中的每個元素,計算以下值:

 

     1.全部人臉樣本的權重和t1

 

     2.全部非人臉樣本的權重和t0

 

     3.在此元素之前的人臉樣本的權重和s1

 

     4.在此元素之前的非人臉樣本的權重和s0

 

     5.此元素的分類誤差:r=min{[s1+(t0-s0)],[s0+(t1-s1)]}

 找出r值最小的元素作為最優閾值,最優分類器就產生了。

  強分類器:

For T輪迭代:

 

     1.重新統一權重

 

     2.訓練出本輪的最優弱分類器(詳見上一P)

 

     3.根據本輪迭代中的分類結果重新分配樣本權重(增加錯誤分配樣本的權重)

     這樣,T輪之后將產生T個最優弱分類器

組合T個最優弱分類器得到強分類器:

  相當於讓所有弱分類器投票,再對投票結果按照弱分類器的錯誤率加權求和,將投票加權求和的結果與平均投票結果比較得出最終的結果。

 

  級聯分類器的訓練過程:

 

 參考文檔:

1 https://wizardforcel.gitbooks.io/dm-algo-top10/content/adaboost.html 

2 https://zh.wikipedia.org/wiki/AdaBoost  

3 https://blog.csdn.net/cyh_24/article/details/39755661 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM