傳統辨識方法

Haar 級聯分類器

Haar 級聯分類器(Haar cascade classifier)是 Viola–Jones 偵測器發揚光大、並包裝成通用工具的那個可重用引擎(多數人最初是透過 OpenCV 的 cv2.CascadeClassifier 以及像 haarcascade_frontalface_default.xml 這類檔案認識它)。其想法是把偵測組織成像機場安檢漏斗:先做便宜的檢查,只對存活下來的少數候選做昂貴的檢查。每個視窗依序通過一連串階段;前面的階段粗略但極快,會丟掉明顯的非物件,後面較昂貴的階段則仔細檢視剩下、看來有希望的視窗。

每個階段都是用 Haar 類特徵透過提升法(boosting)建成的小型強分類器——這些矩形亮度對比可藉積分影像以常數時間計算。訓練時,每個階段都被刻意設成寬鬆的門檻:它必須保留幾乎所有真陽性(極高的偵測率,例如 99.5%),代價是只拒絕一部分負例(例如 50%)。一個視窗唯有通過所有階段才會被判定為偵測。把各階段的比率相乘就能解釋這個魔法:十個各為 99.5% 真陽性的階段仍保留約 95% 的物件(0.995 的十次方),而十個各拒絕 50% 的階段會把假陽性率壓低約 2 的負十次方,約千分之一。由於前面的階段只用幾次運算就拒絕大多數視窗,即使整個級聯很強大,平均每個視窗的成本仍極小。

實務上你會為單一物件類別訓練(或下載)一個級聯——正面人臉、眼睛、車牌、全身人形——然後把它滑過影像金字塔。在運算資源稀少(微控制器、嵌入式視覺)且預訓練模型已夠用的場合,級聯仍受重視。它的限制與 Viola–Jones 相同:對姿態與光照敏感、在雜亂紋理上容易誤判,且需要仔細調整 scaleFactor 與 minNeighbors。在困難的真實野外條件下要追求準確度,學習式卷積偵測器明顯勝過 Haar 級聯,但「先便宜後昂貴的級聯」原則仍存活在許多現代系統之中。

常見混淆:級聯不會給每個視窗一個機率,只給通過/不通過,以及存活下來的重疊視窗數(minNeighbors)。minNeighbors 調太低會讓影像充滿假陽性;調太高則會刪掉真正的偵測。這種旋鈕調校的脆弱性,正是該領域轉向端到端訓練偵測器的原因之一。

又稱
Haar cascadecascade of boosted classifiers