码迷,mamicode.com
首页 > 编程语言 > 详细

Supervised Descent Method Face Alignment 代码下载 和 算法研究 之一

时间:2015-05-27 22:56:24      阅读:915      评论:0      收藏:0      [点我收藏+]

标签:sdm   face   alignment   代码   下载   

1 主要内容:
Supervised Descent Method and its Applications to Face Alignment算法研究。

2代码彩蛋:我问了好久,xxiong好心人发给我的,希望能对你们学习有帮助:
低调下载:
http://humansensing.cs.cmu.edu/xxiong/mexintraface1.3.1%28release%29.zip
注意杜绝一切商业用途,如果需要商业用途,请联系作者本人!!

3本文分为几个部分:
(1)解决什么问题
(2)具体理论方法是什么
(3)具体实现步骤

(1)解决什么问题
上一篇文章newton方法,请看具体实现,
技术分享
牛顿法目的是求f(x)最小值。然后改成求f’(x)=0。
迭代n次上图公式1,直到Xk+1 - Xk收敛到0.0001
or 其他非常小大于0的值。
而公式1中 f’(x)是上图中J(f(Xk))函数, 而f”(x)是H(Xk).
下图为该方法:
技术分享

技术分享是牛顿迭代的梯度方向。
更多内容请看:上一篇牛顿法-最优方法。
我们知道牛顿法:要满足在定义域内二次可微,hession矩阵正定。

而在计算机背景下,运用newton method有三个问题:
1 Hession矩阵在最小值的局部是正定的,但在其他地方可能不正定。
因为只有Hession矩阵正定,初始值才能收敛到局部值。
技术分享
上图可知:搜索方法是凹方向,是梯度 or Hession矩阵的相反方向,只有Hession矩阵正定,即每个Hession矩阵每个特征值大于零,才会沿着梯度相反方向,即沿着曲线的凹方向(梯度方向是曲线的凸方向),收敛到局部极值点。

2Hession矩阵需要二次可微。但在计算机视觉下,x比如sift特征,是一个不可微的图像操作,即sift特征是离散的。在这种情况下,我们只能用数值逼近Hession矩阵 or 梯度,但这样做计算成本很大。

3Hession矩阵的维数可能很大。而Hession矩阵的逆矩阵计算的时间复杂度是O(n^3),空间复杂度O(n^2),n是矩阵维数,计算量和空间内存都需要很大,即使用 L-BFGS,计算成本仍然很大。

所以作者提出了a Supervised Descent Method (SDM),来求非线性的最小平方差。
在训练阶段:
通过最小化所有样本的非线性平方差函数之和,
学习许多梯度方向组成的梯度序列
在测试阶段:
SDM minimizes 非线性平方差函数,
使用训练时训练的梯度方向,
再也不用计算 the Jacobian nor the Hessian矩阵 。

(2)Supervised Descent Method(SDM)具体理论原理是什么?
这里研究的SDM是对face alignment application.
技术分享
上公式中:
1 d代表一个人脸图片的m个像素,技术分享
2 技术分享
d(x)代表一个图片的66个标点。
3 h是特征抽取函数(比如sift特征抽取),技术分享
h(d(x))是在标点d(x)周围抽取的128维的sift特征。
技术分享
4上图
(a)图在训练期间,假设66个标记是已知,我们称之为X*
(b)图 先用检测到人脸(蓝色矩阵框),再用所有样本平均shape,作为X0,初始化位置。
人脸匹配(face alignment),是极小化公式(3).

Supervised Descent Method Face Alignment 代码下载 和 算法研究 之一

标签:sdm   face   alignment   代码   下载   

原文地址:http://blog.csdn.net/xp215774576/article/details/46052323

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!