您的位置:首页 > Web前端

[论文笔记] Face Alignment at 3000FPS via Regression Local Binary Features

2016-12-21 14:18 471 查看

Contents

Contents

名词解释

级联分类和级联回归
级联分类器

级联回归器
1 级联

2 回归

3000fps文章逻辑和使用级联回归器的来龙去脉
1 t训练

2 Wt训练

3 测试

4 3000fps和DLIB比较accuracy and efficient

参考文献

名词解释

Shape :关键点的集合,形状包含了关键点的位置信息

绝对shape:关键点相对于整张图像的位置 (0, width)

相对shape:关键点相对于人脸框的位置 (0, 1)

级联分类和级联回归

1. 级联分类器

选择特征对应的最优弱分类器,级联弱分类器为强分类器


fn=∑i=1nCi(x)(1)

其中,C代表一个弱分类器,x 代表是特征向量,f 代表得分。

每个弱分类器C根据自己的分类方法对x输出一个分类结果,比如是人脸或者不是人脸。f(n=1~N)都会对应一个阈值threshold,任意一个f小于对应的阈值时,样本会被拒绝。通常不是一张人脸的图片在经过前几个弱分类器的判断后就会被拒绝,根本不需要做后面的判断,速度很快。

2. 级联回归器

学习多个回归函数f1,f2,f3...fn来逼近目标函数F。Face alignment at 3000fps被看作是学习一个回归函数θ=F(I)

2.1 级联

input:图像

output:θ 为人脸形状(即关键点位置)

θ=F(I)=fn(fn−1(…f1(θ0,I),I),I)(2)

θi=fi(θi−1,I),i=1,2,…,n(3)

所谓级联,即当前函数fi的输入依赖于上一级函数fi−1的输出θi−1,而每个函数fi的学习目标都是逼近特征点的真实位置θ。

通常情况,fi不是直接的回归真实位置θ,而回归当前形状θi−1与真实位置θ之间的差值,即 回归这一阶段的偏移量:∆θi−1=θ-θi−1,然后shape加上这个偏移量,反复这个过程

2.2 回归

形状偏移量:

ΔSt=Wtϕt(I,St−1)(4)

目标函数:

minwt,Φtl∑i=1N||ΔS^ti−ΔSti||22(5)

线性回归目标函数:

minw,b∑i=1N(yi−wxi−b)2(6)

线性回归: f(xi)=wxi+b使得f(xi)≌yi(7)

3000fps:ΔSt使得ΔSt≌ΔS^ti(8)

所以回归包含的是:线性回归、回归树、随机森林、随机蕨回归器等一切可以回归的方法。


3000fps文章逻辑和使用级联回归器的来龙去脉

face alignment最近几年的思路是回归regression,即

((S0+ΔS1)+ΔS2)+...+ΔSt

ΔSt=Wtϕt(I,St−1)

其中ϕt为特征映射函数,提取特征;Wt为线性回归矩阵

之前的ϕt,提取的特征都是人工设计的,如SIFT特征

本篇文章的ϕt,提取的是基于回归树的局部特征,叫做LBF

优点:学习到的是task-specific feature

提出疑问:(1)practical issue (2)generalization issue

解决: “local”principle 即 (1)每个关键点一个ϕti; (2)各自ϕti独立回归,最后组合成为ϕt

过程:stage by stage

(1). 为一个关键点学习一个ϕti,利用ϕti得到LBF特征

(2). concatenate所有的ϕti,得到ϕt

(3). 通过全局线性回归学习得到Wt

3.1 ϕt训练

ϕt=[ϕt1,ϕt2,ϕt3...]

学习ϕt1,回归目标函数为ΔSt1即,对于真实值的形状增量

minwt,Φtl∑i=1N||ΔS^ti−ΔSti||22=minwt,Φtl∑i=1N||ΔS^ti−Wtiϕti(I,St−1)||22=minwt,Φtl∑i=1N||真实差距−预测的差距||22

即令差距最小时,求wt,Φtl

回归过程:

(1)输入:pdf 像素差特征

(2)回归树:训练回归函数即回归树,得到特征提取函数ϕt,提取LBF特征

(3)线性回归:回归得到全局的偏移量

(4)输出:回归得到这一阶段的偏移量, 上一阶段shape + 这一阶段偏移量 = 这一阶段shape,反复迭代。即 St−1+∆St=St,t=1,...,T 其中∆St=WtΦt(Ii,St−1i)

前面内容可知级联回归器可以使一个初始shap,通过级联回归函数无限的去逼近真实人脸关键点位置。由此得到目标函数,去学习每一个stage的wt,ϕt,得到每一个stage的回归函数。

其中∆St=Sgt−St 为第t个stage的形状残差增量;ϕt代表特征提取函数,提取LBF特征;Wt为线性回归参数矩阵,即2维×N张图的矩阵,每一列保存叶子节点相应的2D向量

[Δx1Δy1Δx2Δy2Δx3...Δy3...]

所以:ϕt表示往哪儿偏移,Wt表示偏移多少。

Wt里面放着所有形状偏移量,所以称之为形状索引。

第t stage,某一个关键点即某一个随机森林,由输入图片根据overlapping分配输入图片数量训练十棵决策树(同其他RF)。

每张图的关键点固定半径内,随机选择两像素差值共500,组成500×N张图的输入矩阵。

分裂原则:对任意输入像素差值,把输入样本分成两部分,对总的样本和左右两子叶的样本分别做方差,其中最大方差衰减的像素差值为分裂节点。即:

argmax(Var−Varleft−Varright)(9)

详细训练情况可以参照:http://blog.csdn.net/jcx1314/article/details/53781577

3.2 Wt训练

由回归得到ΔSt即相应的wtϕt,现在想求一个大Wt=[w1,w2…wn],此时要二次回归 !

目标函数:

minwt∑i=1N||ΔS^ti−WtΦt(Ii,St−1i)||22+λ||Wt||22(10)

L2项,最小化Wt,因为Wt超级稀疏,防止过拟合。

重新回归全局的Wt原因:

再次回归Wt可以去除原先小w叶子节点上的噪声,因为随机森林里的决策树都是弱分类器,噪声很多;

Wt为全局回归(之前的一个个小w也是一个个关键点单独的回归是local回归),全局回归可以有效的实施一个全局形状约束,减少局部误差和模糊不清的局部表现。

3.3 测试

每输入一张图片I,先用随机森林ϕt求出LBF,乘Wt,得到下一个stage的shape,迭代若干次得到最终的shape,效率惊人。

3.4 3000fps和DLIB比较accuracy and efficient

自己训练的68个点的face alignment at 3000fps的模型在打开OPENMP之后,在单纯的face alignment这一部分,速度比DLIB稍快,大概在3-4ms,但是最后的精确率上不及DLIB。这是现阶段需要个人需要解决的问题。

参考文献

[1]. https://zhuanlan.zhihu.com/p/21456877?refer=dlclass

[2]. http://www.cnblogs.com/sciencefans/p/4394861.html

[3]. http://blog.csdn.net/jcx1314/article/details/53781577
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  论文解读
相关文章推荐