Adaboost CascadeClassifier | Haar Classifier | 筆記

d.l.spm
5 min readApr 9, 2020

--

  • Adaboost
  • Cascade 級聯|CascadeClassifier 級聯分類器
  • Haar 特徵
  • 積分圖(IntegralImage)

探討
由 2001 年發表的論文 ”Rapid Object Detection using a Boosted Cascade of Simple FeaturesRobust Real-Time Face Detection提出的目標檢測方法

  • 運作流程

Adaboost

判斷人臉和非人臉的強分類器(透過大量的 帶臉、不帶臉 的圖片訓練而來)

從弱學習(較粗糙的分類器)反覆學習,得到弱分類器(本身不能對圖像進行分類),再將弱分類器組組合成一個強分類器(來進行判別)

  • 論文中使用 adaboost 後的效益:
    只需要 200 個特徵就能達到 95% 精確,而最終特徵是 6000 個,從 16萬個縮減到 6000 個特徵已有很大的進步。
src:https://blog.csdn.net/u012535605/article/details/72876968

更詳細請參考:

Cascade 級聯|CascadeClassifier 級聯分類器

將特徵分組並分階段,只要沒有通過此階段就直接捨去,省下要跑完全部特徵的時間。
📌就像弱化的決策樹(因為一般決策樹兩個分支會再有新的兩個分支,但這邊只有一個)

src:https://blog.csdn.net/stdcoutzyx/article/details/34842233
  • 論文為例:
    將 6000 個特徵分為 38 個篩選階段,從第一階從少量特徵開始判斷(Ex:前五階特徵數1, 10, 20, 25, 50),一旦判斷不是人臉就直接捨棄不會進到下一階段,來節省資源以及時間,平均只需從 6000 多個特徵中的 10 個來評估是否為臉部區域。

Haar 特徵

透過(子窗口)矩形不斷的滑動整張(窗口)圖片(類似卷積概念),每滑動一個位置就計算該區域特徵。

分為三種特徵:
1. 邊緣特徵 edge features
2. 線性特徵 line features
3. 中心環繞特徵和對角線性特徵 four-rectangles features

優點:
1. 容易訓練
2. 佔用資源少

缺點:
1. 沒有其他基於深度學習的模型來的強大

早期由 Viola 提出的 Haar 特徵 | 後期由 Rainer 提出更多的 haar 特徵
src:https://www.cnblogs.com/henuliulei/p/10719208.html

如何提取特徵?

將矩陣放置圖片上透過矩形中的白色像素和減去黑色像素和=特徵值
矩形為了把人臉特徵量化,以區分人臉和非人臉。

以論文中的圖片為例:
1. 圖 2 從矩陣中提取出眼睛
2. 圖 3 從矩陣中提取出鼻樑

積分圖(IntegralImage)

快速計算矩形區域和的方法(為了解決矩形每滑動一次就產生一個特徵這個超大的計算量)

優點:
積分圖像優先被算出來後,可以在常量時間內計算圖像中任意大小矩形區域的像素和。

“常量時間”:一種時間複雜度,表示某種算法求解過程中的時間是在固定範圍內,而不會因輸入的數據大小而改變。

更詳細可以參考:

--

--

d.l.spm
d.l.spm

No responses yet