AdaBoost人臉檢測訓練演算法 (下)

2021-05-22 10:47:17 字數 2287 閱讀 6569

就像我一開始說的,比起

violajones

人臉檢測方法,

lienhart

的人臉檢測方法

只是在harr-like

特徵的選取、計算以及

adaboost

訓練

演算法上有區別。

一、harr-like

特徵的選取

lienhart

提出了一些新的旋轉

haar-like

特徵。

4個邊緣特徵、

8個線性特徵和

2個中心特徵。

而對角線特徵(對應圖中的

4)沒有用到,是因為對角線特徵和線性特徵裡的特徵相似。

在特徵值的計算過程中,黑色區域的權值為負值,白色區域的權值為正值。

二、特徵值的計算

對於豎直矩陣,我們定義

sat(x,y)

為點(x,y)

左上角區域的畫素和。

用公式可以表示為:

為了節約時間,減少重複計算,可按如下遞推公式計算:

而計算矩陣特徵的特徵值,是位於對角線矩形

sat(x,y)

之差。可參考下圖:

45°

旋角的矩形,我們定義

rsat(x,y)

為點(x,y)

左上角45°

區域和左下角

45°區域的畫素和。

用公式可以表示為:

為了節約時間,減少重複計算,可按如下遞推公式計算:

而計算矩陣特徵的特徵值,是位於十字行矩形

rsat(x,y)

之差。可參考下圖:

三、adaboost

的訓練演算法

lienhart

通過學習得到的系統能夠用於旋轉人臉的快速檢測,同時也能使平均的誤檢率降低

10%。

此外他還研究了一些其他的

boosting

演算法,如:離散的

adaboost

演算法(discrete adaboost)

,實值的

adaboost

演算法(real adaboost)

和平緩的

adaboost

演算法(gentle adaboost)。

通過比較得出基於平緩的

adaboost

演算法(gentle adaboost)

效果較好。

離散的adaboost

演算法和平緩的

adaboost

演算法如下(演算法圖若看不清,放大):

總的來說,基於

adaboost

演算法的系統在速度方面具有很大的優越性。它是在提出的一系列

haar-like

特徵的基礎上,通過

adaboost

演算法學習一些弱分類器,再組合成乙個強分器。

但一般乙個強分類器還不足以圓滿完成任務,還要級聯一系列這樣的強分類器,但是要進一步提高檢測精度,就需要級聯更多的強分類器,但是這樣又會降低檢測速度。

我們認為一方面可以採用更好的、計算卻更簡單的影象特徵表述方法;另一方面就是綜合

adaboost

和一些強分類器。 在

adaboost

學習的過程中,

可以提高正例學習的閾值,如可以將每級常採用的正檢率閾值(一般設為

98.5%

)適當增加,當然誤檢的非人臉會相應增加,這樣學習得到的一些弱分類器組合後形成的強分類器作為分級分類器的前面幾級,最後再用乙個強分類器進一步過濾。

由於在前幾級消除了大多數的非人臉,因此通過最後一級強分類器的視窗將大大減少。這樣可以獲得乙個既提高檢測速度又提高檢測精度的系統。

AdaBoost人臉檢測原理

對人臉檢測的研究最初可以追溯到 20 世紀 70年代,早期的研究主要致力於模板匹配 子空間方法,變形模板匹配等。近期人臉檢測的研究主要集中在基於資料驅動的學習方法,如統計模型方法,神經網路學習方法,統計知識理論和支援向量機方法,基於馬爾可夫隨機域的方法,以及基於膚色的人臉檢測。目前在實際中應用的人臉...

AdaBoost人臉檢測原理

對人臉檢測的研究最初可以追溯到 20 世紀 70 年代,早期的研究主要致力於模板匹配 子空間方法,變形模板匹配等。近期人臉檢測的研究主要集中在基於資料驅動的學習方法,如統計模型方法,神經網路學習 方法,統計知識理論和支援向量機方法,基於馬爾可夫隨機域的方法,以及基於膚色的人臉檢測。目前在實際中應用的...

AdaBoost人臉檢測原理

對 人臉 檢測的研究最初可以追溯到 20 世紀 70 年代,早期的研究主要致力於模板匹配 子空間方法,變形模板匹配等。近期人臉檢測的研究主要集中在基於資料 驅動的學習方法,如統計模型方法,神經網路學習方法,統計知識理論和支援向量機方法,基於馬爾可夫隨機域的方法,以及基於膚色的人臉檢測。目前在實際中 ...