基於Ensemble of Regression Tress演算法的人臉關鍵點檢測

簡介

CVPR 2014的一篇關於人臉關鍵點檢測的論文,基於Ensemble of Regression Tress演算法(以下簡稱 ERT),速度極快(單人人臉關鍵點檢測耗時約為1ms),效果也不錯。同時又能處理訓練集中部分關鍵點標定缺失的情況。

dlib 庫中(dlib C++ Library),有這個演算法的完整實現,包括訓練和測試部分。

有paper,有code,你還想怎樣?

演算法介紹

LBF(Face Alignment at 3000 FPS via Regressing Local Binary Features)這篇論文也是基於Tree的人臉關鍵點檢測演算法。LBF是基於Tree的方法,學習每個關鍵點的局部二值特徵,然後將特徵組合起來,使用線性回歸檢測關鍵點。與 LBF 不同的是, ERT 是在學習 Tree的過程中,直接將 shape 的更新值 ΔS存入葉子結點 leaf node. 初始位置 S 在通過所有學習到的 Tree後,mean shape 加上所有經過的葉子結點的ΔS,即可得到最終的人臉關鍵點位置。總體流程如下圖所示:

用公式來表示:

S^t+1=S^t+rt(I,S^t)

其中 t 表示級聯序號,rt(?,?) 表示當前級的回歸器regressor。回歸器的輸入參數為圖像 I 和上一級回歸器更新後的 shape , 採用的特徵可以是灰度值或者其它。

為了訓練每一級的 rt, 文章採用了 gradient tree boosting演算法減小 initial shape 和 ground truth 的平方誤差總和。

每個回歸器由很多棵樹(tree)組成,每棵樹參數是根據 current shape 和 ground truth 的坐標差和隨機挑選的像素對訓練得到的。具體演算法可詳見論文。

總結

跑過dlib代碼後,使用默認參數,基本能夠重現論文結果。不像LBF演算法,無論怎麼調參也很難達到論文中的結果。

速度跟LBF是一個數量級,精度也與SDM稍好一些,缺點就是模型稍大了些(基於隨機樹的演算法似乎都是這樣)。

推薦閱讀:

迪拜機場搞了個虛擬水族館管隧道代替安檢門,能讓安檢就像旅遊?
基於回歸的統一關鍵點檢測模型
商湯科技拿下28億巨額融資:人臉識別與欺詐團伙,正展開一場攻防大戰
醫生都難以完成的遺傳病診斷,這個面部識別技術卻做到了
你以為的人臉識別,其實是萬物互聯

TAG:人脸识别 | 计算机视觉 | 深度学习DeepLearning |