探討
由 2001 年發表的論文 ”Rapid Object Detection using a Boosted Cascade of Simple Features” “Robust Real-Time Face Detection”提出的目標檢測方法
- 運作流程
Adaboost
判斷人臉和非人臉的強分類器(透過大量的 帶臉、不帶臉 的圖片訓練而來)
從弱學習(較粗糙的分類器)反覆學習,得到弱分類器(本身不能對圖像進行分類),再將弱分類器組組合成一個強分類器(來進行判別)
- 論文中使用 adaboost 後的效益:
只需要 200 個特徵就能達到 95% 精確,而最終特徵是 6000 個,從 16萬個縮減到 6000 個特徵已有很大的進步。
更詳細請參考:
Cascade 級聯|CascadeClassifier 級聯分類器
將特徵分組並分階段,只要沒有通過此階段就直接捨去,省下要跑完全部特徵的時間。
📌就像弱化的決策樹(因為一般決策樹兩個分支會再有新的兩個分支,但這邊只有一個)
- 論文為例:
將 6000 個特徵分為 38 個篩選階段,從第一階從少量特徵開始判斷(Ex:前五階特徵數1, 10, 20, 25, 50),一旦判斷不是人臉就直接捨棄不會進到下一階段,來節省資源以及時間,平均只需從 6000 多個特徵中的 10 個來評估是否為臉部區域。
Haar 特徵
透過(子窗口)矩形不斷的滑動整張(窗口)圖片(類似卷積概念),每滑動一個位置就計算該區域特徵。
分為三種特徵:
1. 邊緣特徵 edge features
2. 線性特徵 line features
3. 中心環繞特徵和對角線性特徵 four-rectangles features
優點:
1. 容易訓練
2. 佔用資源少缺點:
1. 沒有其他基於深度學習的模型來的強大
如何提取特徵?
將矩陣放置圖片上透過矩形中的白色像素和減去黑色像素和=特徵值
矩形為了把人臉特徵量化,以區分人臉和非人臉。以論文中的圖片為例:
1. 圖 2 從矩陣中提取出眼睛
2. 圖 3 從矩陣中提取出鼻樑
積分圖(IntegralImage)
快速計算矩形區域和的方法(為了解決矩形每滑動一次就產生一個特徵這個超大的計算量)
優點:
積分圖像優先被算出來後,可以在常量時間內計算圖像中任意大小矩形區域的像素和。“常量時間”:一種時間複雜度,表示某種算法求解過程中的時間是在固定範圍內,而不會因輸入的數據大小而改變。
更詳細可以參考: