關於人臉檢測中的Haar特徵提取

影響AdaBoost人臉檢測訓練算法速度很重要的兩方面是特徵選取和特徵計算。選取的特徵爲矩特徵爲Haar特徵,計算的方法爲積分圖。
(1)Haar特徵:
    Haar特徵分爲三類:邊緣特徵、線性特徵、中心特徵和對角線特徵,組合成特徵模板。特徵模板內有白色和黑色兩種矩形,並定義該模板的特徵值爲白色矩形像素和減去黑色矩形像素和。在確定了特徵形式後 Harr- like特徵的數量就取決於訓練樣本圖像矩陣的大小,特徵模板在子窗口內任意放置,一種形態稱爲一種特徵,找出所有子窗口的特徵是進行弱分類訓練的基礎。
(2)積分圖:
    積分圖(Integral Image)主要的思想是將圖像從起點開始到各個點所形成的矩形區域像素之和作爲一個數組的元素保存在內存中,當要計算某個區域的像素和時可以直接索引數組的元素,不用重新計算這個區域的像素和,從而加快了計算。“積分圖"能夠在多種尺度下,使用相同的時間來計算不同的特徵,因此大大提高了檢測速度。

 

    目標檢測方法最初由Paul Viola [Viola01]提出,並由Rainer Lienhart [Lienhart02]對這一方法進行了改善. 首先,利用樣本(大約幾百幅樣本圖片)的 harr 特徵進行分類器訓練,得到一個級聯的boosted分類器。訓練樣本分爲正例樣本和反例樣本,其中正例樣本是指待檢目標樣本(例如人臉或汽車等),反例樣本指其它任意圖片,所有的樣本圖片都被歸一化爲同樣的尺寸大小(例如,20x20)。

分類器訓練完以後,就可以應用於輸入圖像中的感興趣區域(與訓練樣本相同的尺寸)的檢測。檢測到目標區域(汽車或人臉)分類器輸出爲1,否則輸出爲0。爲了檢測整副圖像,可以在圖像中移動搜索窗口,檢測每一個位置來確定可能的目標。爲了搜索不同大小的目標物體,分類器被設計爲可以進行尺寸改變,這樣比改變待檢圖像的尺寸大小更爲有效。所以,爲了在圖像中檢測未知大小的目標物體,掃描程序通常需要用不同比例大小的搜索窗口對圖片進行幾次掃描。

    分類器中的“級聯”是指最終的分類器是由幾個簡單分類器級聯組成。在圖像檢測中,被檢窗口依次通過每一級分類器,這樣在前面幾層的檢測中大部分的候選區域就被排除了,全部通過每一級分類器檢測的區域即爲目標區域。目前支持這種分類器的boosting技術有四種: Discrete Adaboost, Real Adaboost, Gentle Adaboost and Logitboost。"boosted" 即指級聯分類器的每一層都可以從中選取一個boosting算法(權重投票),並利用基礎分類器的自我訓練得到。基礎分類器是至少有兩個葉結點的決策樹分類器。 Haar特徵是基礎分類器的輸入,主要描述如下。目前的算法主要利用下面的Harr特徵。

    每個特定分類器所使用的特徵用形狀、感興趣區域中的位置以及比例係數(這裏的比例係數跟檢測時候採用的比例係數是不一樣的,儘管最後會取兩個係數的乘積值)來定義。例如在第三行特徵(2c)的情況下,響應計算爲覆蓋全部特徵整個矩形框(包括兩個白色矩形框和一個黑色矩形框)象素的和減去黑色矩形框內象素和的三倍。每個矩形框內的象素和都可以通過積分圖象很快的計算出來。(察看下面和對cvIntegral的描述). 通過HaarFaceDetect 的演示版可以察看目標檢測的工作情況。


發佈了6 篇原創文章 · 獲贊 4 · 訪問量 12萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章