基於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 |