人臉關鍵點定位3000fps的LBF方法
整體來看,其實 ,ESR是基礎版本的形狀迴歸,ERT將回歸樹修改為GBDT,由原始的直接回歸形狀,改進為迴歸形狀殘差,而LBF,是加速特徵提取,由原來的畫素差分特徵池,改為隨機選擇點。
轉自:http://blog.csdn.net/qq_14845119/article/details/53575091
基於LBF方法的人臉對齊,出自Face Alignment at3000 FPS via Regressing Local Binary Features,由於該方法提取的是區域性二值特徵(LBF),所以特徵提取這個過程速度非常快,導致整個的演算法都速快相當快,論文作者的LBF fast達到了3000fps的速度,網上熱心網友分享的程式也達到了近300fps的速度,絕對是人臉對齊方面速度最快的一種演算法。因此,好多網友也將該方法稱為,3000fps。
該方法主要體現在2個方面,
(1)LBF特徵的提取
作者通過在特徵點附近隨機選擇點做殘差來學習LBF特徵,每一個特徵點都會學到由好多隨機樹組成的隨機森林,因此,一個特徵點就得用一個隨機森林生成的0,1特徵向量來表示,將所有的特徵點的隨機森林都連線到一起,生成一個全域性特徵,後續過程就可以使用該全域性特徵做全域性線性迴歸了。
(2)基於cascade的級聯的隨機森林做全域性線性迴歸
所謂的線性迴歸,其實就是一個不斷迭代的過程,對於每一個stage中,用上一個stage的狀態作為輸入來跟新,產生下一個stage的輸入,以此類推,直到達到最底層stage。
如上公式所示,I為輸入影象,St-1為第t-1stage的形狀,fait為t stage的特徵匹配函式,Wt為線性迴歸矩陣。
訓練過程,就是學習fait和wt的一個過程,測試過程就是用訓練好的fait和wt對提取的LBF特徵做迴歸的過程。
對於每個stage,越往下,所選擇的隨機點的範圍就越小,特徵點定位精度就越好。
本人下載的是c++版本的程式,最終的執行效果如下:
github上熱心網友的程式,