論文《Face Alignment at 3000 FPS via Regressing Local Binary Features》筆記

論文:Face Alignment at 3000 FPS via Regressing Local Binary Features.pdf

實現:https://github.com/luoyetx/face-alignment-at-3000fps

摘要&介紹:

論文有兩個新穎的點,一是採用局部二值特徵,二是用局部性規則指導學習這些特徵,最終的識別效果和實現速度俱佳。

論文首先誇讚了一番——形狀迴歸(shape regression ),該方法已經被業內廣泛認可,其高精度和強魯棒性主要得益於三點:1)區分能力強;2)形變可控;3)能帶得動大量數據訓練。

形狀迴歸方法遵循級連原則,假設其初始形狀爲S0,S通過在每一層預測一個增量∆S來不斷修正其自身, ∆St表示在t層獲得的增量,其公式的一般形式如下所示:

I表示輸入圖像,St-1 爲上一層的結果,Φt  是一個特徵映射函數,Wt是一個線性迴歸矩陣,採用的特徵爲shape-indexed。

 Φt最開始用的是一些諸如SIFT等的設計好的特徵,其取得了不錯的表現,人們認爲利用學習獲得的Φt能夠取得更佳的效果,然而並不是這樣,之所以沒有獲得增強的原因有兩點:一是選擇整張圖片訓練輸入數據會導致特徵羣過於龐大;二是過量的噪聲同樣帶來大量的噪聲,這會導致其過擬合,從而在測試集上準確率不高。

本篇論文的着手點就在 Φt上,針對上面提到的問題,作者提出了一種局部性原則,可以理解爲如下兩點:

1)對於確定某個關鍵點的最有用的信息往往集中於上一層預測的該關鍵點周圍。

2)其他關鍵點的位置信息和該關鍵點的局部信息足以用於預測該關鍵點位置。

基於這一原則,我們可以將特徵鎖定於局部然後聯合這些關鍵點確定最終形狀。

這樣,就可以將Φt分步到所有關鍵點上,對應每個關鍵點,都有一個φlt。通過這種做法,可以顯著降低噪聲,剔除非關鍵特徵,降低計算複雜度。

對於每一個φlt,利用迴歸樹誘導二值特徵,所有二值特徵來自於局部信息,當構建完所有φlt後組合爲Φt,學習Wt迴歸整體形狀。

 

訓練過程:

訓練分兩步,先訓練Φt,然後組織其結果用以訓練Wt,其過程如下圖所示。


1、訓練Φt

目標函數:


其中i表示所有訓練數據,l表示關鍵點,t表示訓練層樹,πl 表示提取 l 點。

公式的前半部分表示當前形狀與實際形狀的增量,後半部分表示當前形狀與預測形狀的增量。

引用自:http://blog.jobbole.com/85783/

 

Φ代表特徵提取函數,論文中稱Φ的輸出爲局部二值特徵(LBF),W爲線性迴歸參數矩陣,其實就是把提取出來的特徵映射到一個二維的偏移量上,是一個2*lenth(特徵空間維數)的變換矩陣。

首先講Φ是怎麼訓練的:Φ其實就是一個隨機森林。輸入像素差特徵(pixel-difference features),輸出一個offest。訓練的時候隨機給每個根節點像素差特徵中的一部分。非葉節點的分裂依據是從輸入的pixel-difference features中找出能夠做到最大的方差衰減的feature。在最後的葉子節點上寫上落在葉子節點上的樣本偏移量,這個偏移量在之前說到的fern裏有用,但是在這裏沒啥用,因爲作者最後不是用這個做迴歸的而是用LBF,詳細的得往下看。如果有多個樣本都落在這裏,則求平均。這樣訓練出來的東西就是下面這個公式所表達的東西:


但是我只想要其中的Φ,於是這裏給出了LBF(local binary feature)的定義,直接簡單粗暴地統計所有樹葉節點是否被該樣本落入,如果落入了就記爲1否則記爲0,然後把所有的01串連起來就是LBF了。還是看圖說話:


先看b,隨機森林的三棵樹,樣本經過三棵樹後分別落在了第1,2,3個葉子節點上,於是三棵樹的LBF就是1000,0100,0010.連接起來就是100001000010.然後看a,把27個特徵點的lbf都連接起來形成總的LBF就是Φ了。
接下來是訓練w:之前已經得到了wΦ(I,S)以及Φ(I,S),現在想求w,這還不容易嗎,直接算呀。不過作者又調皮了,他說他不想求w,而是想求一個總的大W=[w1,w2,w3,…,w27].怎麼求呢?得做二次迴歸。至於爲什麼要這麼做下面會介紹。目標函數:


後面加了個L2項,因爲W是炒雞sparse的,防止過擬合。做線性迴歸即可得到W。
現在解釋一下爲啥不直接用w1w2w3…而是要再回歸出來一個W:原因有兩個:
1. 再次迴歸W可以去除原先小wi葉子節點上的噪聲,因爲隨機森林裏的決策樹都是弱分類器嘛噪聲多多滴;
2.大W是全局迴歸(之前的一個一個小w也就是一個一個特徵點單獨的迴歸是local迴歸),全局迴歸可以有效地實施一個全局形狀約束以減少局部誤差以及模糊不清的局部表現。
這樣一來,測試的時候每輸入一張圖片I,先用隨機森林Φ求出它的LBF,然後在用W乘一下就得到了下一個stage的shape,然後迭代幾次就得到了最終的shape。所以效率十分的快。

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