1.本文章的主要贡献:
使用shape-regression 的方法对人脸进行校准,更加高效。
2.方法:
思路:在训练集上,最小化对齐误差,得到一系列的回归函数来推断人脸整体形状。
训练过程
1.两层级联回归模型,第一层(R^1,.....,R^t,........,R^T),第二层Rt=(r^1,.....,r^k,....r^K).
2.r^k是由2^F个回归组成,F为特征个数,通过阈值可以划分为2^F个bin,每个bin与一个回归输出deltaSb相关
3.deltaSb通过优化目标函数得到。
4.训练完成后,应该得到T*K*2^F个回归器。
3.训练算法流程:
输入:N个训练样本,
输出:T*K*2^F个弱回归器
T*K组选择好的像素差特征,每组有F个特征,对应F*2个像素点
T*K组像素差阈值,每组维数为F
平均形状S
for i=1:N
对样本真实形状Si进行归一化
end
根据归一化形状计算平均形状S
for t=1:T
在平均形状上随机选择P个坐标点
for i=1:N
计算Si与S间的仿射变换Transi,得到原图上的P个像素点
计算P个像素点的差,得到P*(P-1)/2个特征
end
for k=1:K
//BEGIN特征选择
for f=1:F
随机生成一组向量,维数与形状点维数相同
for i=1:N
真实形状Si与估计形状Si间的误差deltaSi
计算标量proj1=direct^T*deltaSi
end
for i=1:P*(P-1)/2
计算N个样本中第i个像素差特征与标量proj1的相关性corri
end
选择相关性最大的第i个像素差特征多为第f个特征,将坐标加入到Corrdtk中
end
对选择好的F个特征,随机设置一组阈值
//END特征选择
将N个样本,根据F个特征的阈值,将其分别划分为2^F组
for i=1:N
计算当前形状Si与平均形状S 间的仿射变换Trans
根据仿射变换Trans,获取Corrdtk在原图上像素值{Itk}
根据{Itk}计算F维的计算像素差特征
对应维数与Threshtk比较,确定弱分类器δStkb
更新形状Si=Si+δStkb
end
end
end
4.结论:
此算法更加高效,不仅用于人脸识别,还可以用于物体的识别。