【论文笔记】One Millisecond Face Alignment with an Ensemble of Regression Trees

来源:互联网 发布:包头广电网络活动 编辑:程序博客网 时间:2024/06/01 10:11

参考文献:

Kazemi V, Sullivan J. One millisecond face alignment with an ensemble of regression trees[C]//Computer Vision and Pattern Recognition (CVPR), 2014 IEEE Conference on. IEEE, 2014: 1867-1874

简介

CVPR 2014的一篇关于人脸关键点检测的论文,基于Ensemble of Regression Tress算法(以下简称 ERT),速度极快(单人人脸关键点检测耗时约为1ms),效果也不错。同时又能处理训练集中部分关键点标定缺失的情况。

dlib 库中(http://dlib.net/),有这个算法的完整实现,包括训练和测试部分。

有paper,有code,对我们这些搞算法的底层人员,真是再happy不过了。

算法介绍

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稍好一些,缺点就是模型稍大了些(基于随机树的算法似乎都是这样)。

后续还要进一步研究算法和论文。

3 0