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


基於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、調整權重

 

四、級聯成強分類器

  

五、檢測

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

  


免責聲明!

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



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