Haar+cascade AdaBoost分類器學習訓練總結

儘量用簡單的語言總結一下,利用haar特徵,結合級聯分類器進行XX檢測,這裏以XX代表人臉。

整體思路分爲5大步:

1、準備人臉、非人臉樣本集;

2、計算特徵值和積分圖;

3、挑選最優分類器;

4、利用AdaBoost把這些分類器訓練成一個強分類器;

5、級聯,也就是強分類器的強強聯手。

在開始前,一定要記住,以24*24窗口爲例,就有16萬+的特徵數量,所以首先要從中篩選有用的特徵(即最優弱分類器),然後利用AdaBoost將這些最優弱分類器訓練成一個強分類器,最後將強分類器進行級聯

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

1、準備人臉、非人臉樣本集

這一步沒什麼好說的,

2、計算特徵值和積分圖

Haar特徵,也就是那三種特徵,邊緣特徵、線性特徵、特徵方向特徵,

haar特徵及特徵值計算,推薦博文,點擊鏈接

積分圖計算也很簡單,一搜一大把,給個例子

如下圖


那麼如何利用積分圖進行計算呢?舉例如下圖


假設計算特徵 1 1 2 2,直接 sum(藍色區域) - sum(粉色區域) = (2+2) - (1+1) = 2

利用積分圖像計算 區域A = (9+2) - (3+6) =2,  區域B = (17+6) - (10+9) = 4,  區域B - 區域A = 4 - 2 = 2。

使用積分圖,可以對haar特徵值計算進行加速

3、挑選最優分類器

這一步是很多教程講解不清楚的地方。

之前一直以爲計算到haar特徵值後,然後直接用AdaBoost進行訓練強分類器,大錯特錯!

以24*24爲例,16萬+個特徵值,如果直接利AdaBoost訓練,那麼工作量是極其極其巨大的。

所以必須有個篩選的過程,篩選出T個優秀的特徵值(即最優弱分類器),然後把這個T個最優弱分類器傳給AdaBoost進行訓練。

如何挑選?

鏈接,只需瞭解 3.1即可

4、利用AdaBoost訓練一個強分類器

此時,我們手中有T個最優弱分類器(在第3步中得到),現在就要利用AdaBoost算法了

換句話說,a weighted combination of all these found weak classifiers to evalute and decide any given window has a face or not.


這裏有個非常好的講解,結合實例來說,更明朗

PPT中的Y值 是1 or -1,可以理解爲正樣本和負樣本,或者理解爲人臉和非人臉,

X爲haar特徵值,所以從這個角度來講,每個haar特徵值就是一個弱分類器

5、級聯,也就是強分類器的強強聯手

推薦這篇文章 的2.3節,雖然我也沒有看明白, 感覺就是決策樹的問題了。

就這麼多了,有問題一起探討。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章