Adaboost Haar分類器(二)

2021-06-16 20:13:24 字數 1875 閱讀 9816

對人臉檢測的研究最初可以追溯到 20 世紀 70 年代,早期的研究主要致力於模板匹配、子空間方法,變形模板匹配等。近期人臉檢測的研究主要集中在基於資料驅動的學習方法,如統計模型方法,神經網路學習方法,統計知識理論和支援向量機方法,基於馬爾可夫隨機域的方法,以及基於膚色的人臉檢測。目前在實際中應用的人臉檢測方法多為基於 adaboost 學習演算法的方法。單單有adaboost演算法還不能完**類檢測,還需要用到haar分類器。能把兩者結合到一起的就是viola 人臉檢測方法。

viola人臉檢測方法是一種基於積分圖、 級聯檢測器和adaboost 演算法的方法,方法框架可以分為以下三大部分:

第一部分,使用harr-like特徵表示人臉,使用「 積分圖」實現特徵數值的快速計算;

第二部分, 使用adaboost演算法挑選出一些最能代表人臉的矩形特徵( 弱分類器),按照加權投票的方式將弱分類器構造為乙個強分類器;

第三部分, 將訓練得到的若干強分類器串聯組成乙個級聯結構的層疊分類器,級聯結構能有效地提高分類器的檢測速度。

現在要解釋一下了,haar-like

特徵最早是由

papageorgiou

等應用於人臉表示,

viola

和jones

在此基礎上,使用

3種型別

4種形式的特徵。

haar特徵分為三類:邊緣特徵、線性特徵、中心特徵和對角線特徵,組合成特徵模板。特徵模板內有白色和黑色兩種矩形,並定義該模板的特徵值為白色矩形畫素和減去黑色矩形畫素和。

haar特徵值反映了影象的灰度變化情況。例如:臉部的一些特徵能由矩形特徵簡單的描述,如:眼睛要比臉頰顏色要深,鼻樑兩側比鼻樑顏色要深,嘴巴比周圍顏色要深等。但矩形特徵只對一些簡單的圖形結構,如邊緣、線段較敏感,所以只能描述特定走向(水平、垂直、對角)的結構。

對於圖中的

a, b和d

這類特徵,特徵數值計算公式為:

v=sum

白-sum

黑,而對於

c來說,計算公式如下:

v=sum

白-2*sum

黑;之所以將黑色區域畫素和乘以

2,是為了使兩種矩形區域中畫素數目一致。

矩形特徵可位於影象任意位置,大小也可以任意改變,所以矩形特徵值是矩形模版類別、矩形位置和矩形大小這三個因素的函式。故類別、大小和位置的變化,使得很小的檢測視窗含有非常多的矩形特徵,如:在

24*24

畫素大小的檢測視窗內矩形特徵數量可以達到

16萬個。這樣就有兩個問題需要解決了:(

1)如何快速計算那麼多的特徵?

---積分圖大顯神通;(

2)哪些矩形特徵才是對分類器分類最有效的?

這裡有答案。

人臉檢測的目的就是從中找出所有包含人臉的子視窗,將人臉的子視窗與非人臉的子視窗分開。

大致步驟如下:

(1)在乙個 20*20 的提取一些簡單的特徵(稱為harr特徵),如下圖所示。

它的計算方法就是將白色區域內的畫素和減去黑色區域,因此在人臉與非人臉的相同位置上,值的大小是不一樣的,這些特徵可以用來區分人臉和分人臉。

(2)目

前的方法是使用數千張切割好的人臉,和上萬張背景作為訓練樣本。訓練一般歸一化到 20*20 的大小。在這樣大小的中,可供使用的 haar 特徵數在 1 萬個左右,然後通過機器學習演算法 —adaboost 演算法挑選數千個有效的 haar 特徵來組**臉檢測器。

(3)學習演算法訓練出乙個人臉檢測器後,便可以在各個場合使用了。使用時,將影象按比例依次縮放,然後在縮放後的的 20*20 的子視窗依次判別是人臉還是非人臉。

人臉檢測的流程

人臉檢測在實際中主要用於人臉識別的預處理,即在影象中準確標定出人臉的位置和大小。

人臉檢測 Adaboost Haar目錄

haar特徵 人臉檢測 haar 計算haar特徵個數 一 人臉檢測 haar 利用積分影象法快速計算haar特徵 二 opencv adaboost haar 人臉檢測 opencv中的haar adaboost級聯分類器分解 一 haar特徵介紹 人臉檢測 opencv中的haar adaboo...

線性分類器分類準則

以下 屬於線性分類器最佳準則?機器學習 ml模型 易 a.感知準則函式 b.貝葉斯分類 c.支援向量機 d.fisher準則 正確答案 acd 線性分類器有三大類 感知器準則函式 svm fisher準則,而貝葉斯分類器不是線性分類器。感知準則函式 準則函式以使錯分類樣本到分介面距離之和最小為原則。...

線性分類器和非線性分類器

線性和非線性的區別 1.線性linear,指量與量之間按比例 成直線的關係,在數學上可以理解為一階導數為常數的函式 非線性non linear則指不按比例 不成直線的關係,一階導數不為常數。2.線性的可以認為是1次曲線,比如y ax b 即成一條直線 非線性的可以認為是2次以上的曲線,比如y ax ...