基於haar特徵的Adaboost人臉檢測技術

2021-06-18 05:29:40 字數 1819 閱讀 7427

基於haar特徵的adaboost人臉檢測技術

本文主要是對使用haar+adabbost進行人臉檢測的一些原理進行說明,主要是快找工作了,督促自己複習下~~

一、adaboost演算法原理

adaboost演算法是一種迭代的演算法,對於一組訓練集,通過改變其中每個樣本的分布概率,而得到不同的訓練集si,對於每乙個si進行訓練從而得到乙個弱分類器hi,再將這些若分類器根據不同的權值組合起來,就得到了強分類器。

第一次的時候,每個樣本都是均勻分布,通過訓練得到分類器h0,

在該訓練集中,分類正確的,就降低其分布概率;分類錯誤的,就提高其分布概率,這樣得到的新的訓練集s1就主要是針對不太好分類的樣本了。再使用s1進行訓練,得到分類器h1,依次迭代下去……,設迭代此外為t,則得到t個分類器。

對於每個分類器的權值,其分類準確性越高,權值越高。

二、haar特徵

2.1 特徵樣子

就是一些矩形特徵的模板,在viola&jones的**中,有下面這五種

在opencv中的方法中,有下面這14種,

2.2 特種的個數

對於乙個給定的24x24的視窗,根據不同的位置,以及不同的縮放,可以產生超過160,000個特徵。

2.3 特徵計算方法——積分圖

有點類似於動態規劃的思想,一次計算,多次使用

對應於兩矩形特徵2,矩陣a的值可以用i(5)+ii(1)-ii(4)-ii(2)表示,矩陣b的值用ii(6)+ii(2)-ii(3)-ii(5)表示

根據定義,haar特徵的值為白色矩形減去黑色矩形的值。

三、選取弱分類器

乙個弱分類器,實際上就是在這160,000+的特徵中選取乙個特徵,用這個特徵能夠區分出人臉or非人臉,且錯誤率最低。

現在有人臉樣本2000張,非人臉樣本4000張,這些樣本都經過了歸一化,大小都是24x24的影象。那麼,對於160,000+中的任一特徵fi,

我們計算該特徵在這2000人臉樣本、4000非人臉樣本上的值,這樣就得到6000個特徵值。將這些特徵值排序,然後選取乙個最佳的特徵值,在該特徵值下,對於特徵fi

來說,樣本的加權錯誤率最低。選擇160,000+個特徵中,錯誤率最低的特徵,用來判斷人臉,這就是乙個弱分類器,同時用此分類器對樣本進行分類,並更新樣本的權重。

具體過程如下:

1. 歸一化權重:  

2、對於每乙個特徵f,訓練乙個弱分類器h;計算所以特徵的加權錯誤率εf,

3、選取具有最小錯誤率εf

的弱分類器hi

4、調整權重

四、級聯成強分類器

五、檢測

檢測過程中,通過不斷的調整檢測視窗的位置、比例,來找到人臉。

計算Haar特徵個數

最早的haar特徵由papageorgiou c.等提出 a general framework for object detection 後來paul viola和michal jones提出利用積分影象法快速計算haar特徵的方法 rapid object detection using a b...

OpenCV 計算Haar特徵個數

最早的haar特徵由papageorgiou c.等提出 a general framework for object detection 後來paul viola和michal jones提出利用積分影象法快速計算haar特徵的方法 rapid object detection using a b...

Haar特徵提取演算法的實現

自己動手,豐衣食足 系列 haar特徵是一種很早就被提出的影象特徵提取演算法,後面還經過了幾次改進。haar特徵能夠很好地運用於人臉識別技術,當然很多目標檢測技術中對目標影象的特徵提取也可以使用haar特徵。當我們使用opencv自帶的cascade分類器時可以選擇haar特徵作為訓練樣本資料的特徵...