文、意如
Haar 特徵分類器(Haar Cascade Classifier)
是 OpenCV 中一種經典且有效的物件偵測方法。
在電腦視覺的世界中,「物件偵測(Object Detection)」是非常重要的核心技術之一。
無論是臉部辨識、貓、狗、交通號誌辨識,還是自動對焦系統,都需要能快速、準確地在圖片中找出特定目標。
在深度學習尚未普及的年代,Haar 特徵分類器(Haar Cascade Classifier) 是最常被使用的物件偵測工具之一,至今仍被廣泛使用於即時應用中,因為它速度快、效能穩定、部署簡單。
Haar 是什麼?
基於影像亮度變化的簡單特徵(稱為 Haar-like 特徵)。
這些特徵藉由「黑白區域的對比」來辨識物體,例如:
- 眼睛相對於臉部會比較暗
- 鼻子附近是明亮的區域
- 嘴巴下方通常比臉頰深色
Haar 特徵是一種對「區域亮度差」進行計算的方式,用來找出圖像中可能的目標(如車牌)位置。
✔ 特徵原理:
白區總亮度 − 黑區總亮度
結果代表明暗對比強度 → 可用來判斷是否可能是目標特徵(例如:字的線條、車牌邊緣)
類型 | 說明 | 運用情境 |
---|---|---|
邊緣型 | 左右或上下黑白相間 | 車牌邊框、字輪廓 |
線條型 | 明暗交錯的線條(例如黑白黑) | 車牌內部文字 |
方塊型 | 四格分區(上下左右亮暗對比) | 橫條式車牌、格子形文字 |
邊緣特徵

線條特徵

中心特徵

對角線特徵

為什麼用Haar特徵?
計算快速(搭配積分圖加速特徵總和運算)
適合低運算資源的即時辨識(如監視系統、嵌入式裝置)
它是怎麼運作的?
掃描整張圖片:
使用「滑動視窗」技術,從左上角一路滑動掃描整張圖片的每個區域。
提取 Haar 特徵:
每個滑動區域會提取多種 Haar 特徵,
分析亮/暗區域的差異。
判斷是否為目標:
利用一個訓練好的「分類器」來判斷這個區域是否包含目標(例如臉)。
多層級級聯(Cascade):
如果前幾層分類器說「像臉」,才會交給下一層繼續判斷,這樣可以大幅減少處理時間。
例如:判斷是否為車牌:使用訓練好的分類器,判斷這個區域是否可能是車牌。
分類器如何訓練?
訓練目標是找出哪些 Haar 特徵可以有效分辨「有車牌」與「沒車牌」的區域。
提供數千張正樣本(含車牌)與負樣本(背景或無車牌影像)
Adaboost 演算法會:
計算每個特徵在所有樣本上的效果
選出表現最好的特徵組合成分類器
每個特徵都有對應的權重與判斷門檻
特徵 + 判斷門檻 → 投票組合形成分類器


什麼是 Cascade 結構:
一個完整的 Haar 分類器,實際上由「很多層」小分類器組成,稱為 Cascade(層級式分類)。
每層:判斷是否值得繼續檢查
不像的直接剔除、像的才進入下一層
這種結構可以讓系統只花時間在「有可能成功的區域」上。
每一層會快速過濾掉不可能的區域,只有通過的區域才會進入下一層。這樣可以更快更準確地找到車牌。
我們要做什麼?
- 準備 正樣本(含有目標物的圖片)
- 準備 負樣本(背景圖片,不含目標)
- 使用 OpenCV 工具 進行訓練
- 測試我們自己訓練的分類器效果!
Haar 特徵分類器是一種結合簡單數學與有效機制的影像辨識方法。
它透過數百到數千個「亮暗對比特徵」來學習目標的外觀,並透過 cascade 結構提升運算效率,
廣泛應用於臉部、車牌、物件等偵測任務中。
Yiru@Studio - 關於我 - 意如