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

  有了haar特徵,有了提高性能的積分圖,是否是已經能夠很好的解決人臉檢測問題了?答案是:no. 由於,計算每個特徵值的時候速度都大幅提高了,可是,一個小小的24*24是人臉圖像根據不一樣的位置,html

以及不一樣的縮放,能夠產生超過160,000個特徵!這個數量太龐大了,因此確定要捨棄大量的特徵。那麼,如何保證使用少許的特徵,而又能獲得精確的結果呢?git

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

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

  什麼是adaboost呢?機器學習

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

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

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

係數,一樣也能提高分類效果。htm

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

地分類,那麼在構造下一個訓練集中,它被選中的機率就被下降;相反,若是某個樣本點沒有被準確地分類,那麼它的權重就獲得提升。經過這樣的方式,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 

相關文章
相關標籤/搜索