object detection--decision forests(DF)--VJ

VJ


VJ算法是object detection中提出較早的方法了,將它歸類於DF (decision forests 決策森林)方法的範疇。

References中的[1],提出了 VJ 算法來進行人臉識別:

 

採用的特徵、分類器、算法的結構

1) 採用的特徵爲rectangle features,種類有3種: two-rectangle feature、three-rectangle feature、four-rectangle feature

論文原圖如下:



這三種特徵都有一橫一豎兩種情況,且由於矩形的高寬可變,所以事實上,一張圖裏邊的特徵數量是非常多的。這幾種特徵怎麼計算在圖示裏都有說明。

 

2) 分類器

  原始版本的Adaboost是用來把弱分類器激發成強分類器來提升算法性能的。通過對Adaboost算法的改變,新算法可以從圖像的大量特徵中選取一個小集合的特徵,並訓練對應的分類器。

 

3) 算法的結構

  算法的結構是由一個個由變種的Adaboost算法訓練出來的分類器級聯得到的。輸入一個子圖,如果它在途中的一個分類器的識別中判斷爲負,那麼它就被認定不含目標(這裏是人臉),不再接受後續的分類。像下面這樣:



“瀑布結構”中的每一個階段就是一個分類器。構造過程: 通過Adaboost訓練,得到一個naive的分類器。然後,使用validation set 通過最小化 false negatives 來調整這個分類器的閥值。(降低分類器閥值的同時會提升成功檢測的概率,但同時也會提升 false positive 的概率) 。循環往復,就得到了結構中的每一個分類器。

  另外,在分類器的級聯結構中,越靠前的分類器使用的特徵越簡單。算法利用前面較簡單的分類器來篩選掉絕大多數不可能包含目標的子圖,從而提高檢測的速度。越往後的分類器由於需要負責更精細的甄別任務,使用的特徵會更復雜,當然消耗的計算時間也會更多。另外,由於這個瀑布結構分類器羣的篩選能力較強,在訓練的過程中,越往後面的分類器能用於學習的數據越少,檢測結果爲“false positive”的概率也更高。

 

例:文章裏級聯結構的第一個分類器使用了兩種特徵。這兩種特徵的是由Adaboost算法的執行過程中選取的,意義也比較直觀,詳情請看下面的圖示。




把每個分類器當成一個節點,這個級聯結構相當於把n個節點用n-1條邊連起來,就像退化的樹,所以也說這種分類器的級聯結構是決策樹的弱化 (degenerate decision tree),將此方法歸入decision forests的陣營中。

  最後,由於訓練的樣本和實際測試的數據都是原始圖片上的子圖,不免會出現一些干擾。比如,針對同一個目標出現在多張子圖的情況,論文中採取了計算覆蓋的方法減小誤差。

  樸素的VJ算法只需要輸入灰度圖,就能進行快速的計算。論文實驗表明,使用一些額外的信息能提升算法的性能,但是數據顯示非常有限。在object detection的發展過程中,它是很早的一種算法,在難度比較大的現代數據庫比如 INRIA、Caltech中的表現基本就是墊底的。不過由於這種算法的結構相對簡單,直接,還是有學習的意義的。不得不提的是,算法用到了機器學習裏面的Adaboost方法。所以,我現在正在學習Adaboost算法,爭取把這個算法全部弄懂。

 

References:

 

[1] A decision-theoretic generalization of on-line learning and an application to boosting. In Computational Learning Theory 1995

[2] Rapid Object Detection using a Boosted Cascade of Simple Features. Paul Viola, Michael Jones. In CVPR 2001


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