CVPR論文《Face Alignment at 3000 FPS 》閱讀筆記
《Face Alignment at 3000 FPS》 又是msra孫劍組一篇cvpr大作,之前實現了他之前的一篇《Face Alignment by Explicit Shape Regression 》(ESR), 當時速度應該是50fps左右,新演算法已經到了3000fps。前一篇的思路是雙層隨機蕨做回歸器 + shape indexed feature(計算複雜度相當低)。這一次用的思路是先學習每個landmark做feature mapping,然後再學習一個全局回歸。
訓練流程
特徵提取
- shape-indexed feature
這是在12年那篇提出的特徵提取方式,使用的是像素對之間的差值來計算特徵,這種提取方式計算複雜度非常低,也助理整個演算法的提速。
整體流程是:
1. 為了保證特徵在臉部尺度變化和旋轉情況下的穩定性,首先要計算一個從當前形狀到平均形狀的的變換矩陣;
2. 對轉換後的圖像的每個像素,都使用離其最近的一個landmark來作為這個像素的index; 3. 隨機的在這些像素中選取P個,可以生成P2 個像素對; 4. 每個像素對之間intensity的差值即可以作為特徵值。其中的精華是第二步,給每個像素使用離他最近的landmark來打index,這樣index相同的像素其實是擁有相似的語法意義的,如都是眼角附近的像素, 如圖a。這種方式比起使用全局的坐標來打index,更加的魯棒。
在ESR中,其實只需要在P2 個特徵中選取F個(很多特徵是不獨立的,幾近重複的),於是使用了correlation-based的方法來選取合適的特徵。首先使用回歸目標投影到一個隨機的方向上產生一個scalar,然後選擇F個和這個scalar相關度最大的Feature。
在3000fps中,為了加速,每個隨機森林的學習目標是某一個landmark,所以只會在當前的landmark附近隨機選取一對像素來作為shape-index feature,整個特徵空間就會小很多。
- pixel difference feature
即將兩個像素點的值相減得到一個差值
隨機森林 Φt 訓練
訓練的目標函數如下
這裡使用的是隨機森林來對每個landmark進行特徵映射。建立隨機森林的一個關鍵點就是選擇split node的規則。
首先確定一個landmark,對此landmark來構建隨機森林。首先在此landmark附近的一個區域隨機的選取500對pixel difference feature,並且選取其中能讓方差降低程度最大的作為split threshold。 訓練後,每個葉子節點上存儲了落在此節點上所有樣本的2-d平均偏移量。在測試階段,一個樣本在某個隨機森林上的數據就是起所有葉子節點上輸出的值,即
全局線性回歸器Wt訓練
回歸目標如下:
測試流程
歡迎關注微信公眾號極市平台(微信id:extrememart)獲取更多計算機視覺行業內的資訊及信息。
PS.目前極市擁有上千名視覺演算法開發者,分別來自騰訊,華為,百度,網易,聯想,努比亞等名企,以及北大,清華,北航,中科院,交大等名校,更邀請了李開復老師入駐微信群,歡迎從業者加入極市專業CV開發者微信群(分享乾貨資訊,行業內人交流),請填寫極市演算法開發者調研問卷申請入群~
推薦閱讀:
※簡單自編碼器實現zero-shot learning (CVPR 2017)--論文筆記
※線上分享預告|邊佳旺 穩定的圖像特徵匹配以及快速的GMS方案(CVPR2017論文)
※首發——Large Margin Object Tracking with Circulant Feature Maps
※從CVPR2017 看多樣目標檢測
※Action Reconition CVPR 2017